Parent page: Routing the PCB
One of the most time-consuming phases of board design is routing the nets. While the rules system handles the design constraints, such as the widths, via sizes, clearances, and so on, it is down to the designer to place the many thousands of track segments required to fully route a board.
Autorouters can ease this pain but are generally regarded as inadequate because:
- They fail to correctly consider the myriad of subtle design constraints that a human designer instinctively applies as they route.
- They take so long to fully configure that it is often more efficient to simply get on with routing the board interactively.
- The cleanup can be such a long and difficult process that it is often more efficient to route the board interactively.
The holy grail of PCB routing is to quickly produce high-quality results, that meet the design rules, under the control of the designer. This is the challenge that ActiveRoute sets out to achieve.
What is ActiveRoute?
ActiveRoute is an automated interactive routing technology that delivers efficient multi-net routing algorithms, which is applied to the specific nets or connections selected by the designer. ActiveRoute also allows the designer to interactively define a route path or Guide, which then defines the river along which the new routes will flow.
The key ActiveRoute features that make this approach significantly better than a combination of regular interactive routing and auto-routing include:
- Automatic optimization of the escape routes out of pin/via arrays - the most time-consuming aspect of manual routing.
- High performance - signal nets routed < 1 second each.
- Obeys design rules for width, clearance, layers, topology and rooms by net and net class, observing priorities.
- Routes on multiple layers simultaneously and distributes the routes across those layers.
- An intuitive Route Guide that the designer can use to direct the placement of routes.
- Uses a River Route approach to give high completion rates without the need for vias.
- Able to route through polygon planes and re-pour them (if the re-pour option is enabled).
- Supports both single-ended and differential pair nets.
- Finishes with a powerful glossing tool that further reduces the number of corners and shortens the routing.
The PCB ActiveRoute Panel
Panel page: PCB ActiveRoute
ActiveRoute follows the criteria and restrictions defined by the PCB design rules, so using it is simply a matter of selecting the connections or nets of interest and running it. It does have a number of specific control features that are configured in the PCB ActiveRoute panel. It is highly recommended that the PCB ActiveRoute panel be opened prior to starting ActiveRoute.
To open the PCB ActiveRoute panel, when a PCB is the active document:
- Click the button at the bottom-right of the workspace then select the PCB ActiveRoute menu option.
- Click View » Panels » PCB ActiveRoute.
Use the PCB ActiveRoute panel to control the ActiveRoute process.
The PCB ActiveRoute panel is used to:
- Enable the signal layers on which ActiveRoute can route connections.
- Perform an ActiveRoute on the selected connections.
- Enable a post-ActiveRoute Glossing pass.
- Define a Route Guide.
- Configure the track-to-track spacing you would like to be used within the Route Guide.
- Configure and enable length tuning of the routes placed by ActiveRoute.
- Configure the Meander option, allowing ActiveRoute to define a longer routing path, which may help increase the completion rate.
- Configure and enable pin swapping. ActiveRoute can pin swap during routing to help improve the routing quality.
Additional ActiveRoute Features
ActiveRoute is an automated interactive router and using it is simple and straightforward: select the connections then press Shift+A to ActiveRoute them in accordance with the design rules. ActiveRoute includes a number of other features and controls, giving the designer greater control over certain features and abilities.
- Define the routing path and track spacing, by placing a Route Guide.
- Allow a longer route path with the Meander control.
- Automatically match the route lengths with length tuning.
- Allow pin swapping to simplify the routing challenge.
Let's look at each of these in more detail.
Define the Path with the Route Guide
One of the primary objectives of ActiveRoute is to find the shortest overall set of route lengths, which may not be the desired path for every set of connections. The Route Guide provides the designer with a tool they can use to draft a specific path they would like the selected connections to flow along, even if that path is not the shortest.
- Defining the Route Guide - first select the connections that are to be routed within the guide, click the button in the PCB ActiveRoute panel, then click to define the guide start location and continue to move the mouse and click to define the path. Once the path is defined, click the ActiveRoute button to route the selected connections along that path. Refer to the Define a Route Guide section later on this page for more details.
- Changing the Route Guide Width - during Route Guide placement, the guide can be made wider or narrower by pressing the or keys. The default width is the sum of the applicable width+clearance design rules for the selected connections, divided by the number of layers, multiplied by 1.3. Press the Backspace key to unwind the Guide if you need to define a different path.
- The Route Guide color - determined by the layers made available for the ActiveRoute of the selected connections. If there is a single layer enabled, it is drawn in that layer color; if there are multiple layers enabled it is drawn in the default Route Guide color.
- The track spacing within the Route Guide - the default behavior is that ActiveRoute spaces the routes in accordance with the design rules, it does not attempt to spread, or use all of the space available within a Route Guide. To spread the routes within a Route Guide, use the Track-Track Space in Route Guide feature, as described later in this page.
A video showing a Route Guide being placed, with the width being changed interactively during placement.
Track-Track Space Within the Route Guide
Using the Track-Track Space in Route Guide feature, you can instruct ActiveRoute to spread the routes across the width of the Route Guide. Use the slider to select a spacing value, or type a value into the edit box. The Route Guide will automatically be sized to take this setting into account. To achieve this you must configure the Track-Track Space in Route Guide setting before placing the Route Guide. You can further adjust the width of the Route Guide during placement by pressing the and keys.
Use the Track-Track Space feature to spread the routes in the Route Guide.
Allow the Routes to Meander
ActiveRoute attempts to route the selected connections along the shortest possible path, or in other words, using the minimum amount of meandering. If the ActiveRoute completion rate is lower than expected, the Meander control allows you to increase the amount of meander that ActiveRoute is allowed, which may help raise the completion rate. The default maximum Meander setting is 100%, meaning the routes are allowed to have a total route length of
Manhattan Length + 100% of Manhattan Length. Use the slider to select a meander value or type a percentage into the edit box.
Note that the meander setting is ignored when the Route Guide is used because the Route Guide is intended to be used to define a path that may significantly increase the meander.
Tuning the Route Lengths
ActiveRoute can apply length tuning to connections currently being routed or to selected existing routes. ActiveRoute will attempt to meet the selected Matched Length design rule.
To configure ActiveRoute to length tune:
- Enable the Tune Selected checkbox in the Action region of the panel.
- Enable the required Matched Length design rule in the Tune region of the panel.
- Configure the required Max Amplitude and Min Space settings (either Single Ended, or Differential Pair) in the Tune region of the panel.
The software includes a powerful pin and part swapping system, linked between the schematic and PCB editors. ActiveRoute can access the pin swap settings, and swap pins during routing if it reduces the overall route length and improves the route quality.
To use pin swapping:
- Before any pin swapping can be performed (interactively or by ActiveRoute), the project must be compiled (Project menu) each time it is opened.
- To configure and manage the pin swapping settings for components, run the Tools » Pin/Part Swapping » Configure command to open the Configure Swapping Information in Components dialog.
- Enable the Pin Swap Routing option in the Action region of the PCB ActiveRoute panel.
- Enable the required components in the Pin Swap region of the PCB ActiveRoute panel.
Setting Up to ActiveRoute
ActiveRoute requires the nets to be selected. Having net classes can greatly assist in the selection process when there is a high number of nets to be active routed. Refer to the Selection Techniques section later in this article to learn more about the best ways to select connections.
ActiveRoute can route through existing polygons if the Repour Polygons after Modification option is enabled in the PCB Editor - General page of the Preferences dialog. Alternatively, polygons can be shelved (made invisible, but retained in the design) using the Tools » Polygon Pours » Shelve Polygons command.
- Clearances – ActiveRoute obeys the applicable clearance design rules, applying them in order of their priority.
- Routing Widths – It uses the Preferred setting of the applicable width rules. As with interactive routing, to change widths in an area, for example, when the route passes under a BGA, define a Room that applies a width design rule with a narrower Preferred width. If you cannot route it manually with the preferred width, ActiveRoute can not either.
- Diff Pairs – ActiveRoute can route differential pairs. Ensure that the diff pairs are correctly defined (check in the Differential Pairs Editor mode of the PCB panel), and confirm that the Differential Pairs Routing rule(s) is correctly configured (Preferred values are used).
- Pad Entry – ActiveRoute attempts to use the most direct path in/out of a pad that obeys rules without creating acute angles. It obeys the SMT to Corner and SMT Pad Entry rules but does not always center the track in the pad (as the Interactive Router does when the SMT to Corner rule is enabled). It includes special algorithms for differential pair pads, focusing on pair coupling while maintaining neatness.
ActiveRoute will follow the pattern of the connection lines. If you have a set of nets that need a specific topology, for example, a DDR3/4 fly-by, you can define the from-to order using xSignals. The xSignals Multi-Chip Wizard (Design » xSignals » Run xSignals Wizard) can create xSignals for designs that include DDR3/4 and USB 3.0 -type signaling. Alternatively, point-to-point connection line patterns can be defined for a net by creating From-Tos in the From-To Editor mode of the PCB panel.
ActiveRoute does not place vias, so you must create fanouts for BGAs, connectors, and discrete components that use SMT pins (except for those pins to be routed on outer layers).
ActiveRoute is for signal nets; it ignores nets assigned to power planes and nets that contain more than 20 pins (these are assumed to be power nets). If you want to use ActiveRoute on a previously completed design, delete the signal routes but keep the power and ground routing, and the fanouts.
Enable the required routing layers in the PCB ActiveRoute panel. More on this below.
ActiveRoute needs to know which connections/nets you want to route - you do this by selecting them. Connection lines can be selected directly, or you can select an existing route object, such as a pin, track, via, or component, to indicate which connections/nets you want to ActiveRoute.
Use the following key/mouse combinations to select the required objects:
Use the selection techniques to quickly select connections for routing or deletion.
Performing an ActiveRoute
To perform an ActiveRoute:
Using the techniques described above, select the connections/nets to be routed. The Status bar will display the number of connections just selected until the cursor moves over another object.
In the PCB ActiveRoute panel, enable the layer(s) that the selected connections is to be routed on. ActiveRoute will distribute the routes across these layers.
If no layer is selected, then it will route on the Active Layer, which is the selected tab at the bottom of the main PCB editor window.
The PCB ActiveRoute panel allows you to select which layers to route on, create a Route Guide, and to start ActiveRoute.
To place a Route Guide:
- Select the connections you would like routed along the Route Guide. The Status bar will display the number of connections just selected until the cursor moves over another object.
- Click the Route Guide button in the PCB ActiveRoute panel.
- The cursor will appear to be holding all of the selected connections, indicating that this set of connections must flow through the Guide. Move the cursor to a suitable start location, at either end of the path you want to define.
- Click to define the start location of the Guide, allowing room for the incoming connections to flow into the curved end of the Guide.
- The Guide is placed as if it is a very wide track. Move the cursor to the location of the first corner that the Guide must make then click to define that corner.
- Continue this process of path definition, stopping some distance away from where the connection lines terminate, allowing room for the connections to flow out of the Guide to their target pads/vias/track ends.
- Press the Up Arrow key to widen the Guide or the Down Arrow key to narrow the Guide.
- Press Backspace to rip up the last Guide corner.
- Right-click to drop out of Guide placement mode.
Only one Route Guide can be defined at any time.
To run ActiveRoute, you can:
- Select the Route » ActiveRoute command.
- Click the ActiveRoute () button on the Active Bar.
- Click the ActiveRoute button in the PCB ActiveRoute panel.
- Use the Shift+A shortcut.
- The PCB editor's Status Bar shows the ActiveRoute progress.
- The Messages panel reports on the completion rates.
Building Your Proficiency
- A key ingredient to ActiveRoute proficiency is becoming fluent with the shortcuts. The key sequences you will use most often are:
- Alt+Click - to select an individual connection line.
- Alt+Click&Drag - to select connections within an area, drag from right to left to select all touched connections, or left to right to only select what fits inside the selection rectangle. Press Tab to extend the selection to include other connections in the same net(s). The Status bar will display the number of connections just selected until the cursor moves over another object.
- Ctrl+Click&Drag - to select pads in a component, drag from right to left to select all touched pads, or left to right to only select what fits inside the selection rectangle. Press Tab to extend the selection to include other route objects in the same net(s). Keep pressing Tab to cycle through all possible selection states.
- Click&Drag - to select existing track segments, drag from right to left to select all touched tracks, or left to right to only select what fits inside the selection rectangle. Press Tab to extend the selection to include other route objects in the same net(s). Keep pressing Tab to cycle through all possible selection states.
- Include Shift to retain the current selection while performing another selection.
- Shift+A to ActiveRoute the current selection.
- Ctrl+Alt+G - to Gloss the current selection.
- Selection actions are only performed on objects that are visible (except for Ctrl+A):
- Press Shift+S to cycle in (out) of single-layer mode so only the layer of interest is showing.
- If the design uses placement rooms, they can be locked as part of their definition in the Design Rules, or they can be hidden to prevent them from being selected/moved during Click&Drag actions. Rooms can be hidden in the View Options tab of the View Configuration panel.
- Fanout SMD pads. ActiveRoute does not change layers, so you will need to fanout SMD pads. To accelerate the fanout process:
- While routing a connection, press the / shortcut (numeric keypad) to drop a via and release this connection. Use the 2 shortcut if you do not have a numeric keypad (drops a via without suspending).
- Copy and paste an existing fanout; the PCB editor will automatically update the net names. This can be done for multiple fanouts.
- Preserve existing fanouts. ActiveRoute will modify fanouts if it sees a better solution or locks them if you do not want them changed. The easiest way to lock fanouts is to select the fanout tracks and vias (use the Selection Filter at the top of the Properties panel to help with this process), press F11 to open the Properties panel, and enable the Locked checkbox. This will lock all selected objects in a single action.
- If you use a Route Guide and find that the completion rate is low, it may be that there are too many obstacles along the path and the Guide needs to be wider. Press the Up arrow key to widen the Guide during placement.
- When ActiveRoute is finished, it applies glossing (if enabled in the PCB ActiveRoute panel). The Gloss command (Route » Gloss Selected) can be used to smooth out tracks and improve the pad entries of any routing, not just ActiveRoutes. Particular attention has been applied to ensuring high-quality pad entries for differential pairs. To learn more about glossing, refer to the Glossing and Retracing page.
- If ActiveRoute does not work, it is usually because the rules are not properly configured. Check that the rules are appropriate, for example, the default rules that exist in a new PCB file might be too large for a high-density BGA-type design.
- ActiveRoute observes the routing rules configured for widths, clearances, diff pair gaps, by layer, by room, and by class. ActiveRoute does not route with arcs or any-angle tracks.