Parent article: The Routing
Routing a board can be a complex and time-consuming process as you work to position the components and complete the routing - move that component slightly, shove that routing, re-route those critical nets to avoid potential cross-talk, now see if that bus can be routed through that area, and so on. As you route your board, you will be constantly modifying routing that you have already done.
There are two approaches to modifying the routing; you can either reroute, or re-arrange.
Rerouting is ideal when the new route path is more complex than simply moving a few track segments. Rerouting is performed in the same way as the initial routing using the Interactive Routing (or Interactive Differential Pair Routing) command - when you complete the new route path the old loop of redundant track segments is removed.
Alternatively, you can re-arrange the routing. To re-arrange existing routing, click and hold on a track segment then drag it to its new location. Connected track segments will remain connected at the angle they were previously connected - a behavior called interactive sliding. Interactive sliding also supports the Conflict Resolution Modes, including Push, Hug and Push, and Ignore.
Reroute an Existing Route
- There is no need to un-route a connection to redefine its path; simply click the Interactive Routing button on the Active Bar () and start routing the new path.
- The Loop Removal feature will automatically remove any redundant track segments (and vias) as soon as you close the loop and right-click to indicate you are done.
- You can start and end the new route path at any point, swapping layers as required.
- You can also create temporary violations by switching to Ignore Obstacle mode (as shown in the video below), which you later resolve.
A simple animation showing the Loop Removal feature being used to modify existing routing.
Rearrange Existing Routes
- To interactively slide or drag track segments across the board, click, hold and drag as shown in the video below.
- The default dragging behavior is configured on the PCB Editor - Interactive Routing page of the Preferences dialog.
- The PCB editor will automatically maintain the 45/90 degree angles with connected segments, shortening and lengthening them as required.
A simple animation showing track dragging being used to modify the existing routing.
Track Sliding Tips
- While sliding a route you can move the cursor and hotspot snap it to an existing, non-moving object such as a pad. Use this to help align the new segment location with an existing object and avoid very small segments being added.
- During sliding, one of the Routing Conflict Resolution modes applies. Press Shift+R to cycle through the modes as you drag a track segment.
- To convert a 90 degree corner to a 45 degree route, start dragging on the corner vertex.
- The interactive sliding engine includes algorithms specifically for dragging a vertex (corner), configure the Vertex Action in the Preferences dialog, or in the Interactive Sliding mode of the Properties panel. Press the Spacebar to cycle through the modes as you drag a vertex.
- To break a single segment, select the segment first, then position the cursor over the center vertex to add in new segments.
- Existing pads and vias will be jumped, or vias will be pushed if necessary and possible when the Allow Via Pushing option is enabled.
- Interactive sliding supports non-orthogonal routing.
- The default behavior is to drag (slide) tracks (selected or unselected). If you need to move a segment without maintaining its connection to the attached segments, change the default dragging behavior using either the Unselected via/track or the Selected via/track options on the PCB Editor - Interactive Routing page of the Preferences dialog.
There is specific support for interactively modifying a T-junction - click and drag on the junction point to modify a T-junction.
Examples of the T-Junction dragging capabilities.
Options that Affect Routing, Rerouting and Interactive Sliding
There are a number of options that impact the rerouting behavior, these options are configured in the PCB Editor - Interactive Routing page of the Preferences dialog.
- The Automatically Remove Loops option must be enabled to perform rerouting.
- As with Interactive Routing, the Current Routing Conflict Resolution mode will be used.
- Use the checkboxes to enable only those modes you want to be available in the Current Mode list.
- Press Shift+R to cycle through the enabled modes as you reroute.
- The Automatically Terminate Routing option is useful. If it is enabled, as soon the new route connects to the existing routing, the redundant loop is removed (as shown in the video above). If this option is disabled, the loop is removed when you right-click to release the current route. The option can work against you when you need to place new routing on top of the existing routing (perhaps overlapping), in this situation it can be better to disable it.
- There are situations when you may want to create loops, for example, power net routing. If necessary, Loop Removal can be disabled for an individual net by editing that net in the PCB panel. To access the option, set the panel to Nets mode, then double-click on the net name in the panel to open the Edit Net dialog.
Interactive Routing and Interactive Sliding Panels
Whether you're interactively routing a connection or dragging an existing route to make way for more routing, the same set of routing technolgies are applied. This section summarizes the options available in the Interactive Routing and the Interactive Sliding modes of the Properties panel, press Tab as you work to open the Properties panel in the relevant mode. After changing the settings, click the icon in the middle of the screen to return to routing or sliding. The default settings for these options are configured in the PCB Editor - Interactive Routing page of the Preferences dialog.
Routing Gloss Effort
During a route event, such as interactive routing, interactive sliding, or ActiveRouting, the software runs the glossing engine. The glossing engine constantly reviews all of the segments placed or impacted by the current route event, attempting to improve the quality of the results. Measures of quality include: reducing the number of corners, reducing the number of segments, removing acute angles and reducing the overall route length.
Glossing has three settings:
- Off - in this mode, glossing is essentially disabled. Note, however, that cleanup is still run after routing/dragging occurs to eliminate, for example, overlapping track segments. This mode is typically useful at the end stage of board layout when the ultimate level of fine-tuning is required (for example, when manually dragging tracks, cleaning pad entries, etc.).
- Weak - in this mode, a low level of glossing is applied, with the Interactive Router considering only those tracks directly connected to or in the area of the tracks that you are currently routing (or tracks/vias being dragged). This mode of glossing is typically useful for fine-tuning track layout or when dealing with critical routes.
- Strong - in this mode, a high level of glossing is applied with the Interactive Router looking for shortest paths, smoothing out tracks, etc. This mode of glossing is typically useful in the early stages of the layout process when the aim is to get a good amount of the board routed quickly. Note that when Strong glossing is combined with one of the arc in corner modes, it also allows any-angle traces. The assumption here is that since the designer is curving the corners they will be comfortable with non-orthogonal routing between corners.
This option controls how corner shapes are to be managed during interactive sliding and will affect both the tracks being slid and the tracks being pushed. During sliding use the Shift+Spacebar shortcut to cycle through the three modes.
- 45 Degree - always use straight orthogonal/diagonal segments to create corners during sliding (use this mode for traditional orthogonal/diagonal routing behavior).
- Mixed - use straight track segments when the objects being moved/pushed against are straight, use arcs when they are curved.
- Rounded - use arcs at each vertex involved in the move/push. Use this mode for snake routing, and to use arcs + any angle routes when glossing (during interactive routing and manual glossing).
Routing Mode / Sliding Mode
This option determines how you want the routing/sliding objects to react when they encounter an existing object. Use the Shift+R shortcut to cycle through the available modes during sliding.
These are the modes that are referred to as the Routing Conflict Resolution modes in the PCB Editor - Interactive Routing page of the Preferences dialog.
To better support the designer's need to easily manipulate and re-shape the existing routing, there are specific options that are applied when you click and drag on a vertex rather than a track or arc (the vertex is the corner location where two segments meet). Use the Spacebar shortcut to cycle through the available modes during sliding.
- Deform - break or lengthen the track segments attached to the moving vertex so that the vertex follows the cursor movement.
- Scale - hold the corner shape and resize and move the incoming track segments, keeping the vertex attached to the cursor.
- Smooth - reshape the corner smoothly, inserting arcs to create a curved corner when dragging inward (in Mixed or Rounded Hugging Style), at every vertex impacted by the sliding process. Also add arcs when dragging outward in Rounded Hugging Style.
- Automatically Terminate Routing - when the current connection being routed reaches the target pad, automatically stop routing that net but remain in the Interactive Routing command, ready to start routing another net.
- Automatically Remove Loops - when this option is enabled you can route a new path for an existing route - when the new route path comes back to meet the existing path the redundant loop is automatically removed.
- Remove Net Antennas - a net antenna is a short, unterminated track (arc) segment. These are automatically removed if the current routing impacts on an object that the antenna is touching.
- Allow Via Pushing - during routing/sliding in Push or Hug & Push modes, allow existing vias to also be pushed.
- Display Clearance Boundaries - display the no-go area around existing objects, defined by the applicable Clearance design rule(s).
- Reduce Clearance Display Area - reduce this display to a circular zone around the current cursor location.
- Show Length Gauge - the length gauge indicates how well the current route is meeting applicable Length and Matched Length design rules. Learn more about Length Tuning.
Pad Entry Stability
The Pad Entry Stability slider protects centered pad entries, preventing Glossing from un-centering a centered track (it holds a centered track on-center, it does not center an un-centered track). Use the slider bar to configure the level of protection:
Off = no protection
Max = maximum protection
The Miter Ratio controls the minimum corner tightness. The Miter Ratio multiplied by the current track width equals the separation between walls of the tightest U-shape that can be routed for that ratio, as shown in the Mitered Corners description, earlier on this page. Enter a positive value equal to or greater than zero (the x multiplier is added automatically).
Min Arc Ratio
The Min Arc Ratio is applied during any angle interactive routing and also during interactive sliding with Mixed Hugging Style. The ratio is used to determine the minimum radius arc allowed, when the arc radius falls below this minimum the arc is replaced by track segments, where:
Min Arc Radius = Min Arc Ratio x Arc Width
Strategies for Selecting the Routing
Selection is a core activity in all areas of the design process, including working with the routing. Whether you're about to gloss or you want to delete some routing, the routes need to be selected first.
Select Within or Select Touching
In the PCB editor, selection can either be objects that are completely within the selection rectangle, or touching the selection rectangle. This is controlled by the direction you move the mouse as you draw the selection rectangle:
||Select Within - click and drag a blue rectangle from left to right to select all visible, unlocked objects that are completely within the selection rectangle.
||Select Touching - click and drag a green rectangle from right to left to select all visible, unlocked objects that touch the selection rectangle.
Extending the Selection
A common situation is needing to select many objects that are touching, for example, the track segments in a routed net, or the connection lines in an unrouted net. It is relatively easy to select a set of track segments that run parallel to each other using the Select Touching technique just described, however, interactively selecting entire routes can be difficult.
This can easily be achieved by selecting one or more track segments and then pressing Tab to extend the selection to include touching track segments.
When you press Tab:
- The first time to select all connected routing objects on the same layer
- The second time to select all connected routing objects on all layers
- The third time to select all objects on that net in the workspace (skipped if there are no unconnected net objects)
- The forth time to return to the intial selection set
Demonstration of using Tab to change the selected routes.
Other Useful Selection Strategies
The Select submenu includes a number of routing-specific selection commands, press the S shortcut key to display it, the press the underlined letter to activate the required command.
The Backspace key also has a useful behavior that can help remove selectively remove routing segments. If an individual track segment is selected, and that segment only touches one other segment, then when Backspace is pressed the selected segment will be deleted and the touching segment will become selected. Press Backspace again, that segment deletes, and the touching one selects. Continue to press Backspace to unroute back to the required location.
Note that if the selected segment has more than one segment touching it, no other segments will be selected when Backspace is pressed.
Use the Backspace key to remove a segment, and then select the last-touching segment.
Routing-Aware Move Component
While routing the board, it is not uncommon for the designer to need to adjust the location of a routed component to create space for new routing. To help with this, the PCB editor includes a routing-aware move component feature. The feature is enabled via the Component Re-route checkbox, in the PCB Editor - Interactive Routing page of the Preferences dialog. Essentially, the feature will break the routing at the component pads, fanouts or escape routes, and then attempt to re-route those broken connections once the moving component(s) has been placed.
A key requirement of the feature is to preserve fanouts and escape routing. To support this, the Shift+Tab shortcut is used to cycle through the possible sets of objects being moved, as detailed below.
During the move process, the options can be controlled using the following shortcuts:
- Component Re-route Mode (Shift+R) - toggles the re-route mode on and off. After the moving set has been released, the software will attempt to re-route the component(s) to reconnect any broken nets. Use the Shift+R shortcut to disable the Component re-route option in Interactive Routing page of the Preferences dialog. The current Component Re-route status is displayed in the Heads Up display and on the Status bar.
- Change Component Selection (Shift+Tab) - while dragging, the set of objects being moved can still be changed. Press Shift+Tab to cycle through the following selection sets:
- Components only, then
- Components +Via Fanouts +Escapes +Interconnects, then
- Initial selection set (if different from the previous two), then
- Back to Components only.
- The Move component with relevant routing option behaves as follows:
- Enable the option to start the move component action with the relevant routing (Components +Via Fanouts +Escapes +Interconnects), use the Shift+Tab shortcut to cycle the selection set as described above.
- Disable the option to start the move component action with components only selected. Because the set of relevant routing objects is detected prior to the move commencing, it is not possible to use Shift+Tab to cycle through the selection set when the option is disabled.
When the Component Re-route option is enabled, connected routes are restored after the moving component is placed.
Improving the Quality of the Routing
The PCB editor includes powerful tools for improving the quality of existing routing. Whenever you move the cursor to define a new route path, all of the proposed routing is automatically glossed. Glossing will attempt to reduce the path length, and also improve the shape of corners and reduce their number, generally resulting in neater routing created from fewer segments.
Glossing has three settings; Off, Weak and Strong. Use the Ctrl+Shift+G shortcut to cycle through the settings during interactive routing or interactive sliding, or press Tab to open the Properties panel and select the setting. Along with the current Gloss Effort setting, Glossing also obeys these settings:
- Corner Style
- Hugging Style (during Interactive Sliding and also when the Gloss Selected or Retrace Selected commands are run)
- Miter Ratio
- Min Arc Ratio
Using these options, Glossing controls how tightly a corner is created and how the curved shape is formed in the route around a curved obstacle.
Existing routing can be glossed by running the Route » Gloss Selected command. Use this to your advantage to perform design changes, such as converting mitered corners to arcs, by configuring the Corner Style before running the command.
Existing routing can also be retraced (Route » Retrace Selected). Retrace assumes the overall geometry is satisfactory, focusing instead on verifying that the routing meets the design rules. Where Gloss preserves the existing trace width and pair gap, Retrace changes them to Preferred. Retrace is an excellent tool to use when a design rule has changed, and that change needs to be applied to existing routing.