1. 课程来源
2. 建立时间检查
① 时序路径为:clock pin -> 寄存器D端(reg to reg)
CLKM 到 UFF0/CK 经过了Tlaunch延迟; CLKM 到 UFF1/CK经过了Tcapture延迟
要求data required time - data arrival time ≥ 0 (max delay)
② 时序路径为:input port -> 寄存器D端
定义虚拟时钟;设input delay
③ 时序路径为:clock pin ->output port
定义虚拟时钟;设output delay;output load
④ 时序路径为:input port ->output port
设input delay ;设output delay
3. 保持时间检查
① 时序路径为:clock pin -> 寄存器D端(reg to reg)
CLKM 到 UFF0/CK 经过了Tlaunch延迟; CLKM 到 UFF1/CK经过了Tcapture延迟
要求data arrival time - data required time ≥ 0(min delay)
② 时序路径为:input port -> 寄存器D端
③ 时序路径为:clock pin ->output port
④ 时序路径为:input port ->output port
4. 小结
Tlaunch 和Tcapture是时钟树;Tdb(Tlogic)自己写的verilog;Tsetup工艺库给定;Tck2q便准单元确定;Tcycle是时钟周期
修setup违例:
- 在capture时钟路径上加buffer,让时钟晚点到来(增大Tcapture)
- 降低时钟频率(增大Tcycle)
- 更换具有更小器件延迟的触发器(减小Tck2q)
- 组合逻辑优化或者插入寄存器,增加流水线(减小Tlogic)
修hold违例:
- 在数据路径上插buffer(增大Tlaunch或者Tlogic)
- 更换具有更大器件延迟的触发器(增大Tck2q)
- 优化时钟路径,让时钟早点到来(减小Tcapture)
相比建立时间,保持时间违例一般比较好解决