ICC II布线实战从route_auto到route_opt的DRC与时序收敛深度解析在28nm以下工艺节点的芯片设计中布线阶段往往成为项目进度的关键瓶颈。我曾在一个7nm移动SoC项目中面对超过200万instance的设计初始布线后DRC违例高达1.5万个时序收敛更是陷入僵局。本文将分享如何通过ICC II的进阶布线技术将DRC违例降至个位数并实现时序签核的完整实战路径。1. 布线前的战略准备布线绝非简单的连线操作而是物理实现中的系统工程。在启动route_auto前必须建立完整的布线策略框架。工艺特性适配是首要任务。以7nm工艺为例需要特别注意金属层堆叠方案对RC的影响通孔电阻在总延迟中的占比可达30%天线效应敏感层的跳层策略# 典型7nm工艺设置示例 set_app_options -name route.common.min_routing_layer -value M2 set_app_options -name route.common.max_routing_layer -value M7 set_app_options -name route.detail.antenna_fixing_preference -value diode_insertion hop_layer设计状态验证必须严格执行以下检查项检查项目通过标准检查命令布局质量拥塞5%report_congestion时钟树完整性Skew50psreport_clock_timing电源网络完整性IR drop3%analyze_power_networkPin可访问性无blocked pincheck_routability关键提示使用check_design -checks pre_route_stage时若发现boundary pin违规需返回floorplan阶段调整IO布局而非强行布线。2. 全局布线的战术选择route_auto的三阶段GR/TA/DR中全局布线GR的质量决定后续优化的上限。在16nm GPU芯片项目中我们发现以下配置组合效果最佳set_app_options -list { route.global.timing_driven_effort_level medium route.global.crosstalk_driven false route.track.crosstalk_driven true route.detail.optimize_wire_via_effort_level high }拥塞热点处理需要分层施策宏观拥塞通过调整GR的cost table重新分配资源set_global_routing_layer_adjustment M4 0.8 set_global_routing_layer_adjustment M5 1.2局部拥塞创建动态routing guidecreate_routing_guide -name hotspot_guide -boundary {{x1 y1}{x2 y2}} \ -layers {M3 M4} -switch_preferred_direction时序关键路径保护策略对top 5%的critical path设置physical_status锁定set_attribute [get_nets -of [get_timing_path -group slack_worst -nworst 100]] \ physical_status locked对时钟网络启用performance via ladderset_app_options -name opt.common.enable_via_ladder_insertion -value true3. 增量布线的精准打击当基础布线完成后面对剩余的DRC违例盲目重布线只会破坏已有优化。我们的策略是靶向修复流程生成违例热图定位问题区域check_routes -type detail -output viol.gpd对违例集中区域启动增量布线route_detail -incremental true -max_number_iteration 30 \ -coordinates {{x1 y1}{x2 y2}}顽固违例单独处理remove_nets [get_nets -violation -boundary {{x1 y1}{x2 y2}}] reroute_eco -nets [get_nets -violation]天线效应解决方案对比方案适用场景优点缺点Layer hopping小规模违例不增加面积可能引入时序违例Diode插入大规模违例修复彻底增加 leakage power工艺层调整早期阶段预防性解决需要重新布局在5nm项目实践中我们采用混合策略对时钟网络优先使用diode插入数据路径则采用layer hopping。4. 时序收敛的终极武器route_optroute_opt阶段需要协同考虑时序、功耗和物理约束。以下是经过验证的三阶段优化法阶段一基础优化set_app_options -list { route_opt.flow.enable_ccd true route_opt.flow.enable_power true time.use_pt_delay true } route_opt阶段二路径优化set_app_options -name time.pba_optimization_mode -value path route_opt -from incremental_opto -to incremental_opto阶段三精细调整set_app_options -list { route_opt.flow.size_only_mode equal_or_smaller route_opt.flow.enable_ccd false } route_opt -from final_opto -to final_optoStarRC集成技巧在每次route_opt后执行寄生参数提取extract_rc -coupling_cap write_parasitics -format SPEF -output post_opt.spef对RC敏感路径设置特殊约束set_net_parasitics -net [get_nets -of [get_pins -filter full_name~*/clk*]] \ -resistance 1.5 -capacitance 0.3在最近的一个AI芯片项目中这种流程将时序收敛周期从3周缩短到5天。关键路径的setup slack从-120ps改善到30ps同时hold违例清零。
ICC II布线实战:从route_auto到route_opt,我是如何一步步搞定DRC违例和时序收敛的
ICC II布线实战从route_auto到route_opt的DRC与时序收敛深度解析在28nm以下工艺节点的芯片设计中布线阶段往往成为项目进度的关键瓶颈。我曾在一个7nm移动SoC项目中面对超过200万instance的设计初始布线后DRC违例高达1.5万个时序收敛更是陷入僵局。本文将分享如何通过ICC II的进阶布线技术将DRC违例降至个位数并实现时序签核的完整实战路径。1. 布线前的战略准备布线绝非简单的连线操作而是物理实现中的系统工程。在启动route_auto前必须建立完整的布线策略框架。工艺特性适配是首要任务。以7nm工艺为例需要特别注意金属层堆叠方案对RC的影响通孔电阻在总延迟中的占比可达30%天线效应敏感层的跳层策略# 典型7nm工艺设置示例 set_app_options -name route.common.min_routing_layer -value M2 set_app_options -name route.common.max_routing_layer -value M7 set_app_options -name route.detail.antenna_fixing_preference -value diode_insertion hop_layer设计状态验证必须严格执行以下检查项检查项目通过标准检查命令布局质量拥塞5%report_congestion时钟树完整性Skew50psreport_clock_timing电源网络完整性IR drop3%analyze_power_networkPin可访问性无blocked pincheck_routability关键提示使用check_design -checks pre_route_stage时若发现boundary pin违规需返回floorplan阶段调整IO布局而非强行布线。2. 全局布线的战术选择route_auto的三阶段GR/TA/DR中全局布线GR的质量决定后续优化的上限。在16nm GPU芯片项目中我们发现以下配置组合效果最佳set_app_options -list { route.global.timing_driven_effort_level medium route.global.crosstalk_driven false route.track.crosstalk_driven true route.detail.optimize_wire_via_effort_level high }拥塞热点处理需要分层施策宏观拥塞通过调整GR的cost table重新分配资源set_global_routing_layer_adjustment M4 0.8 set_global_routing_layer_adjustment M5 1.2局部拥塞创建动态routing guidecreate_routing_guide -name hotspot_guide -boundary {{x1 y1}{x2 y2}} \ -layers {M3 M4} -switch_preferred_direction时序关键路径保护策略对top 5%的critical path设置physical_status锁定set_attribute [get_nets -of [get_timing_path -group slack_worst -nworst 100]] \ physical_status locked对时钟网络启用performance via ladderset_app_options -name opt.common.enable_via_ladder_insertion -value true3. 增量布线的精准打击当基础布线完成后面对剩余的DRC违例盲目重布线只会破坏已有优化。我们的策略是靶向修复流程生成违例热图定位问题区域check_routes -type detail -output viol.gpd对违例集中区域启动增量布线route_detail -incremental true -max_number_iteration 30 \ -coordinates {{x1 y1}{x2 y2}}顽固违例单独处理remove_nets [get_nets -violation -boundary {{x1 y1}{x2 y2}}] reroute_eco -nets [get_nets -violation]天线效应解决方案对比方案适用场景优点缺点Layer hopping小规模违例不增加面积可能引入时序违例Diode插入大规模违例修复彻底增加 leakage power工艺层调整早期阶段预防性解决需要重新布局在5nm项目实践中我们采用混合策略对时钟网络优先使用diode插入数据路径则采用layer hopping。4. 时序收敛的终极武器route_optroute_opt阶段需要协同考虑时序、功耗和物理约束。以下是经过验证的三阶段优化法阶段一基础优化set_app_options -list { route_opt.flow.enable_ccd true route_opt.flow.enable_power true time.use_pt_delay true } route_opt阶段二路径优化set_app_options -name time.pba_optimization_mode -value path route_opt -from incremental_opto -to incremental_opto阶段三精细调整set_app_options -list { route_opt.flow.size_only_mode equal_or_smaller route_opt.flow.enable_ccd false } route_opt -from final_opto -to final_optoStarRC集成技巧在每次route_opt后执行寄生参数提取extract_rc -coupling_cap write_parasitics -format SPEF -output post_opt.spef对RC敏感路径设置特殊约束set_net_parasitics -net [get_nets -of [get_pins -filter full_name~*/clk*]] \ -resistance 1.5 -capacitance 0.3在最近的一个AI芯片项目中这种流程将时序收敛周期从3周缩短到5天。关键路径的setup slack从-120ps改善到30ps同时hold违例清零。