模块级时钟树改进方法
模块级时钟树改进方法
会议: SNUG China 2018 Shanghai 作者: Wayne Bai (AMD) 页数: 18
议程
1. 亚16nm设计中的时钟挑战 2. 改善时钟树的方法 3. 一种新的时钟结构 4. 限制接收点 5. 多模式CTS 6. 结论
亚16nm设计中的时钟挑战
功耗挑战
- 时钟功耗约占总功耗的30% - 减少时钟树功耗对总功耗优化至关重要 - 在5个模块的测试中,时钟功耗占总功耗比例从10%到40%不等
布线挑战
- 新的DRC规则:双图案、禁止间距、布线延伸等 - 总时钟线长可达总线长的10%(90%以上模块为5-7%) - 时钟网络上的NDR 非默认布线规则结合屏蔽进一步降低可布线性
时序挑战
- 默认时钟树综合 CTS后,主corner时钟偏移小于50ps - 最差偏移在其他corner接近250ps - 这给所有场景下的MCMM 多角多模签核带来了挑战
改善时钟树的方法
新的时钟结构
传统时钟结构:ICG单元放置在所有接收点的曼哈顿中心。
新时钟结构: - 两种类型:复杂时钟结构(PLL/模拟宏/多路选择器等)和高速简单结构且大扇出 - 对第二种类型可以改进! - 时钟树变得更简单,不会有时钟树绕行 - 延迟可改善约20%
改进结果: - 延迟减少20-30% - 偏移减少最多40% - 时钟单元数减少15-20%
缺点: - 由于时钟单元密度增加导致IR drop增加 - 解决方案:在高时钟单元密度区域使用间距约束
为接收单元创建边界
- 在某些模块中,观察到布线DRC和时钟单元密度完全匹配 - 拥挤区域的时钟网络非常混乱 - 目标的拓扑图:如果优化SINK单元布局,时钟QoR会好得多
改进方案:
- 添加布局约束,将同一驱动单元的接收点尽可能靠近放置
- 在一个模块中时钟线长从1,413,927um降至618,651um(约减少60%)
- 应用选项place.coase.icg_auto_bound在此场景工作良好
多模式CTS
目的: - 减少DFT模式下的时钟偏移 - 减少延迟单元数和利用率 - DFT时钟周期通常较大,不影响时序
多模式CTS流程: 1. 功能模式CTS + OptCts 2. 扫描模式CTS + OptCts 3. 比较时序结果
结果: - Setup和Hold时序在两种运行中都得到修复 - 多模式CTS后利用率从72%降至68.5% - Pre-OptCts Hold时序得到大幅改善
多模式CTS时序对比表:
| 指标 | 功能CTS | 多模式CTS | 改善 |
| Func WNS (ps) | -154.42 | -155.38 | 持平 |
| Func Hold WNS (ps) | -197.62 | -196.85 | 改善 |
| Scan Hold WNS (ps) | -658.91 | -196.80 | 大幅改善 |
| 利用率 | 72% | 68.5% | -3.5% |
结论
基于我们设计中的问题,我们引入了以下方法提高CTS质量:
1. 绑定时钟单元(ICG/MUX等)到时钟根:延迟减少约20%,偏移减少约40%,时钟缓冲器面积减少约15%
2. 绑定接收触发器:减少时钟线长、时钟单元面积和拥塞
3. 多模式CTS:有助于减少利用率和改善时序,特别是扫描模式Hold时序得到大幅改善
图片索引
本文共69张图片,存放于 SNUG_CN_Bai_Block_Level_Clock_Tree_Improvement_paper_images/ 目录。本文为PPT格式,图片数量众多,包含:时钟功耗分布图、时钟线长分布图、时钟偏移分析图、新/传统时钟结构对比图、延迟/偏移/单元数改进柱状图、接收点边界效果对比图、多模式CTS流程图和时序对比表等。