数字后端 | Innovus 中解决 Congestion 的常用方法
前言Congestion布线拥塞是数字后端实现中常见的问题。当局部区域标准单元过密、pin 密度过高或走线方向冲突时就会出现 Congestion最终可能导致 DRC 违例增多甚至布线失败。本文介绍在 Innovus 中如何查看和分析 Congestion以及常用的解决方法。一、Congestion 的查看方法GUI 图形界面查看在 Innovus GUI 中选择Display → Congestion可按层或按阶段显示拥塞分布图。颜色通常为红黄绿红色表示拥塞最严重。命令行查看# 生成 congestion 报告 report_congestion -output cong.rpt # 检查热点区域 check_design -congestion二、常用解决方法方法1调整 Placement Density降低布局密度是缓解 Congestion 最直接的方法。set_place_mode -congestion_effort high set_place_density -max 0.7 # 将最大密度限制在 70% 以下 place_opt_design方法2添加 Partial Placement Blockage在局部区域限制标准单元的放置密度。create_placement_blockage -name block1 \ -bbox {100 100 200 200} \ -type partial -blockage 0.5 # 该区域密度限制为 50%方法3优化电源网格电源 stripe 过密会占用走线通道资源。可适当加大 stripe 间距或将部分 stripe 转移到更高层金属。方法4开启 Congestion-Driven 模式set_global_placement -congestion_driven true set_opt_mode -congestion_driven true place_opt_design -congestion方法5手动调整 Macro 布局Memory 或 Analog Macro 周围通常拥塞严重需要预留足够的 keepout margin。set_keepout_margin -type hard -outer {10 10 10 10} [get_cells u_macro]三、Route 后仍有 Congestion 的处理如果布线后仍然存在拥塞问题可以尝试以下方法局部调整走线方向setAttribute -net [get_nets xxx] -routing_direction vertical添加 Routing Blockagecreate_routing_blockage -bbox {x1 y1 x2 y2} \ -layer {M2 M3} -no_preroute四、实践建议与注意事项早期检查在 Floorplan 完成后即运行 check_design -congestion尽早发现潜在的拥塞问题而不是等到 Placement 完成后再处理。合理利用高层金属高层金属如 M6/M7走线资源宝贵应优先用于时钟树和长信号线避免被标准单元占用。关注 Pin Density某条 net 的 fanout 过大可能导致 pin 密度集中。可先进行 fanout 优化set_max_fanout 20 [current_design]与 Timing 的权衡解决 Congestion 的措施如降低 density、增加 blockage可能导致路径变长从而影响 setup 时序。需要根据实际情况平衡。五、总结解决 Congestion 的典型流程可以概括为查看拥塞分布 → 降低布局密度 → 添加局部限制 → 优化电源网格 → 开启拥塞驱动模式 → 必要时手动调整 Macro。每一步都需要结合具体的设计情况灵活应用。更多 Innovus 后端优化技巧欢迎关注后续更新。#芯片设计 #数字后端 #Innovus #Congestion #布线拥塞
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2497548.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!