数字IC设计学习笔记
静态时序分析
1. 时序分析路经
2. 保持时间
2.1 概念
2.2 路径分析
1. 时序分析路经
Timing path类型:
① In2reg:input port 到 时序元件的数据输入端
② Reg2reg: 时序元件的时钟pin 到 下一个时序原件的数据输入端
③ Reg2out:时序元件的时钟pin 到 output port
④ In2out:input port 到 output port
2. 保持时间
2.1 概念
Hold time,Th,Thold,D触发器,在时钟有效边沿到来之后,数据必须保持稳定的最小时间。
保持时间的检查:从第一个D触发器(launch flip-flop)的时钟有效沿到下一个D触发器(capture flip-flop)的同一个时钟有效边沿。在建立时间检查的前一个边沿。
故建立时间的检查独立于时钟。
保持时间确认表达式:Tlaunch + Tck2q + Tdp <= Tcycle + Tcapture - Tsetup
2.2 保持时间路径分析:
1. 路径1:In2reg:input port到时序元件的数据输入端
-
约束input delay:set_input_delay
时序报告: -
Data arrived time: Tarrived = Tinput_delay + Tdp
-
Data required time:Trequired = Tcapture + Thold + Tuncertainty
Slack = Tarrived - Trequired > 0;
2. 路径2:Reg2reg: 时序元件的时钟pin下一个时序原件的数据输入端
时序图
由时序图可知,建立时间确认表达式:
Tlaunch + Tck2q + Tdp >= Tcapture + Thold
时序报告:
- Data arrived time: Tarrived = Tlaunch + Tck2q + Tdp
path group 属于终点时钟域
path type:min
注意:hold time一定是用的最小延迟(min delay),意味着,在最小的延迟时,launch路径的时间依然大于capture路径的时间,则所有的延迟都会满足要求。 - Data required time:Trequired = Tcapture + Thold + Tuncertainty
Tuncertainty: 指jitter, skew的值;为了使hold检查更加严苛,所以加上Tuncertainty的值,将capture路径的时间增大。
Slack: 时间裕量,只有大于等于0时,才满足时序约束要求。
Slack = Tarrived - Trequired > 0;;
3. 路径3:Reg2out:时序元件的时钟pin到output port
-
约束output delay:set_output delay
-
约束负载:set_load
时序报告: -
Data arrived time: Tarrived = Tlaunch + Tck2q + Tdp
-
Data required time: Trequired = Tuncertainty- Toutput delay
注意:在时序报告中,无hold time, 原因是,对于flipflop to output 的时序分析时,主要是分析flipfliop 与输出端口之间的组合逻辑的时序裕量能否满足hold time的要求。有图可知,所以对于capture path来讲,整段时间都包含在output delay,没有hold time。
Slack = Tarrived - Trequired > 0;
4. 路径四:In2out: 输入port到输出port
- 输入延迟约束:set_input_delay
- 输出延迟约束:set_output_delay
- 输出负载约束:set_load
时序报告:
-
Data arrived time: Tarrived = Tinput_delay + Tdp
-
Data required time: Trequired = Tuncertainty - Toutput delay
Slack = Tarrived - Trequired > 0;
【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~