Tclk1:时钟路径延迟 Tco:寄存器更新延迟 Tdata:数据路径延迟 Tclk2:时钟路径延迟 Tsu:寄存器建立时间
1,建立时间:
图1:TimeQuest求建立余量示意图
则,数据到达reg2的时间为:launchedge+Tclk1+Tco+Tdata=0+3.2ns+0.8ns=4ns
reg2开始锁存data的时间为:latchedge+Tclk2-Tsu=10ns+2ns-1.4ns=10.6ns
建立余量为:10.6-4=6.6ns
(以上公式即为TimeQuest给出的公式)
Tsu 表示了锁存方的寄存器在读取数据之前所需要的“最小准备时间”,相当于reg2从10.6处就要锁存数据了,所以Tsu使锁存沿左移
2.保持时间:图2:一种易于理解的方式求保持余量
则,数据保持时间为:launchedge+Tclk1+Tco+Tdata+T=0+3.2+0.8+10=14ns
reg2锁存数据的时间为:latchedge+Tclk2+Th=10+2+1.4=13.4ns
保持余量为:14-13.4=0.6ns
(以上公式是方便理解,akuei2大给出的易于理解的公式)
图3:TimeQuest求保持余量的示意图
则:保持余量 = 数据抵达时间- 数据锁存(获取|读取)时间
=(启动沿+ Tclk1 + Tco + Tdata)-(锁存沿+ Tclk2 + Th)
=(启动沿+ Tclk1 + Tco + Tdata)-(理想保持关系值+ Tclk2 + Th)
=(0 + 3.2 + 0.2 + 0.6)ns -(0 + 2 + 1.4)ns
= 4ns - 3.4ns
= 0.6ns
(以上公式即为TimeQuest给出的公式,即将图2的公式消去周期10ns)
小结:雄立科技面试时曾问道,如果两个寄存器之间的组合逻辑过多,会对哪个时间造成影响?现在想来,应该是会对建立余量造成影响,因为Tdata在建立余量的减数中。