在 CircuitMaker 中使用 Situs 拓扑自动布线器实现自动化 PCB 布局
该Tools | AutoRoute 区域包含与自动布线和扇出相关的命令。

Autoroutex
CircuitMaker 的自动布线器是拓扑式(topological)的,它使用一种不同的方式来映射布线空间,即不受几何约束的方法。拓扑式自动布线器不是将设计空间坐标信息作为参考框架(将其划分为网格),而是仅根据空间中障碍物的相对位置来构建地图,而不引用它们的坐标。它通过对相邻障碍物之间的空间进行三角剖分来实现这一点。随后,布线算法会使用这张三角化地图,从起始布线点到终止布线点,在障碍物对之间进行“穿梭/编织”式布线。该方法的最大优势在于:地图可独立成形(障碍物和布线路径可以是任意形状),并且可以以任意角度穿越空间。与直角扩展(rectilinear expansion)布线器不同,这些布线算法不局限于纯垂直或纯水平路径。
Autoroute 子菜单命令
Autoroute 子菜单命令允许你对整个板进行布线、在指定区域内布线,或对特定对象(如网络和元件类)的连接进行布线。

下表描述了这些子菜单命令。
| Command | Behavior |
|---|---|
| Setup | 此命令打开 Situs Routing Strategies dialog,你可以在其中访问布线前设置报告,并配置与 Situs Autorouter 相关的布线策略及其他选项。 |
| All | 此命令打开 Situs Routing Strategies dialog,用于配置策略、选择所需策略并运行自动布线器。 |
| Net | 此命令用于布线指定网络中的所有连接。 |
| Net Class | 此命令用于布线指定网络类中的所有连接。 |
| Connection | 使用 Main 布线策略,尝试对所选连接进行自动布线。 |
| Area | 使用 Main 布线策略,尝试对起点位于所选区域内的所有连接进行自动布线。 |
| Component | 使用 Main 布线策略,尝试对起点位于所选元件上的所有连接进行自动布线。 |
| Component Class | 此命令用于布线从指定元件类中元件焊盘发出的所有连接。 |
| Connections On Selected Components | 使用 Main 布线策略,尝试对起点位于所选元件上的所有连接进行自动布线。 |
| Connections Between Selected Components | 使用 Main 布线策略,尝试对在所选元件之间连接的所有连线进行自动布线。 |
Situs Routing Strategies 对话框
可通过在 Autoroute 子菜单中选择 Setup 或 All 来访问该对话框。
关键选项如下所述。
- Report Window - 此区域显示基于设计的布线前分析报告,汇总的信息包括:当前为该设计定义且将被自动布线器遵循的设计规则(以及每条规则影响的设计对象数量——网络、元件、焊盘)、为所有信号布线层定义的布线方向,以及钻孔层对(drill layer pair)定义。报告会列出可能影响布线器性能的潜在问题。这些警告可能包括布线方向被设置为 Any 的布线层。在可能的情况下,会提供提示以帮助更好地为自动布线准备设计。报告中列出的任何错误/警告/提示都应仔细检查,并在需要时在继续布线前调整相应的布线规则。
- Edit Layer Directions - 单击以打开 Layer Directions 对话框,你可以在其中按需修改信号层的布线方向。

- Edit Rules - 单击以打开 PCB Rules and Constraints Editor dialog。或者,如果你想直接修改现有布线规则,可单击上方区域中该规则的 hyperlink 。
- Save Report As - 单击以将报告保存为 HTML 文档。使用打开的 Save As 对话框按需更改名称和位置。
- Available Routing Strategies - 列出自动布线器可用于布线该设计的所有当前可用布线策略。每个策略以其名称和描述列出。一般而言,双层板和多层板的默认布线策略适用于大多数布线场景。不过,在运行自动布线器之前,务必确保已设置好所有相关的布线设计规则。默认布线策略无法移除。
- Add/Edit/Duplicate - 单击以打开 Situs Strategy Editor dialog,用于向列表添加新的用户自定义布线策略、修改所选策略,或复制当前所选的布线策略。
- Lock All Pre-routes - 启用后可防止任何预先布线的网络被自动布线器删除(“rip up”)并重新布线。通常会先手动布线某些网络,然后对其余部分进行自动布线。
- Rip-up Violations After Routing - 启用后,在自动布线器完成布线会话后,会将任何违反已定义(且适用)设计规则的走线 rip up。
Situs Strategy Editor 对话框
在 Situs Routing Strategies dialog 中单击 Add、 Edit 或 Duplicate 可访问该对话框。
该对话框允许你为 Situs 自动布线器完整定义一套布线策略,包括其组成的布线 pass(算法)。包含哪些布线 pass 以及它们的使用顺序,构成了自动布线器的“智能”。这些 pass 用于将拓扑地图中识别出的虚拟布线路径转换为板上的高质量走线。
关键选项如下所述。
- More/Less Vias - 使用滑块来定义自动布线器允许的过孔使用程度。这是在更高布线速度与更少过孔之间的权衡。将滑块向右移动会限制自动布线器放置更少的过孔,但布完整块板所需时间会更长;将滑块向左移动可更快完成布线,但代价是自动布线器会在 PCB 上放置更多过孔。
- Orthogonal - 启用此选项可限制自动布线器仅布正交(90°)路径。禁用该选项则允许自动布线器按需要选择正交或非正交(45°)布线。
- Available Routing Passes - 列出可在布线策略中使用的布线 pass(算法)。可用的 pass 如下:
- Adjacent Memory - 这是一个连接级(connection-level)布线 pass。用于对相邻的同网络引脚进行扇出,采用简单的 U 形模式。
- Clean Pad Entries - 这是一个连接级布线 pass。它会从每个焊盘中心沿焊盘的长轴方向重新引出走线。
- Completion - 这是一个连接级布线 pass。本质上与 Main pass 相同,但采用不同的代价(cost)计算方式,以解决冲突并完成困难连接。
- Fan out Signal - 这是一个元件级(component-level)pass,基于 Fanout Control 定义的扇出设置。它会检查焊盘的排列模式,考虑间距、布线宽度和过孔样式,然后选择合适的扇出布局(同排、交错等)以满足设计规则中定义的要求。扇出仅到信号层。
- Fan out to Plane - 这是一个元件级 pass,基于 Fanout Control 定义的扇出设置。它会检查焊盘的排列模式,考虑间距、布线宽度和过孔样式,然后选择合适的扇出布局(同排、交错等)以满足设计规则中定义的要求。扇出仅到内部平面层。
- Globally Optimised Main - 这是一个连接级布线 pass。它提供最优布线,并在第一次迭代时忽略争用/违规。随后会以更高的冲突代价重新布线连接,直到不再存在违规。该 pass 与启用 Orthogonal 选项配合使用时,可生成较为美观的布线模式。向策略中添加一个 Recorner pass 可提供斜切(mitered)拐角。
- Hug - 这是一个连接级布线 pass,它会沿现有走线以尽可能小的间距重新布线每条连接。hug pass 用于最大化可用的自由布线空间。注意该 pass 非常慢。
- Layer Patterns - 这是一个连接级布线 pass。它只布线与层方向匹配(在一定容差内)的连接。其代价计算会倾向于贴近或跟随现有走线,以最大化自由空间。
- Main - 这是一个连接级布线 pass。它使用拓扑地图寻找布线路径,然后使用 push and shove 布线器将建议路径转换为实际走线。
- Memory - 这是一个连接级布线 pass。它会检查同一层上、位于不同元件上的两个引脚是否共享 X 或 Y 坐标。
- Multilayer Main - 这是一个连接级布线(routing)pass。它类似于 Main pass,但其代价(cost)针对多层板进行了优化。
- Recorner - 这是一个连接级布线 pass,用于对已布线拐角进行斜切(mitering)。当该策略启用 Orthogonal option 时会使用此 pass,本质上会覆盖原策略设置,并对每条走线的拐角进行斜切。如果所用策略禁用 Orthogonal option,则无需包含 Recorner pass,因为自动布线器默认会对拐角进行斜切。
- Spread - 这是一个连接级布线 pass,会对每个连接重新布线,尝试分散布线以利用空闲空间,并在穿过固定对象(如元件焊盘)之间时实现等间距布线。注意:此 pass 非常慢。
- Straighten - 这是一个连接级布线 pass,尝试减少拐角数量。它通过沿着走线走到一个拐角,然后从该拐角执行(水平/垂直/45up/45down)探测,搜索该网络上另一个已布线点。如果找到,则检查这条新路径是否能缩短布线长度。
- Passes in this Routing Strategy - 列出该策略中包含的实际布线 pass(算法)。你可以从可用 pass 列表中添加任意你需要的 pass,并且可以在整个策略中多次添加同一 pass 的多个实例以实现特定效果。Pass 将按从上到下的顺序依次执行。可使用 Move Up 和 Move Down 按钮修改此顺序。
其他自动布线命令

停止
用于在当前布线 pass 完成后停止自动布线器。
重置
用于重置自动布线器。
暂停
用于暂停自动布线器。如有需要可重新启动。
扇出(Fanout)
CircuitMaker 包含贴片元件扇出工具。逃逸布线引擎会尝试将每个焊盘布线到器件边缘之外一点的位置,从而使与它们的布线连接更容易。
Fanout 子菜单命令
Fanout 子菜单命令允许你根据 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置对对象进行扇出。

下表描述了这些子菜单命令。
| Command | Behavior |
|---|
| All | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对所有贴片元件进行扇出。 |
| Power Plane Nets | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对每个连接到电源平面的网络进行扇出。 |
| Signal Nets | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对每个未连接到电源平面的网络进行扇出。 |
| Net | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对所选网络进行扇出。 |
| Connection | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对所选连接进行扇出。 |
| Component | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对所选元件进行扇出。 |
| Selected Components | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对所选元件进行扇出。 |
| Pad | 根据已启用的 Fanout Control 布线设计规则以及 Fanout Options dialog 中的设置,对所选焊盘进行扇出。 |
Fanout Options Dialog
点击任意 Fanout sub-menu commands 即可打开该对话框。
此对话框允许你指定扇出与逃逸布线选项。典型的扇出行为是:先对已使用的内层焊盘采用传统的“狗骨”(dog-bone,末端带过孔的短走线)进行扇出以访问另一层;然后从该过孔开始进行逃逸布线,将其布到器件边缘之外一点的位置,并在可用的布线层中逐层推进,直到所有焊盘都完成逃逸布线。最终,这会让与它们的布线连接更容易。

- Fanout Pads Without Nets - 启用后,即使元件焊盘未分配网络,也会从该元件焊盘进行扇出。禁用此选项时,仅对已分配网络的焊盘进行扇出。
- Fanout Outer 2 Rows of Pads - 启用此选项可对元件焊盘进行扇出,包括最外侧两排(通常较容易布线)。
- Include escape routes after fanout completion - 启用后,会为每个扇出添加逃逸布线。逃逸布线会在扇出过孔和元件焊盘上放置走线,将它们引出到元件边缘,以便更容易进行布线连接。
- Update fanout using Blind Vias (BGA escape routing only) - 启用后,会在层叠中已配置的钻孔对层之间放置盲孔。禁用此选项时,无论钻孔对层设置如何,都只会放置通孔。
- Escape differential pair pads first if possible (same layer, same side) - 启用后,会在执行其他扇出操作之前,将任何已分配的差分对网络一起进行扇出与逃逸布线,从而有效保持它们的走线在一起。扇出会将逃逸布线走线放在同一层,并尽可能相邻。

