3. 原理图与PCB一致性评审
原理图与PCB一致性评审,是硬件设计从“逻辑正确”走向“物理可实现”的关键闸口。原理图(DSN)描述的是电气意图:谁和谁相连、每个器件是什么、每个网络叫什么;PCB(BRD)描述的是物理实现:器件放在哪里、焊盘怎么连、走线怎么走。两者一旦脱节,轻则出现“原理图有、PCB没有”的悬空网络,重则导致打样后功能失效。Allegro 提供的原理图与 PCB 同步工具(Design Sync / PCB Editor 的 Logic 菜单)正是用来把这种脱节显性化、可修复化。
一、同步工具到底在比什么
Allegro 的一致性检查不是简单比对两个文件,而是以“网表”为中间基准,从四个维度逐项核对:
- 网表差异:原理图导出的网表与 PCB 当前网表是否一致,包括网络名、网络上的引脚集合、网络属性(如差分对、总线、电源类)。
- 器件位号:原理图中的 RefDes 与 PCB 中的 RefDes 是否一一对应,是否存在“原理图有 R12、PCB 里 R12 是另一个器件”或“PCB 多出未在原理图出现的器件”。
- 封装映射:原理图器件所指定的 PCB Footprint 名称,是否与 PCB 中实际调用的封装一致,引脚编号是否对得上。
- 连接关系:每个网络的引脚连接是否一致,是否存在 PCB 上多连、少连、错连,以及未连接(No Connect)标记是否同步。
这四类问题在工具中通常以不同颜色和状态呈现:绿色表示一致,黄色表示可自动同步的差异,红色表示需要人工判断的冲突。评审时不能只看“有没有红”,还要看“黄能不能自动修、修完会不会引入新问题”。
二、实际操作:从比对到修复的完整过程
在 Allegro 中,一致性评审通常从原理图端发起。以 Cadence Allegro Design Entry CIS(或 HDL)为例,先确保原理图工程已通过 DRC 并生成最新网表,然后在 PCB Editor 中打开对应的 BRD 文件,通过 Logic → Design Sync 或 Tools → Design Sync 调出同步窗口。窗口会列出所有差异项,并按“器件、网络、引脚”分类。
一个典型的比对结果可能如下(示例数据,用于说明判读方式):
Design Sync 差异摘要(示例)
器件差异:3 项
- U7:DSN 存在,BRD 缺失(封装 LQFP48)
- R22:BRD 存在,DSN 无此位号
- C105:位号相同,但封装不同(DSN=0603,BRD=0805)
网络差异:2 项
- NET_DDR_DQ0:DSN 连接 U7.12、U9.5;BRD 仅连 U9.5
- NET_VDD_1V2:BRD 多连 R22.1(DSN 中 R22 不存在)
引脚差异:1 项
- U7.24:DSN 标记 NC,BRD 中仍连接至 GND
面对这些差异,不能一键“全部同步”。正确顺序是:先处理器件级差异,再处理网络级,最后处理引脚级。因为器件不存在时,网络差异往往是它的衍生结果。例如上例中,先补入 U7、删除 R22,再重新比对,NET_DDR_DQ0 和 NET_VDD_1V2 的差异可能自动消失或收敛为更明确的连接问题。
对于封装映射错误,重点检查原理图器件的 PCB Footprint 属性与 PCB 中实际调用的封装名是否完全一致。Allegro 对封装名大小写敏感,LQFP48 与 lqfp48 会被视为两个不同封装。此外,还要核对引脚编号映射:原理图符号的 Pin Number 必须与封装焊盘的 Pin Number 一一对应,否则会出现“网络连到了错误的焊盘上”。
连接关系错误的定位,最有效的方法是打开 PCB 的飞线显示(Ratsnest),结合 Display → Show Rats → All,逐条查看差异网络。对于 NC 引脚,要确认原理图中已放置 No Connect 标记,并在 PCB 中对该引脚执行 Logic → Assign No Connect,避免铺铜或走线误连。
三、一致性检查清单(可直接使用)
以下清单按评审顺序排列,建议在每次原理图变更后、投板前各执行一次。表中“判据”列是判断该项是否通过的依据,“不通过时的动作”列给出修复方向。
| 序号 | 检查项 | 判据 | 不通过时的动作 |
|---|---|---|---|
| 1 | 器件位号一致性 | DSN 与 BRD 的 RefDes 集合完全相同,无重复、无缺失 | 缺失器件从 DSN 重新导入;多余器件确认后删除;重复位号在 DSN 中重新标注 |
| 2 | 封装映射一致性 | 每个器件的 PCB Footprint 属性与 BRD 实际封装名完全一致(含大小写) | 统一封装库命名;修正 DSN 属性或 BRD 封装调用;核对 Pin Number 映射表 |
| 3 | 网络名一致性 | DSN 与 BRD 的网络名集合一致,无别名冲突 | 以 DSN 为准更新 BRD;检查是否有网络被误改名为电源/地网络 |
| 4 | 网络连接一致性 | 每个网络的引脚集合完全一致,无多连、少连 | 用飞线定位差异引脚;确认是原理图错误还是 PCB 误连;修正后重新比对 |
| 5 | NC 引脚一致性 | DSN 中标记 NC 的引脚,在 BRD 中同样为未连接状态 | 在 BRD 中执行 Assign No Connect;检查该引脚是否被铺铜或走线误连 |
| 6 | 差分对/总线一致性 | 差分对成员、总线位序与 DSN 定义一致 | 在 Constraint Manager 中核对差分对命名与成员;修正总线展开顺序 |
| 7 | 电源/地网络完整性 | 所有电源、地网络在 BRD 中均有对应连接,无悬空 | 检查电源层分割、过孔连接;确认没有电源网络被误删或改名 |
| 8 | 同步后复检 | 执行 Update PCB 后再次比对,所有差异项清零或已记录豁免原因 | 对无法自动修复的项,记录在评审报告中并指定责任人 |
File → Save As 另存为带日期的版本)。同步操作会直接修改 PCB 数据,一旦误同步,回退成本很高。
四、典型不一致问题的修复要点
问题一:PCB 中存在原理图没有的器件。常见原因是该器件在原理图中被删除,但 PCB 中未同步删除;或者是从旧版本 PCB 复制而来。修复时先在 BRD 中确认该器件是否真的无用,若确认无用则删除,并检查其所在网络是否因此断开。若该器件实际需要保留,则应在原理图中补回并重新标注位号。
问题二:封装名一致但引脚连接错位。这通常发生在自定义封装上,例如原理图符号的 Pin 1 对应封装焊盘 Pin 1,但封装焊盘编号从 0 开始,或存在散热焊盘未编号。修复方法是打开封装焊盘(Padstack)核对 Pin Number,必要时在原理图符号中调整引脚编号映射,而不是在 PCB 中强行改网络。
问题三:网络在 PCB 中被误连到电源或地。这类问题最危险,因为飞线可能显示正常,但实际铜皮已经短接。修复时使用 Display → Show Rats → Net 单独显示该网络,检查是否有意外的铜皮连接;同时用 Tools → Reports → DRC 检查短路报告。确认后删除误连的走线或铜皮,重新从 DSN 同步网络。
一致性评审的最终产出,不是“工具显示全绿”,而是一份可追溯的检查记录:哪些差异被修复、哪些被判定为可接受、依据是什么。这份记录在后续改版、量产转移和问题回溯时,往往比网表本身更有价值。