时序分析的核心就是分析寄存器与寄存器之间时钟与数据的相位关系!
一、Launch Edge
Launch Edge:启动边沿,指的是产生数据的register1所使用的时钟的上升沿。
Latch Edge:锁存边沿,接收数据的register 2所使用的clock rising edge,滞后于Launch Edge一个clk。
在上图中,第一个时钟的上升沿为启动沿,是register1产生数据所使用的上升沿,第二个时钟信号上升沿为锁存沿,是register2寄存register1产生的数据的上升沿。
二、Data Required Time
数据要求时间,该时间分为两部分,一部分为对建立时间的要求,另一部分为对保持时间的要求
setup:
为了保证数据可以及时进入register2,最迟需要在何时做好准备,所以从时钟到达时间开始减去Tsu和一些不确定的值即为数据对保持时间的要求,即:
Data_Required_Time(set-up)=ClockArrival_Time–Tsu–Set_up_uncertainty
=Latch Time Tclk2 – Tsu – Set_up_uncertainty
holdup:
为了让数据成功进入register2,数据至少需要保持到何时,与对建立时间的要求类似:
三、Clock Arrival Time
时钟到达时间,指的是clock实际到达register2 input的时间,该时间以Latch Edge为基准。
从Latch Edge开始,经过Tclk2(register2的clock skew),即为Clock Arrival Time。
三、Data arrival time
数据到达时间,该时间以启动沿为基准,经过时钟到达时间Tclk1后,再经过时钟到输出延时Tco,再经过数据传输延迟Tdata,才会真正的有数据到达reg2,那么数据到达的时间的图示:
Data Arrival Time=Launch Edge Tclk1 Tco Tdata
解释起来就是:
数据达到时间=启动沿(基准) 时钟达到时间 时钟到输出延时 数据传输延时
data实际到达reg2的数据输入端(D)所需的时间,所以从Launch Edge开始,经过Tclk1(register1的clock_skew),再加上Tco(register1的clock_to_output delay),再加上Tdata(组合逻辑本身的delay),即为Data Arrival Time。(这句话说的真的好经典~~~~~)。
bye~~