建立时间裕度分析图:
保持时间裕度分析图:
图中的两个寄存器中间加一段组合逻辑电路是时序分析的经典模型,主时钟clk前后两个上升沿分别叫启动沿(Launch edge)和锁存沿(Capture edge),是时序分析的起点和终点。下边一步步推导出建立时间裕量(setup time slack)和保持时间裕量(hold time slack)及常用通式。要注意,下边的“时间”均表示一个时刻。且为了方便,将启动沿时刻定义为0时刻,故锁存沿为T时刻。
1 时钟到达时间:时钟有效沿到达带二个寄存器的时刻。
Tcd = capature Edge + Tclkb = T + Tclkb
2 数据到达时间:数据到达第二个寄存器的时刻。
Tdd = launch Edge + Tclka + Tco + Tdata = Tclka + Tco + Tdata
3 数据需求时间(建立时间需求):为满足建立时间要求,数据最晚到达的时刻。
Tsu,req = Tcd - Tsu = T+ Tclkb - Tsu
4 数据需求时间(保持时间需求):为了满足保持时间要求,数据最早更新的时刻。
Th,req = Tcd + Th = T + Tclkb + Th
5 建立时间裕量:为满足建立时间要求,富余出来的时间段长度。
setup slack = 建立时间需求 - 数据到达时间
= Tdd - Tsu,req = T+ Tclkb - Tsu - Tclka - Tco - Tdata
= T + T△ - Tco - Tdata - Tsu
6 保持时间裕量:为了满足保持时间要求,富余出来的时间长度。
hold slack = 数据到达时间(下一次)- 保持时间需求
= Tdd’ - Th,req = Tclka + Tco + Tdata + T - T - Tclkb - Th
= -T△ + Tco + Tdata - Th
注意:同步数字电路就系统中,每条时序路径必须满足建立时间裕量和保持时间裕量 ≥ 0,否则无法满足建立与保持时间要求,引起系统不稳定甚至无法正常工作。常用通式(不考虑时钟偏抖):
1 通过建立时间裕量引出系统最高时钟频率
setup slack≥0:T - Tco - Tdata - Tsu ≥ 0 -->T ≥ Tco + Tdata + Tsu
2 通过保持时间裕量得到保持时间与时序参数关系
hold slack≥0:-T△ + Tco + Tdata - Th ≥ 0 --> Th ≤ Tco + Tdata
原文链接:https://www.cnblogs.com/moluoqishi/p/9673557.html