Allegro 17.4 的布局操作,是个"看着简单、上手就卡"的活儿。刚装完软件、导完网表,兴冲冲按下移动命令去拖一个电阻,结果鼠标点上去纹丝不动;好不容易拖动了,松手一看器件跑到了板框外面两公里;再想旋转个 90 度,转完发现 1 脚朝里了。这些坑我全都踩过,而且不止一次。这篇就专门讲 Allegro 17.4 布局操作的基础部分——也就是从网表导入完成到器件基本摆位这一段。不聊高深的仿真和约束,只讲"怎么把器件稳稳当当地放到该放的位置",适合刚开始用 Allegro 做 PCB 的硬件工程师、刚转工具的老手,以及手里有块板子急需赶进度的人。
我看过太多人把布局当成"把器件摆整齐"的排布工作,结果摆完一布线上百根飞线交叉成麻花,只能推倒重来。Allegro 17.4 的布局逻辑跟 Altium、PADS 都不太一样,它把"命令、过滤器、选项、栅格"四个东西拆开让你自己组合,自由度极高,代价就是新手很容易在某个开关上卡半天。下面我按实际操作的顺序,把这一关卡拆开讲透。
1. 布局这一步,到底在解决什么问题
1.1 布局不是"摆好看",是把电路意图物理化
很多新手对布局的理解停留在"别重叠、别超出板框"。实际上布局决定的事情远比这多:它决定了后续布线能不能走通、电源回路面积有多大、时钟信号会不会被干扰、板子发热是否均匀、SMT 贴片和插件装配时会不会打架。举个很典型的例子,一颗 0.1uF 的退耦电容,你把它放在芯片电源脚旁边 1mm 处和放在板子另一头,电气原理图上一模一样,但实际工作时的电源纹波可能差一个数量级。原理图只描述"谁连谁",布局才描述"连得多近、走哪条路"。
所以判断一次布局好不好,有一个很朴素的指标:看飞线(Ratsnest)的交叉程度。飞线是网表在物理空间的投影,飞线交叉越少、越短、越顺,说明你的布局越接近最优。这个指标虽然粗糙,但极其好用,尤其是刚接手一块新板子的时候,先把飞线打开,凭直觉把"明显该靠在一起的器件"拉到一起,飞线立刻就会松一大截。我个人的习惯是先把飞线打开再开始摆放,边摆边看飞线的收缩情况,比闭着眼睛按模块摆效率高得多。
还有一点必须提前想清楚:布局是有"硬边界"的。结构工程师给的板框、定位孔、连接器出线方向、按键和屏幕的位置、散热器的高度限制,这些都是不可协商的约束。这些约束在原理图阶段看不见,但到了 PCB 阶段全部变成物理现实。Allegro 里通常把这些画在 Board Geometry / Outline、Package Geometry / Place_Bound 这几个子层上,布局前一定要先看一眼,否则摆到一半发现挡住了螺丝孔,返工量极大。
1.2 Allegro 的四层操作逻辑:命令、Find、Options、栅格
这是整篇最关键的一节。Allegro 的操作模型跟大多数 EDA 工具不一样,它不是"选中—操作"的直线流程,而是四个要素协同:你执行了什么命令、Find 过滤器允许命令作用于哪些对象、Options 面板里命令的具体行为参数、当前生效的栅格。任何一个要素不对,表现出来都是"命令没反应"或者"操作结果跟预期不符"。
举个最常见的例子:你执行了移动命令,鼠标点在一个电阻上,它不动。原因大概率是 Find 面板里只勾了 Text 没勾 Symbols,Allegro 认为你根本不想移动器件。再比如你能选中器件了,但拖到目标位置一松手它就弹回原处,那多半是器件的放置抓取点(Options 里的 Point 设置)设成了 User Pick,而你每次点的地方不在抓取逻辑内,吸附到栅格后又跑偏了。
注意:Allegro 里的命令执行完必须用右键 Done 或者按 F2 结束,然后才能执行下一个命令。很多人卡住是因为上一个命令没结束,软件仍然认为你在移动,这时候点任何东西都是在移动那个器件。养成"用完就 Done"的习惯,能省掉一半的困惑。
把这四要素记住,遇到任何 Allegro 操作问题都可以按这个顺序排查:命令对不对、Find 勾没勾、Options 参数合不合理、栅格是不是太粗。这套排查思路我会在第 5 章结合具体案例再展开。
2. 动手之前必须做完的几件事
2.1 网表导入与封装完整性自检
布局的物质基础是器件,器件的来源是网表。Allegro 导入网表的路径是 File > Import > Logic,选择网表目录(通常是 OrCAD Capture 或第三方工具导出的 allegro 文件夹),确认后再看导入日志 netrev.lst。这个 log 是唯一可信的判断依据,不要凭界面没报错就认为导入成功了。
日志里重点看三类信息:一是 Errors,任何 errors 都必须解决,常见的是封装名找不到(Symbol not found)、引脚号对不上(Pin number mismatch)、器件前缀在 device 文件里没有定义;二是 Warnings,比如某个器件没有 Part Number,一般不致命但要确认;三是导入的器件总数、网络总数,跟你原理图里的数量核对一下,差一个都要查。
我自己遇到过的最坑的一次,是封装库里有一个电阻的封装名多了个下划线,网表导入时 log 里只有一行 Warnings,界面照常打开,结果布局时发现少了两个器件,翻遍原理图才定位到。后来我养成习惯:导入后立刻用 Tools > Reports 跑一份 Unplaced Components 报告,把没摆上板的器件列表拉出来,跟网表里的器件总数对一下,两分钟的事,能省一下午。
封装本身也要检查。重点看焊盘的 padstack 是否正确(贴片还是通孔、尺寸对不对)、引脚编号顺序是否跟原理图符号一致、器件原点和丝印边框是否规范、有没有加 Place_Bound 层。Place_Bound 尤其重要,它决定了后面 DRC 检查器件重叠的准确性,很多封装直接从别人的库里拿过来是缺这一层的,布局时两个器件重叠了软件也不报警。
2.2 板框、原点与叠层的处理顺序
正确的处理顺序是:先板框,再叠层,再原点,最后才摆器件。板框画在 Board Geometry / Outline 层,用 Add > Line 或者从结构给的 DXF 导入(File > Import > DXF)。板框必须是闭合曲线,不闭合的话后面铺铜和出图都会出问题。
叠层(Setup > Cross-section)要在布局前定好。原因很直接:叠层决定了哪几层是走线层、哪几层是平面层,而布局时器件的摆放方向、BGA 的逃逸方向、去耦电容的落点都会受影响。比如你规划了完整的电源平面层,那么高频去耦电容就应该贴着平面层的过孔落点摆;如果叠层是纯信号层加局部铺铜,那电容的位置就要更靠近芯片。叠层一旦定了就尽量别改,改了之后布局要重新评估。
原点的设置(Setup > Change Drawing Origin)经常被忽略,但它决定了你后面所有栅格对齐的基准。我的习惯是把原点设在板子的左下角或者第一个定位孔上,这样坐标全是正数,跟结构图、坐标文件、装配图都好对应。如果原点乱七八糟放在板子中间,后面导出坐标文件给贴片厂时会对不上。这一步做好,后面所有基于坐标的操作都顺。
2.3 栅格、颜色与显示配置的实战建议
栅格(Setup > Grids)在布局阶段建议配三档,用顶部工具栏或者快捷键切换:
| 栅格名称 | 间距 | 用途 |
|---|---|---|
| 粗栅格 | 100mil / 2.54mm | 连接器、大器件初定位,按结构尺寸摆放 |
| 中栅格 | 25mil / 0.635mm | 通用摆放,模块内部器件对齐 |
| 细栅格 | 5mil / 0.127mm | 精调,退耦电容贴脚、BGA 周边密集器件 |
BGA 周边还要单独配一个跟 pin pitch 成整数倍关系的栅格。比如 0.8mm pitch 的 BGA,栅格取 0.4mm 或者 0.2mm,这样过孔能正好落在四个焊盘中间的空隙里;1.0mm pitch 的取 0.5mm。这个换算不用背,记住一个原则:栅格间距要能整除器件 pin 间距的一半,否则过孔永远对不齐。
颜色配置(Display > Color/Visibility)建议在摆器件之前就把视图调成"布局模式":关掉不必要的层,只留 Board Geometry / Outline、Package Geometry / Place_Bound_Top、Package Geometry / Silkscreen_Top、Pin,再加上 Rats 层。这样板子看起来干净,器件边框和丝印清晰,飞线一目了然。调好的视图可以存成 View(View > Views),下次直接调用,不用每次重配。这一步做得好,能明显降低眼睛疲劳,也能减少误操作。
3. 器件摆放核心操作:手动、快捷与对齐
3.1 Place Manually 的正确打开方式
Allegro 摆放器件的主力命令是 Place > Manually。打开后是一个带树状列表的对话框,顶部有几个功能区,新手容易迷路,我拆开说。
列表按器件类别分组(Discrete、ICs 等),每个器件前面有勾选框。操作方式有三种:一是双击器件名,器件会跟随鼠标出现在绘图区,点一下放下;二是先选中器件名,再把鼠标移到绘图区直接放下;三是勾选 Auto Next,放完一个自动跳到下一个。第三种在批量摆放时效率最高,但很容易放错位置,我一般只在摆相同封装的电阻电容阵列时用。
对话框里有个 Advanced Settings 区域,包含几个容易踩坑的开关。勾了 Rooms 之后,列表顶部会多出房间节点,器件会按房间归类;勾了 "Include Components in Pads",一些以焊盘形式存在的器件(比如测试点)才能显示出来。如果发现列表里器件数量明显偏少,先回这里看一眼是不是某个开关没勾。
提示:放置完成的器件,Place Manually 列表里依然会显示,只是前面的勾选框状态不同。不要以为列表还在就说明没放好。判断有没有放上去,最直接的办法是看 Display > Status 里的 Placement 统计,或者用 Tools > Reports 跑 Unplaced Components。
还有一个效率神器是 Place > Quickplace。它会把所有未摆放的器件自动沿板框某一侧排开,形成一个均匀的"器件队列",然后你再一个个往里拖。这个功能特别适合器件数量多、需要边挑边摆的场景。Quickplace 的选项里可以选摆放的边、器件间距、是否按 Room 分组,间距建议设成器件自身尺寸的 1.5 倍左右,太密了不好点选,太疏了板子外空间不够。
3.2 移动、旋转、镜像:快捷键与 Find 过滤器的配合
布局阶段用得最多的三个动作就是移动、旋转、镜像。Allegro 默认没有给它们分配单键快捷键,需要自己在 env 文件里加。打开 Tools > Utilities > Aliases/Function Keys,或者在用户目录下的 env 文件里加这几行:
funckey m move funckey r rotate funckey f fix funckey u unfix funckey q "show element" funckey s "show rats net"加完之后按 m 直接进入移动状态,效率能提升一大截。注意 env 文件修改后需要重启软件或者重新加载才生效,另外不同版本的语法略有差异,改完记得测试一下。
三个动作里最容易出问题的是移动时的抓取点。Options 面板里有个 Point 选项,可以选择 Symbol Origin(以器件原点为抓取点,最推荐)、Sym Pin #(以指定引脚为抓取点,适合要精确定位某个脚到某个位置的场景)、User Pick(每次由你点击指定抓取点)。默认建议用 Symbol Origin,因为封装原点通常定义在器件中心或 1 脚,抓起来定位可预期。用 User Pick 的时候,如果点的位置不在器件上,Allegro 可能抓不到,表现出来就是"点不动"。
移动命令的 Options 里还有两个关键开关。一个是Ripup etch,勾上之后移动器件会自动断开已经布好的连接线,不勾的话器件被线"拽住",移动到一半就走不动了。布局早期建议勾上,布线阶段就别勾了,免得误删走线。另一个是Snap to grid,默认开启,器件会吸附到当前栅格,如果发现器件总是落不到你想放的位置,先检查栅格是不是太粗。
旋转的坑在于旋转中心。Options 里的 Point 同样适用,选 Symbol Origin 的话绕着器件原点转,选 User Pick 的话绕你点的那个位置转。另外 Angle 可以填 90、45 或者任意角度,但很多器件(尤其是连接器、极性电容、IC)在电气上只允许 0/90/180/270 四个角度,任意角度旋转会导致装配困难,除非结构有明确要求,否则别乱转。
镜像(把器件翻到背面)在 Move 命令的 Options 里有 Mirror 复选框,勾上之后再放置,器件就翻到了 Bottom 层。这里有个细节:器件翻面后,丝印文字的方向也会变成镜像,需要在 Color 或者 Text 相关设置里注意一下;另外顶层和底层的引脚编号阅读方向是相反的,检查引脚顺序时容易看错。多层板背面摆器件是很常见的事,但一定要在布局阶段就统一好哪些器件放背面,别布线布到一半再翻面,那基本等于重做。
3.3 对齐、等间距与批量摆放技巧
器件摆多了之后,靠肉眼对齐是不现实的。Allegro 17.2 之后提供了对齐工具(工具栏里的 Align 组,包含左对齐、右对齐、顶对齐、底对齐、水平居中、垂直居中,以及水平和垂直等间距分布)。用法是先把 Find 过滤器设为 Symbols,框选或者按住 Shift 逐个选中需要对齐的器件,再点对应的对齐图标。
这里有个新手最容易搞混的点:对齐的基准是哪个器件。Allegro 的行为是以选中集合里的某一个作为锚点,其余器件向它靠拢。实际操作中建议先点基准件、再点其他件,这样基准明确。如果发现对齐方向跟你预期反了,按 Undo 撤销,重新按正确顺序选一遍就行。不同小版本的行为可能有点差别,第一次用的时候拿两个器件试一下,心里就有数了。
等间距分布(Distribute)在摆放电阻电容阵列、LED 灯珠、排针这类等距排列的器件时特别好用。选中一排器件,点水平等间距分布,软件会自动均分间隙。注意它均分的是器件之间的间距而不是中心距,所以如果器件尺寸差异大,视觉上可能不太均匀,需要手动微调一两个。
批量摆放还有几个实用技巧。相同封装的一排器件,可以先用 Place > Manually 摆第一个,然后复制粘贴(Edit > Copy,注意 Copy 时要处理参考编号),或者用 Place > Replicate 功能批量复制出一组。对于 BGA 周边的退耦电容,我通常先摆一个作为模板,确认栅格和位置正确后,再用 Copy 逐个复制到芯片四周的电源引脚旁边,最后统一用 Logic > Auto Rename Refdes 重新编号,避免编号重复。
4. 飞线、Room 与模块化布局
4.1 Rats Nest 的显示控制与"治理"思路
飞线在 Allegro 里叫 Ratsnest,显示命令在 Display > Show Rats 下,可以按 All(全部)、Net(指定网络)、Window(框选范围内)、Component(指定器件的所有网络)来显示。反过来 Display > Blank Rats 用来关掉飞线。快速清屏看板子外观时,习惯性关掉全部飞线;要分析连接关系时再打开。
飞线看似简单,但有几个显示逻辑需要理解。第一,飞线的连接顺序不是固定的,它受网络拓扑(topology)和网络调度(net schedule)影响,同一个网络的飞线可以从不同的引脚出发连到不同的引脚,这取决于软件的默认策略。所以"飞线交叉"有时候是布局问题,有时候只是连接顺序不合适,改一下拓扑就能理顺。第二,飞线的显示样式(直线、弧形、是否显示未连接点)在 Setup > User Preferences 里有开关,不同项目文件可能设置不同,如果飞线看起来怪怪的,先去那边看一眼。
用飞线判断布局质量的方法很简单:打开全部飞线,如果画面像一团乱麻,说明器件分组有问题;如果飞线基本呈放射状从某个中心散开,说明这个中心模块布局合理。我的做法是分模块治理:先把一大类器件(比如电源部分)拉到一起,打开只属于这个模块的飞线(选中网络后 Show Rats > Net),理顺之后再处理下一个模块。
提示:高亮某个网络后按 Show Rats > Net,可以只显示这一个网络的飞线,其他全部隐藏。这在理清复杂电源网络或者差分对的时候极其好用,比在满屏飞线里找一根要高效得多。
4.2 用 Room 给布局加一层"约束"
Room 是 Allegro 里用来圈定器件归属的工具,本质是一块带名字的区域,你可以把若干器件"分配给"这个 Room,之后整个 Room 可以整体移动、整体复制,也可以让自动摆放工具按 Room 来工作。创建 Room 的路径是 Setup > Outlines > Room Outline,画的时候注意选择正确的 class 和 subclass(通常是 Room 类),画完给它起个有意义的名字,比如 PWR、DDR、USB。
创建完 Room 之后,要在 Place > Manually 的 Advanced Settings 里勾选 Rooms,然后列表顶部会出现 Rooms 节点,展开就能把器件拖到对应 Room 下面。分配完成后,在 Room 节点上操作移动,整个模块会跟着一起动,这对"把电源模块整体挪到板子另一边"这种需求简直是救命功能。
Room 还有个更实用的玩法是配合自动摆放。Quickplace 的选项里可以勾选按 Room 摆放,软件会把每个 Room 里的器件按规则排布在板框边或者 Room 内部,虽然自动结果通常还要手动调整,但作为起点已经省了大量时间。另外在复杂项目里,Room 相当于给布局加了一层语义,后面谁接手都能一眼看出这块区域是干什么的。
4.3 Group 与模块复用:把重复劳动砍掉
一块板子上如果出现多个完全相同的功能单元(比如 8 路相同的继电器驱动、4 路相同的隔离电路),一个个摆是纯浪费时间。Allegro 17.4 提供了 Group 功能(入口在 Place 菜单下的 Group 相关命令,部分版本也会出现在右键菜单里),可以把已经摆好的一组器件打成一个整体,之后整体移动、整体镜像、整体复制。
Group 和 Room 的区别值得说清楚:Room 是"区域约束",重点是圈定位置和归属,器件仍然是独立的;Group 是"绑定关系",重点是让一组器件绑定成一个可操作的整体,成员之间的相对位置被锁定。两者可以叠加使用,比如先用 Room 圈出模块范围,再在 Room 内部把器件打成 Group 便于整体调整。
如果项目里需要跨板子复用同一个模块(比如同系列产品的电源部分完全一样),更正统的做法是用 Tools > Create Module 把选中的器件和已完成的布线打包成一个 .mdd 模块文件,然后在别的板子上调用。这个功能配合 Group 使用,能把重复设计的成本压到极低。需要注意的是,模块复用时若目标板子上已经有相同的参考编号,软件会提示冲突,要么提前重新编号,要么在复用后统一跑一次 Logic > Auto Rename Refdes。
5. 常见问题与排查技巧实录
5.1 Place Manually 里找不到器件,或者器件是灰的
这是布局阶段最高频的问题,排查顺序如下。第一,确认网表真的导入成功了,去 File > Import > Logic 的日志或者 Tools > Reports > Unplaced Components 看器件总数对不对。第二,看 Place Manually 的 Advanced Settings,是不是勾了 Rooms 导致列表被过滤,或者某个分组没展开。第三,如果器件在列表里但呈灰色不可选,通常是封装文件缺失,去 Setup > User Preferences 里检查封装库路径配置,缺哪个补哪个。第四,器件其实已经放上去了,只是被放到了板框外面很远的位置,可以按坐标定位过去,或者干脆用 Tools > Reports 找出它的坐标,再用移动命令把它拉回来。
还有一种情况是器件被 Fix 了(锁定状态),锁定的器件不会出现在可摆放列表里,或者出现了也移不动。解决办法是用 Edit > Unfix 解锁,或者先选中器件右键 Unfix。锁定通常在多人协作或者布局定稿后才会出现,如果是新板子就有锁定,检查一下是不是导入了一个别人改过的 brd。
5.2 移动时抓不住、抓错,或者移动后位置不对
前面反复提到的 Find 过滤器问题排第一位,把 Symbols 勾上基本能解决八成。如果器件本身没问题,但每次移动都"抓飘",检查 Options 里的 Point 设置。另外还有个隐蔽的坑:器件被放在了某个 Group 或 Room 里,而 Room 本身有位置约束,器件移动会被约束拉回。这种情况要么先把器件从 Room 里释放,要么整体移动 Room。
移动后位置不对的另一种常见原因是栅格太粗。比如你想把两个相邻芯片的间距设成 0.6mm,但当前栅格是 1.27mm,无论怎么拖都吸附不到目标位置,看起来就像"差一点点就是放不准"。解决办法是切换细栅格(顶部工具栏的栅格下拉或者快捷键),放完再切回来。
5.3 器件参数改不了、属性改不了
这类问题的表现是双击器件想改属性,弹出来的窗口是只读的,或者改完不生效。最常见的原因有两个:一是器件被锁定,前面说过用 Unfix 解决;二是器件的库源文件是只读的。搜索结果里"allegro cell read-only"这个热词对应的就是第二种情况——引用的是一个只读的 PCB 库文件,Allegro 不允许你直接改。解决办法是先把库文件复制出来,去掉只读属性,更新库路径指向可写副本,然后 Update Symbols 更新到设计里。也有一种做法是直接在设计的 brd 文件里修改器件属性(比如加 FIXED 属性、加 Room 归属),而不是改库文件,具体取决于你要改的是什么。
还有一个容易被误判的场景:低版本的软件打开高版本的 brd 文件,很多功能会受限甚至只读,表现为一堆操作都做不了。这种情况下唯一的办法是用同版本或更高版本的软件打开。另外,如果设计文件是从别的团队拿过来的,可能设置了 team design 或者访问权限,器件被别人锁住,也是改不动的。
5.4 飞线不显示、铜皮只有轮廓
飞线不显示,先看 Display > Show Rats 里是不是被关掉了,这是最常见的原因。其次看 Color/Visibility 里 Rats 这个类的显示是否被关闭或者透明度设成了全透明,Allegro 的层显示设置是全局的,很容易在某次清理视图的时候把飞线一起关掉。第三,有些网络的飞线因为拓扑设置或者网络未连接(有孤立的 pin)而不显示,可以用 Tools > Reports 里的 DRC 报告或者 Connectivity 报告查孤立引脚,孤立引脚的飞线本来就不会画出来。
铜皮只有轮廓、不显示填充,跟飞线的逻辑类似但机制不同。Allegro 里铜皮(Shape)有静态和动态两种类型,动态铜皮默认是填充显示,但如果软件的 shape fill 设置被关掉了,就会只显示轮廓线。开关一般在 Display 菜单的 Shape Fill 选项,或者 Setup > User Preferences 里的 shape_fill 参数,把它改成 filled 就正常了。另外,动态铜皮在数据库未更新(smooth 状态未刷新)的时候也可能显示成轮廓,执行一次 Shape > Global Dynamic Params 里的重新平滑,或者直接在界面上点一下刷新,就能恢复填充。
| 现象 | 最可能原因 | 解决动作 |
|---|---|---|
| 点不中/移不动器件 | Find 只勾了 Text | Find 面板勾 Symbols |
| 器件移动后弹回原位 | 抓取点设为 User Pick 或栅格过粗 | Options 改 Point 为 Symbol Origin,切细栅格 |
| 器件在 Place 列表里灰色不可选 | 封装缺失或库路径错误 | 检查 User Preferences 库路径,补齐封装 |
| 器件改不了属性 | 器件被 Fix 或库文件只读 | Edit > Unfix;复制库文件去掉只读 |
| 飞线完全不显示 | Show Rats 关闭或 Rats 层被关 | Display > Show Rats > All,检查 Color 设置 |
| 铜皮只有轮廓不填充 | Shape Fill 关闭或铜皮未平滑 | 打开 Shape Fill,执行铜皮平滑刷新 |
| 器件拖到一半卡住 | Ripup etch 未勾选,被已布线拽住 | Options 勾 Ripup etch(仅布局期) |
| 对齐方向不对 | 选中顺序决定基准件 | 撤销后先选基准件再选其他 |
6. 布局收尾:自检清单与固化策略
6.1 布局定稿前必须跑一遍的几项检查
器件都摆完之后,别急着进布线,先做三件事。第一,打开 Display > Status,看 Placement 的统计,确认已摆放数量和总数一致、没有器件在板框外、没有器件与板框重叠。第二,跑一次 Tools > Reports 里的 DRC(Design Rule Check),重点关注器件之间的间距冲突(Package to Package spacing)、丝印重叠、器件超出板框这几类,这些在布局阶段都还容易改,到了布线阶段改起来就麻烦了。第三,用 Tools > Database Check 检查数据库健康度,这一步能发现一些隐藏的数据损坏,尤其在设计文件被多次复制、跨工具转换过之后。
检查器件间距的时候,如果发现 DRC 没报但肉眼看着两个器件重叠了,八成是封装缺 Place_Bound 层,这时候要回到封装层面补上。另外,器件摆放方向也要统一检查一遍:所有 IC 的 1 脚方向是否一致、所有极性电容的正极方向是否统一、连接器的开口方向是否符合装配要求。这些细节在原理图上看不出来,但在生产阶段会变成实实在在的装配问题。
6.2 Fix 与锁定:什么时候该锁,什么时候不该锁
布局定稿后,把关键器件锁定(选中器件,Edit > Fix,或者用前面配的快捷键 f)是个好习惯。锁定的器件不会被后续的移动命令误拖动,也不参与自动摆放。哪些器件值得锁?连接器、按键、屏幕、天线、大功率器件这类跟结构强相关的,以及已经确认好位置的 BGA、晶振、去耦电容组。锁定的器件在界面上会显示一个特殊的十字标记,也可以在 Color 里给固定对象设一个醒目的颜色,一眼就能看出来哪些不能碰。
但我不建议全板锁定。留一部分器件不锁,后续布线时如果发现某条关键走线实在太绕,还能微调一下位置。锁定和解锁的粒度要灵活,比如可以先锁连接器和结构件,布线过程中再逐步锁定其他模块。另外,如果项目是多人协作,锁定还承担了"占位"的作用,避免别人挪动你负责的模块。需要注意的是,锁定状态是随设计文件走的,别人打开你的 brd 看到的锁定状态跟你一样,所以在锁定之前确认好设计意图,别把还没定稿的东西锁死。
还有一个小技巧:锁定之前先做一次数据库备份(File > Save As 一个带日期的副本),因为锁定之后如果发现要改结构,解锁再改再锁的流程会打断思路,有了备份就能随时对比。这个习惯我在每一个关键节点都会做,成本几秒钟,收益是万一出问题能快速回退。
6.3 从布局到布线的交接要点
布局和布线之间有一道隐形的分界线,跨过去之前要确认好交接内容。首先是叠层和约束规则,布线阶段所有的线宽、间距、差分对参数都依赖这个,布局阶段最好就把约束管理器(Setup > Constraints > Constraint Manager)里的关键网络规则配好。其次是电源分割方案,大电流路径、平面层分配、去耦电容的落点,这些在布局阶段就要想清楚,布线阶段只是执行。第三是器件的扇出策略,尤其是 BGA 的过孔排布,布局时如果器件间距太紧,后面根本扇不出来。
注意:如果发现某个关键网络布线实在走不通,先别急着改规则放宽间距,很多时候问题出在布局上——器件之间的通道不够、关键器件摆得太远、电源和信号混在一起。回退到布局改一处,比在布线上绕十圈更划算。
我个人的经验是,布局完成后先做一个简单的"瓶颈评估":用飞线把每个关键网络的连接关系过一遍,目测一下哪些通道会堵,把明显的堵塞点在布局阶段就解决掉。这个评估花不了半小时,但能让后面的布线顺畅很多。很多人觉得布局就是摆器件,其实布局的真正价值在于给布线留出足够且合理的通道,这才是布局操作的核心目标。掌握了前面这些基础操作,再配合对电路的理性和直觉判断,一块板子的布局质量基本就稳了。