数字后端 | Innovus 中解决 Congestion 的常用方法

前言

Congestion(布线拥塞)是数字后端实现中常见的问题。当局部区域标准单元过密、pin 密度过高或走线方向冲突时,就会出现 Congestion,最终可能导致 DRC 违例增多甚至布线失败。本文介绍在 Innovus 中如何查看和分析 Congestion,以及常用的解决方法。


一、Congestion 的查看方法

  1. GUI 图形界面查看

在 Innovus GUI 中选择:Display → Congestion,可按层或按阶段显示拥塞分布图。颜色通常为红黄绿,红色表示拥塞最严重。

  1. 命令行查看
# 生成 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 Blockage

create_routing_blockage -bbox {x1 y1 x2 y2} \
  -layer {M2 M3} -no_preroute

四、实践建议与注意事项

  1. 早期检查
    在 Floorplan 完成后即运行 check_design -congestion,尽早发现潜在的拥塞问题,而不是等到 Placement 完成后再处理。
  2. 合理利用高层金属
    高层金属(如 M6/M7)走线资源宝贵,应优先用于时钟树和长信号线,避免被标准单元占用。
  3. 关注 Pin Density
    某条 net 的 fanout 过大可能导致 pin 密度集中。可先进行 fanout 优化:
    set_max_fanout 20 [current_design]
    
  4. 与 Timing 的权衡
    解决 Congestion 的措施(如降低 density、增加 blockage)可能导致路径变长,从而影响 setup 时序。需要根据实际情况平衡。

五、总结

解决 Congestion 的典型流程可以概括为:查看拥塞分布 → 降低布局密度 → 添加局部限制 → 优化电源网格 → 开启拥塞驱动模式 → 必要时手动调整 Macro。每一步都需要结合具体的设计情况灵活应用。

更多 Innovus 后端优化技巧,欢迎关注后续更新。

#芯片设计 #数字后端 #Innovus #Congestion #布线拥塞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值