
原理图画完了不等于这个阶段就结束了。很多人拿到一个能通过编译、没有ERC报错的原理图就迫不及待生成PCB结果板子打样回来才发现一堆问题位号对不上、封装错了、丝印重叠、电源网络没带宽。这一篇我尽量把原理图修改、导出、还有布线前的准备这三件事讲透全是实际操作中绕不开的细节也顺便把我在SW6206这类原厂参考设计上吃过的亏一并写出来。1. 原理图的修改改之前先立规矩1.1 先查后改把三张“体检表”跑一遍很多人拿到一块参考板或者自己画完的原理图上来就图个方便直接拖拽几个器件、复制粘贴一段电路觉得能过编译就行。这个习惯在前期看起来没问题到了导出网表、做PCB的阶段就会翻车。我建议动任何刀之前先花十分钟做三件事跑一遍ERC电气规则检查、整理位号、核对特殊网络。以最常见的STM32F103C8T6最小系统为例很多参考设计里电源部分、复位电路、晶振电路都是现成的你直接把三个去耦电容挪过去看起来没什么问题。但如果你不先跑ERC等拉到PCB里导入网表才发现某个电容的封装是0805你板子上预留的是0603焊盘或者某个引脚根本没有网络那时候再回头改就非常痛苦。我先说最实用的检查顺序。第一查元件位号确认没有重复编号或漏标尤其是复制粘贴整块电路时新粘贴进来的元件的位号会被自动附上后缀比如 R1_1这也是让人放松警惕的坑位。第二查网络名电源网络到底用3V3还是VCC_3V3晶振走线是否叫XIN/XOUT这些看起来无所谓等你要写规则、做约束就全乱了。第三查器件封装顺便把封装缺失或对应不上的问题全部揪出来。这三件事做完才轮到真正的“改”。1.2 位号重编为什么一定要做怎么做才不乱在原理图里修改元件位号我见过很多新手直接双击文本去改比如把R12改成R23甚至直接删掉位号。这种操作最大的麻烦是后面不可追溯——你是改了这个电阻但BOM里关联哪一条PCB的丝印上显示的是哪个编号到了焊接调试阶段工人拿着位号找不到器件就该怀疑人生了。正确做法是用软件自带的位号重编功能。AD里是 Tools Annotation Annotate Schematics Quietly或者用 Force Annotate All。开始前把元件标号后缀清理掉然后按页面或者按模块顺序重编。我一直习惯按功能模块来编号比如电源部分的电阻叫R_PWR_xMCU周边的叫R_MCU_x这样到了PCB布线阶段想快速定位某个网络的去耦电容时一眼就能从位号猜出大概位置。有个细节很多人忽略如果原理图是多页的重编位号前一定要确认“图纸顺序”和“你想要的编号顺序”一致。AD里默认按图纸的页码排序如果你把某一张纸拖到了末尾那上面所有元件位号都会跟着排在最后。建议重编之前先在Project面板里拖动页面顺序再执行一次Annotation。这一招实测能省掉后续很多麻烦。提示修改完位号之后务必再跑一次ERC看看有没有出现重复位号或者交叉引用错误。这个动作非常快但能避免大量低级问题。1.3 总线、差分对与复用模块的修改细节到了这一步基本是“真正动手改”的阶段。这里我要重点提三类最容易改坏的东西。第一类是总线Bus和网络标签。很多人觉得总线就是一束线复制粘贴的时候只要把标签一起复制就行。但总线里每个网名的拼写必须完全一致一旦某个分支少写了一个字母ERC通常还不会立刻报错等你导网表的时候就会发现这一根网络凭空消失了。改总线时最稳的方法是把整段总线删除重画尤其是改了网名之后养成打开所有页面的网络标签列表Project Compile 之后看 Messages核对有没有孤立网络。第二类是差分对。AD和Cadence里差分对的命名规则都是固定的正端叫xxx_P负端叫xxx_N两个标签一起改时很容易只改一边。如果出现“差分对未正确配对”的警告建议优先检查是不是命名不对而不是急着去改PCB里的差分对设置。第三类是复用模块Sheet Symbol。很多项目做多通道设计时用一张子图调用好几路通道。如果你只在父图里复制了一份子图却没有更新“Sheet Symbol”的对应关系导到PCB后会发现所有通道都连到了同一个网络。这里我的经验是改完子图内部之后回到父图纸再执行一次“同步器件位号”的操作让软件重新展开通道确保每个通道的引脚都被正确分配到各自的网络。以上这些都是看似繁琐但实际改错成本极高的点。花几分钟做对后面布线时就不会被各种奇怪问题追着跑。2. 原理图的导出别让最后一步翻车2.1 导出PDF能看、能打印、不乱码原理图导出PDF是提交评审、留底、外发协作的重要环节。AD里叫File Smart PDFCadence OrCAD里是Export PDF。但很多人只懂得点“Export”导出来的PDF要么字体缺字符要么原理图分页错乱要么在别人电脑上打开全是框框。我踩过最大的坑是字体问题。AD里用系统字体比如宋体或微软雅黑导出PDF后换个没装这些字体的电脑打开符号会变乱。正确做法是在Smart PDF向导的第4步里把字体勾选为“Embed TrueType Fonts”或者干脆把原理图字体统一切换成Arial、Times New Roman这种通用字体。另一个常见问题是多页原理图导出后页码不对或者图纸尺寸混乱。Smart PDF支持按“当前页”“所有页”“指定页”导出建议导出前先在原理图编辑器里按一次“适应整页Fit Sheet”再执行导出这样PDF里每页的缩放比例才统一。彩色和黑白的选择也很讲究。如果是给同事做设计评审建议用彩色导出不同网络颜色一目了然如果是给工厂打印、给审核人员归档用黑白反而更清晰颜色信息在打印件上容易糊成一团。我一般导出两份一份彩色 PDF 用于在线评审一份黑白 PDF 用作出图归档。2.2 导出网表PCB的真正“基因”网表导出很多人以为是PCB设计软件自动生成的环节其实不是。原理图和PCB之间并不是靠“同步对勾”来保证一致的真正递送信息的就是网表Netlist文件。AD里选Design Netlist ProtelCadence里则需要先生成第一方网表或第三方网表。网表里记录着每个元件的位号、封装、每个引脚连到哪个网络。PCB软件一拿到这个文件才知道要把这么多零件摆在哪里、什么引脚该连在一起。我之前看过有人用AD直接“Update PCB Document”结果PCB导入后发现某个网络里少了一个元件。排查了很久最后才醒悟原来原理图里新加的元件没有“编译保存”网表没更新。从那时起我养成了一个死规矩——每次修改原理图之后先 CtrlS 保存再跑一次编译最后再看一次网表里是否包含所有元件。另一个容易出错的地方是“网表里带了设计规则或特殊参数”。比如有的软件把原理图里的Design Rule信息也带进网表中如果这些规则和PCB里已有规则冲突导入时会出一堆忽略或报错。我的做法是在PCB空白区域导完网表后不要急着点“Apply”先把Messages面板里的Warning一条一条看一遍确认哪些是真问题哪些只是格式提示。这一步虽然慢但能避免网表悄悄吃掉你半个板子。2.3 导出BOM别让采购追着跑BOM导出是原理图阶段最容易“差不多就行”的地方但最终背锅的也是它。很多工程师从参考设计里拿过来一块电路导出BOM时只保留了位号和型号连封装都没有。等到采购下单、贴片厂上线才发现缺了一堆“电容耐压”“电阻精度”“封装尺寸”等字段——这些锅调试阶段一定会加倍还给你。我在帮别人整理物料单时有一个固定的模板化流程。先把BOM的列调整成序号、位号、器件名称、型号/规格、封装、数量、备注可选品牌。“位号”用逗号拼接方便采购核对“型号/规格”里电阻必须要标阻值和精度比如10KΩ ±1%电容要标容值和耐压比如100nF 50V二极管、三极管最好标注极性、封装和主要参数。还要留一列专门填“替代料/品牌”否则贴片厂会因为品牌问题反复跟你确认。可能很多人觉得“参考设计里都有BOM我抄一下就行”。但参考设计的BOM往往面向原厂的生产体系很多物料编号对应的是他们自己的料号直接拿来用你的供应商根本买不到。正确做法是把参考BOM当检索表根据型号和封装去你常用的物料库里选型再导出自己的BOM。比如SW6206这类快充方案原厂包里带着完整的BOM清单但你得把里面每个阻容的“精度”“料号”翻译成你自己供应链能买到的型号才算真正吃透参考板。3. PCB布线前的准备把“欠账”全部还清3.1 封装与Footprint全量核对原理图搞完了、网表导出来了很多人脑子里想的是“赶紧铺板”。但PCB布线前还有一批欠账要还而且这笔账如果没还清后面布线的每一天都在还利息。排在第一位的就是封装Footprint全量核对。这里的核对不是只看“有没有封装”而是要确认引脚方向、焊盘大小、丝印尺寸和实际器件对得上。我吃过一个很实在的亏某款贴片MOS的封装丝印方向画反了结果所有焊盘位置都是对的唯独引脚1标识被画到了对角。到了贴片机生产时一大半器件全部反贴。那一次之后我把“封装方向核对”列进了原理图阶段必做清单尤其是电源芯片、MOS管这类引脚极性判断难度大的器件必须打开3D视图绕一圈。另外要特别留意功率器件和接插件。比如线宽电流的问题很多人画原理图时给某一路输出网络只分配了0.3mm的线宽做完PCB之后才发现这路要通过2A的电流。这里有个经验估算方式可以提前参考常规1oz铜厚下1mm线宽大约能过1A电流内层减半详细数据可以查线宽电流对照表。如果某一路电流大建议在原理图阶段就把它分到“POWER”网络类这样到PCB布局时就能第一时间给它指定加宽规则而不是等布线时再临时抱佛脚。还有一个容易漏的所有晶振、时钟芯片附近的负载电容要把回流路径朝向对应引脚有的甚至要提前在原理图里标注放置约束不然到了PCB里很容易摆错位置。3.2 网络分类与规则预设把约束变成生产力PCB布线不是一个画线技术而是一个规则管理技术。画线本身谁都会难的是让成千上万的连线既短又宽、既躲开干扰又满足生产。所以布线前先把“规则”立好比自己一根根画线有效得多。第一步网络分类。把电源网络3V3、5V、VCC_x都归到一个Power Net Class把模拟信号、数字信号、差分信号、地网络各归一类。AD里通过Design Classes 添加Net ClassCadence里是Setup Constraints。分类之后再做两件事一是给Power类设置宽线宽和更大间距二是给差分信号设置差分对规则比如100Ω阻抗的USB差分线线宽和间距可以先按经验值或者查阻抗计算表。第二步特殊信号提前布置“雷区”。比如485总线、CAN这类低速长距离通信按照布线规范一般要求差分对并行走、包地处理VGA这类模拟视频信号要求线尽量短、绕开开关电源晶振信号更讲究走线要短、离MCU近、远离大电流走线。这些如果在原理图阶段通过Net Class和Design Rule提前写进去PCB阶段画线时软件会自动提醒比靠人脑记忆靠谱多了。第三步接地策略。现在很多项目都会用“星型接地”或“分割地平面”。在原理图阶段能做的事是把地网络依据用途拆成模拟地AGND、数字地DGND、功率地PGND然后让它们在原理图里的“星点”处汇合。很多PCB新手在布地的时候喜欢大面积铺铜完事但实际跑起来噪声很大就是因为没有在原理图里先把地的层次定义清楚。这个细化工作越早做越轻松。3.3 板框、原点与安装孔进入PCB之前还要把板框、原点、安装孔这三件基础几何确定下来。很多人习惯“等PCB里再画板框”结果画完一堆线后才想起来板框尺寸不对所有器件、走线全部要重摆。我的习惯是在PCB里导入网表之前先把板框画好把原点设定在左下角把螺丝孔、定位孔一次性放好。螺丝孔这里我多说几句。很多人在Allegro或AD里不知道螺丝孔怎么做。常见做法有两种一是用普通圆形过孔孔径3.2mm但如果你做的是金属外壳安装推荐用非金属化的螺丝孔Mechanical Hole避免螺丝把地平面短路。二是如果要做焊环固定的螺丝孔就在PCB封装库里做一个“M3螺丝孔焊盘”原理图里放一个对应Footprint的机械器件。如果板子上有金属外壳接触的区域还要在Top和Bottom都加Keepout禁布区防止走线或者铜皮贴近螺丝孔。3.4 高低压隔离与安全间距最后这一节专门提醒做电源类项目的朋友。只要板子上同时存在高压比如220V或整流后的310V和低压信号PCB布线前每个规则都不是“建议”而是“必须”。首先是爬电距离和电气间隙。常见的安全标准里220V与低压之间至少需要6mm左右的爬电距离具体参数取决于污染等级和材料。如果你用的是简洁的“开槽”方法还需要让槽的宽度和深度达到要求否则隔离就打了折扣。原理图阶段能做的事是把高压地和低压地明确分成两个网络高压网络的Net Class里把“Clearance间距”规则调到至少2.5mm以上再通过Edge Clearance限制走线靠近板边防止生产时出现爬电隐患。其次高频线、晶振线和高压线不能“并肩走”。比如VGA接口的RGB信号、USB的差分线这些信号如果和高压线路距离太近轻则画面水波纹重则把低压芯片打坏。布线前把这些敏感网络单独设置为Class在规则里给它们和高压网络之间留更大的安全间距。别等到布完线才发现再改真的会想哭。4. 常见问题与排查技巧实录4.1 原理图阶段常见问题速查表我把这几年在原理图修改、导出、PCB前准备阶段踩过或帮人排查过的问题整理成一张速查表方便大家直接对照。问题现象常见原因解决办法ERC报“单端网络”但电路明明连了图纸外的连线断开、网络标签拼写不一致编译后看Messages逐条定位孤立网络修正标签或补走线导出PDF后字体乱码使用了系统字体目标电脑缺少对应字库导出时勾选嵌入字体或全局换用Arial/Times New Roman网表导入PCB后缺元件原理图修改后没有保存/编译或网表未更新保存→编译→重新导出网表导完检查MessagesBOM里缺少关键参数BOM默认列没设置完整自建模板保留位号/名称/规格/封装/数量/备注封装引脚1方向反了符号引脚序号和封装焊盘序号不对应在原理图和PCB封装库中对照Data手册逐脚核对差分对无法配对正负端命名不符合_P/_N规则统一命名重新编译并检查差分管脚类型电源网络线宽不够原理图阶段未建Net Class布线前归入Power Class并加宽设计规则螺丝孔短路使用了金属化过孔做安装孔改用非金属化机械孔或在孔周设置禁布区这张表不是标准答案但它覆盖了我遇到的大部分“画完原理图就出问题”的案例。大家如果遇到其他问题可以在自己后来的排查记录里补进去经验都是这么攒起来的。4.2 我的几个“保命”习惯最后分享几个我这些年养成的实操习惯算不上什么高深理论但关键时刻真的能保命。第一个每次打开工程先完整编译一遍看Messages里的Warning而不是只看Error。很多原理图问题一开始只是Warning比如“某个网络没有驱动源”你以为没事最后网表一导入PCB那一堆悬空引脚全冒出来了。把Warning当Error对待养成条件反射。第二个大改动之前把工程复制一份出来或使用版本管理。我见过太多同事在同一个文件上反复改改到一半想回到上一个版本结果连CtrlZ都救不了只能对着丢失的半个PCB流泪。用Git管理原理图工程虽然有些麻烦但对比历史、回滚版本实在太香。第三个建一个“元件-封装-3D模型”三合一检查流。每个新元件进入库的时候先确认三样东西齐全原理图符号、PCB封装、3D模型。每次画完原理图快速用3D视图看一眼整板想象的板子和真实渲染的板子经常带给你的信息完全不同。第四个也是我想特别提的多参考板有不可替代的指导意义。比如SW6206的原厂资料包里有原理图、PCB、寄存器列表、BOM全套文件把它们拿来和自己的设计逐项对照等于有一套“答案版设计”在教你。很多规则你自己摸索半天才悟出来但原厂说明书里早就写好了。善用这些参考资源能让你少走很多弯路。说句实在话原理图修改、导出、布线前准备这些环节听起来都没有画原理图本身那么“炫”但在项目里却承担着从设计到落地的全部衔接工作。我自己最深的体会是每次觉得“原理图画完了剩下都是琐事”的时候后面一定有拦住你的大坑。把修改、导出、规则预置当成设计的一部分而不是收尾的杂活这款板子的质量上限会高出一截。最后再分享一个小技巧无论你用的是AD、Cadence还是嘉立创EDA给自己建一个“项目检查模板”把ERC清单、位号重编、封装核对、网表导出、BOM导出的顺序写成文字版每次到这一步就按清单勾着走。看起来只是多做了一步但保不准哪一次就帮你挡掉一版需要重打的板子。祝大家画板顺利一次打样成功。