资讯详情

资讯详情

原理图转PCB全流程指南:从网表传递到布局布线避坑

一个项目干到一半最怕听到的一句话是什么不是“客户要改方案”而是“原理图转PCB之后全是飞线、封装全错、DRC爆红几百个错误”。上个月有个朋友发我一张截图原理图里干干净净一导入PCB焊盘跟封装对不上、网络丢失、位号重复他直接想摔鼠标。要说“原理图转PCB”这六个字很多刚接触硬件设计的人觉得就是一键导入的事真正做过几年layout的人心里都清楚这一步才是从“逻辑正确”走向“物理可实现”的关键分水岭。这篇文章我打算把原理图转PCB这件事从底层逻辑讲到工具实操再讲到排错经验尽量一次说透。适合三类人看正在学EDA工具的学生、刚入职被安排画板子的硬件新人以及想把自己手工焊接项目重新规范化整理的DIY玩家。1. 原理图转PCB的本质不是“导入导出”是“设计语义的传递”1.1 网表才是原理图和PCB之间的桥梁很多新手最大的误区就是把原理图转PCB理解成“把图片变成板子”。实际上EDA工具之间传递的并不是图形而是一份结构化的数据这份数据叫网表Netlist。网表里记录的核心信息就两类元件用什么封装、引脚与引脚之间属于哪个网络。图形上的那条连线只是给人看的真正让PCB编辑器知道“U1的第3脚要接到R2的第1脚”的是网表。我们用生活里的场景类比一下。原理图就像一份“人员通讯录”写着张三和李四互相认识、王五和赵六是邻居。网表就是把这份通讯录翻译成了一张“聚会座位表”标明谁跟谁必须坐在同一桌。PCB布局布线就是在这个座位表的基础上安排具体座位、规划走道。没有座位表通讯录再详细聚会现场也是一团乱。所以“原理图转PCB”这个动作本质上做的事情是把原理图编辑器里画出来的电气连接关系翻译成PCB编辑器能读懂的网络清单再配合每个元件的封装模型生成一堆有网络属性的焊盘和组件。从这里你就应该明白一个道理原理图画得再漂亮如果封装不对、网络有断连导过去的PCB就是一堆没有灵魂的焊盘。1.2 三个前置检查ERC、封装、位号既然网表是桥梁那在过桥之前必须确认桥上没有暗坑。我在实际项目中总结出三个必查项任何一个不过关都不要点那个“Transfer to PCB”按钮。第一是ERC检查。ERC全称Electrical Rule Check是对原理图做电气规则检查比如输出引脚短路、电源悬空、单端网络告警等。AD的ERC在“Project”菜单下Cadence OrCAD在“Tools”菜单下嘉立创EDA在“检查”菜单里。ERC报告里面绿色的多是提示黄色的可以暂时忽略但红色的错误例如引脚类型冲突、无驱动源必须回到原理图解决。第二是封装完整性检查。每个元件都必须有对应的PCB封装Footprint这一栏不能为空。热词里很多人问“cadence画原理图封装”“allegro封装导入PCB”说明大家卡在这儿了。封装不仅要有还得跟实物尺寸对得上这一点在手工焊接和贴片回流焊场景下差异很大。我的血泪教训是0603电阻封装画成0402手工焊的时候想死的心都有。第三是位号唯一性。热词里有个很典型的报错“orcap-11010: 有2张或以上原理图页面page number都设成了1页码重复了”。这种问题多出现在多页原理图里。页码重复会直接导致OrCAD导网表时报错位号编号混乱。处理方法很简单打开OrCAD的Annotate工具先Reset Part Reference再重新Annotate让所有元件位号按页面顺序重新编号。AD里则用Tools - Annotation - Force Annotate All Schematic Sheets。1.3 为什么原理图画对了PCB端还是报错有一种情况最让人崩溃就是原理图ERC全绿封装库里也能找到封装但一导入PCB不是报错就是缺网络。以我排查的经验这类问题九成出在“库”和“工程配置”上而不是原理图画错了。一个是封装库路径丢失。很多第三方EDA库文件下载下来是散的有人直接在原理图里指定了一个本地路径换台电脑或者清理文件后路径就失效了。AD的“Project”里保存的是相对路径容易出问题OrCAD的Capture和Allegro之间封装库路径需要在“User Preferences”里分别设置psm、pad、mmc等路径少设一个导入时就是一片报错。另一个是隐藏的电源引脚。原理图里一个芯片的VCC引脚如果被隐藏了而且没有连接到电源网络那导出的网表里就会缺这个引脚对应的网络。遇到电源网络缺失先检查多门级联芯片比如与非门、运放里的隐藏引脚是不是在属性里正确绑定了VCC/GND网络。这个坑我蹲过不止一次特别是用74系列逻辑芯片的时候。2. 转板前的准备把“看起来能转”变成“转得顺畅”2.1 原理图审查清单说了这么多转板前具体怎么“审”原理图我整理了一份自己一直用的检查清单这里直接列出来建议大家画完图之后逐项打钩。所有元件位号不重复且都有Footprint属性所有电源网络VCC、3V3、5V、GND命名统一没有混用“VCC_5V”和“5V”这种写法每个IC的电源引脚都有去耦电容电容尽量靠近IC引脚摆放高速信号、差分信号、时钟信号在原理图阶段就加好网络标签和差分对标识有空脚NC的元件引脚属性设置正确不要悬空后报错有极性元件电解电容、二极管、LED的极性方向标注清晰2.2 封装库统一AD与嘉立创EDA的差异处理工具不同封装库的管理方式差异很大。AD用的是集成库.IntLib和分立库.PcbLib/.SchLib整合性比较强。嘉立创EDA则直接云同步元件库和封装库支持从立创商城直接调取真实元件的“原理图符号PCB封装3D模型”这对新手非常友好。Cadence体系则最开放也最复杂原理图库和PCB封装库是严格分离的封装又分成焊盘文件.pad和符号文件.psm中间还有Device文件做映射。我的建议是不管用什么工具都在项目开始前定一个“库规范”。比如AD用户统一用集成库所有原理图符号和PCB封装打包一起避免“原理图库有、PCB库找不到”的经典尴尬。嘉立创EDA用户优先用立创商城带“已验证”标识的元件转PCB之前手动检查一下封装尺寸和焊盘大小是否匹配实物。2.3 网络编号与页面编号一个都不能乱热词里那个页码重复的情况我展开说一下。多页原理图页面编号Page Number必须唯一且连续这不仅是规范问题更是OrCAD生成网表时识别信号归属的依据。OrCAD的页码设置入口在“Options - Schematic Page Properties”把每个页面右下角的Page Number改成1、2、3……同时Title Block里的Sheet Total也要填对。AD则是在图纸属性里设置Sheet Number规则差不多。网络编号Net Name这一块也有个非常容易踩的雷同名网络在不同页面上被认为是同一网络但必须真正通过页面间连接符Off-Page Connector连起来或者用全局网络标签Global Net Label。很多新手直接在两个页面上都放一个“3V3”的电源端口以为它们就通了结果导网表发现是两个独立的“3V3_1”和“3V3_2”后面PCB上一堆本该连在一起的网络全部断开。这个细节特别隐蔽排查起来非常费时间。提示在AD里如果你使用的是“Net Label”它只在当前图纸内有效跨图纸必须用“Port”或“Off-Sheet Connector”。嘉立创EDA则要主动把标签设为“全局网络”或者在多页图纸间放置“网络连接符”。3. 主流工具实操AD、嘉立创EDA、Cadence/Allegro转板流程3.1 Altium Designer从原理图到PCB的完整流程AD是目前国内使用率最高的EDA工具之一它的转板流程相对自动化。说一个标准的操作路径先确认所有原理图都在同一个“PCB Project”*.PrjPcb下而不是零散的“Free Document”。打开原理图执行“Design - Update PCB Document xxx.PcbDoc”。在弹出的“Engineering Change Order”窗口中先点“Validate Changes”把所有新增项都变成绿色对勾如果有红色叉号说明有封装缺失或者网络错误直接双击报错项查看详情。全绿之后点“Execute Changes”原理图信息就推送到PCB了。这步做完PCB里会生成一堆带飞线的元件。需要注意的是AD默认会新建一个Room如果你在原理图里分了多张Sheet会生成多个Room。多人协作时Room能辅助模块化布局但如果只是一个人画单板我习惯把Room直接删除然后手动按功能分区摆元件。另外还有个小技巧AD里如果想要STM32这类“最小系统”快速布局可以先把对应的原理图页设为“Room”转板后所有属于那一页的元件会自动集合在一个Room区域里非常方便按键分板。我自己做stm32f103c8t6最小系统板的时候就是用这个方法快速锁定MCU、晶振、复位电路、去耦电容分分钟摆出一块标准区域。3.2 嘉立创EDA从在线原理图到PCB的一键操作嘉立创EDA包括专业版这几年在学生和开源爱好者群体里渗透率极高原因很直接免费、云同步、元件库丰富。它对“原理图转PCB”的操作逻辑做了进一步简化几乎不用管网表这层概念。标准流程是这样在原理图编辑器里点“设计 - 原理图转PCB”。在弹出的对话框里设置板框尺寸和原点坐标。点击“生成PCB”然后系统会以新窗口打开一个布局好的PCB文件。但简化不等于没坑。嘉立创EDA里最需要注意的是元件的封装是否来自“已验证”库。有时候你从别处导入的原理图封装路径是失效的转板后元件会没有焊盘或者焊盘尺寸异常。我的习惯是转板前在原理图里“检查封装”一下把所有元件的封装选中后去封装管理器里过一遍看到异常的立即替换。还有一点嘉立创EDA的PCB编辑器里走线时默认开启了“推挤”功能如果前期布线想完全手动控制线形建议在“布线 - 交互布线”的属性面板里把推挤关掉不然你画一条线原有走线被推得乱七八糟。3.3 Cadence/Allegro封装库与netlist导入的坑Cadence是高速板、复杂板领域的事实标准但它的学习曲线也最陡。OrCAD Capture画完原理图要往Allegro PCB Designer导网表中间隔着的就是“netlist”。具体流程原理图里执行“Tools - Create Netlist”选择“Allegro”选项卡先设置好封装库路径psm、pad路径要同时存在。点击“Create or Update Allegro PCB Board”或者只生成网表文件.net。打开Allegro PCB Designer执行“File - Import - Logic”选择“Design entry HDL”或“Capture”模式指向刚才的网表文件。导入成功后在Place模式下用“Quickplace”把元器件全部摆出来。热词里有一条“allegro 17.2版本软件打开brd文件时没有弹出allegro pcb designer product choice”。这个问题我遇到过多半是软件安装时没有把“PCB Designer”这个模块选全或者是在Windows的环境变量里缺少了“CDS_LIC_FILE”。解决方法是重新运行Cadence的License工具勾选“Allegro PCB Designer”功能模块或者直接找到安装目录下的“pcbenv”文件夹确认“env”文件里没有屏蔽相应模块的语句。实际测试下来把“HOME”环境变量指向一个不带中文和空格的路径也能解决很多莫名其妙的Allegro启动问题。Cadence的另一个坑是“封装导入PCB”的时候焊盘Padstack路径和封装符号Symbol路径必须同时正确设置。很多人只设置了psm路径结果Allegro说找不到封装但库里明明就有。原因是焊盘文件没找到你先看一眼Pad路径是不是也被正确添加了。3.4 从Gerber反向生成PCB的场景热词“ad导入gerber转pcb”是一个被问烂了但很有代表性的需求。什么时候会遇到把Gerber转回PCB两种情况最常见一是客户的原始工程文件丢失只有厂家发回来的光绘文件二是想在一个没有工程文件的老板子上做个局部修改。AD里导入Gerber的路径是“File - Import - Gerber”导入时要把“钻孔文件”一起导进去。需要特别提醒的是Gerber导入只会生成几何图形不会自动生成网络连接关系。也就是说转回来的PCB是一堆没有网络的线条和焊盘图形你要自己铺铜、自己画导线重新建立连接。这本质上不是“还原PCB设计”而是“照着原板子抄一遍布局”。所以我的看法是Gerber转PCB可以应急用但不要指望它能把网络、规则、封装属性全部恢复。市面上有一些第三方工具可以辅助识别焊盘和网络但准确性很难保证高速板尤其不推荐这么做。平时做好工程文件归档比什么逆向工具都靠谱。4. PCB设计中的核心规则布局、布线、层叠与电流4.1 布局阶段从原理图模块到PCB分区原理图信息进入PCB之后第一件事不是布线而是布局。布局的好坏直接决定布线的成败。我见过太多新手一上来就拖线结果线没走几步过孔打了一堆最后DRC一查全是间距错误。布局的底层逻辑是按信号流向分模块。比如STM32最小系统就分为电源区、复位区、晶振区、下载接口区再比如TB6612电机驱动板就分为逻辑控制区、H桥功率区、电机输出接插件区。每个模块内部的元件就近摆放模块与模块之间按信号走向排列这样才能让飞线关系最顺。具体操作层面我推荐“先大后小、先固定后活动”的顺序先把有固定位置属性的元件锁死比如接插件、螺丝孔、按键、LED灯。再把核心ICMCU、驱动芯片放到中心或黄金位置注意方向和IC引脚编号。然后围绕核心IC摆外围元件去耦电容优先紧靠电源引脚晶振离MCU尽量近复位电路排在晶振旁边。最后调整整体方向让同模块元件方向尽可能统一方便后面布线。这里特别强调一点布局阶段就要考虑散热和工艺。电源芯片底下要预留散热焊盘和过孔区域大电流通路上要留足铜皮面积接插件要便于接线。这些如果等到布线时再想多半已经来不及了。4.2 线宽与电流的工程经验值含对照表热词里“pcb线宽电流对照表”和“pcb 0.3mm能过多少电流”是两个高频问题。直接上经验值以常规1oz约35μm铜厚、外层走线、允许温升10℃为条件线宽mil对应mm约持续载流能力A10 mil0.25 mm0.5 ~ 0.8 A15 mil0.38 mm0.8 ~ 1.2 A20 mil0.5 mm1.2 ~ 1.8 A30 mil0.76 mm2.0 ~ 3.0 A50 mil1.27 mm3.5 ~ 5.0 A100 mil2.54 mm7.0 ~ 10.0 A注意这是经验值不是绝对真理。影响载流能力的参数很多铜厚增加一倍2oz载流大约提升30%~40%内层走线散热差载流能力要打八折线越长电压降越明显大电流远端要适当加宽。回到那个具体问题“PCB 0.3mm能过多少电流”按上面的表0.3mm大约就是12mil1oz铜厚、外层走线极限短时间可以到1A但长期稳定运行建议控制在0.8A以内。如果你这路是电源输出建议至少1mm线宽起步甚至直接铺铜皮。0.3mm拿来走信号线和弱控制线没问题走大电流就是在给板子埋雷。4.3 走线规则设置与高速信号要点AD的“PCB Rules and Constraints Editor”是所有AD用户绕不开的界面。新手画板时最常问的就是规则怎么设。我列一个基础参考值两层板通用最小间距Clearance6 mil0.15mm以上要求不高的板子设到8~10 mil更稳。最小线宽信号线6~8 mil电源线20 mil以上地线能铺铜就铺铜。过孔内径/外径内径0.3mm外径0.6mm打样大多数厂家都能做如果空间紧张内径0.25mm外径0.5mm也可以但小批量成本会略高。丝印到焊盘距离丝印离焊盘至少5 mil不然印到焊盘上影响贴片。DDR4、USB差分对、以太网这类高速信号是另一个世界的问题。DDR4强调等长和阻抗控制。以DDR4为例地址线、控制线、时钟、数据线分组每组内部要控制等长误差通常数据线组内控制在±5 mil以内地址控制线对DQS的等长控制在±20 mil左右同时要按特定阻抗设计单端阻抗40Ω或50Ω差分阻抗80Ω或100Ω这依赖具体的芯片手册。热词里提到“adc/dac电路设计: 规避时钟抖动与电源噪声的3个pcb布局要点”ADC/DAC是典型的混合信号电路布局时我总结出三点模拟地与数字地单点连接或者用0Ω电阻/磁珠跨接避免数字噪声通过地平面灌入模拟区。时钟电路要远离模拟输入通路时钟走线尽量短且包地防止时钟抖动耦合进模拟信号。电源滤波多级布置模拟电源从LDO输出后每一级RC/LC滤波都紧靠对应的供电引脚ADC的VREF引脚旁边要放高质量去耦电容低ESR的X7R或C0G。4.4 层叠设计与阻抗控制两层板是入门主力四层板是高性能信号的主流。四层板的经典层叠是Top信号层- GND地层- Power电源层- Bottom信号层。中间有完整的地平面和电源平面信号回路很近EMI表现比两层板好两个量级。工业批量产品里四层板几乎成了标配。层叠结构决定阻抗控制阻抗控制又依赖“线宽、介质厚度、介电常数、铜厚”四个参数。普通FR-4材料的介电常数约4.2~4.6实际制板时厂家会按你的层叠和阻抗要求反推线宽。手里有板子想确认层叠厚度最简单的办法是在Altium里用“Layer Stack Manager”检查或者直接看PCB厂家提供的叠层报告。如果只是自己手工测卡尺量总厚度减去两面铜箔和阻焊的厚度也能大致估算。一般四层板总厚度1.6mm芯板Core0.7~0.8mmPP片半固化片0.2~0.3mm这是比较常见的组合。4.5 特殊处理铜皮挖空、绿油露铜、高低压隔离这几个热词都是PCB设计中非常具体的工艺处理。“AD20中pcb板铜皮挖空”通常用于天线区域或者需要避免涡流的区域。操作路径是Place - Polygon Pour Cutout然后在需要挖空的区域画一个闭合多边形。还有一种做法是在Keepout层画一个闭合图形重新灌铜后铜皮会自动避开。“allegro pcb背面的绿油露铜处理”本质上是在阻焊层Soldermask上开窗。Allegro里对应的是“Soldermask_Top”和“Soldermask_Bottom”两层在这个层上画一个比焊盘稍大的形状背面那一块铜皮就会裸露出来。这常用于大电流焊接、屏蔽接地、或者做“金手指”式的接触点。设计时注意开窗区域不要覆盖细间距的走线否则波峰焊时会连锡。“高低压隔离PCB”是电源类板子比如反激式开关电源、继电器控制板的刚需。核心是保证爬电距离和电气间隙。220V交流侧和低压直流侧之间按安全规范小而便宜的板子至少要保持5~8mm的爬电距离。如果板面紧张可以在高低压之间开一条物理槽V-cut或铣通这样爬电距离直接按空气间距算反而更容易满足要求。还有一个细节光耦、隔离电源芯片下方的铜皮要挖空不然会破坏隔离性。5. 常见问题排查速查表与独家避坑技巧5.1 工具报错与文件异常处理我在实际支持同事和网友的过程中整理了一个高频报错表直接照着查现象可能原因解决思路OrCAD报页码重复多页图纸Page Number未唯一用Annotate重置并重排页码AD导入PCB时封装丢失库路径失效或元件缺Footprint检查工程库、添加有效库路径Allegro打开brd不弹产品选择License模块缺失或环境变量异常重装模块、检查HOME和CDS_LIC_FILEPADS打开文件提示报错自动关闭文件路径含中文/文件损坏/库缺失拷贝到纯英文路径重新打开或者用低版本另存后回导AD导出PDF只有部分区域打印范围设置了“当前视图”或区域打印将打印范围改为“高亮区域”或“所有图纸页面”原理图里导线明明颜色相同却不连通两组网络标签名称不同或有隐藏空格查看网络属性统一命名并删除多余空格PADS那个“报错自动关闭”的问题多说两句。PADS对文件路径里的中文字符和特殊符号极其敏感遇到“文件打不开、一打开就闪退”第一件事就是把整个工程复制到“D:\Project\xxx”这种纯英文路径下再试。如果还是不行很有可能是低版本打开高版本文件或者文件里用了当前库没有的封装。借用“File - Library”把缺失封装补全后再打开大概率能解决。5.2 原理图与PCB的网络连接问题热词里“ad检查原理图有没有连上”是高频需求。AD里检查原理图网络是否连通有两个办法一是“Project - Compile Document”后会生成编译结果在Messages面板里看“Unconnected Pin”之类的问题二是选中一根导线或一个引脚按高亮快捷键Ctrl单击看高亮传播范围没高亮到的就是没连着。还有一种更微妙的情况引脚看起来连上了但引脚“Hotspot”没有落在导线的连接点上。AD的引脚末端有一个红色的电气连接点热点引脚线必须和导线端点对齐否则编译不报错但网络是断的。检查时把视图放大到引脚端确认小方块“贴住”导线不能只是视觉上重叠。5.3 那些容易被忽略但后果严重的细节分享几个我认为最容易被忽略、但一旦踩中就很伤的细节。一个是元件方向与丝印方向不一致。PCB上焊盘是对称的但丝印的方向标错了贴片时工人照着丝印摆直接把二极管或者电解电容装反。这个问题在AD里常见于手工改库的时候只动了丝印没动焊盘。建议转板后做一个3D预览配合PCB 3D模型检查元件极性方向。另一个是DDR等高速信号走线的参考平面不完整。如果说低速板是“布线”高速板就是“设计参考面”。DDR4的走线下方必须是完整的地平面或电源平面一旦跨分割回流路径变长信号质量直线下降。很多原理图看起来没问题的板子一跑起来不稳定十有八九是参考平面破裂造成的。还有SPD相关的问题有人问“内存条的spd存放的参数需要配合pcb设计调整吗”。SPD里存的是内存颗粒的时序参数比如CL、tRCD这些它描述的是颗粒本身的能力不因PCB走线长度变化而改变。但PCB设计会影响“信号到达时间”和“时序裕量”如果走线等长做得不好即使SPD参数完全正常系统也可能不稳定。所以结论是SPD参数不需要因为PCB设计去改但PCB设计必须保证走线等长否则SPD里的时序参数达不到实际效果。6. 个人实操体会画了这么多年板子带过不少人我最大的感受是原理图转PCB这一关真正拦人的不是软件操作而是“项目规范意识”。愿意花二十分钟做ERC、查封装、编页码的人后面布线会非常顺急着点按钮的人大概率要用五个小时来还这二十分钟的债。如果你现在正准备转板听我一句劝先别开PCB回到原理图把每个元件的Footprint双击检查一遍把电源网络高亮看一遍把多页图纸的页码确认一遍。这三件事做完你已经超过一半的同行了。最后再分享一个小技巧转板之后先不要急着自动摆放把飞线显示打开盯着飞线关系图看五分钟。飞线密集的地方就是布局要优化的地方飞线交叉严重的地方往往意味着原理图连接关系还能再优化。很多时候一个“信号流向清晰”的原理图转到PCB之后布局布线都会舒服很多。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →