请教:关于setup time slack和hold time slack
hold time slack = Arrival time - Required time
为什么在cts之后,插入了buffer驱动能力变强那么Arrival time应该
变小,那就是说cts应该解决的是setup time的slack VIOLATED问题。
为什么事实是相反的呢。cts结束后hold time VIOLATED没有了。请高
手指教!
cts的目的是所有DFF的时钟都在同一时刻翻转,不是为了增大驱动。cts保证从时钟的起点到到所有DFF的时间尽量接近,它不能直接解决setup、hold的slack violation。解决setup要靠优化data path delay,解决hold要靠在data path上添加delay cell。
谢谢楼上。那么请问为什么我cts之后hold time slack 的VIOLATED都自动好了呢?
那么请问为什么我cts之后hold time slack 的VIOLATED都自动好了呢?
时钟抖动不一定对hold time slack 都有害处,有可能抖动之后刚好消除违规呢。所以这个也许是个巧合的事件。
谢谢楼上
真的很受教
真的很受教
cts一方面是为了尽量减小clock skew,另一方面也是为了降低时钟负载。
回答得很正确
学习中
我想请问setup slack和hold slack 设多少比较合适?
学习了.
CTS插入CLKBUF对setup修正有利,对于hold是不利的,其间在数据path上插入BUF或延时器件进行修正
只要是正的就行了吧
clocktree就是launch path和capture path上得跷跷板,这边下去,那边就上来。你做完CTS后,应该是launch的clock path长于capture path clock,所以setup变坏了,hold violation却变好了。仔细看一下full_clock的timing report吧,然后想想是修clock path还是修data path来解决问题。
很形象,不是setup好,就是hold好,就看buf影响的是launch path,还是capture path了
降低时钟负载是啥意思啊?请教
很简单,就是用一个clock buffer tree结构,而不是单一条net来drive很多个DFF,相当于把负载分散到各个clock buffer上,这就是修Fanout的原理。
学习,受用!
更正:jitter对setup,hold都有害
学习了
搞錯了吧!
CTS通常會先修setup time violation, 在修 Hold time
所以會有某些path 必須用ECO的方式修Hold time violatin
顶。
学习了。
谢谢小编回答
谢谢回答