| |
2012/8/15
Nanotime user guide中有下面两段关于建立时间约束和保持时间约束的描述,一开始对提到的maximum delay 和 minimum delay 不理解,不知道为什么一个是max另一个是min。
为了使电路正常工作,建立时间和保持时间应该分别满足:
T_hold + T_skew < T_clk2q_min + T_logic_min (1)
T_clk > T_clk2q_max + T_logic_max + T_setup + T_skew (2)
其中,T_hold是保持时间,T_skew = clk1 – clk2 ,T_clk2q_min是时钟沿到达到数据输出的最短时间,T_clk2q_max是时钟沿到达到数据输出的最慢时间,T_logic_min是触发器之间逻辑部分的最短延时,T_logic_max是逻辑部分的最大延时,T_clk是时钟周期,T_setup是建立时间。
考虑建立时间,当时钟上升沿到来后,data要比下一个上升沿先到达触发器输入端,最坏的情况是data经过T_delay=T_clk2q_max + T_logic_max 延时后到达第二个触发器的输入端,再考虑到最坏情况的向前时钟偏斜,即clk2比clk1先到达触发器时钟端,还有建立时间,则下一个时钟上升沿必须在这些时间之后到来,即满足式(2)。
考虑保持时间,当时钟上升沿到来后,后一个触发器的输入端数据要保持一段时间。最坏的情况是新的data经过T_delay=T_clk2q_min + T_logic_min的最小延时后到达后一个触发器输入端,所以保持时间必须小于这个延时,再考虑到向后时钟偏斜,即clk2比clk1后到达触发器时钟输入端,则保持时间需满足式(1)。