数字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 概念
Setup time,Tsu,Tsetup,采样的D触发器,在时钟有效边沿到来之前,数据必须保持稳定的最小时间。
建立时间确认表达式:Tlaunch + Tck2q + Tdp <= Tcycle + Tcapture - Tsetup
建立时间的检查:从第一个D触发器(launch flip-flop)的时钟有效沿到下一个D触发器(capture flip-flop)的一个Tcycle以后的有效时钟边沿。
2.2 建立时间路径分析:
1. 路径1:In2reg:input port到时序元件的数据输入端
- 约束input delay:set_input_delay
时序报告:
- Data arrived time: Tarrived = Tinput_delay + Tdp
- Data required time:Trequired = Tcycle + Tcapture - Tsetup - Tuncertainty
Slack = Trequired - Tarrived > 0;
2. 路径2:Reg2reg: 时序元件的时钟pin下一个时序原件的数据输入端
时序图
由时序图可知,建立时间确认表达式:
Tlaunch + Tck2q + Tdp <= Tcycle + Tcapture - Tsetup
时序报告:
- 1. Data arrived time: Tarrived = Tlaunch + Tck2q + Tdp
path group 属于终点时钟域
path type:对于setup time来说,如果最长路径 Data arrived time满足时序分析,则表示所有路径满足时序分析;故选择max; - 2. Data required time:Trequired = Tcycle + Tcapture - Tsetup - Tuncertainty
Tuncertainty: 指jitter, skew的值;为了使setup检查更加严苛,所以减去Tuncertainty的值。
Slack: 时间裕量,只有大于等于0时,才满足时序约束要求。
Slack = Trequired - Tarrived > 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 = Tcycle - Toutput delay - Tuncertainty
注意:在时序报告中,无setup time, 原因是,对于flipflop to output 的时序分析时,主要是分析flipfliop 与输出端口之间的组合逻辑的时序裕量能否满足setup time的要求。有图可知,片上触发器(UFF4)与虚拟触发器(virtual flipflop)之间的时钟周期是T,T - Tck2q -Tmax_delay - Tdp= Slack,所以对于capture path来讲,没有setup time,整段时间都是output delay。
Slack = Trequired - Tarrived > 0;
4. 路径四:In2out: 输入port到输出port
- 输入延迟约束:*set_input_delay
- 输出延迟约束:set_output_delay*
时序报告:
- Data arrived time: Tarrived = Tinput_delay + Tdp
- Data required time: Trequired = Tcycle - Toutput delay - Tuncertainty
Slack = Trequired - Tarrived <0,故违反了建立时间的时序规则。
【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~