
刚把网表倒进 Allegro 17.4几百个器件整整齐齐地挤在板框左下角飞线糊成一团蜘蛛网鼠标点哪个都怕点错。这个场景做硬件的人基本都经历过也是allegro 17.4 布局操作基础这一步最劝退新人的地方。布局这件事粗看很简单无非是把器件挪到该在的位置但真做过几块板子就会明白布局阶段省下的每一分钟后面布线阶段都要用几个小时还回来。器件摆错方向飞线绕一圈最后要么多打两个过孔要么整块板子推倒重来。这篇内容围绕 Allegro 17.4 的布局操作基础展开从单位原点格点这些地基参数到网表导入、器件放置、飞线判读、结构约束、禁布区规划再到我自己实际踩过的几个坑一路讲下来。适合刚上手 Allegro 17.4 的硬件工程师也适合从其他 PCB 工具转过来的朋友——很多操作逻辑和别的软件差别挺大硬套经验容易翻车。文中所有操作都在 17.4 上验证过个别菜单归属在不同小版本里会有细微差别不影响理解和使用。1. 布局前必须钉死的四件事单位、原点、格点、层叠很多人打开 Allegro 第一反应是赶紧放器件结果摆了半天才发现单位是 mm 而封装是 mil 建的或者画完才发现原点在板子外面十万八千里。这四个参数属于改一次要返工一整天的类型动手放第一个器件之前就应该定下来。1.1 单位与精度mil 还是 mm先立一条规矩在Setup Design Parameters的 Design 页签里User Units 决定整个设计的长度单位Accuracy 决定显示和输入的小数位。我的习惯是板上有结构件、连接器、屏蔽罩这类跟机械图纸强相关的设计统一用 mmAccuracy 设 4 位纯消费类小板、器件全用 0402/0201 的用 milAccuracy 设 2 位。为什么不能随意混因为 Allegro 内部的坐标是浮点数但所有输入框、报告、坐标文件都按当前单位显示。你在 mm 模式下敲一个 x 1.27 2.54实际得到的是 1.27mm 的位置切回 mil 再看会变成 50 和 100。中间只要有一次没换算对器件就偏了。常用值milmm1 mm39.3710.1 mm3.9370.11 mil10.025410 mil100.254100 mil1002.540.5 mm 间距 BGA19.6850.5提示改完 User Units 后一定要回头确认 Drawing Extents图纸范围还装得下板子。单位从 mil 改成 mm 后原来的图纸范围数字会变得很小器件一放就到边界外了。1.2 原点放哪儿板框角点还是结构基准点Allegro 的原点默认在图纸的左下角位置跟你画的板子没半点关系。布局前要做的第一件事就是把原点挪到有意义的位置通常两个选择板框左下角适合没有严格结构配合的板子所有器件坐标都是正数出坐标文件、拼板、给工厂都对得上。结构定位孔中心适合有外壳、有安装柱的产品。结构工程师给的尺寸都是以某个孔或某条边为基准的原点放这儿后面核对位置直接看数字不用算加减。操作上先确认板框 outline 落在一个整数坐标上用 Snap 抓角点检查再执行Setup Change Drawing Origin把原点移到板框角点。更直接的办法是在命令行敲绝对坐标比如x 0 0配合右键Snap pick to Grid能把光标精度压到格点以内。命令行输入坐标是 Allegro 里非常好用的一个习惯x 100 200是绝对坐标ix 5是相对原点偏移移动一批器件时特别省事。1.3 格点分层大格粗排、中格定位、小格精调格点是布局阶段的辅助线。Setup Grids里可以同时定义多套格点分别设给 Non-Etch非布线层器件、丝印都用它和 All Etch布线层。我的做法是分三级阶段建议格点用途功能分区100 mil / 2.54 mm划大体区域把器件按模块分开器件粗放25 mil 或 20 mil常规器件摆放连接器、芯片定位精调对位5 mil 或 10 mil电容靠近引脚、器件成对对齐极限微调1 mil只在对齐焊盘、配合结构时临时用格点切换绑快捷键是非常必要的17.4 顶部工具栏那个格点下拉选项就能直接切也可以在自己环境文件的快捷键里绑定。注意不要在 5 mil 小格点下做整板布局。格点太小鼠标稍微一抖器件就落错位置而且挪来挪去容易把已对齐的器件带偏。大格点先粗排最后再降格点精调这个节奏能省大量返工。1.4 层叠和约束布局前不确认布局后必返工Setup Cross-section定叠层顺序、板厚、材料Setup Constraints Constraint Manager定线宽线距、间距规则、差分对规则。这些看起来属于布线阶段的活但布局阶段就得先确认理由很直接层数决定内层能走的信号方向进而决定 BGA 扇出的方向而扇出方向直接决定器件能不能转 90 度。目标阻抗决定线宽线宽决定走线通道宽度通道宽度决定器件间距够不够。过孔类型通孔还是盲埋孔决定扇出占用的空间盲埋孔贵但省地普通通孔便宜但会挡住内层。我一般会拉一个布局前确认清单逐项打勾后再动手板厚和叠层、目标阻抗与对应线宽、最小线宽线距、最小孔径与过孔类型、特殊网络时钟、差分、大电流的规则是否已经在 Constraint Manager 里建好。这几项只要有一项拖着没定大概率会在布局做到一半时发现某几个器件必须挪位置。2. 网表导入之后器件到底是从哪儿冒出来的新手最容易懵的就是这一步器件到底是网表塞进来的还是从库里调出来的Allegro 的逻辑是——网表只负责告诉软件有哪些器件、它们怎么连器件的实际图形封装是从库里按名字去找的。这两件事任何一件出问题器件就不会出现在可放置列表里。2.1 导入网表的链路和报告文件的读法17.4 里走File Import Logic选到网表所在的目录。如果是从 OrCAD Capture 那边直接推过来的也会走到这一步。导入本身几秒钟就完了真正要花时间的是看报告导入完成后会在网表目录下生成netrev.lst和netrev.log大部分器件没进来的答案都在里面。报告里的典型条目实际含义处理方式Could not find symbol / Package not found库里找不到对应封装查封装名拼写、库路径、库有没有更新Device file not found缺 Device 文件.txt用库工具重新生成 Device 文件Pin number not found封装上的引脚号和网表对不上核对封装引脚编号与原理图符号Duplicate reference designator位号重复回原理图执行位号重排Property ignored属性没被识别确认属性名和 Design Entry 设置看完报告没报错再去Display Status看一眼 unplaced symbols 的数量。如果这里是 0说明所有器件都已经落板了如果有数字说明还有器件在待放置状态去 Place 面板里找。2.2 Room 和原理图页分组Quickplace 该不该用Place Quickplace提供了几种批量摆放模式按 Room 摆、按原理图页摆、按 Part Number 摆、全部摆到板子中央、全部摆到板框外。经验上分两种情况器件数量在 50 个以内的小板别用 Quickplace直接手动摆反而更快因为核心器件的相对位置关系需要边看飞线边调整。器件数量几百个、且原理图是按功能模块分页画的板子用按原理图页 Quickplace 把器件先归堆再用框选整块拖动效率能高好几倍。提示用 Quickplace 之前先把板框画好并且给板子留出足够的空白区域。Quickplace 默认会把器件堆在板子中央几百个器件叠在一起不先框选分类的话后面清理起来比手动摆还累。Room 是从原理图带过来的属性。在原理图器件上给一个 ROOM 属性值导入网表后同 Room 的器件就能被自动归到一起。做多路相同的模块比如 4 路相同的电源通道、8 路相同的接口时Room 配合 Quickplace 特别顺手。2.3 器件不见了的排查顺序按下面这个顺序走基本能定位到九成问题Display Status看 unplaced symbols 数量判断是根本没导入还是导入了没放。Tools Reports里跑 Unplaced Symbols 报告看看具体是哪些位号。Place Manually面板看器件在不在列表里。列表里有但板子上没有说明只是没放列表里没有说明网表或库有问题。检查库路径Setup User Preferences Paths Library里的 padpath、psmpath 是不是指向了正确的库目录。确认封装名大小写。部分系统下库文件名大小写敏感QFN32和qfn32会被当成两个不同的封装。如果原理图改过重新导入网表时要选对模式器件和连接都变了就选覆盖式导入只加新器件才用追加模式。选错模式会出现器件重复或者网络没更新的怪现象。3. Place Manual 面板实操每个动作背后的门道手动摆放是布局的主战场而 Place Manual 面板是它唯一的入口。这个面板信息密度很高第一次看容易发懵但把每一栏搞明白之后摆放效率会有明显提升。3.1 面板结构器件是怎么分组列出来的面板左侧是一棵 Placement List 树可以按 RefDes、Part Number、Room、Schematic Page、Net 等维度分组显示器件。前面带勾的是已放置的空框的是未放置的。搜索框支持通配符输入C*能把所有电容筛出来输入U1?能筛出 U10 到 U19 这一批。Advanced Settings 里能看到器件来源的三种可能来自数据库Database、来自设计本身Design、来自库Library。如果要把库里一个没进网表的机械件比如屏蔽罩、结构定位柱放到板子上就在 Library 里选封装直接放。3.2 旋转、镜像、锁定顺序别搞反摆放时的三个高频动作旋转右键 Rotate或者在 Options 里直接输入角度常用 90、180、270。也可以选中器件后用旋转命令按指定角度转转的时候配合格点落位更准。镜像贴装在底层的器件需要镜像。镜像的是器件本体和它的焊盘图形丝印文字也会一起镜像所以要单独处理位号文字的方向。锁定位置定死的器件连接器、定位孔、按键用 Fix 锁住避免后面误拖。顺序建议是先转到大致方向再微调角度和位置最后镜像全部确认没问题再 Fix。反过来的话镜像之后一切位置关系都会左右翻转前面调好的相对位置全废。3.3 Application Mode为什么移动器件时飞线会黏上来右上角有个 Application Mode 下拉这是 17.4 里特别值得注意的地方。不同模式下移动器件的行为完全不同模式移动器件时的表现适用场景General Edit飞线跟着器件整体平移不会重新计算连接单纯调整位置、挪机械件Placement Edit飞线自动重连到最近的引脚实时反映连接变化布局阶段判断器件朝向Etch Edit侧重走线和过孔编辑布线阶段Shape Edit侧重铜皮编辑铺铜阶段布局阶段强烈建议切到 Placement Edit。它最大的价值是你把器件转一个角度飞线会立刻重算你能马上看到转了 90 度之后飞线是变短了还是打成结了。这个即时反馈是判断器件朝向最有效的手段比靠脑子想快得多。3.4 Snap 与对齐让器件落得准而不是靠眼力右键菜单里的Snap pick to是 Allegro 里被低估的功能可选项包括 Grid格点、Pin引脚、Via过孔、Segment线段、Midpoint中点、Intersection交点、Symbol origin器件原点、Shape center铜皮中心等。几个实战用法连接器要对准板边开口先 Snap 到板框边线再往内偏移固定距离。电容要贴着芯片电源引脚Snap 到 Pin落位后按格点微调保证两个焊盘对称。多个器件要按同一水平线排用 Snap 到 Symbol origin再统一输入同一个 Y 坐标。器件数量多的时候用Place Align Components17.2 之后引入17.4 在 Place 菜单下能找到批量对齐比一个一个调快得多。选好基准器件再框选要对齐的器件指定按左对齐、上对齐还是间距均分一次搞定一排电阻电容。3.5 把三个动作绑到键盘上快捷键设置布局阶段鼠标点右键太慢把高频动作绑成单键非常值。配置文件在用户目录下的pcbenv/env文件里用 alias 或 funckey 定义# 布局常用快捷键示例 funckey m move # m 移动 funckey r rotate # r 旋转 funckey f fix # f 锁定 funckey u unfix # u 解锁 funckey x mirror # x 镜像 funckey s snap # s 抓取写完后重启 Allegro 生效。这里有个经验不要绑太多键只绑最常用的五六个绑多了自己记不住反而要去翻定义。另外mirror这类命令在不同版本里的命令名可能有差异写之前先在命令行敲一次确认有效再写进 env 文件。4. 飞线不是装饰读懂了它布局就成了一半飞线Ratsnest是网表在板面上的可视化投影它不占任何实际空间但它是布局阶段最有价值的信息源。会看飞线的人布局又快又准不会看的人摆完还得靠 DRC 和布线去发现问题。4.1 Show Rats 的显示方式与颜色控制Display Show Rats下面有几个选项All全部显示、Net按网络显示、Components按器件显示、Top/Bottom按层、Selected只显示选中项。布线阶段网络多到看不清时用 Selected 只显示当前在处理的网络屏幕立刻清爽。飞线的颜色在Display Color/Visibility里的 Rats 分类里调。布局阶段我一般把所有飞线打开按功能模块给不同颜色比如电源网络一种颜色、高速信号一种颜色视觉上一眼就能分出模块边界。提示飞线数量太多会拖慢显示刷新尤其是上千个网络的板子。器件数超过 800 之后建议分模块显示飞线别全开。4.2 用飞线密度和流向判断器件位置与朝向这是布局阶段最核心的直觉训练。几个判断方法看飞线流向如果 BGA 到 4 片存储器的飞线全部挤往一个角说明 BGA 的方向反了转 90 度之后飞线会散开。看飞线密度某个区域飞线密集缠绕说明这里的器件应该聚在一起。密度最高的区域通常是主控芯片周边它应该被放在板子中部偏连接器一侧。看飞线交叉数两块器件之间飞线交叉得越少走线越容易。布局做完之后数一下主要模块之间的交叉点数量比盲猜靠谱。看飞线总长17.4 里可以通过报告或者状态栏粗略看网络长度。飞线总长明显偏长说明器件放远了。电源模块的判断方式比较特殊它的飞线通常呈放射状散向多个负载说明它应该放在所有负载的几何中心附近而不是贴着输入连接器。输入走线那点长度远比输出散开的距离好处理。4.3 飞线没了、乱了、消失了怎么办这三种情况我都遇到过原因各不相同现象常见原因处理办法飞线完全不显示颜色被关、Rats 层被设为不可见、执行过 Unrats All检查 Color/Visibility执行 Logic Rats All部分飞线不显示该网络被单独隐藏或器件被 Fix 导致不更新Logic Rats All 重建或 Unfix 后重算飞线全乱修改原理图后重新导入网表时选了追加模式重新导入时选覆盖模式重建整个连接关系重建飞线的入口在Logic Rats All / Unrats All / Unrats Selected。布局阶段偶尔会遇到某个器件的飞线不刷新把器件随手拖动一下再拖回来飞线通常会立刻重算这是个小技巧。5. 结构、禁布区和功能分区布局的硬边界布局的自由度其实没有想象中那么大。结构件的位置、外壳的限高、安装螺钉的净空、天线的净空区这些都是硬约束。先把边界画出来再谈器件怎么摆比反过来做省事得多。5.1 导入 DXF 结构图并对齐原点File Import DXF导入结构图关键选项有三个单位、层映射、导入模式。单位一定要和 DXF 文件的原始单位一致选错的后果是结构图被放大或缩小 25.4 倍。层映射通常把外框映射到 BOARD GEOMETRY/OUTLINE其余尺寸线映射到 DRAWING FORMAT 或专门的机械层。对齐的做法是先在 DXF 和板框上各找一个共同的基准点通常是某个定位孔或板边角算出两个点之间的坐标差用绝对坐标移动 DXF 的 outline 过去。移动之前记得锁住板框避免误动。注意结构图里的圆弧和曲线导入后往往是若干段小线段或样条曲线不能直接当成板框用。需要用 Compose Shape 把轮廓合并成一条闭合路径否则后续铺铜、DRC 都会出问题。5.2 Package Keepout、Route Keepout 和限高区的区别Setup Areas下面有四类区域用法差别很大区域类型限制对象典型用途Package Keepout禁止放器件螺钉柱、连接器插拔空间、外壳压合区Route Keepout禁止走线天线净空、隔离带、晶振下方Via Keepout禁止放过孔结构柱周边、需要保持平整的区域Package Keepin / Route Keepin限定器件/走线的允许范围板边留边、机构限制的可用区域限高区严格来说不是单独一类区域而是 Package Keepout 加上高度属性判断的组合结果。做有外壳的产品时给每个器件补上高度信息后期结构核对能省下大量沟通成本。5.3 按信号类型定摆放优先级器件摆放顺序我一般按下面这个优先级走越靠前的越先定位置结构件和连接器位置由机构决定先放好锁死。电源部分DC-DC、LDO、电感、输入输出电容决定整板的供电骨架。时钟与晶振靠近主控尽量短下方禁布。主控与高速接口BGA 主控、存储器、高速连接器构成核心骨架。射频与模拟前端远离开关电源和高速数字独立区域加隔离。通用数字和外围器件最后填充位置最灵活。这条优先级背后的逻辑是约束数量结构件和主控的位置约束最多、最不灵活所以要先定去耦电容这类器件几乎可以往任何地方放所以留到最后按走线需要灵活安排。反着来的话你会发现自己把电容摆得漂漂亮亮结果主控没地方放了。6. 布局阶段最容易翻车的四个场景和我自己的收尾检查前面讲的是应该怎么做这一节讲实际会出什么问题。这几个坑都是我在真实项目里踩过的写出来能帮人省点时间。6.1 器件飞到板框外找了半天找不到最常见的原因是中途改过原点或者 DXF 导入单位错了导致某些器件坐标跑到几千毫米外。排查方式是先跑Tools Reports里的器件报告看坐标最大值和最小值落在什么范围正常应该和板框尺寸同一量级。然后对可疑器件用右键 Show Element 查看它的坐标再手动输入坐标拉回来。还有一种情况是器件被组Group了拖动组的时候把成员拖走了。用Edit Groups看一下有没有残留的组解散之后单独处理。6.2 位号丝印叠成一团布局做完之后位号往往东倒西歪、互相重叠。整理手法有三层先用Manufacture Silkscreen Auto Silkscreen自动生成丝印层它会把位号推到器件外面并避开焊盘。再手动微调关键器件的位号移动时用 Find 面板只勾选 Text这样不会误动器件本体。最后执行位号自动重排Auto Rename RefDes不同版本菜单位置略有差异17.4 在 Place 菜单下。注意位号重排会改变位号和原理图的对应关系也会让之前整理好的丝印位置全部失效。这个动作只在设计早期做设计定型之后就不要再动了否则生产文件和调试文档全对不上。6.3 移动器件时铜皮和走线跟着跑这个现象的典型场景是器件已经被 Fix 了或者器件的引脚连在某个铜皮Shape上移动器件时铜皮跟着一起动。解决办法分情况器件被 Fix右键 Unfix或者用 General Edit 模式移动。器件在 Group 里解散组。器件引脚连着动态铜皮先把相关铜皮改成静态或者临时删除铜皮上的连接移动器件后重新铺。器件已经扇出Fanout过扇出的过孔会跟着器件移动但内层走线不会移动后会留下断线需要重新处理。6.4 换单个封装Update Symbols 的正确用法设计中途换封装是常有的事正确的入口是Place Update Symbols不是删掉再放一个新的。面板里可以按位号指定要更新的器件也可以选择更新哪些内容位号文字、焊盘、封装外形、丝印等按需勾选。有几点必须注意新封装的引脚编号如果和旧封装不一致导入网表时会直接报错必须先在原理图侧改好换封装之后器件尺寸可能变了原来留的净空、禁布区、相邻器件间距都要重新检查已经在器件周围布好的齿形铜皮或散热焊盘也要重新确认。最后留一份我自己每次布局收尾都会走的检查清单Display Status里 unplaced symbols 是否为 0DRC 数量是否在可控范围。板框内是否有器件露出边缘或者跑到板外。连接器、按键、指示灯、测试点的位置是否和结构图对得上。定位孔、螺钉柱的净空是否被器件或铜皮侵入。晶振、天线、DC-DC 电感这些敏感器件的位置和禁布区是否符合设计规范。保存并且另存一份带日期和版本的归档文件。我个人在布局这一步最大的体会是宁可前面多花半天把原点、格点、约束、结构边界全部定死也不要在摆放过程中反复改这些基础设置。改动一次基础参数所有器件的相对位置关系都要重新确认一遍那种看起来只动了一个数字、实际要检查一整块板的感觉经历过一次就不会想经历第二次。至于布局的熟练度靠的是把飞线当成眼睛、把格点当成尺子摆完一批器件就回头看一次飞线流向——这个习惯养成之后布局速度会有一个明显的台阶式提升。