时序分析的核心就是分析寄存器与寄存器之间时钟与数据的相位关系!
一、Tco= Tclk-q
Tco即D触发器时钟到输出延时,指的是时钟信号在寄存器引脚上发生转变之后,在由寄存器的数据输出引脚上获得有效输出所需要的最大时间,也叫做Tclk_q。
二、Tlogic
Tlogic即组合逻辑延迟。
三、Trouting
Trouting:两级寄存器之间的布线延迟。
四、Tdata
Tdata=Tlogic Trouting,
数据传输延迟,即输出数据从当前D触发器的输出到达下一级D触发器的输入端所需的时间,不同地方叫法不同吧,看华为的参考书里面称之为Tdelay。
根据系统时钟计算公式Tclk=Tco Tdata Tsu-Tskew,Tco与Tsu一般由设计工艺决定无法更改,Tdata在同步逻辑电路中,组合逻辑时延的最大路径,也就是说关键路径对设计性能起决定性影响的时序路径。
对关键路径进行时序优化,可以提高设计性能,对于同步逻辑来说,常用的时序优化方法包括pipeline(流水线)、retiming(重定时)两种方法。
即数据从Q端口,经过组合逻辑(Tlogic)以及布线的延迟(Trouting)才能到达接收端的数据端口。
五、建立时间
D触发器的正常工作是有定时要求的,必须满足建立时间和保持时间的要求。在时钟上升沿到来之前,D的值都必须在一段时间内保持稳定,否则D触发器无法工作,即第二级寄存器的时钟上升沿的位置和数据起始沿的位置之间的延时叫做建立时间。
建立时间:在时钟上升沿之前D需要保持稳定的最短时间。
计算公式:
Tsetup=Tcycle Tskew-Tdata
六、保持时间
保持时间:在时钟的上升沿之后的一段时间内,D的输入也不允许改变,这是为了防止采到的新数据太快而冲掉了原来的数据,会造成Q的输出不稳定。
此外,保持时间约束的是同一个时钟边沿,而不是对下一个时钟边沿进行约束。
在时钟沿到达之前,数据要保持Thold的时间,最长保持多久呢?就是要保证保持到不影响下一个时钟周期的输入输入,也就是说:
Tco Tlogic Trouting – Tskew > Thold
七、skew
保持时间:在时钟的上升沿之后的一段时间内,D的输入也不允许改变,这是为了防止采到的新数据太快而冲掉了原来的数据,会造成Q的输出不稳定。
skew:偏差,由于时钟到达每个寄存器的路径延迟不一样,但是信号到达clock pin的时间也不一样,时钟到达不同寄存器的时间偏差称为skew。skew是衡量时钟树性能的重要参数,传统CTS的目的就是为了减小skew。
根据时钟clock和data path的方向,skew可以分为posetive skew和negetive skew:
posetive skew
即clock和data path在相同的方向上。
negetive skew
即clock和data path在相反的方向上。
八、时钟偏斜clock skew
时钟偏斜指的是同样的时钟产生的多个子时钟信号之间的延时差异。其表现形式是多样的,既包含时钟驱动器的多个输出之间的差异,也包含PCB走线误差造成的接收端和驱动端时钟信号之间的偏移。
clock skew分为posetive clock skew和negetive clock skew,posetive clock skew指的是下一级的触发器时钟到达时间早于上一级触发器时钟到达时间,这相当于增加了后一级寄存器的触发时间,即:
negetive clock skew指的是下一级触发器时钟到达时间晚于上一级触发器时钟到达时间,这相当于减少了后一级触发器的触发时间,即:
九、时钟抖动clock Jitter
所谓抖动Jitter指的是两个时钟周期之间存在的差值,这个误差是在时钟发生器内部发生的,和晶振或者PLL内部电路相关,布线对其没有影响,如下图所示:
简单的理解就是,skew指的是时钟在相位上的不确定,而Jitter指的是时钟频率上的不确定。
bye~~