ActiveRoute
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, 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 & 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 improves the overall look of the routing.
Setting up to ActiveRoute
- Create net classes. 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 ActiveRouted.
- Shelve existing polygons.
- Configure the design rules and net topology:
- 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 which applies a width design rule with a narrower Preferred width. If you can’t route it manually with the preferred width, ActiveRoute can’t 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 Pair routing rule(s) are correctly configured (Preferred values are used).
- Pad Entry – Currently ActiveRoute uses the most direct path in/out of a pad that obeys the rule width and clearance rules, without creating acute angles. At the moment it does not obey the SMT to Corner or SMT Pad Entry rules. It does include special algorithms for differential pair pads, focusing on pair coupling while maintaining neatness.
- Net Topologies – 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 xSignal Wizard (Design » xSignals » Run xSignals Wizard) can create xSignals for designs that include DDR3/4 and USB 3.0 -type signaling.
- Fanout the design. ActiveRoute does not place vias, so fanouts for BGAs, connectors, and discrete components that use SMT pins, is essential (except for those pins to be routed on outer layers).
- Route the power and ground. ActiveRoute is for signal nets and 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.
Limitations
ActiveRoute brings a new approach to interactive routing, and is under active development. Currently, it has does not support the following:
- Arcs – ActiveRoute does not route with arcs.
- Microvias - ActiveRoute needs fanout vias to access connections on the inner layers. At the moment, to use microvias in the BGAs, you will need to manually fanout to microvias going to the required signal layers, before ActiveRouting.
- Length Matching – Currently ActiveRoute does not automatically tune route lengths, this is being investigated for a future update. Lengths can be tuned interactively after running ActiveRoute.
Performing an ActiveRoute
- Select the connection(s) to be routed.
- In the PCB ActiveRoute panel, choose the layer(s) that the selected connections are to be routed on. This is the layers available to ActiveRoute, it will decide which nets to route on each layer.
- If required, use the Route Guide feature to define a route path. ActiveRoute will treat the Guide as a fenced path, Any connections it is unable to fit within the Guide will be left unrouted.
- Run ActiveRoute by:
- Selecting the Route » ActiveRoute command.
- Clicking the ActiveRoute toolbar button.
- Clicking the ActiveRoute button in the PCB ActiveRoute panel.
- Using the Shift+A shortcut.
These steps are explained in detail below.
PCB ActiveRoute Panel
Selecting the Connections to be ActiveRouted
ActiveRoute works on selected connections. Connections can be selected directly, or by selecting a route object, such as a pin, track, via or component.
Most nets are two-pin nets, in this case selecting a connection is equivalent to selecting the net. With nets having more than two pins, it will have multiple connections. You can route one, some or all of the connections.
Connection Selection Techniques
- Area selection (dragging a rectangle) can be restricted to only select connections, by holding the Alt key.
- Alt+Area Select left-to-right, to select connections that are completely within the selection rectangle.
- Alt+Area Select right-to-left, to select connections that are touching the selection rectangle.
- Add Shift to the key combination to add to an existing selection.
- Alt+Click directly on a connection to select it.
- Alt+Shift+click to add to the current selection.
- For a selected connection, press Tab to extend the selection from that connection, to all connections in that net (applies to one net, or many connections selected in different nets).
- ActiveRoute will only route the selected connections, if you have multiple connections on a net use the selection techniques just described to select all of the connections in the net .
Configuring the Routing Layers
- You can choose the layers to use for routing in the PCB ActiveRoute panel. ActiveRoute will route the selected connections on the enabled layers, distributing them across those 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.
Using the Route Guide
To help Guide the path that the routes will flow along, you can define a Route Guide. You can think of the Guide as a pipe that the routing must be contained within. The Route Guide enables you to direct the location of the routes and to dictate how packed the routes should be in that Guide area.
Placing a Route Guide
To place a Guide:
- Select the connections to be routed along the Guide path.
- 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 wish 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.
- 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.
Route Guide Width
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.
RouteGuideWidth = ((W+C)/#Layers)*1.3)
- The Guide is expanded by a default value of 1.3, to ensure the routes will fit and enable them to wrap around obstacles, like vias, in the way of the path. The width is a hard boundary for the routing, if the routes do not fit then they are not placed.
- During Guide placement, the width can be increased / decreased by pressing the Up / Down arrow keys on the keyboard. The minimum size uses a multiplier of 1.0, the maximum size uses a multiplier of 2.0.
Editing the Guide
The Route Guide is a set of tracks, placed on a mechanical layer.
- The track segments are locked by default, if you unlock them you can re-shape the Guide, using the standard track dragging techniques.
- To remove the Guide, click on any segment to select it, then press the Delete key.
Notes
- The Status Bar show the ActiveRoute progress.
- The Messages panel reports on the completion rates.
- 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.
- When ActiveRoute is finished, it automatically applies glossing (Route » Gloss Selected). The Gloss command 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. Note that glossing is not applied after a Route Guide has been used, as glossing attempts to reduce the overall route length, which may result in the route path no longer following the path defined by the Guide.
- ActiveRoute does not route with arcs or any-angle tracks.
- If ActiveRoute does not work, it is usually because the rules are not properly configured. Check that the the rules are appropriate, for example the default rules that exist in a new PCB file might be too large for high density BGA-type designs.
- ActiveRoute observes the routing rules configured for widths, clearances, diff pair gaps, by layer, by room, and by class.