求指点!setup和hold可以同时为负么
当然有可能同时为负值啊,magin足够多的情况下时序不会有错~
能具体解释一下么,什么情况下就同时为负了
你说的是 library setup/hold time 吧,同时为负是不可能的,自相矛盾。
平常两个都是正数,我的理解是分别考虑 worst case 再加上 transition 需要时间。
能具体解释一下么不太懂
那你要先了解 setup 和 hold 是什么
从概念上讲的话setup是时钟上升沿到达之前数据应保持稳定的时间,hold是时钟上升沿到达后数据应保持稳定的时间
标题
为什么要保持稳定?竞争冒险。那这样两个都是正值了。
至于为什么可能出现负值,因为flip-flop 端口到 gate 有一段delay,如果clock 那段delay明显要大,setup就可能是负值了。
那hold也是同样的道理吧,可是为什么不能同时为负我还是不太明白,希望您能再解释一下,谢谢
同时为负就是:
CLK_cell_delay > DATA_cell_delay 且 DATA_cell_delay > CLK_cell_delay,而且这是必要条件不是充分条件,还要考虑 clock 的 transition
哦,好像明白了,谢谢
不能吧,setup和hold不能都为负值,二者之和需要保持为一个正的常数。这个值为输入数据保持稳定的时间。
一个很容易理解的方法:
先找到一条hold违例的路径,由于hold跟时钟周期无关,那么基于这条路径的setup check时,逐渐缩小时钟周期,这种scenario就制造出来了。
在实际的设计中,以下几个原因可以存在同时hold和setup违例:
1. clock tree 延迟过大,共同路径较短,存在较大的OCV derate
2. data path逻辑长,存在较大的OCV derate
3. 时钟频率快,性能要求高
-Joemool
不可能
1、library中单元的setup time和hold time可以同时为负吗?
不可以
① 在时序单元上,setup time表示的是数据在时钟沿之前必须稳定的时间,hold time表示的是数据在时钟沿之后必须稳定的时间。也就是说数据必须保证稳定的时间为(Tsetup + Thold)"最小采样窗"。
② 在较复杂的时序单元上,clock path与data path的长度不同,延时不同,可能导致setup time或者hold time为负。但是为了保证“最小采样窗”大于零,这也必须保证(Tsetup + Thold)>0成立