建立/保持时间
1.建立时间
由于数据需要经过两级触发器,建立时间主要关注第二级触发器的建立时间是否满足要求,以第一级为源触发器,第二级为目标触发器,时钟到达D0时间为Tclk1,到达D1的时间为Tclk2.
建立时间指的是时钟到达第二级触发器的延时一定要大于数据到达的时间。

本身时钟源到达D0触发器和到达D1触发器的时间就不同,clk1小于clk2,且第二级触发器的采样时间本身就落后第一级一个周期。从数据流上解析,也就是数据路径,到达第二级触发器且满足建立时间需要经过的延时有:
clk时钟源的clk1,因为数据只有到达D0触发器的时候数据才开始传输。
第一级触发器内部电路延时Tco。
第一级触发器和第二级触发器之间的延时Tdata。
第二级触发器满足的最小建立时间Tsu。
从时钟路径上看,第二级触发器到真正接收到稳定数据(建立时间)需要经过的延时有:
一个时钟本身,因为第二级触发器本身就落后于第一级触发器一个周期。
时钟源到第二级触发器的延时clk2.
要想满足建立时间的关系,就要在时钟有效沿到来之前,将数据稳定下来,这就要求数据路径上的延时一定要小于时钟路径,因为只有这样在时钟关系满足前,数据路径上数据就已经稳定下来了。
因此表达式满足Tclk1+Tco+Tdata+Tsu<=Tperoid+clk2,可变换成Tco+Tdata+Tsu<=Tperiod+Tskew,其中Tskew代表时钟偏移,也就是Tclk2-Tclk1。而建立时间裕度指的就是时钟路径与数据路径的差值,差值越大,数据越稳定。
2.保持时间
经过上面的建立时间之后,第二级触发器成功拉高,到第二个数据到来之前,该触发器一直拿着第一次传的数据,要想满足保持时间的满足,就要保证第二个数据传过来经过的时间,同样涉及数据路径和时钟路径。

首先先看数据路径,由于此时是观察保持时间,从时钟源开始看1,当始终源处于高电平时,需要经过Tclk1才能到达D0,再经过Tco和Tdata才能到第二级,数据路径延时就是Tclk1+Tco+Tdata
其次是时钟路径,对于时钟则是从时钟源开始到第二触发器的延时Tclk2,以及自身需要保持的时间Thold。
因此数据路径上的这种延时最好是能大于始终到达第二级且满足最小建立时间,也就是Tclk1+Tco+Tdata>=Tclk2+Thold,也可以写成Tco+Tdata>=Thold+Tskew,其中Tskew代表时钟偏移,也就是Tclk2-Tclk1。
3.时序收敛
设计中所有路径都满足建立时间和保持时间,说起来容易,实现起来很难。
4.时序违例
时序违例指的是不满足建立保持时间,那么如何避免时序违例,满足建立保持关系呢?下面有两个题目:
第二题的主要涉及违例以及优化,后续会将优化违例的基本方法总结出来,整体思路是根据建立时间保持时间公式进行计算,计算出最大延时,最大延时才是电路的设计的标准。此外对于具有反馈的路径,直接将第二级触发器是为第一级第以及视为第二触发器就行,对应的时钟偏移量取反就行了。

避免违例的方法(避免建立保持时间的亚稳态):
(1)建立时间要求是时钟路径大于数据路径,如果是建立时间违例,1)可以增加时钟偏移量,也就是增加时钟到达第二触发器的延时Tclk2或者减少始终到达第一级的延时Tclk1。2)减小组合逻辑Tdata的延时。
(2)保持时间是时钟路径小于数据路径,1)减少时钟偏移量,也就是减小时钟到达第二触发器的延时Tclk2或者增加始终到达第一级的延时Tclk1。2)增大组合逻辑Tdata的延时
浙公网安备 33010602011771号