1. 项目概述:从规则到走线,AD20 PCB设计的核心实践
最近在论坛和群里,看到不少朋友在讨论Altium Designer 20(简称AD20)的PCB设计,特别是关于设计规则的设置和手工布线这两个核心环节。很多人觉得规则设置太繁琐,或者手工布线时总感觉不顺手,出来的板子要么DRC(设计规则检查)报错一大堆,要么电气性能和美观度总差那么点意思。这其实非常正常,PCB设计本身就是一门平衡的艺术,需要在电气规则、物理限制、生产工艺和设计效率之间找到最佳结合点。AD20作为一款功能强大的主流EDA工具,提供了极其细致的设计规则系统,但能否用好它,直接决定了你设计的板子是“能工作”还是“优秀可靠”。
我自己在从AD09、AD16一路用到现在的AD20,踩过不少坑,也总结了一些心得。这次就想围绕“设计规则设置”和“手工布线”这两个主题,结合AD20的一些新特性和实用技巧,和大家深入聊聊。无论你是正在学习的学生,还是刚开始接触硬件设计的工程师,希望这篇笔记能帮你建立起清晰、高效的PCB设计工作流,避免一些常见的“坑”,让设计过程更顺畅,设计结果更专业。我们不止要“连通”,更要追求性能、可靠性与可制造性的统一。
2. PCB设计规则系统深度解析与配置策略
设计规则(Design Rules)是PCB设计的“宪法”,它定义了电路中所有元素(如导线、过孔、焊盘、铜皮)之间以及它们与板框等物理对象之间必须遵守的间距、尺寸等约束条件。在AD20中,规则系统更为强大和直观,但初次面对密密麻麻的规则树,很容易让人不知所措。合理的规则设置,是高效、正确完成布线的前提。
2.1 规则分类与核心规则详解
AD20的设计规则管理器(Design -> Rules)将规则分为多个类别。对于大部分板卡设计,我们需要重点关注以下几类:
1. Electrical(电气规则):这是保证电路正确工作的基础。
- Clearance(安全间距规则):这是最重要的规则之一,定义了不同网络、相同网络的不同对象之间的最小间隔。设置不合理会导致短路或耐压不足。
- 设置逻辑:通常设置一个全局默认值(如6mil或0.15mm)。对于高压、大电流部分,需要单独创建规则,设置更大的间距(如电源网络之间设置20mil)。在AD20中,可以利用“查询构建器”(Query Builder)或直接输入查询语句(如
InNet('VCC'))来精准定位需要特殊规则的对象。 - 避坑技巧:注意区分“Different Nets Only”(仅不同网络)和“Same Net Only”(仅相同网络)的选项。对于相同网络,过孔和焊盘、导线和焊盘之间的间距可以设置得更小,甚至为0,以方便连接。
- 设置逻辑:通常设置一个全局默认值(如6mil或0.15mm)。对于高压、大电流部分,需要单独创建规则,设置更大的间距(如电源网络之间设置20mil)。在AD20中,可以利用“查询构建器”(Query Builder)或直接输入查询语句(如
2. Routing(布线规则):
- Width(导线宽度规则):定义不同网络导线的宽度。电流大小决定线宽,可以参考IPC-2152标准或在线线宽计算器。
- 实操设置:为电源网络(如VCC、GND)设置较宽的线宽(如20-40mil),为信号网络设置默认线宽(如6-10mil)。AD20支持设置最小、首选、最大宽度,布线时会首选“首选宽度”。
- 经验之谈:对于数字信号线(如时钟、数据线),在空间允许的情况下,适当加宽(如8-12mil)可以降低阻抗,提高可靠性,但要注意与间距规则的平衡。
- Routing Via Style(过孔样式规则):定义过孔的尺寸。过孔孔径(Hole Size)和焊盘直径(Diameter)需要根据板厂工艺能力和电流需求确定。
- 常用尺寸:普通信号过孔常用8mil/16mil(孔径/焊盘直径)。电源过孔需要更大,如12mil/24mil或更大。务必咨询PCB板厂的“工艺能力表”,确保你的过孔尺寸在其生产能力范围内。
3. Manufacturing(制造规则):
- Hole To Hole Clearance(孔到孔间距):防止钻孔时钻头打滑导致孔壁破损。一般设置为板厂要求的最小值(如8mil)。
- Minimum Solder Mask Sliver(阻焊桥最小宽度):防止阻焊油墨在焊盘之间过细而断裂。通常设为3-4mil。
- Silkscreen Over Component Pads(丝印与焊盘间距):防止丝印印到焊盘上影响焊接。通常设为2mil以上。
4. High Speed(高速规则,如有需要):
- Matched Net Lengths(等长线规则):用于DDR、高速差分线等需要时序匹配的场景。这是AD20的强项,可以设置目标长度和公差。
- Differential Pairs Routing(差分对布线规则):定义差分线的线宽、间距和耦合方式。必须优先设置好差分对标识,规则才能生效。
重要提示:规则设置不是一次性的工作。建议在项目初期设置一个基础规则模板,在布局布线过程中,根据实际情况(如遇到瓶颈、发现新的电气需求)随时返回规则管理器进行微调和优化。养成“规则驱动设计”的习惯。
2.2 规则优先级与查询语句的灵活应用
AD20的规则应用遵循优先级(Priority)机制。当同一个对象被多条规则覆盖时,优先级数字小的规则(通常1为最高)生效。这给了我们极大的灵活性。
场景举例:你有一个默认的线宽规则(10mil),但希望VCC网络用30mil,VCC网络中的一个特定芯片的电源引脚(比如U1的第8脚)因为出线空间狭窄,暂时需要用15mil引出。
- 创建规则
Rule1:名称“Power_Main”, 查询语句InNet('VCC'), 宽度设为30mil, 优先级设为1。 - 创建规则
Rule2:名称“Power_U1_Pin8”, 查询语句InNet('VCC') And (Pad = 'U1-8'), 宽度设为15mil, 优先级设为2(比1低)。 - 默认线宽规则优先级设为3。
这样,U1-8这个焊盘会优先应用15mil的规则,VCC网络的其他部分应用30mil的规则,其他所有网络应用10mil的默认规则。熟练掌握查询语句(支持And,Or,Not等逻辑运算符和对象属性),可以实现像素级精准的规则控制。
常用查询语句示例:
InNet('GND'): 应用于GND网络。IsTrack And (Width < 8mil): 查找所有线宽小于8mil的导线。OnLayer('Top Layer'): 应用于顶层对象。(ObjectKind = 'Via') And (HoleSize > 20mil): 查找所有孔径大于20mil的过孔。
3. 手工布线的核心思想、技巧与AD20高效操作
设置好规则,就像是修路前画好了车道线和交通法规。手工布线则是驾驶汽车,将这些“道路”实际修建起来的过程。它不仅是简单的连接,更是优化信号完整性、电源完整性和EMC性能的关键阶段。
3.1 布线前的核心准备:布局优化与扇出处理
布局是布线之母。一个糟糕的布局会让布线变得极其困难甚至不可能。在动手布线前,务必反复审视和优化布局。
- 模块化布局:将功能相关的电路(如MCU及其外围、电源模块、接口电路)聚集在一起,模块内部优先连接,再处理模块间的互连。
- 关键路径优先:优先放置和连接关键器件和线路,如晶振、复位电路、高速信号线、电源路径。
- 预留布线通道:在器件之间留出足够的空间供导线通过,避免后期“见缝插针”导致线绕远或间距不足。
扇出(Fanout)处理:特别是对于BGA、QFN等密集封装芯片,在布线初期,需要先将其引脚用短导线引出,并打上过孔,将信号引到内层或其他层。这个过程就是扇出。
- AD20技巧:可以使用“交互式扇出”(
Tools -> Fanout -> Component)功能,让软件自动为选中的元件进行扇出,然后再手动调整不满意的部分。对于BGA,采用“狗骨头式”(Dog-bone)或“盘中孔”(Via-in-Pad)扇出是常见策略,需要根据板厂工艺决定。
3.2 交互式布线与快捷键的极致运用
AD20的交互式布线(Place -> Interactive Routing或快捷键P -> T)非常智能,是手工布线的核心工具。
- 智能推挤与绕行:在布线模式下,当遇到已有走线或障碍物时,按
Shift+R可以循环切换推挤模式(Push)、绕行模式(Walkaround)和忽略模式(Ignore)。在拥挤区域,“推挤”模式非常有用,但可能影响已有布线;“绕行”模式更安全。根据场景灵活切换。 - 动态布线优化:布下一段线后,可以拖动线段或顶点进行优化。按住
Ctrl键拖动线段,可以保持角度进行移动。 - 多线并布:对于需要保持等间距的一组线(如总线),可以使用“多根导线布线”(
Place -> Interactive Multi-Routing),一次性布多根线,极大提高效率并保证间距一致。 - 快捷键是效率的灵魂:
*(小键盘):在布线过程中切换层,并自动添加过孔。这是最常用的快捷键之一。2:在布线过程中添加一个过孔(根据规则),但不换层。Shift+Space:循环切换走线角度模式(45度、90度、任意角度、圆弧)。Space:在45度和90度模式时,切换走线方向。Ctrl+Click:在已完成布线的网络上单击,可以高亮整个网络,方便检查。Tab键:在放置对象(导线、过孔、器件)时,按Tab键可以调出其属性框,进行实时参数修改。
3.3 电源与地线的处理艺术
电源和地线承载大电流,需要低阻抗路径,同时也是噪声耦合的主要渠道,需要特别处理。
- 加粗处理:严格按照电流计算和规则设置,对电源主线进行加粗。不要仅仅依赖自动布线或默认线宽。
- 电源平面优先:对于多层板,尽可能为主要的电源和地分配完整的内部层(平面层)。利用平面层极低的阻抗特性为芯片供电。在AD20中,可以通过“内电层分割”(
Place -> Polygon Pour -> Split Plane)来在一个电源层上分配多个电压网络。 - 星型连接与单点接地:对于模拟电路或混合电路,避免电源/地线形成环路。采用星型拓扑或单点接地,将噪声敏感电路的回流路径分开。这需要在布局阶段就规划好。
- 电源滤波电容的摆放:“就近原则”是铁律。去耦电容必须尽可能靠近芯片的电源引脚放置,其接地端到芯片地引脚的路径也要尽可能短,以形成最小的环路面积。理想情况是电容直接在芯片背面(对于贴片芯片)。
3.4 差分对与高速信号布线要点
对于USB、HDMI、DDR数据线等差分信号或高速信号,布线要求更为苛刻。
- 差分对布线:在原理图中将两根线定义为差分对(
Place -> Directives -> Differential Pair),并导入PCB。布线时使用Place -> Interactive Differential Pair Routing(快捷键P -> I)。- 等长与等距:布线过程中要尽量保持两根线平行、等长、等间距。AD20的差分对布线器会自动辅助。
- 避免过孔:尽量减少过孔,如果必须打孔,应两个信号线对称打孔。
- 参考平面连续:差分线下方必须有一个完整、无分割的参考平面(通常是地平面),且不要跨平面分割区。
- 等长布线:对于需要时序匹配的多根线(如DDR的地址/控制线组,数据线组),使用“等长布线”功能(
Route -> Interactive Length Tuning或U -> L)。- 策略:先大致连接所有线,然后运行“等长”命令,通过添加蛇形线(Accordion、Trombone、Sawtooth等样式)来补偿较短的线路,使其长度落在目标范围内。调整时注意蛇形线的振幅(Amplitude)和间距(Gap)要符合规则,一般间距≥3倍线宽。
4. 布线后的关键收尾:检查、优化与生产文件输出
布线完成,并不意味着设计结束。严谨的检查和优化是保证设计成功投产的最后关卡。
4.1 设计规则检查与电气连通性验证
- 运行DRC:执行
Tools -> Design Rule Check。仔细查看每一项报错(Violations)。不要忽略任何警告,必须理解每一个错误产生的原因并决定是修改设计还是忽略(如果是误报,可能需要调整规则)。常见的DRC错误包括间距不足、线宽违规、丝印上焊盘等。 - 飞线检查:确保PCB视图上没有任何飞线(ratsnest)残留。快捷键
N -> H可以显示/隐藏所有连接线。如果还有飞线,说明有网络未完全连接。 - 3D视图检查:使用
View -> 3D Layout Mode(快捷键3)查看板子的三维效果。这是检查器件之间、器件与外壳之间是否存在机械干涉的绝佳方式。也可以检查焊盘、过孔的盖油情况。
4.2 铺铜与优化
铺铜(Polygon Pour)主要用于提供大面积的接地、电源连接,并起到屏蔽和散热的作用。
- 铺铜设置:
Place -> Polygon Pour。关键设置:- 网络(Net):通常连接到GND。
- 铺铜样式(Pour Over):“All Same Net Objects”会覆盖所有同网络的焊盘和导线;“Don‘t Pour Over Same Net Objects”则只填充空白区域,通过“十字花焊盘”(Thermal Relief)连接,便于焊接散热。
- 移除死铜(Remove Dead Copper):一定要勾选,移除没有电气连接的孤立铜皮。
- 铺铜优化:铺铜后,边缘可能会产生很多尖锐的毛刺(Antenna),这些是潜在的EMI辐射源。可以使用
Tools -> Polygon Pours -> Polygon Manager中的“重铺”功能,或者手动用“铺铜修整”(Place -> Polygon Pour Cutout)和“导线”工具对铺铜边界进行平滑修整。 - 与走线的间距:确保铺铜与信号线之间有足够的间距(通常等于或大于线-线间距),防止电容耦合。这通过Clearance规则控制。
4.3 生产文件(Gerber)输出详解
这是将设计交付给PCB板厂的最终步骤,必须准确无误。
生成Gerber文件:
File -> Fabrication Outputs -> Gerber Files。- Layers标签页:选择“Plot Layers”为“Used On”,并勾选所有用到的机械层、丝印层、阻焊层、锡膏层等。在“Mirror Layers”中通常不勾选。
- Drill Drawing标签页:生成钻孔图。
- Apertures标签页:保持“Embedded apertures (RS274X)”被选中,这是现代标准。
- Advanced标签页:在“Leading/Trailing Zeroes”中选择“Suppress leading zeroes”(抑制前导零),这是国内板厂通用格式。其他保持默认。
- 点击“OK”生成
.Gx文件。
生成钻孔文件:
File -> Fabrication Outputs -> NC Drill Files。- 格式设置与Gerber文件保持一致(如单位、前导零)。
- 点击“OK”生成
.TXT和.DRR文件。
文件打包与检查:将输出的所有Gerber文件(
.GTL,.GBL,.GTO,.GBO,.GTS,.GBS,.GTP,.GBP,.GMx等)和钻孔文件(.TXT)打包成一个ZIP文件。强烈建议使用免费的第三方Gerber查看器(如GC-Prevue、Gerbv或在线查看器)打开这个ZIP包,从板厂的角度检查每一层是否正确无误,确认没有缺失层、层错位、孔径错误等问题。
5. 常见问题排查与实战心得记录
在实际操作中,总会遇到一些“奇怪”的问题。这里记录一些典型场景和解决方法。
5.1 布线与规则相关的典型问题
- 问题:明明空间足够,但就是无法按照设定的线宽布线,软件自动变细。
- 排查:检查当前布线的网络是否被多条线宽规则覆盖,且优先级更高的规则设置了更小的线宽。检查布线层(Layer)的线宽规则是否被单独设置。使用
PCB Rules and Violations面板(Panels菜单下)高亮显示规则应用情况。
- 排查:检查当前布线的网络是否被多条线宽规则覆盖,且优先级更高的规则设置了更小的线宽。检查布线层(Layer)的线宽规则是否被单独设置。使用
- 问题:差分对布线时,两根线无法保持等间距,或者无法一起推挤。
- 排查:首先确认原理图中的差分对标识已正确导入PCB(在PCB中
Design -> Classes里查看Differential Pair Classes)。其次,检查差分对布线规则(Differential Pairs Routing)中的“Min Gap”、“Max Gap”和“Preferred Gap”是否设置正确且未被其他更高优先级的Clearance规则覆盖。
- 排查:首先确认原理图中的差分对标识已正确导入PCB(在PCB中
- 问题:铺铜后,某些信号线周围的铺铜被“掏空”得厉害,或者与铺铜的间距忽大忽小。
- 排查:这是铺铜的“孤岛检测”和“避让”算法导致的。可以尝试调整铺铜的“Grid Size”和“Track Width”值(在铺铜属性中),将其设置得更小(如Grid=2mil, Track=4mil),这样铺铜的边缘会更平滑,避让更精确,但会增大文件大小和重铺时间。也可以手动放置“铺铜修整”区域来引导铺铜形状。
5.2 性能与操作优化心得
- 卡顿问题:处理大板子或高密度设计时,AD20可能会卡顿。除了升级硬件,可以尝试:关闭在线DRC(
Tools -> Design Rule Check,取消勾选“Online”);在铺铜管理器中将复杂铺铜的“重建模式”改为“手动”;分层显示,暂时隐藏不操作的层(Shift+S切换单层模式)。 - 模板与复用:将常用的规则设置(如6层板通用规则)、层叠结构、图纸模板保存为
.PcbDoc或.PcbLib文件,在新项目开始时直接调用,可以节省大量重复劳动。 - 版本管理:PCB设计文件也应纳入版本管理(如Git)。AD20的本地历史记录功能有限。建议定期使用“智能PDF”输出功能(
File -> Smart PDF)生成带原理图和PCB视图的文档,作为设计快照存档。
手工布线是一项需要耐心和经验积累的技能。没有绝对“正确”的走线,只有更“优”的方案。最好的学习方法就是多动手,从简单的双面板开始,遇到问题就查阅资料、思考规则、尝试调整。每一次解决DRC报错,每一次优化出一条简洁漂亮的走线,每一次看到自己设计的板子成功上电运行,都是对这项技能最好的巩固和奖励。记住,规则是你的护栏,经验是你的导航,而耐心则是抵达终点的燃料。