
做硬件这几年我用Altium Designer 19完成过不少完整项目。从原理图设计、原理图优化到PCB布局布线再到电路仿真每个环节都有说不完的细节和踩不完的坑。很多刚开始学AD的朋友总觉得这三个阶段是三个独立的事情先画个原理图然后导到PCB里布布线最后点一下仿真按钮完事。但实际上它们是一条完整流水线上的三个工位前面任何一个细节没想清楚后面就得花几倍的时间去补救。这篇文章就围绕“原理图及优化 PCB设计及布线 电路仿真”这条主线拿我最近做的一块模拟信号采集板项目X为例把整套流程怎么串起来、关键参数怎么定、工具怎么用掰开揉碎讲清楚。既适合刚上手的初学者抄作业也能给已经能跑通流程的朋友一些查漏补缺的参考。1. 项目从零开始方案与工具选型1.1 一个电路项目的完整链路是什么很多人拿到一个项目需求第一反应就是“赶紧打开AD画图”。我个人的习惯恰恰相反先不去管工具先把整条链路在脑子里过一遍。以这块信号采集板项目X为例需求很简单采集一路模拟电压信号做滤波和放大再送给一块主控芯片进行AD转换最终通过串口把数据发出去。就这个需求对应的硬件链路是“传感器信号输入 → 前级滤波 → 运放调理 → 主控ADC采样 → 串口输出”。这个硬件链路就是整张原理图的核心骨架。所有的器件选型、参数计算、仿真验证都是围绕这条链路展开的。在AD19里原理图阶段要干的活不只是把器件从库里拖出来连上线而是要在这张图纸上把整个系统的供电关系、信号流向、接口定义、滤波参数全部定义清楚。原理图画得越严谨后续PCB布线时的麻烦就越少。这里我特别想强调一点原理图与PCB设计、电路仿真之间是强耦合关系不是三个孤立步骤。原理图上标注的线宽约束、间距约束、差分对定义会直接传递到PCB设计环境中。而电路仿真所需要的仿真模型也需要在原理图阶段就挂载到对应器件上。所以在原理图阶段想清楚所有约束比后边返工要省力得多。1.2 为什么选AD19作为主力平台现在市面上能画原理图的软件不少有开源的也有其他商业套件。我之所以一直把AD19作为主力开发平台理由有三点。第一它在原理图和PCB之间的联动做得非常顺畅。你在原理图里给某个网络设置了的布线宽度规则切换到PCB时不需要重新配置你在原理图里定义好的差分对PCB里直接就能识别。这种“规则跟着设计走”的特性能省掉大量重复劳动。第二AD19的版本特性正好卡在一个平衡点上。它比更早的版本多了不少现代化功能比如ActiveBOM元器件清单管理、更流畅的3D预览、增强的仿真和信号完整性分析工具链但操作逻辑相比再往后的新版本又更传统一些更符合很多从AD16、AD17一路用上来的工程师的习惯。对大多数中小型项目来说AD19的性能和稳定性都是够用的。第三它对接生产的流程非常成熟。从生成Gerber文件、钻孔文件到输出装配图AD19都有非常固定的流程模板。板厂的CAM工程师看到AD导出的文件基本不会因为格式问题来回扯皮。这一点在项目交付阶段非常重要。选定了工具接下来就进入正式的实操环节。我习惯把一个项目按“库准备 → 原理图 → PCB → 仿真验证”四个阶段来推进下面详细拆解每个阶段的做法。2. 原理图设计与优化电路设计的第一张图纸2.1 建好库就成功了一半原理图设计的第一步不是画图纸而是准备元器件库。这一点新手最容易忽略总觉得库里的元件挺全的拖出来直接用就行。实际上原件库的引脚定义、封装对应关系、仿真模型的完整性直接决定了后面所有环节能不能顺利推进。AD19里的库主要分两种集成库.IntLib和分立库.SchLib .PcbLib。我的建议是不管项目大小尽量建一个项目专属的集成库哪怕里面的元件只有十几个。为什么因为集成库把原理图符号、PCB封装、仿真模型、厂商链接打包在了一个文件里你在原理图里放置一个器件切换到PCB时封装自动带过来仿真时模型也自动匹配不需要一个一个去翻文件。建库时有几个关键检查点一个是引脚名称与编号必须和芯片手册完全一致尤其是电源引脚、接地引脚和NC空脚多一个少一个都是事故。另一个是封装名称一定要规范例如电阻用“R0603”“R0805”这种标号电容用“C0402”“C0603”保证看到名称就知道是什么器件、多大尺寸这样在原理图阶段就能发现封装打架的问题。还有一个容易被忽视的细节如果这个元器件后续要做电路仿真那么必须在原理图符号的属性里挂载对应的SPICE仿真模型并正确指定引脚映射关系。否则到了仿真阶段你会发现自己选好的器件在仿真库里根本找不到又得回过来翻原理图重新配置。2.2 原理图绘制过程中的操作细节库准备好之后才正式开始画原理图。我使用的流程是先规划图纸结构再放置器件最后连线。图纸结构这一点很多人图省事几百个元件全放在一张图纸上看着方便后期维护起来却非常痛苦。正确的做法是按功能模块分页比如这个信号采集板项目X我分了四页电源页、信号调理页、主控页、接口页。每一页一个清晰的功能主题查找问题和修改时效率高出几倍。具体到绘图操作有四个细节是直接影响后续PCB与仿真流畅度的网络标签命名要有统一规范。电源网络统一叫“3V3”“5V”“GND”数字信号用“I2C_SCL”“UART_TX”“SPI_MISO”这样带功能前缀的格式模拟信号用“AIN1”“VREF”表示。切忌使用系统默认生成的NetLabel1、NetLabel2这种名字太混乱了。放置电源符号和接地符号时注意区分模拟地和数字地。在这个采集板项目里模拟地AGND和数字地DGND在原理图上就是两个不同的网络只在某个单点通过磁珠或0欧电阻连接。如果原理图阶段不分PCB阶段想去分割地平面就很被动了。关键器件的去耦电容必须就近放置在电源引脚旁边。很多人画原理图时习惯把所有电容放在一起或者放在图纸空白处连线是用网络标签连过去的。这样做原理图看起来挺干净但到了PCB布局时就非常容易漏放而这颗电容其实是要放在芯片引脚旁边的。我比较推荐在原理图上就把去耦电容画在器件的电源引脚附近明确表达“这个电容属于这个引脚”的空间约束。多通道设计或重复模块尽量使用“Sheet Symbol”子图复用。比如这个项目里有两路完全一样的信号调理电路画一遍然后通过“Repeat”功能复用成两路即可。AD19的子图复用不止是复制图纸它连网络名、器件位号都能自动生成后续标号改一处就能同步更新非常省事。2.3 原理图优化怎么算一张“好”原理图“原理图优化”这个概念听起来有点虚但放在实战里非常具体。我认为一张好的原理图至少要满足两个层面电气正确性和可读性。电气正确性靠的是编译检查。画完原理图后必须执行“Project → Compile Document”进行编译查看“Messages”面板里的ERC电气规则检查报错。常见的报错类型包括未连接的引脚、同名网络在不同页面的定义冲突、输出引脚直接连接电源、单端网络未接负载等。我的习惯是把“Error”级别的报错全部清零才进入下一步而“Warning”可以暂时忽略但要确认每一条都看得懂、知道原因。可读性则体现在信息传达上。我对自己有个要求这张原理图拿给没参与这个项目的同事看他能否在十分钟内搞清楚整个系统的工作原理如果不行说明原理图还需要优化。比如说信号流向要尽量从左到右布局输入端在左输出端在右电源在上地在下每个功能模块周围要加虚线框并标注模块名称关键参数比如电容容值、运放增益电阻比例要在原理图上以文本注释形式直接标出来不要只写在计算书里。这里顺便分享一个实用技巧在AD19的“Properties”面板里给每个关键模块添加“Comment”注释比如“这是一级放大电路增益为10倍”“低通滤波器截止频率约100Hz”。这些注释不只是给人看的后期生成BOM和设计报告时也会自动带出来省去不少整理文档的时间。原理图优化做完编译零错误、信息完整清晰就可以进入PCB设计阶段了。3. PCB设计与布线实操把图纸变成真实物理板子3.1 从原理图到PCB先过三道关从原理图切换到PCB设计界面只需要在菜单里执行“Design → Update PCB Document”但真正落到板子上的时候我会先做三件准备工作。第一道关检查封装完整性。执行“Update”之前先回到原理图逐个检查“PCB封装是否指定”“封装的引脚号和原理图符号的引脚是否一一对应”。很多新手容易在这里翻车比如一个三极管的原理图引脚顺序是B、C、E但封装库里的封装引脚顺序是E、B、C导入后看起来所有信号都连上了实际板子上却完全接错。AD19里可以通过“Footprint Compare”功能快速对比原理图符号和封装库的引脚映射这一步一定要做。第二道关规划板框。在“Mechanical 1”层用布线工具画出精确的板框这个板框就是PCB的外形轮廓也是后续布局布线的物理边界。我习惯先用“Place → Line”按照尺寸坐标画出闭合轮廓再用编辑器统一设置板框属性为“Board Outline”。如果项目有外壳约束这一步要精确到0.1毫米不能图省事随便画一个大矩形。第三道关层叠规划。打开“Design → Layer Stack Manager”根据项目需求确定是两层板还是四层板。这个信号采集板项目X对信号质量要求比较高我用了四层板Top层铺信号GND层做完整地平面PWR层走电源Bottom层再走一部分信号和少量布线。层叠设置的关键在于层间距和阻抗匹配。四层板的典型层间距结构是“Top信号层 → 介质层 → GND → 芯板 → PWR → 介质层 → Bottom”每一层之间的介质厚度决定了参考层的阻抗。如果要做差分信号或高速信号需要在“Layer Stack Manager”里按目标阻抗反推线宽和介质厚度这个后文仿真部分会详细展开。3.2 布局阶段的几条硬规矩布局是整个PCB设计中最能体现设计经验差异的环节。同样一份原理图不同的人布出来完全是两种板子。我总结了几条自己一直在遵守的布局规矩。按功能模块分区布局。把同一个功能模块的元器件放在一个区域内电源模块放在板子一侧主控放在板子中央或接口附近模拟信号调理电路尽量远离开关电源和数字部分。这个分区在原理图阶段其实就已经决定了——我当时分页画的四大模块在PCB布局时就直接对应四个物理区域。关键器件的位置有优先级。其中最重要的一条是去耦电容必须挨着对应芯片的电源引脚距离越近越好一般控制在2毫米以内。如果空间实在紧张至少保证电容的过孔和芯片电源引脚通过短粗的线连接而不是绕过半个板子再接过去。另外晶振和时钟电路要尽量靠近主控芯片的时钟输入引脚并在晶振下方保留一个完整的地平面不要走其他信号线穿过。接插件和对外接口布置在板边方便插拔接线端子方向与外壳开孔方向保持一致。还有一条关于散热和机械强度的经验发热大的器件比如电源稳压器周围要留出足够的空间并且避免在它正面的L形路径上布置小信号电容较重或者较高的器件比如电感、接插件座子尽量分散布置不要集中在板子一角否则焊接和装配时容易导致板子变形。布局完成后先不要急着布线打开“View → Board Insight”功能进行3D预览从正面、背面、侧面分别看一下器件高度是否冲突、外壳是否干涉、维修空间是否足够。这一步花5分钟能避免后面打样回来装不进壳子的惨剧。3.3 布线规则设定与实操顺序布线是整个PCB设计阶段花费时间最多的环节没有之一。在AD19里“布线”不只是鼠标拉着线走更重要的是在布线之前先把规则定好。规则设置在“Design → Rules”里完成常见的三类规则是线宽、间距、过孔。我这块板子的默认规则是最小间距0.2毫米普通信号线宽0.25毫米约10mil电源线宽0.5毫米约20milGND走线0.8毫米过孔采用外径0.6毫米、内径0.3毫米的规格。具体数值不是拍脑袋定的而是在算完电流之后按铜箔载流能力和板厂工艺能力综合确定的。举个例子这块板子的5V电源最大电流约0.5A按照1盎司铜厚、温升不超过10摄氏度的经验值走线宽度至少需要0.35毫米所以我把电源线宽定到0.5毫米保留充足裕量。规则的设定可以在“Net Class”级别统一管理。我在原理图阶段就定义了“POWER”网络类别把5V和3V3网络加入进去然后在PCB规则“Width”里单独给“POWER”类设置20mil的线宽其他网络保持默认。这样布线时就不用每根线去手动改线宽大大提升了布线的效率。布线顺序也很关键。我的顺序永远是先布敏感信号再布电源最后处理地线。在模拟信号调理这块输入信号、反馈网络、输出输出的布线要尽量短且直不要与数字信号线平行长距离走线避免耦合噪声。电源线尽量用粗短线连接每个电源引脚优先使用星形拓扑连接到主滤波电容的焊盘上而不是串联式地一根线串过多个芯片。差分信号如果存在比如RS485总线要使用“Route → Differential Pair Routing”功能设置好差分规则如等长误差、距离约束让软件自动帮你保证两条线对称、等长。这比手动一对一对去调整快得多。铺铜是整个布线环节的收尾动作。我一般在所有网络布线完成后在Bottom层或PWR层做整板地铜皮铺铜距离边框留0.5毫米的安全距离。如果模拟地和数字地在原理图上做了分割这里就要注意铺铜区域也要按分割方式进行分区不要混成一块具体做法是分别选中两个网络对应的区域用“Place → Polygon Pour”分别处理然后通过一个指定位置的单点连接器或0欧电阻把它们连起来。3.4 泪滴、丝印和DRC检查布线完成后还有三道小工序很多人会忽略但工程上很实用。第一道是泪滴Teardrops。“Tools → Teardrops”为焊盘和过孔添加泪滴过渡这样做的好处有两个一是增强焊盘和走线的连接强度防止钻孔时铜皮断裂二是减少高速信号在过孔处的阻抗突变。我通常对所有的过孔和贴片焊盘都添加泪滴选“All Pads”加“All Vias”模式然后让软件自动执行。第二道是丝印整理。丝印出现重叠、方向混乱、被焊盘压住这些问题在电路功能上没有影响但会实打实影响焊接和调试效率。正确做法是把位号字体统一设为1mm左右放在器件旁边空白处而非器件本体上标注电源极性、接口编号、跳线默认状态等关键信息把丝印放在Top Overlay层并保证不和其他丝印或焊盘重叠。第三道是完整体检DRC。在“Design → Rule Check”里勾选所有规则项目运行“Run Design Rule Check”然后逐条处理报告中的Error和Warning。很多新手遇到DRC报错的第一反应是直接忽略这其实是埋雷。我见过最典型的例子是板子把0.2毫米间距规则漏在了一个高压网络旁边最终贴片回来部分焊盘间距过近导致焊接桥连。DRC是为数不多的、完全由机器替你把关的环节请一定认真对待。4. 电路仿真验证别再靠“感觉”判断4.1 AD19到底能仿真什么Altium Designer包含的电路仿真工具是Mixed-SIM混合信号仿真器支持瞬态分析、交流小信号分析、直流扫描、参数扫描等多种仿真类型。对于这个信号采集板项目X我的核心仿真需求主要包括三个方面验证前级滤波器的频率响应、验证运放电路工作点是否正确、验证电源在上电瞬态时的过冲是否在安全范围内。这里需要强调一点AD19的仿真并不是全能的它本质上是基于SPICE引擎的通用电路仿真最适合的是“有明确电路结构的模拟与混合信号电路”。它也能对数字逻辑电路做简单的时序仿真但对于复杂的微控制器级、嵌入式软件级验证那就超出了仿真工具的使用边界不是它该负责的工作范畴。仿真模型从哪来这是很多初学者卡住的地方。最可靠的方式是在选型阶段直接确认模型来源运放、稳压器、基准源这类模拟器件厂商官方一般会提供SPICE模型或Pspice模型下载后导入AD19的仿真库即可。逻辑芯片和MCU一类很多在AD的默认库中并不包含完整的仿真模型我的建议是没有仿真模型就不强行仿真这类器件可以通过在原理图上合理配置电源和去耦电容来确保硬件正确性主功能验证放到真实硬件阶段完成。4.2 一次完整的瞬态仿真实操以这个采集板上的运放滤波电路为例讲解AD19中运行一次仿真的完整流程。先在原理图上确保需要仿真的器件都已挂载仿真模型。运放和电阻电容这些无源器件如果是集成库里的标准器件一般会自带仿真模型如果我的库里没有对应型号我会在“Library”面板里手动指定一个参数接近的模型并手动配置电阻电容的仿真属性按默认值即可。然后添加仿真源。执行“Design → Simulate → Mixed Sim”在打开的仿真配置窗口里我们需要设置用于输入的激励源。对滤波器做频率响应分析时选择“AC Source”并设置“AC Amplitude”为1V对上电过程做瞬态分析时可以使用“Voltage Source”来模拟电源电压的阶跃变化。接下来设置仿真类型。在“Simulation Dashboard”中选择“Transient Analysis”设置“Start Time0s”“Stop Time10ms”“Maximum Time Step”设置为时间窗口的百分之一量级比如100us。步长选太大波形会失真选太小仿真时间过长这个数值可以多做几次比较。然后选择要观测的节点比如在原理图上放置仿真“Voltage Probe”在运放输出引脚和滤波器输入引脚点击“Run”启动仿真。仿真结束后在波形窗口里可以查看两个探针的电压波形。我通常在瞬态波形上检查三件事一是运放输出有没有明显的过冲或振铃二是建立时间能否满足后续主控ADC的采样要求三是增益是否与理论计算一致。比如这个项目X的放大器理论上增益应为10倍如果仿真输出显示峰值为10V而输入只有1V那就要回头检查增益电阻的取值。在AD19里还支持参数扫描Parameter Sweep这个功能很实用。我用来分析滤波电容容值变化对截止频率的影响将电容值从10nF按步长扫到100nF一次性得到一组不同曲线方便观察电容容值精度对滤波效果的影响。需要注意的是参数扫描会让仿真时间成倍增长所以扫参对象的数量不要太多每次保持在一个元件上最好。4.3 PCB级的信号完整性分析电路板布完线之后还有一个必要的验证环节信号完整性分析。AD19内置的“Signal Integrity”分析器可以用来分析反射、振铃、串扰等传输线效应前提是设计规则里已经对信号网络做了正确的阻抗设置。这块采集板项目X的串口通信波特率不高普通的信号完整性压力不大但模拟输入信号对噪声比较敏感。我重点检查的是运放输出到主控ADC引脚的这段走线采用默认阻抗计算模式仿真该网络的反射曲线和波形确认信号到达ADC引脚时没有因为阻抗失配出现明显过冲。如果发现反射大就要回到PCB调整走线宽度或者调整源端串联匹配电阻的阻值。这里插一句很多工程师误以为信号完整性分析是高速数字电路专属工具低速电路用不上。其实对于模拟信号采集电路走线引入的寄生电容和电感同样会改变信号的实际波形。AD19的“Signal Integrity”对低速模拟电路虽然不是精确的场仿真但它提供的趋势判断和相对优化方向是非常有价值的。至少能帮你把“线宽差0.1毫米可能带来的影响”从完全没概念变成心里有数。5. 试产前的最终检查与常见问题速查5.1 输出生产文件前的准备动作仿真验证通过后我不急着立刻下单打样会先做一套“出货检查清单”这是整个流程里最容易失控的环节也是最容易被新手跳过的环节。清单的第一项是核对BOM。在AD19里通过“Reports → Bill of Materials”生成BOM表仔细核对型号描述、封装规格、位号数量和采购状态。我最关心的项目是那些“看起来一样但封装完全不同的电容电阻”比如0603和0805的阻值一样但是封装不同BOM里如果混了贴片机就会出事故。第二项是生成Gerber文件。执行“File → Fabrication Outputs → Gerber Files”在“General”选项卡里选择格式RS-274-X单位选毫米精度选2:5即2位整数、5位小数的坐标精度保证板厂能精确识别。然后勾选所有需要的输出层Top Layer、Bottom Layer、Top Overlay、Bottom Overlay、Top Solder、Bottom Solder、Top Paste、Bottom Paste、GND层和PWR层按实际需求输出。顶层丝印、阻焊开窗都要单独确认是否包含。第三项是钻孔文件。AD19的“NC Drill Files”输出的是Excellon格式务必确认“Drill Optimization”和“Drill Table”设置正确。如果板上有盲埋孔还需要额外检查“Drill Drawing”层是否有对应的钻孔图以便板厂核验。第四项是生成装配图和PDF归档。装配图Assembly Drawing输出顶层和底层的元件放置位置图这部分主要用于产线焊接时核对器件极性。PDF归档方便后续审阅和留档也可以直接发给同事快速检查连接器位置和丝印标注。最后在实际提交板厂之前我推荐使用“CAM Editor”打开输出后的Gerber文件在可视环境下做一次目视审核重点查看每层图形是否完整、丝印是否错乱、钻孔位置和焊盘是否对齐。这一步相当于自己先替板厂检验一遍文件能过滤掉绝大多数低级错误。5.2 常见问题速查表在多次实操中我积累了一些典型的坑和对应的排查思路整理成速查表如下供大家参考。现象可能原因排查与解决方案原理图编译报大量引脚未连接错误器件引脚属性设置不对或网络标签名称不一致检查元件库引脚编号和网络标签拼写统一命名规范导入PCB后器件全部飞线但无法布局封装缺失或封装与原理图引脚不匹配回到原理图检查每个器件的Footprint属性用Footprint Compare做比对布好的电源线在DRC后报线宽错误网络类别未正确分配到POWER类或规则优先级错乱在规则“Where the first object matches”里的“Net Class”选项中检查是否选择了正确的网络类别仿真运行时提示“No model found”器件没有挂载仿真模型到器件属性里手动添加SPICE模型或更换为库中带模型的等效器件铺铜区域出现孤岛Islands地平面被分割成多个不连续区域在Polygon Pour设置中勾选“Remove Islands”并调整铺铜优先级Gerber文件在板厂反馈无法打开格式选择错误或输出层不全确认为RS-274-X格式并确认钻孔文件已单独输出为Excellon运放输出电压是理论值一半可能是分压电阻配置错误或运放模型参数不对核对增益电阻比值并在仿真中确认信号源内阻带来的额外分压除了上表提到的技术问题我还想特别提醒一个管理层面的问题多人协作时的文件版本管理。AD19本身不提供云端协同功能但在项目文件较大、版本迭代频繁时非常容易出现“以为改了最新版结果打开的是旧文件”的情况。我的建议是每次大改之前在“Project → Save As”里把当前版本和日期写入工程名比如“SignalBoard_V2_0305”并用SVN或者云盘备份整个项目文件夹。这比出问题之后再从回收站里翻旧文件要靠谱得多。在这套流程走下来之后我已经把这块信号采集板项目X的原理图、PCB、仿真验证和生产文件全部落实完整。总结一下我个人体会最深的三点第一原理图阶段不要赶时间把库、规则、模型都准备好后面每一步都会顺畅第二仿真工具的价值不在于替代实际硬件调试而是帮你把“猜测”变成“已知”尤其在电源设计出错时能省下不少调试时间第三DRC和CAM检查不是走过场它们是你交板前最后的防线。最后再分享一个小技巧AD19的快捷键“ShiftS”可以快速切换单层显示模式我在布线和检查时几乎全程开着它。在一层一层看问题的时候那种“眼睛只盯着这一层其他信息全部隐去”的专注感能让你的布局布线和检查效率提升一大截。这个细节工具书里不会单独写但实际用过几次之后就再也离不开了。