ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PCB Layout实战总结:布局、布线、层叠与工具避坑指南

PCB Layout实战总结:布局、布线、层叠与工具避坑指南 刚把一块多路电源加ADC/DAC的混合信号板Layout收尾趁着热乎劲把这两年在PCB Layout上踩过的坑、用顺手的套路整理一遍。这篇总结不是教科书式的规范罗列而是从一个经常自己画板、自己调试、还要跟板厂扯皮的硬件工程师角度把布局思路、布线规则、层叠工艺、工具实操这些环节里真正影响成败的细节一次讲透。不管你是刚接手第一块板子的新人还是被高速数字和电源噪声折磨过几轮的硬件老兵这篇内容应该都能对得上你实际画板时遇到的场景。1. 布局阶段的核心思路与功能分区1.1 先定结构再谈美观很多新人拿到原理图第一件事就是打开PCB编辑器把元件一股脑拖进来开始摆放。这个习惯我强烈建议改掉。正确的顺序是先处理结构约束再谈布局和布线。结构件、连接器、固定孔、指示灯、按键这些位置是硬约束一旦确定下来后面所有模块的摆放都得围着它们转。先放结构件再放核心器件听起来像废话但我在实际项目里见过太多次因为连接器方向反了、固定孔被元件压住而整体返工的案例。具体操作上拿到结构文件后先在机械层把板框、安装孔、禁布区、内部挖槽这些信息完整导入然后在Keepout层画清楚禁布区域再开始摆器件。摆放顺序建议是先固定连接器和结构件再放核心芯片主控、FPGA、电源模块然后根据功能流向放外围电路最后才是去耦电容、电阻、指示灯这类小件。布局阶段花的时间越充足布线阶段返工的概率就越低。布局就像提前把棋子的位置定好布线只是把棋路连起来摆歪了后面怎么绕都别扭。1.2 功能分区背后是电流回路功能分区不是简单地“把模拟放左边数字放右边”核心依据是电流回路。电流永远会选择阻抗最低的路径回流如果你把开关电源的高di/dt环路拉得特别大即使原理图设计得再完美EMI测试也照样会翻车。布局时我会把电源模块放在输入接口附近让大电流路径尽量短模拟小信号区域远离继电器、电感、变压器这类磁场源数字逻辑器件按数据流向集中布置避免跨区走线。拿反激式开关电源来举例最核心的功率环路包括输入电容、变压器初级绕组、开关管这个回路的面积必须尽量小。MOS管和变压器之间的走线要短而宽输入电容紧靠MOS管放置不然漏感尖峰和振铃会让你怀疑人生。辅助绕组整流二极管、RCD吸收电路也要尽量贴近变压器因为它们同样构成高频环路。反馈电路和光耦则要放在安静的区域远离功率开关节点否则反馈信号被污染后环路稳定性会受到直接影响。在EDA工具里可以利用Room功能把同一功能模块的器件锁定在一个区域内。比如在AD里选中原理图中某一页的模块在PCB里对应生成Room然后整体拖动、整体翻转这样分区管理和后期调整都会方便很多。主控、FPGA这类大芯片的风扇出区域也要在布局阶段就预留好别等布线时发现BGA扇出位置被堵死再去挪旁边的电容。1.3 模拟版图里的匹配思维模拟电路设计里经常提到电流镜匹配在版图层面讲究的是对称和共质心。很多人觉得这是芯片版图的事跟PCB关系不大其实PCB上高精度电阻分压、差分采样电路同样需要匹配思维。比如高精度ADC的参考电压分压电阻如果走线一长一短、一宽一窄寄生电阻和寄生电容不对称最后表现出来的就是测量误差而且这种误差在调试阶段非常难查。我自己的习惯是凡是对匹配有要求的成对器件在PCB布局时做到三点器件方向一致、走线长度尽量相等、周围环境保持一致。方向一致是为了让温度梯度对两只器件的影响方向相同共质心或者对称布局是为了减小工艺偏差的影响。采样电路里还要考虑开尔文连接也就是把采样线单独引到负载端避免采样点放在功率走线上否则功率电流在铜箔上的压降会被直接叠加到采样信号里电源远端补偿就变成了空谈。2. 布线规则与实用技巧2.1 线宽、过孔与电流载流到底怎么算经常有人问“0.3mm的线到底能过多少电流”这个问题不能凭感觉回答得看铜厚和允许温升。工程上常用IPC-2221的经验公式I k × A^0.44 × dT^0.725其中A是导线截面积平方mildT是温升℃k是系数外层走线取0.048内层走线取0.024。这个公式算出来的是参考值实际设计时还要结合走线长度、散热条件、相邻走线发热等因素留余量。为了方便快速估算我习惯记一张简化关系表。铜厚/位置0.3mm线宽0.5mm线宽1.0mm线宽1oz外层温升10℃约0.6~0.8A约1.2~1.5A约2.5~3A1oz内层温升10℃约0.3~0.4A约0.6~0.8A约1.2~1.5A内层散热条件差载流能力大约只有外层的一半。口算经验是1oz外层铜厚、1mm线宽大约可以走2A左右如果电流超过2A要么加宽要么铺铜要么增加铜厚。曾经做一块电机驱动板功率线走了1.5mm宽带载后温升明显后来改成2oz铜厚并把功率走线加宽问题才解决。过孔也有载流限制一个0.3mm孔径的过孔大概能过1A电流大电流路径上要打多个过孔并联并注意过孔排列不要太密否则会影响电源层平面完整性。不要以为有了铺铜就万事大吉铺铜区域的瓶颈在连接处和过孔数量上。2.2 电源电路布线的三个关键坑电源PCB布线是我见过问题最多的地方总结下来有三个典型坑。第一个坑是功率回路面积过大。开关电源的输入电容、开关管、续流二极管、输出电容构成的回路必须保持最小面积减少高频辐射。我在反激电源布局中会先把变压器放在板子中部偏输入侧的位置让输入电容和MOS管形成的环路紧贴变压器引脚次级整流回路同样要紧凑。环路面积小了开关节点的振铃幅度也会明显改善。第二个坑是地线处理不合理。很多人对“单点接地”理解得过于绝对在电源板上做了一大堆小心谨慎的单点接地结果地线细长、阻抗很大反倒引入了地弹噪声。电源电路的地应该以大面积铺铜为主关键小信号地再单独走线回到主地。开关电源的控制芯片GND引脚要用短而独立的走线连接到功率地避免被功率电流的地弹干扰。第三个坑是反馈走线被噪声源污染。反馈分压电阻和补偿网络应靠近控制芯片放置反馈走线远离开关节点、电感、变压器这些干扰源。输出电压采样线最好走Kelvin连接直接引到负载端的输出电容上避免采样到功率走线上的压降。反馈走线如果非要在底层穿过功率区就用地线包住它或者干脆开槽隔离。高低压隔离的板子还要特别注意爬电距离。AC端和DC端、初级和次级之间需要满足安全间距要求不够距离时可以在PCB上开槽也就是把铜皮挖空增加沿面距离。像AD20里放置Polygon Pour Cutout或者直接在Keepout层画隔离槽都能实现物理隔离和电气隔离的双重效果。2.3 ADC/DAC与时钟电路布局的三个要点混合信号电路里ADC/DAC性能和Layout的关系特别大。时钟抖动和电源噪声是最容易让人头疼的两个来源我在实际调试中总结出三个要点。第一时钟源要尽量靠近使用它的器件走线要短而直。晶振或者时钟芯片不要放在板子角落再拉长线到ADC中间经过过孔换层、走线绕弯都会让时钟信号质量变差。时钟线两侧最好有地孔包围形成保护地避免相邻数字线耦合到时钟上。如果时钟走线必须换层要保证参考地平面连续并且旁边加一个地过孔提供回路。第二模拟电源域要独立滤波。ADC/DAC的模拟电源建议用磁珠或者小电感加电容组成低通滤波把数字电源上的高频噪声隔离掉。模拟地和数字地不要做成大面积分割而应该在ADC芯片下方单点汇合让数字回流电流走芯片下方的数字地不跨越模拟区域。曾经做一块16位ADC采集板一开始模拟地和数字地完全分开结果ADC的数字输出干扰反而通过跨接点耦合进了模拟地后来改成在ADC下方单点连接INL/DNL指标立刻正常了。第三ADC/DAC周围不要走数字信号线。数据总线、控制线、时钟线要尽量远离模拟输入和参考引脚尤其是不要在ADC下方穿过。PLL或者VCO这类对电源噪声极其敏感的模块滤波电容要尽量靠近引脚并保证电源走线从滤波电容出来之后再进VCO形成星型供电路径而不是串一串器件再绕一大圈。2.4 高速数字与存储类布线的等长思路存储类接口比如DDR、SRAM这类并行总线等长设计直接影响时序余量。数据线组内等长、地址线组间等长这在高速板里是基本要求。等长的目的不是为了好看而是保证所有信号到达接收端的延迟落在同一个时钟窗口内否则采样沿到来时数据还没稳定就会随机出现错误。关于内存条的SPD参数它存放了CL、tRCD、tRP等时序参数这些参数是内存条厂商根据自身PCB走线长度和拓扑结构调校出来的。换句话说SPD里的参数和具体PCB设计是绑定的换到不同走线长度的PCB上时序余量会发生变化。这也是为什么定制内存条类产品时硬件工程师要和Layout工程师反复确认走线长度不能简单复制标准参数必须配合实际PCB设计调整。高速走线等长常用的方式是蛇形绕线绕线时注意间距要满足3W原则线中心距不少于3倍线宽避免相邻线段耦合造成串扰。DDR的地址线、控制线通常采用T型或菊花链拓扑分支长度越短越好。所有高速信号尽量走完整参考层不要跨分割如果必须跨层则要在换层过孔旁边补一个回流地孔。FPGA这类器件的引脚分配阶段就要和PCB Layout交互BGA扇出、bank供电、DDR引脚分组都要提前规划不能等原理图冻结了再让Layout工程师去痛苦地绕线。3. 层叠、工艺与可制造性细节3.1 层叠厚度、阻抗和工厂叠构直接相关PCB层叠不是随便定的线宽线距能不能实现、阻抗能不能连续都取决于叠构。四层板最常见的叠构是TOP-GND-PWR-BOTTOM信号层和参考地平面紧耦合适合大多数不太复杂的板子。六层板的典型叠构可以是TOP-GND-SIG1-PWR-SIG2-BOTTOM也可以根据实际情况调整但核心原则是每个信号层尽量邻近一个完整的参考平面。阻抗受介质厚度、介电常数、铜厚和线宽共同影响。比如做100Ω差分线不能自己拍脑袋定一个“4mil/6mil”就完事最好直接和板厂要叠构参数再通过阻抗计算工具反推线宽线距。按国内常见的7628芯板叠构100Ω差分线对大约需要5mil线宽、8mil间距左右但这只是参考不同板厂的半固化片厚度不一样结果完全不同。我一般会在投板前把叠构约定写进工艺要求里让板厂按指定叠构生产避免批量后阻抗漂移。层叠设计还要注意对称性包括铜厚和介质厚度的对称否则板子容易翘曲。有些厚铜板或者嵌埋铜块板更要在叠构阶段就和板厂充分沟通确定层压材料否则后期应力不均会导致焊点开裂甚至板子直接变形。3.2 铺铜、挖空、露铜与嵌埋铜块的实用场景铺铜是Layout里最基础也最容易被误用的操作。大面积铺铜确实能降低地阻抗、改善散热但前提是铺铜区域有足够的过孔连接到主地平面。孤岛铜皮会变成天线反而带来噪声问题。在AD20中如果想让某块铺铜避开特定区域可以用Polygon Pour Cutout直接放置挖空区域也可以先画好Keepout再更新铺铜。这种挖空操作经常用在爬电隔离、天线净空区、变压器下方禁铜区等场景。比如反激电源的变压器下方很多工程师会把铜皮挖空防止高频磁场在铜皮上感应涡流。背面绿油露铜处理在Allegro里很常用主要目的是增强散热。MOS管、电源模块、大功率LED的焊盘区域可以开窗露铜再加散热过孔阵列把热量导到内层或底层的大面积铜皮上。实操时要注意露铜区域不要跨到相邻元件下方否则回流焊时容易跟邻近焊盘桥连短路。散热过孔可以打在露铜区域内孔径不要太大一般0.3mm间距保持在1.0~1.2mm过孔表面最好做树脂塞孔或盖油防止漏锡。嵌埋铜块是这几年功率板常用的散热方案在内层嵌入一块铜块把功率器件下方热量直接导到结构散热器。嵌埋铜块工艺对工厂能力要求高设计时要跟板厂确认铜块厚度、精度、与内层铜皮的连接方式也要考虑铜块附近的走线空间因为铜块边缘到线路一般需要留安全间距不然压合时容易损坏线路。3.3 拼板、工艺边与位号图的整理小批量打样时拼板能省不少钱但不同PCB之间的拼板不是随便拼的。拼板的前提是板厚相同、叠构相同、表面工艺相同不然强行拼在一起会制造麻烦。V割适合外形规则的矩形板邮票孔适合异形板或者需要保留边框强度的板。拼板时要考虑板厂V割精度V割线附近不要走线和放元件不然分板时会损伤线路。工艺边主要用于SMT贴片时的导轨传送一般在板边留5mm以上空白区域并放置Mark点。如果板子空间紧张可以在长边加工艺边贴片完再分板去掉。Mark点通常是1mm直径的实心铜点表面镀锡或裸铜周围留出净空区域别让丝印或者走线覆盖。位号图是装配和维修时的重要文件。实际画板时丝印位号经常出现压焊盘、方向不一致、某些位号被漏掉的情况。我习惯在输出位号图前把所有元件位号设置为Top层朝一个方向、Bottom层朝一个方向把位号大小统一然后在AD里用“丝印整理”功能快速调整。位号图不只给贴片厂看也是自己调试时找元件的索引整理好了能省很多时间。4. EDA工具的选型与故障排查实录4.1 常用PCB工具的定位差异工具选择很多时候由公司和团队决定但个人还是需要清楚不同工具的侧重点。AD上手快、功能全适合中小规模板子和个人开发者PADS在中低端消费电子和结构件主板上很普及操作逻辑跟AD差异较大Cadence Allegro在高速数字、复杂BGA、服务器主板上占绝对优势规则约束和团队协作能力强嘉立创EDA对于学生、初学者、简单板子非常友好画完直接下单也很顺滑。工具优势常见痛点适合场景Altium Designer上手快、资料多、原理图与PCB联动好大板高速复杂设计时性能吃力中小规模板、教学、个人项目PADS Layout操作灵活、稳定性较好高版本兼容问题较多消费电子、Layout效率要求高的场景Cadence Allegro约束规则强大、适合大型复杂板学习曲线陡、库管理复杂服务器、通信、高速数字大板嘉立创EDA免费、在线协作、下单方便复杂功能还在追赶初学者、简单双面四层板、快速打样Cadence封装导入PCB的流程值得多说一句。很多新手搞不清封装库和焊盘库的关系导入时报错半天找不到原因。Allegro里封装文件是.dra/.psm焊盘是.pad/.fsm导入前必须确保封装调用的焊盘路径在环境变量或库路径中正确配置。把库路径配好封装才能正常放置到PCB里。换机或者迁移项目时最容易出的问题就是库路径失效导致封装变绿、丢失焊盘。4.2 AD20里的高频操作与设置AD20应该是现在中小公司用得最多的工具之一有些设置找不到确实很头疼。比如走线时发现当前走线不显示中心点网上也常有人问“AD里走线没有中心点怎么开”。这个选项藏在Preferences里的PCB Editor - Interactive Routing里面有一个显示当前走线段的中心点相关选项勾选后走线过程中就会实时显示线段的中心标记方便你做精确对齐。如果还是不行可以检查栅格和吸附设置把电气栅格打开走线端点吸附到焊盘和过孔中心。DRC检查是投板前最重要的一步AD里不要只跑默认规则。我会在Design Rules里把间距规则按网络类别分开设置电源和高压网络单独加宽间距差分对单独设线宽规则。然后运行DRC时把Report范围设为整个板子重点看短路、未布线、未连接、钻孔冲突这几类。生成报告后逐个确认不要直接忽略所有报错。实际生产中发现过DRC报告里有一个“Un-Routed”但被当成假错忽略结果板子回来有一根网络悬空调试时怎么找都找不到原因。用AD导入Gerber转PCB也是一个经常被问到的问题。正常情况下不建议拿Gerber转PCB做正向设计因为Gerber已经丢失了网络、元件封装等大量信息转出来只剩一堆孤立的线条和焊盘图形。只有在原始PCB文件丢失、只剩Gerber的紧急恢复场景下才用Camtastic或者第三方工具辅助还原之后需要重新给线条赋网络、建封装工作量非常大。4.3 PADS与Allegro的典型报错处理PADS Layout在使用中经常出现打开文件时提示报错然后自动关闭的情况。排查思路一般是先确认文件版本和当前软件版本是否兼容高版本软件保存的文件低版本打不开属正常现象。其次检查文件路径和库路径有没有中文路径、网络路径这类问题在实际工作中占了很大比例。还有一种情况是设计文件损坏或者库文件缺失可以尝试用PADS自带的Library转换器把库更新一遍或者把文件另存为低版本格式再打开。如果还是频繁闪退就把用户临时目录清一下重新启动软件。Allegro 17.2打开.brd文件时没有弹出PCB Designer Product Choice对话框一般和license配置或者环境变量有关。这种情况常见于安装了多个产品或License配置不完整的机器上可以在启动时通过Allegro的License Manager检查可用特性或者手动选择进入Advanced选项。正常获取到License后打开brd文件时会自动弹出产品选择界面让你选择PCB Editor、Package Designer等不同模式。Allegro的PCB文件能不能转成AD格式可以但转换过程会丢失不少信息。常见做法是先在Allegro中导出为中间格式再到AD里导入。转换后网络可能还在但约束规则、3D模型、部分特殊形状焊盘都会变形或者丢失。如果只是查看不如用Gerber或ODB更保真如果确实要编辑转换后必须花时间检查封装和网络连接不能直接拿去投板。4.4 DRC检查清单与交付前检查投板前的检查清单我基本固定成这样几项电气规则检查开短路、未连接、间距规则线到线、线到焊盘、焊盘到焊盘、钻孔规则最小孔径、孔到孔间距、孔到导线距离、阻焊规则覆盖、开窗、丝印规则压焊盘、字太小。每一项都要生成报告逐条确认。AD里Running DRC可以输出网页报告PADS和Allegro也都有类似的规则检查输出。除了软件DRC我还会做两道人工检查。第一道是打开所有层叠加视图把单层隐藏后快速扫一遍看看有没有孤铜、毛刺、直角走线、明显的回流路径断裂。第二道是打印1:1图纸拿卡尺测量关键结构尺寸和安装孔位置这一步看着原始但在没有结构工程师复核的情况下能挡住不少低级错误。3D视图也是一个好工具可以直接检查元件干涉、高度冲突和焊盘方向错误。如果项目用了较复杂的高速接口我还会在投板前用信号完整性工具做一遍快速的传输线检查至少确认差分对阻抗、参考平面完整性和过孔数量这些基本项别等板子回来再借设备去量。这几年自己画板自己调试最大的体会是Layout这件事绝对不是“把线连通就行”的体力活。每次在调试台上因为一个地弹尖峰、一个回流路径断裂或者一颗电容放错位置而耗费两三天回头翻Layout文件都会发现当初只要多花半小时想清楚布局和回路很多问题根本不会出现。投板前多问自己几个为什么这个回路面积是不是还能更小这条敏感走线是不是还能离噪声源更远这层平面是不是被割得太碎如果你能把这几个问题都回答得无懈可击板子回来的成功率会高很多。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进