1. 时钟传播问题排查实战指南
在数字芯片后端设计中,时钟网络的完整性直接关系到芯片功能的正确性。当使用Innovus进行时序分析时,经常会遇到时钟信号无法正常传播到目标寄存器的问题,导致时序路径被标记为"未约束"(unconstrained)。这种情况通常表现为两种典型错误:
- 时钟波形未能到达参考引脚(proper clock waveform not reaching reference pin)
- 无效的检查弧(inactive check arc)
提示:遇到未约束路径时,首先应该检查时钟树综合(CTS)报告,确认时钟网络是否完整覆盖所有目标寄存器。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 时钟传播中断的常见原因解析
2.1 时钟波形未到达参考引脚
这种情况通常意味着时钟信号在到达目标寄存器之前就被阻断了。通过多年实战经验,我总结出以下几种典型原因:
-
时钟传播停止约束(set_clock_sense)
tcl复制
set_clock_sense -stop_propagation [get_pins C1/Y]这种约束会显式阻止时钟信号继续向下传播。常见于需要隔离某些模块时钟的场景。
-
案例分析(case analysis)设置
tcl复制set_case_analysis 0 [get_pins C1/Y]将某个节点固定为常数会导致时钟信号在该节点终止传播。这在DFT模式下尤为常见。
-
被禁用的时序弧(disabled timing arc)
tcl复制
set_disable_timing -from A -to Y [get_cells C1]当时序弧被禁用后,时钟信号无法通过该路径继续传播。
2.2 无效检查弧问题排查
无效检查弧通常出现在以下场景:
-
寄存器时钟引脚被固定为常数
tcl复制set_case_analysis 0 [get_pins u2/CKN]这会导致所有基于该时钟的时序检查被标记为无效。
-
时序弧被显式禁用
tcl复制
set_disable_timing -from CKN -t
