☰
Allegro 17.4 PCB布局基础:原点格点、器件放置与飞线判读
2026/9/30 5:18:53 网站建设 项目流程

刚把网表倒进 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 决定显示和输入的小数位。我的习惯是:板上有结构件、连接器、屏蔽罩这类跟机械图纸强相关的设计,统一用 mm,Accuracy 设 4 位;纯消费类小板、器件全用 0402/0201 的,用 mil,Accuracy 设 2 位。

为什么不能随意混?因为 Allegro 内部的坐标是浮点数,但所有输入框、报告、坐标文件都按当前单位显示。你在 mm 模式下敲一个 "x 1.27 2.54",实际得到的是 1.27mm 的位置;切回 mil 再看,会变成 50 和 100。中间只要有一次没换算对,器件就偏了。

常用值milmm
1 mm39.371
0.1 mm3.9370.1
1 mil10.0254
10 mil100.254
100 mil1002.54
0.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 器件"不见了"的排查顺序

按下面这个顺序走,基本能定位到九成问题:

  1. Display > Status看 unplaced symbols 数量,判断是根本没导入还是导入了没放。
  2. Tools > Reports里跑 Unplaced Symbols 报告,看看具体是哪些位号。
  3. Place > Manually面板看器件在不在列表里。列表里有但板子上没有,说明只是没放;列表里没有,说明网表或库有问题。
  4. 检查库路径:Setup > User Preferences > Paths > Library里的 padpath、psmpath 是不是指向了正确的库目录。
  5. 确认封装名大小写。部分系统下库文件名大小写敏感,QFN32和qfn32会被当成两个不同的封装。
  6. 如果原理图改过,重新导入网表时要选对模式:器件和连接都变了就选覆盖式导入,只加新器件才用追加模式。选错模式会出现"器件重复"或者"网络没更新"的怪现象。

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 Components(17.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 按信号类型定摆放优先级

器件摆放顺序我一般按下面这个优先级走,越靠前的越先定位置:

  1. 结构件和连接器:位置由机构决定,先放好锁死。
  2. 电源部分:DC-DC、LDO、电感、输入输出电容,决定整板的供电骨架。
  3. 时钟与晶振:靠近主控,尽量短,下方禁布。
  4. 主控与高速接口:BGA 主控、存储器、高速连接器,构成核心骨架。
  5. 射频与模拟前端:远离开关电源和高速数字,独立区域加隔离。
  6. 通用数字和外围器件:最后填充,位置最灵活。

这条优先级背后的逻辑是"约束数量":结构件和主控的位置约束最多、最不灵活,所以要先定;去耦电容这类器件几乎可以往任何地方放,所以留到最后按走线需要灵活安排。反着来的话,你会发现自己把电容摆得漂漂亮亮,结果主控没地方放了。

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 是否为 0,DRC 数量是否在可控范围。
  • 板框内是否有器件露出边缘,或者跑到板外。
  • 连接器、按键、指示灯、测试点的位置是否和结构图对得上。
  • 定位孔、螺钉柱的净空是否被器件或铜皮侵入。
  • 晶振、天线、DC-DC 电感这些敏感器件的位置和禁布区是否符合设计规范。
  • 保存,并且另存一份带日期和版本的归档文件。

我个人在布局这一步最大的体会是:宁可前面多花半天把原点、格点、约束、结构边界全部定死,也不要在摆放过程中反复改这些基础设置。改动一次基础参数,所有器件的相对位置关系都要重新确认一遍,那种"看起来只动了一个数字、实际要检查一整块板"的感觉,经历过一次就不会想经历第二次。至于布局的熟练度,靠的是把飞线当成眼睛、把格点当成尺子,摆完一批器件就回头看一次飞线流向——这个习惯养成之后,布局速度会有一个明显的台阶式提升。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询