Allegro 动态铜皮不更新与焊盘不连接问题排查记录
- Allegro 动态铜皮不更新与焊盘不连接问题排查记录
- 一、问题起因
- 1. 动态铜皮大面积过期
- 2. GND 焊盘无法连接铜皮
- 二、排查过程
- 问题 1:铜皮无法更新(Out of date)
- 第一步:排除数据库损坏
- 第二步:检查全局铜皮参数
- 解决方案
- 问题 2:GND 焊盘不连接铜皮
- 第一步:排除全局规则问题
- 第二步:通过规则调整反向验证
- 第三步:定位到具体属性
- 第二步:对比焊盘属性
- 三、根本原因总结
- ① Suppress shapes less than 阈值过小
- ② `DYN_THERMAL_CON_TYPE = NONE` 属性覆盖
- 四、解决方案
- 1. 修改 Void Controls(解决铜皮更新问题)
- 2. 删除异常属性(解决焊盘连接问题)
- 3. 验证效果
- 五、经验总结
- 排查优先级
- 负片转正片检查清单
- 核心原则
Allegro 动态铜皮不更新与焊盘不连接问题排查记录
环境: Cadence Allegro PCB Designer 25.1
现象: 100+ 个动态铜皮过期无法更新,GND 焊盘周围铜皮避让异常
根源: ① Void Controls 抑制阈值过小 ② 焊盘属性DYN_THERMAL_CON_TYPE = NONE覆盖
一、问题起因
从**负片(Negative Plane)转为正片(Positive)**设计后,出现两个连锁问题:
1. 动态铜皮大面积过期
- Status 窗口显示100/563 shapes out of date
- 点击 Update to Smooth / Update All 报错,铜皮状态始终无法刷新
- Shape Dynamic Status 报告中大量铜皮显示
State: No Etch
图 1:100 个动态铜皮处于 out-of-date 状态
2. GND 焊盘无法连接铜皮
- 其他网络(VCC、信号线)的通孔焊盘均按规则正常避让/连接
- 唯独 GND 焊盘周围保留着一个方形禁区,铜皮始终无法靠近
二、排查过程
问题 1:铜皮无法更新(Out of date)
第一步:排除数据库损坏
运行Tools > Database Check (DB Doctor),结果无报错。
第二步:检查全局铜皮参数
打开Shape > Global Dynamic Shape Parameters,发现关键问题:
| 参数 | 原设置 | 问题分析 |
|---|---|---|
| Suppress shapes less than | 25 mil² | 过小!导致小铜皮被自动抑制 |
| Dynamic Fill | Smooth | 正常 |
| Clearances | 全部 DRC | 正常 |
原理:
Suppress shapes less than用于自动删除过小的铜皮碎片(孤岛)。但 25 mil² 的阈值过于激进,在密集 BGA 区域或窄间距场合,正常的 GND 铜皮也可能被误判为"碎片"而抑制,导致 shape 状态异常、无法更新。
解决方案
将Suppress shapes less than从25改为0(禁用自动抑制):
图 3:将 Suppress shapes less than 改为 0
结果:100 个 out-of-date 铜皮全部恢复正常,Update All 不再报错。
问题 2:GND 焊盘不连接铜皮
第一步:排除全局规则问题
- 修改Static Shape Parameters中的 Pin Clearance(从 30 mil 改为 0)
- 检查Constraint Manager中的区域规则
结果:其他焊盘立即按新规则更新,GND 焊盘纹丝不动。
这说明问题不在全局/区域规则,而是GND 焊盘本身有属性覆盖。
第二步:通过规则调整反向验证
为了进一步验证,进行了对比测试:
| 测试操作 | 观察结果 | 结论 |
|---|---|---|
| 单独修改 GND 焊盘的 Pin Clearance = 0 | 该焊盘周围依然保持方形禁区,没有任何变化 | GND 焊盘不受规则控制 |
| 复制正常 VCC 焊盘,改网络为 GND | "新 GND 焊盘"正常连接铜皮,旁边原有 GND 焊盘仍被隔离 | 问题在原有焊盘对象本身 |
关键发现:修改规则后,其他焊盘按规则变化,但 GND 焊盘呈现相反的避让趋势(避让小),这说明它不受规则控制,而是被属性强制固定。
第三步:定位到具体属性
选中异常 GND 焊盘,查看 Properties:
Pin J1.23 DYN_THERMAL_CON_TYPE = NONE ← 罪魁祸首 SCH_LOC = (820,290)对比正常 VCC 焊盘:
Pin J1.15 Net: VCC_3V3 (无特殊属性)第二步:对比焊盘属性
选中正常焊盘 vs 异常 GND 焊盘,对比 Properties:
正常 VCC 焊盘:
PinJ1.15Net:VCC_3V3(无特殊属性)异常 GND 焊盘:
PinJ1.23DYN_THERMAL_CON_TYPE=NONE← 罪魁祸首SCH_LOC=(820,290)三、根本原因总结
① Suppress shapes less than 阈值过小
| 设置值 | 效果 | 风险 |
|---|---|---|
| 25 mil² | 自动删除 <25 mil² 的铜皮 | 密集区域正常铜皮被误删 |
| 0 | 禁用自动抑制 | 保留所有铜皮,需手动清理真孤岛 |
②DYN_THERMAL_CON_TYPE = NONE属性覆盖
该属性用于控制动态铜皮与焊盘的连接方式:
| 属性值 | 含义 |
|---|---|
NONE | 禁止动态铜皮连接该焊盘 |
FULL_CONTACT | 全连接(实心铜皮直连) |
THERMAL | 花焊盘(十字连接) |
从负片转过来时,部分 GND 焊盘被赋予了这个属性,导致无论全局怎么设置,这些焊盘始终被铜皮隔离。
四、解决方案
1. 修改 Void Controls(解决铜皮更新问题)
Setup>Design Parameters>Shapes>Void controls- Suppress shapes less than: 改为0
- 点击 OK,执行Shape > Update All Shapes
2. 删除异常属性(解决焊盘连接问题)
Edit>Properties- Find 面板只勾选Pins
- 框选所有 GND 焊盘(或整板)
- 找到
Dyn_Thermal_Con_Type,勾选Delete - Apply 后执行Shape > Update All Shapes
3. 验证效果
更新后:
- Out-of-date shapes 归零
- GND 焊盘周围出现实心铜皮连接,方形禁区消失
五、经验总结
排查优先级
| 排查层级 | 检查项 | 适用场景 |
|---|---|---|
| 数据库 | DB Doctor | 全面报错、异常崩溃 |
| 全局设置 | Void Controls / Shape Parameters | 大面积铜皮异常 |
| 区域规则 | Constraint Manager | 局部规则不生效 |
| 对象属性 | Pin Properties | 个别对象异常 |
负片转正片检查清单
从负片转为正片时,务必批量检查:
- Suppress shapes less than是否过小(建议 0 或 >100)
DYN_THERMAL_CON_TYPE是否有NONEANTI_PAD尺寸是否残留负片设置NO_CONNECT标记是否存在
核心原则
当"全局规则改了,大部分对象都生效,唯独某一类对象不生效"时,99% 是该对象自带属性覆盖。
本文记录了 Allegro 动态铜皮问题的完整排查过程,希望对遇到类似问题的工程师有所帮助。