RulePlanner:基于强化学习的3D芯片布局设计规则统一框架
1. RulePlanner:3D芯片布局设计规则的强化学习统一框架
芯片布局规划(Floorplanning)是集成电路物理设计流程中的关键环节,它决定了每个功能模块在芯片上的坐标和形状。随着工艺节点不断微缩,特别是在采用多层堆叠的3D IC设计中,工程师需要同时满足边界对齐、模块分组、跨层对齐等复杂设计规则。传统方法通常只能处理单一规则,而RulePlanner创新性地提出了一种基于深度强化学习的统一框架,首次实现了对7种以上工业级设计规则的同步满足。
关键突破:相比现有方法平均只能满足2-3种设计规则,RulePlanner在公开基准测试中实现了所有设计规则100%满足,同时保持线长(HPWL)和面积等传统指标竞争力。
1.1 3D芯片布局的挑战与设计规则
现代3D IC布局面临的核心挑战可归纳为三类约束:
几何约束:
- 非重叠约束(e):同一层上的模块不能相互重叠
- 轮廓约束(f):所有模块必须放置在指定区域内
- 形状约束(g):软模块的宽高比需在指定范围内
功能约束:
- 边界约束(a):特定模块必须与边界上的终端对齐
- 分组约束(b):工作在同一电压域的模块需要物理邻接
- 跨层对齐(c):不同层上的模块需要保持最小重叠区域
工艺约束:
- 预放置约束(d):某些模块的位置和形状已预先确定
表1展示了主流方法对各设计规则的支持情况对比:
| 方法类别 | 边界(a) | 分组(b) | 跨层(c) | 预置(d) | 非重叠(e) | 轮廓(f) | 形状(g) |
|---|---|---|---|---|---|---|---|
| 解析法 | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ |
| 启发式(B*-3D) | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| 强化学习基线 | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |
| RulePlanner(新) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
2. 核心架构设计
2.1 统一框架的三大支柱
RulePlanner的创新架构建立在三个关键组件上:
设计规则矩阵表示:
- 相邻终端掩码 $T∈R^{W×H}$:$T_{xy}=d(b,t)$ 表示模块b放置在(x,y)时与终端t的距离
- 相邻模块掩码 $B∈R^{W×H}$:$B_{xy}=l(b_i,b_j)$ 表示模块间的邻接长度
- 对齐掩码 $A∈R^{W×H}$:记录跨层模块的对齐分数
动作空间约束:
# 有效性掩码生成示例 valid_mask = (adj_terminal_mask < threshold_t) & (adj_block_mask > threshold_b) & (align_mask > threshold_a) & position_mask定量评估指标:
- 模块-终端距离:$d(b,t)=\min_{seg∈Segs(b)}d_m(seg,t)$
- 模块邻接长度:$l(b_i,b_j)=\max(0, \min(x_i+w_i,x_j+w_j)-\max(x_i,x_j))$
- 对齐分数:重叠面积与最小要求面积的比值
2.2 混合动作空间设计
RulePlanner采用独特的混合动作空间处理方式:
- 离散动作:模块位置(x,y) ∈ {1,...,W}×{1,...,H}
- 连续动作:模块宽高比AR ∈ [AR_min, AR_max]
策略网络输出经过掩码过滤和裁剪:
def get_action(state): position_logits = policy_net(state) # W×H logits position_probs = softmax(position_logits + (mask-1)*1e8) aspect_ratio = clip(normal_sample(μ,σ), AR_min, AR_max) return (position_sample, aspect_ratio)3. 关键技术实现细节
3.1 矩阵表示的并行计算
相邻终端掩码的高效计算:
def compute_terminal_mask(b, t, W, H): xb, yb = meshgrid(arange(W), arange(H)) edges = [bottom_edge(b), top_edge(b), left_edge(b), right_edge(b)] distances = [min(abs(t-x) + abs(t-y), axis=-1) for edge in edges] return min(distances, axis=0) # 并行计算所有位置3.2 Transformer多模态处理
网络架构采用双分支设计:
- 视觉分支:CNN处理规则矩阵堆叠的W×H×C张量
- 图分支:Transformer编码器处理网表图结构
特征融合方式: $$ h = \text{MLP}(\text{concat}[\text{CNN}(S), \text{Transformer}(G)]) $$
3.3 奖励函数设计
自适应归一化的多目标奖励: $$ r = w_a\cdot\text{align} - w_o\cdot\text{overlap} - w_{HPWL}\cdot\text{wirelength} \
- w_l\cdot\text{adj_length} - w_d\cdot\text{term_dist} $$
实操技巧:不同电路规模下指标量级差异大,采用基于统计的自适应归一化,如线长除以训练集的平均线长。
4. 实验验证与结果分析
4.1 基准测试配置
- 测试基准:MCNC和GSRC基准电路(模块数10-300)
- 对比方法:7种主流方法(3种解析法/2种启发式/2种RL基线)
- 评估指标:
- 规则满足率(关键指标)
- 半周长线长(HPWL)
- 运行时间
4.2 核心性能对比
表2展示了在边界约束任务上的性能对比:
| 电路 | 基线最佳 | RulePlanner | 提升幅度 |
|---|---|---|---|
| ami33 | 0.208 | 0.000 | 100% |
| n100 | 0.352 | 0.000 | 100% |
| n300 | 0.573 | 0.000 | 100% |
关键发现:
- 在所有设计规则上实现100%满足
- 线长指标与最优基线相当(平均差距<5%)
- 推理时间比启发式方法快10-100倍
4.3 零样本迁移能力
预训练n100电路后,在其他电路上的零样本表现:
| 迁移目标 | 对齐分数 | 邻接长度 | 线长比率 |
|---|---|---|---|
| ami49 | 0.961 | 0.153 | 0.985 |
| n300 | 0.867 | 0.095 | 1.032 |
5. 工程实践指南
5.1 部署注意事项
硬件配置:
- GPU显存需求:≥16GB(处理300+模块)
- 矩阵尺寸:建议W=H=128(平衡精度与效率)
训练调参:
# 典型超参数配置 learning_rate: 1e-4 batch_size: 128 gae_lambda: 0.95 reward_weights: wirelength: 1.0 alignment: 0.5 adjacency: 4.0
5.2 常见问题排查
规则冲突处理:
- 优先级策略:边界约束>分组约束>对齐约束
- 动态掩码调整:$\bar{t} = f(\text{迭代次数})$
收敛问题:
- 检查奖励量级:各分项应在同一数量级
- 验证掩码计算:可视化中间掩码确认有效性
6. 扩展应用方向
框架可扩展至新兴设计需求:
热约束:
thermal_mask = compute_thermal_map(power_density) reward += -w_t * max_temperature制造约束:
- 添加密度均匀性矩阵
- 引入光刻热点惩罚项
实际部署中发现,将模块放置决策与后续布线阶段联合优化可额外获得8-12%的线长改进。一个实用的技巧是在训练后期逐步提高线长奖励权重,引导策略在满足规则后优化传统指标。
RulePlanner已开源在GitHub(https://github.com/Thinklab-SJTU/EDA-AI),工业界用户反馈其可将3D IC布局的设计周期从传统方法的2-3周缩短至8小时以内,同时减少约90%的后期人工调整工作量。对于需要处理复杂设计规则的前沿芯片设计,这套框架提供了可靠的自动化解决方案。
