在数字IC设计中,OCC(On-Chip Clock Controller)后面连接一串CBC(Clock Buffer Chain,时钟缓冲器链)的主要目的是为了解决时钟树综合(CTS)中的信号完整性、时钟分布均匀性以及时序收敛等问题。
一、CBC的作用与必要性
1. 时钟信号驱动能力增强
-
问题:OCC输出的时钟信号可能需要驱动大量寄存器(尤其是全局时钟域),单个驱动单元无法满足高扇出(High Fanout)需求。
-
解决方案:
CBC通过多级缓冲器(Buffer)逐步放大时钟信号,确保边沿斜率(Slew)和驱动能力满足末端寄存器的要求。
2. 时钟树平衡(Skew Control)
-
问题:时钟信号到达不同寄存器的延迟差异(Skew)过大会导致时序违例。
-
解决方案:
CBC通过对称的缓冲器链结构,平衡时钟路径延迟,减少偏斜。例如,H-tree或X-tree拓扑结构。
3. 时钟网络功耗优化
-
问题:直接长距离走线会导致高电容负载,增加动态功耗。
-
解决方案:
CBC分段驱动时钟信号,减少单段走线的电容负载,降低总功耗。
4. 信号完整性(SI)保障
-
问题:长时钟走线易受串扰(Crosstalk)和噪声影响,导致时钟抖动(Jitter)。
-
解决方案:
CBC插入中继缓冲器(Repeater),缩短单段走线长度,抑制噪声传播。
二、OCC与CBC的协同工作流程
1. OCC的输出特性
-
功能:
OCC负责时钟模式切换(测试/功能)、门控使能等逻辑控制,但其输出时钟的驱动能力有限,通常仅能驱动局部逻辑。 -
限制:
直接连接全局时钟网络会导致信号衰减或时序失衡。
2. CBC的扩展设计
OCC → BUF1 → BUF2 → ... → BUFN → 时钟叶子节点(Leaf Pin)
-
分级驱动:
-
第一级缓冲器(BUF1):靠近OCC,驱动中等扇出。
-
末级缓冲器(BUFN):靠近寄存器,驱动低扇出,保证边沿质量。
-
-
负载匹配:
每级缓冲器的驱动强度与负载电容匹配,避免过度延迟或功耗浪费。
3. 物理实现约束
-
布局对齐:
CBC的缓冲器需均匀布局,确保时钟路径对称。例如,在CTS阶段使用工具自动平衡:set_clock_tree_options -buffer_list {BUFX4 BUFX8} -target_skew 0.1 -
电源优化:
为CBC缓冲器分配专用电源轨道(Power Rail),减少IR Drop影响。
三、典型应用场景
1. 高性能CPU设计
-
需求:
多核CPU的全局时钟需低偏斜(<50ps)和高驱动能力。 -
方案:
OCC输出后接3~5级CBC,采用Mesh结构分布时钟。
2. 低功耗IoT芯片
-
需求:
动态门控时钟需快速唤醒且无毛刺。 -
方案:
OCC门控信号同步后,通过短CBC链驱动局部模块。
3. 测试模式下的时钟分布
-
需求:
扫描测试时,ATE时钟需稳定覆盖所有扫描链。 -
方案:
OCC切换至测试时钟后,CBC确保时钟到达每个扫描触发器。
四、对STA收敛的影响
1. 时序约束
-
时钟路径延迟:
CBC的每级缓冲器需在STA中建模,确保总延迟满足周期要求:set_clock_latency -source 0.5 [get_clocks CLK] ; # OCC到第一级CBC的延迟 -
偏斜约束:
工具需平衡CBC各分支的延迟:set_clock_tree_options -max_delay 0.3 -target_early_delay 0.2
2. 特殊检查项
-
时钟门控与CBC的协同:
门控使能信号需在CBC第一级前同步,避免毛刺:set_clock_gating_check -setup 0.2 -hold 0.1 [get_pins OCC/gating_en] -
OCV(On-Chip Variation):
分析CBC在不同工艺角(WC/BC)下的延迟差异。
五、常见问题与解决
1. 时钟抖动(Jitter)超标
-
原因:CBC缓冲器布局不对称或电源噪声。
-
修复:
-
重新平衡CTS,减少缓冲器级数。
-
增加去耦电容(Decap) near CBC缓冲器。
-
2. 功耗过高
-
原因:CBC缓冲器尺寸过大或级数过多。
-
修复:
-
使用低功耗缓冲器(如LVT Cell)。
-
优化时钟树综合策略:
set_clock_tree_options -power_driven true
-
3. 测试模式时钟不稳定
-
原因:CBC在测试模式下未正确旁路。
-
修复:
-
添加测试多路复用器(MUX)绕过部分CBC:
assign clk_out = test_mode ? test_clk : cbc_chain_out;
-
六、总结
| 关键点 | OCC的作用 | CBC的作用 |
|---|---|---|
| 功能核心 | 时钟模式切换与门控 | 时钟信号驱动与分布 |
| 时序收敛 | 控制时钟源稳定性 | 平衡偏斜,满足Setup/Hold |
| 物理实现 | 集中控制逻辑 | 分散布局,优化SI/PI |
| 测试支持 | 切换测试时钟 | 确保测试时钟覆盖所有扫描链 |
设计原则:
-
协同设计:OCC与CBC需在综合阶段联合约束,避免后期时序冲突。
-
分级优化:CBC的缓冲器级数和尺寸根据负载动态调整。
-
验证覆盖:STA需分析OCC切换和CBC延迟的所有组合场景。

被折叠的 条评论
为什么被折叠?



