时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为
T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件。
---------------------------------------
这个问题其实并不复杂,但出题的人那么出也确实是容易把人弄混。
可以先不管题怎么出,先把自己理解清楚的公式摆上去,再解不等式就好了。
首先,我们还是应该假设Setup和Hold时间是不变的,那么可以改变的是自己设计的组合电路的延时T2max和T2min。计算Setup violation时是用延时最长的路径来计算的,只要最长的路径没有setup violation,整个设计就不会有;而计算hold violation时是用延时最短的路径来计算的,只要最短的路径没有hold violation,整个设计就不会有。所以:
Tcko + T2max + Tsetup < T
T2min > Thold - Tcko
其中Tcko指从寄存器的时钟跳变到输出的时间。
OK,然后就解不等式就好了,无论考官出什么题,这两个公式不变就可以。
如果要忽略Tcko,就把里面的Tcko去掉就好了。
有人提出对于hold时间,忽略掉Tcko后,如果T2min为0,那hold时间岂不也应该为0?
正是如此!但是由于寄存器的hold时间不可能为0,所以这时必须插入buffer增大T2min使它大于Thold才可以满足hold时间的要求。
然后,我们再把时钟的因素考虑进来。由于时钟到达各个寄存器的时间不同,会引起时间差。注意,对于不同的寄存器之间,这时间差可能为正也可能为负,综合工具不可能为对每一对寄存器之间都一一计算,因而记这些时间差绝对值的最大值为Tskew。也称uncertainty。
对于建立时间,时钟skew的最坏情况是时钟往前偏移了Tskew时间;对于保持时间,时钟skew的最坏情况是时钟往后偏移了Tskew的时间。因此关系式变为:
Tcko + T2max + Tsetup < T - Tskew
T2min > Thold - Tcko + Tskew
一般来说,在不考虑时钟skew的情况下,Thold总是小于Tcko的,所以即使是T2min等于0,保持时间的约束也是满足的,因而我们大多时候对保持时间不需要考虑太多,只要我们的组合逻辑满足周期约束(也就是setup的约束啦,计算周期约束肯定是要将setup时间算进去的)就可以。需要考虑hold time 约束的情况就是在有时钟skew的情况下,由于时钟skew的存在, Thold-Tcko + Tskew 很可能会大于0,因此,T2min如果等于0就不能满足条件,此时就需要加入buffer以增大组合逻辑的延时来满足这个条件。而在FPGA设计中,一般也无需考虑Hold时间的问题。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。