【EDA】Multi-Net Routing(多网布线)
第六章:Multi-Net Routing(多网布线)
在VLSI物理设计中,多网布线(Multi-Net Routing)的目标是同时为多个网络(Nets)规划路径,避免布线资源冲突(如导线重叠、拥塞),并优化线长、延迟或拥塞度。第六章聚焦四种经典算法,解决多网共享资源时的竞争问题,以下是详细介绍:
1. Steiner Min-Max Tree算法(斯坦纳最小最大树)
核心目标
为每个网络构建斯坦纳树,确保所有网络的最大边负载(Edge Load)不超过阈值,平衡布线资源使用。
核心思想(基于Steiner Tree with Bounded Edge Load)
- 单网斯坦纳树:对每个网络,使用1-Steiner算法(第五章)构建最小线长树,同时记录每条边的使用次数(负载)。
- 负载约束:设置最大边负载阈值(如2.0×HPBB,HPBB为半周长下界),若某网络的树边负载超标,则拒绝该树并重新路由(图6.1-6.6)。
关键步骤
- 单网预处理:对每个网络计算斯坦纳树,检查边负载是否超过阈值(如 (15 > 2.0×7) 时拒绝,图6.3)。
- 迭代优化:
- 对接受的树,累加边负载;对拒绝的树,使用最短路径(SP)重新路由(图6.7-6.12)。
- 示例:网络n3首次路由失败(负载超标),通过SP路由成功(图6.9c)。
- 结果合并:所有网络路由成功后,生成无超标负载的布线图(图6.12)。
优势与应用
- 优点:简单高效,适合初步布线筛选;负载阈值确保资源均衡。
- 缺点:独立处理单网,可能忽略全局拥塞;阈值设置影响结果。
- 典型场景:FPGA布线,资源有限时优先保证关键网络。
2. 多商品流路由算法(Multi-Commodity Flow Routing)
核心目标
将多网布线建模为流网络问题,最小化总拥塞,允许流量分配到多条路径,优化全局资源利用。
核心思想(基于线性规划/流网络模型)
- 流网络建模:
- 节点为网格交点,边为导线段,容量为可同时通过的网络数(图6.14b)。
- 目标函数:最小化总流成本(如线长×流量),约束为边容量和流量守恒。
- 迭代优化:
- 最短路径:初始按最短路径路由(图6.16)。
- 更新边成本:根据拥塞调整边权重(如增加高负载边的成本),重新路由(图6.17-6.20)。
关键步骤
- 构建流网络:定义边容量(如3)、源/汇节点(图6.14a)。
- 求解多商品流:
- 使用ILP(整数线性规划)或启发式算法(如Successive Shortest Path),分配各网络流量(图6.15)。
- 示例:迭代2次后,无溢出边,拥塞度从6降至3(图6.20)。
- 结果验证:检查边负载是否在容量内,调整路径直至收敛。
优势与应用
- 优点:全局优化资源分配,适合复杂拥塞场景;理论上保证最优解(ILP)。
- 缺点:计算复杂度高(O(K2*N3),K为网络数),需简化模型处理大规模问题。
- 典型场景:ASIC全局布线,处理数百万网的高密度互连。
3. 迭代删除算法(Iterative Deletion Algorithm)
核心目标
通过迭代删除高拥塞边,逐步优化布线树,减少关键通道的负载,提升整体可布通性。
核心思想(基于拥塞驱动的边删除)
- 初始生成树:为每个网络生成初始生成树(如最小生成树),计算各通道的密度(边数)。
- 迭代删除:
- 删除高密度通道中的边,优先删除对拥塞影响最大的边(图6.26-6.27)。
- 重新生成树,避免使用已删除边,直至密度均衡(图6.28-6.29)。
关键步骤
- 初始布线:生成含馈通点(Feedthroughs)的生成树,计算通道密度(图6.21-6.23)。
- 删除与重构:
- 按密度降序删除边(如通道2密度6→删除边(e,f),密度降至3,图6.27c)。
- 重新布线被删除边的连接,确保无重叠(图6.28)。
- 终止条件:所有通道密度≤容量,或无有效删除。
优势与应用
- 优点:简单高效,局部优化拥塞;适合标准单元行之间的通道布线。
- 缺点:可能破坏网络连通性,需谨慎选择删除边。
- 典型场景:标准单元布局后的通道布线,缓解局部拥塞(如CPU缓存区域)。
4. Yoshimura-Kuh算法(约束驱动的层分配与路径规划)
核心目标
在多层布线中分配网络到不同层,同时规划路径,满足层约束(如优先层、禁止层)和线长优化。
核心思想(基于约束图和层分配)
- 约束图构建:
- 节点为网络,边表示层分配冲突(如网络1和2不能同层)。
- 分层约束:如电源网络优先使用底层,信号网络使用高层(图6.30-6.31)。
- 层分配与路径规划:
- 排序网络:按关键度排序(如时序关键网络优先)。
- 逐层分配:对每个网络,在允许的层中选择路径,更新约束图(图6.32-6.39)。
关键步骤
- 约束定义:设定各网络的允许层、优先层(如网络1允许层1-3,优先层2)。
- 路径搜索:
- 使用Dijkstra算法在允许层中找最短路径,避免已占用的层资源(图6.33)。
- 示例:网络1分配到层2,网络3分配到层3,无冲突(图6.32b-c)。
- 冲突解决:若层冲突,调整路径或重新分配(如合并网络2和6,图6.35)。
优势与应用
- 优点:显式处理层约束,适合3D IC或多层布线;支持优先级调度。
- 缺点:依赖约束定义的合理性,复杂层结构增加计算量。
- 典型场景:多层PCB或3D堆叠芯片的跨层布线。
5. 算法对比与总结
算法 | 核心目标 | 关键技术 | 适用场景 | 优势 | 局限 |
---|---|---|---|---|---|
Steiner Min-Max Tree | 单网边负载约束 | 斯坦纳树+负载阈值检查 | FPGA/小规模多网 | 快速筛选可行树 | 忽略全局拥塞 |
Multi-Commodity Flow | 全局拥塞最小化 | 流网络建模+ILP求解 | ASIC高密度布线 | 全局最优资源分配 | 计算复杂度高 |
Iterative Deletion | 局部通道拥塞优化 | 密度驱动的边删除-重构 | 标准单元通道布线 | 简单高效,缓解局部热点 | 可能破坏连通性 |
Yoshimura-Kuh | 层约束与路径规划 | 约束图+层分配 | 多层/3D IC布线 | 显式处理层约束 | 依赖约束定义精度 |
核心技术对比
- 单网vs全局:
- Steiner Min-Max Tree和Iterative Deletion处理单网或局部,Multi-Commodity Flow和Yoshimura-Kuh处理全局或多层约束。
- 建模方法:
- 流网络(Multi-Commodity Flow)适合数学规划,约束图(Yoshimura-Kuh)适合层分配,启发式(Iterative Deletion)适合快速局部优化。
- 约束类型:
- 边负载(Steiner Min-Max Tree)、通道密度(Iterative Deletion)、层资源(Yoshimura-Kuh)、流量容量(Multi-Commodity Flow)。
实际应用选择
- 小规模设计:Steiner Min-Max Tree快速筛选可行树,结合Iterative Deletion优化通道。
- 大规模复杂设计:Multi-Commodity Flow全局优化,适合百万网级ASIC;Yoshimura-Kuh处理多层PCB或3D IC的层约束。
6. 关键贡献与挑战
- Steiner Min-Max Tree:首次提出负载约束下的单网路由,为多网初步筛选提供基础。
- Multi-Commodity Flow:将网络流理论引入布线,成为全局拥塞优化的黄金标准,尽管计算成本高。
- Iterative Deletion:简单有效的工程化方法,广泛应用于商用EDA工具(如Cadence Encounter)的通道优化。
- Yoshimura-Kuh:推动多层布线的约束处理,适应现代3D集成趋势。
第六章的算法覆盖了多网布线的核心挑战:资源竞争、拥塞控制、层约束,从单网筛选到全局优化,为复杂芯片的可靠布线提供了多层次解决方案。随着芯片集成度提升,多网布线的高效算法仍是学术界和工业界的研究热点,尤其在3D IC和先进封装中的应用需求日益增长。