时序分析的核心就是分析寄存器与寄存器之间时钟与数据的相位关系!
一、经典题目分析1
假设存在posetive clock skew为10ns,问最高电路电路频率?系统能忍受的最大posetive clock skew。(Tset_up=1ns 、Thold=1ns 、Tcllk_q=1ns )?
【posetive clock skew 指的是DFF2的时钟比DFF1的来的晚】
解答(一):
首先是求电路的最大频率,求解电路的最大频率是指的数据从DFF(D Flip Flop)的数据输入端到下一个数据输入端的最小时间。
那么就是分析从D端口到D端口的时间,该时间分为两种,一种是数据端为同一个DFF,另一个是数据端口为两个DFF。
对于第二种情况又分为两种情况,一种是从上一级DFF的数据端D到下一级的DFF的数据端D,在这种情况中,系统最小时钟的分析是Tclk>=Tco+Tdata(Tlogic+Trouting)+Tsu-Tskew;另一种是从下一级的数据端D到上一级DFF的数据端D,系统最小时钟的分析是Tclk>=Tco+Tdata(Tlogic+Trouting)+Tsu+Tskew。
要获知系统的最小时钟,就是要以上所有条件都满足,最恶劣的情况为:
此时Tco=1,Tdata=3+1,Tsu=1,Tskew=10。则系统的最小时钟为16ns,65Mhz。
解答(二):
求最大的posedge clock skew,根据保持时间的公式:
Tco + Tlogic + Trouting – Tskew > Thold
也就是说
Tco + Tdata – Tskew > Thold
上述公式的本质是要求在数据发生变化时,数据的保持不能影响新数据的建立刷新。
Tskew的取值要使得所有路径的时序关系都满足,Tco=1,Th=1, 能容忍的最大posedge时钟偏斜,即DFF2的时钟滞后于DFF1的最大值,则正向考虑,考虑下图中的红色与绿色路径:
对于红色部分:5(不算Tsu) – posedge clockskew > 1,也就是:
posedge clockskew < 4.
对于绿色部分:9(不算Tsu) – posedge clockskew > 1,也就是:
posedge clockskew < 8.
两者结合起来即posedge clock skew最大为4ns。
二、经典题目分析2
晶振发出脉冲到管脚延时为16ns,从管脚到PLL的延时为6ns,从PLL到达REG1的延时为3ns,从PLL到达PLL2的延时为1ns,已知系统时钟周期为8ns,Tco=0.5ns,Tdata=1.5ns,Tsetup=1.5ns,Thold=1.5ns,问寄存器2的采样时间,建立时间裕量?保持时间总长,保持时间裕量?
解答:
Ts采样时间为REG1发出有效数据后,到REG2的时钟上升沿的时间间隔,那么REG1的数据输出的Tco=0.5ns,Tdata=1.5ns,且REG2的时钟相位较REG1超前2ns,根据Ts计算公式:
Ts=Tcycle+Tskew-Tco-Tdata=8+(-2)-0.5-1.5=4ns
建立时间裕量Slack为 Ts-Tsu=4-1.5=2.5ns
对于保持时间总长度,为REG2时钟信号上升沿之后REG1的数据仍保持有效的时间,
TH = Tcycle – TS– Tco – Tdata = 8 – 4 – 2 = 2 ns
REG2的时钟上升沿为6ns处,之后数据保持2ns,故总的保持时间为2ns,保持时间裕量为2-1.5=0.5ns。
bye~^~