Interactively Routing a Net
Contents
- The Basics - Placing Tracks
- Placing Tracks and Looking Ahead
- Controlling Corner Styles
- Track Neatness - Glossing
- Controlling Pad Entry/Exit
- Automatic Connection Completion
- Handling Routing Conflicts
- Walking Around Obstacles
- Pushing Obstacles
- Force Walkaround Obstacles When in Push Mode
- Hugging then Pushing Obstacles
- Ignoring Obstacles
- Conflict Resolution Settings
- Adding Vias and Switching Layers During Routing
- Adding a Via On Layer Change
- Adding a Via Without Layer Change
- Adding Fanout Vias
- Switching Layers for Current Route
- Length Tuning Connections while Interactive Routing
- Changing the Track Width while Interactively Routing
- Setting the Constraints
- Freedom Within the Defined Constraints
- Pick the Width from Pre-defined Favorites
- Using Pre-defined Widths as you Route
- Entering a Width that is Not Pre-defined
- Picking Up the Existing Track Width
- Keeping Track of your Status
- See Also
Interactive Routing is more than placing down track objects to join the dots (pads). Altium Designer supports fully featured interactive routing, available via the Place » Interactive Routing command, the button on the PCB Standard toolbar, and the right-click menu. The Interactive Routing tools help maximize routing efficiency and flexibility in an intuitive way, including following cursor path for laying route sections, single-click routing completion, pushing or walking around obstacles, and automatically following existing connections, all in accordance with applicable design rules.
When you start interactive routing, the PCB Editor will not only let you start placing track objects, it will:
- monitor cursor position and mouse-clicks, applying all applicable design rules
- follow your cursor path, minimizing the number of actions required to place sections of routing
- monitor the connectivity and update connection lines as soon as you finish a route
- supports routing-specific shortcuts, eg. pressing the * key on the numeric keypad to push to the next signal layer, inserting a via in accordance with the routing via style design rule.
The Interactive Router can be easily controlled on-the-fly using the cursor and the keyboard shortcuts, ensuring that all options are available when you need them - during the route. Since there are a large number of shortcuts, the following sections will cover each interactive routing control/shortcut, grouped by its basic functionality.
Press the Shift+F1 keys while routing to display the available interactive routing shortcuts. Alternatively, open the Shortcuts panel for easy access to a list of interactive shortcuts.
An extension to interactive routing is the Interactive Differential Pair Routing mode, where you route a pair of connections simultaneously.
The Basics - Placing Tracks
Once you enter Interactive Routing mode the cursor changes to a crosshair, waiting for you to click on a pad to begin routing from. Once you have clicked on the start location for the route, the current mode is shown on the Status bar or in the Heads Up Display (HUD), if it is enabled. To place a track, move the cursor to where you want the current section of track segments to end and Left Click or press ENTER - the track will be placed up to the current cursor position. Using your cursor path as a guidance system for the route provides you with high degrees of flexibility in controlling the path that the routing will take with the minimum number of actions required to commit the route.
Above is an illustration of how complex routes can be created quickly with the routing path guided by cursor movement. The left image shows a normal, minimal length route, the center image indicates the cursor path, with stars indicating where clicks were made to commit sections of the route. The right image is the resultant routing. Although an extreme example, it shows how few routing commits are required to place many tracks.
Cursor guided routing makes complex manual routing around obstacles fast, easy and intuitive. In other words, you create the path of the route with your mouse and the Interactive Router attempts to place the tracks according to that path. This works in accordance with design rules and also with various constraints for track placement and corner types.
As you route, click to place the tracks up to the cursor then continue moving your cursor and so on. This is so that the software can accurately maintain the path you have chosen - if you go too far before committing the tracks, it is possible that portions of your path will be altered.
Note: In free-space (no obstacles to route around), routing will generally be placed to minimize length. If you want to accurately control the route in free-space, you must click to place the tracks where you want them to stay.
If you need to change the path of the route, you can reverse the path of the cursor back over itself and any uncommitted tracks will be removed. Be sure to follow the original path fairly closely so that the software can recognize that you are undoing the path and not adding to it. To reverse back over committed paths, you need to use the BACKSPACE key to progressively reverse committed sections back to the previously committed section. If you have committed the path right up to the target, path reversal is not available.
The following basic keyboard shortcuts can be used at any time:
- ENTER or Left-click Mouse - Commits the routing up to the current cursor position and places the tracks.
- ESC - Terminate the current route. Any routing that has been committed before calling the termination is retained.
- BACKSPACE - Unwinds the last committed route back to its starting point. If any objects had been pushed through placing the last segment, they are moved back to their original positions. This feature is not available after using Auto-Complete.
- 7 - Cycles through the connections available for routing if the current pad has multiple connections.
- 9 - Switches the cursor position from the currently selected pad or track to the target pad or track. If the location of the object being switched to is not in the current window, the view jumps and centers around the new cursor position.
Placing Tracks and Looking Ahead
There are two modes for committing tracks in relation to the cursor position. Tracks can be placed right up to the current cursor position (place all currently uncommitted segments), or place all up to the current cursor position except the last segment. This second mode is known as Look Ahead mode, it allows you to accurately place all of previous segments without having to commit the last segment. This can be handy if you are exploring path options.
Use the 1 shortcut key to toggle the mode on-the-fly.
Controlling Corner Styles
Multiple styles are available for controlling the changes of direction of the route. The styles are always available and can be cycled through using SHIFT + SPACEBAR. Note: If the Restrict to 90/45 option is enabled in the PCB Editor - Interactive Routing page of the Preferences dialog, the arc and any angle corner options are unavailable.
Corner styles available include:
- Any angle
- 45°
- 45° with arc
- 90°
- 90° with arc
Arcs can be increased or decreased in radius (known as "setback") using . (period or full stop) and , (comma) respectively. SHIFT + . and SHIFT + , increase/decrease setback by a factor of 10.
Use SPACEBAR to toggle the direction of the corner.
The Interactive Router has many features that control how the tracks are laid and what to do when encountering other objects on the board. The following sections cover these functions.
Track Neatness - Glossing
Related article: Interactive Routing - Glossing
Glossing is a term used to describe how much effort the interactive router should apply to the task of reducing the number of corners in the proposed set of track segments that are currently attached to the cursor. There are 3 levels of glossing available:
- Strong
- Weak
- Off
The Routing Gloss Effort option is selected in the Interactive Routing page of the Preferences dialog. It can also be changed on the fly by pressing the Shift+Ctrl+G keyboard shortcuts.
Controlling Pad Entry/Exit
The Interactive Routing Preference Allow Diagonal Pad Exits can be used to help control how a track enters and exits a target routing pad. This option is enabled/disabled in the PCB Editor - Interactive Routing page of the Preferences dialog.
- If you Enable this preference the Interactive Router is allowed to exit pads diagonally.
- If you Disable this preference the Interactive Router will always attempt to exit pads at 90°.
Tip: This option can be particularly useful on very dense PCBs when you need to be able to exit a pad from odd locations.
Automatic Connection Completion
The Interactive Router is able to attempt automatic completion (Auto-Complete) of connections to the target pad, hold CTRL and Left Click to instruct the Interactive Router to attempt to complete the current connection. This can make routing much faster than placing individual track segments, however, there are some limitations to Auto-Complete feature, as follows:
- Start point and target pad are on the same layer
- The route can be completed in accordance with design rules (provided that routing conflicts are not being ignored).
Auto-Complete is available at any time, and you can even CTRL + Click directly on a pad or connection line to route it, there is no need to select it first. You can use Auto-Complete on connections that are partially routed as well. To do this, CTRL + Click on the end of the last track segment or the remaining connection line to complete it to the target.
If a connection cannot be auto-completed the tool will return to the last used interactive routing mode.
Handling Routing Conflicts
Routing is a juggling process, placing tracks amongst the existing component pads, tracks and vias. Altium Designer has different methods of dealing with conflicts created between your new route and existing objects encountered during interactive routing. These tools help make routing as painless and as quick as possible whilst, at the same time, maintaining routing elegance and consistency.
Any method of conflict resolution can be called at any time during routing. Cycle through and select the desired conflict resolution mode using SHIFT + R.
During interactive routing, if you attempt to route into an area that cannot be resolved using Push or Hug & Push modes, an indicator appears at the end of the permissible tracks so you know immediately that you are blocked.
Walking Around Obstacles
This mode will attempt to follow your cursor and find a routing path around existing obstacles. If conflicting objects cannot be traced around to accommodate the new routing without causing violations, the routing will be automatically clipped at the nearest conflicting object.
Pushing Obstacles
Related article: Control Via Pushing during Interactive Routing
This mode is also known as push 'n' shove. It will follow your cursor and will attempt to move objects (tracks and vias) , which are capable of being repositioned without violation, to accommodate the new routing. If conflicting objects cannot be moved enough to accommodate the new routing without causing violations, the routing will be automatically clipped at the nearest conflicting object and the blockage indicator shown.
Force Walkaround Obstacles When in Push Mode
When routing in Push mode, you can force walkaround obstacles if necessary. To do this, hold the 6 key down to allow a walkaround to take place, click to commit the route, then let off the 6 key to return to Push mode.
Hugging then Pushing Obstacles
This mode is a combination of Walkaround and Push functionality. It will follow your cursor and walkaround obstacles, however, will also take on Push mode functionality when the tracks you are placing violate against existing obstacles. Existing obstacles such as vias and tracks will be pushed, fixed obstacles such as pads and locked objects will not be moved.
If conflicting objects cannot be walked around or moved enough to accommodate the new routing without causing violations, the routing will be automatically clipped at the nearest conflicting object and the blockage indicator will be shown.
Ignoring Obstacles
This mode makes no attempt to avoid routing conflicts as it follows your cursor. Rule violations are highlighted as you route, but you are free to route wherever you want.
Conflict Resolution Settings
The Routing Conflict Resolution settings used when you first start routing are configured in the PCB Editor - Interactive Routing page of the Preferences dialog (Tools - Preferences). These settings in this dialog will reflect the modes and options that were last used during interactive routing.
These same settings can also be accessed from the Interactive Routing for Net dialog (Figure 20), which can be opened by pressing TAB during interactive routing. Whenever these settings are changed (in either dialog or through the shortcut menu system), they become the initial settings when the Interactive Routing command is next called.
The Status bar shows you the current routing mode being used (as does the Heads Up Display (HUD), when it is enabled). You can toggle the HUD information using the Summary option in the PCB Editor - Board Insight Modes page of the Preferences dialog.
Adding Vias and Switching Layers During Routing
Altium Designer provides you with ability to add vias on-the-fly during interactive routing. Vias can be added in only valid locations, that is, the software will prevent you from placing vias if they conflict with objects on any of the layers (this does not apply if the conflict resolution mode in set to Ignore). The properties of the via are determined by the applicable Routing Via Style design rule in the PCB Rules and Constraints Editor dialog (Design - Rules).
Adding a Via On Layer Change
Press the *** (asterisk) or + (plus) key on the numeric keypad while routing to insert a via and switch the routing to the next signal layer. Press the - (minus) key on the numeric keypad to insert a via and switch the routing to the previous signal layer. These commands follow the Routing Layers design rule, meaning that it will only switch to layers that are allowed to be routed on. Click to commit the via position and continue routing.
Adding a Via Without Layer Change
Press the 2 key while routing to insert a via, however, keep routing on the current signal layer. Click to commit the via position.
Adding Fanout Vias
Press the / key while routing to insert a via for the current route, click to commit the via position, with the tool returning to its previous interactive routing mode, enabling you to immediately begin routing another connection. This function can save time when there are many vias to place, as in a typical fanout.
Switching Layers for Current Route
When you are routing from a multi-layer pad or via, you will sometimes discover that the chosen layer is not suitable. Rather than dropping the connection, changing layers, and starting to route that connection again, you can press L at any time to switch the layer for the current connection to the next signal layer defined for that pad/via.
Length Tuning Connections while Interactive Routing
As well as adjusting the length of existing routes, you can also control the length during routing. Route lengths are tuning by Altium Designer adding in extra track segments in accordion-like patterns, in order to reach the desired overall length.
Press SHIFT+A to enter Length Tuning mode while routing. Once entered, this mode will begin placing accordion sections as you move the cursor along the route path. You can specify length tuning options, such as target length, amplitude and accordion styles, etc in the Interactive Length Tuning dialog. Press TAB while length tuning to open this dialog. Press SHIFT+G to display the Length Tuning Gauge. Press SHIFT+H to display the Heads Up Display, which will detail the current route length and the required route length.
To learn more about interactive length tuning, refer to the topic Tuning Route Lengths
Changing the Track Width while Interactively Routing
Altium Designer has a number of ways of adjusting the track width during the routing process.
Setting the Constraints
The rules define the limits that are acceptable in your design. Typically there is a range to these limits, for example, you might want signal tracks to be 0.2mm wide (≈ 8mil), but your board fabricator will handle a small amount of tracks down to 0.13mm (≈ 5mil), at no extra cost. Or your power fanout tracks are typically routed at 0.4mm, but you can accept them down to 0.2mm if necessary, and will always make them wider wherever it is possible.
The Routing Width design rule includes a preferred setting, use this if you want a preferred starting width that is somewhere between the minimum and maximum widths. You then configure which width should be used when you start interactive routing in the PCB Editor - Interactive Routing page of the Preferences dialog, as shown below.
Freedom Within the Defined Constraints
Sure you say, the minimum and maximum settings define the boundaries, and the preferred setting is handy, but I need greater choice over what width I use in a given situation. Altium Designer can give you this - the safety of the rule boundaries, with complete flexibility to choose a width between them. Read on to learn about the three ways you can select a different routing width while you are routing.
Pick the Width from Pre-defined Favorites
Press the SHIFT + W shortcut while you are routing to pop up a palette of pre-defined widths, and click to select the width you want, either metric or imperial. You still have the full protection of the rules system, if the number you click on is outside the min-max rule setting the width you will be clipped back to the minimum or maximum, whichever is appropriate.
The figure above shows the Choose Width dialog that appears when you press SHIFT + W as you route. Right-click in the dialog to hide/display the different columns. Use the Apply To All Layers option to set the current routing width in all of your signal layers.
To add or remove width settings from the dialog, click the Favorite Interactive Routing Widths button in the PCB Editor - Interactive Routing page of the Preferences dialog. The Choose Width dialog will open, as shown below, this time with buttons across the bottom for editing the width settings. Note the shading in the dialog. Entries without shading indicates the preferred units of this entry, the board units will be switched automatically when the entry is chosen. To enter a new preferred width click the Add button. If you include the units (either or mm or mil) then you can control the units you want used for that entry.
Using Pre-defined Widths as you Route
As discussed earlier, the Track Width Mode option in the PCB Editor - Interactive Routing page of the Preferences dialog lets you define which width will be used when you start routing a net. If you then use the Shift + W shortcut to change the width on the fly, this option will be switched to User Choice mode. When you use the SHIFT + W shortcut to change the width, Altium Designer will switch the Track Width Mode option to User Choice, and save the setting you chose as a property of that net. The width you chose is saved as the Current Interactive Routing Settings properties of the net, which you can see in the Edit Net dialog. To examine this setting, right-click a net object and select Properties from the Net Actions sub-menu to open the Edit Net dialog, as shown below. Alternatively, double-click the net name in the PCB panel to open the dialog. You can define settings in advance, and changes you make during routing are saved here.
Press the 3 shortcut to cycle the Track Width Mode while routing.
Again, you still have the full protection of the rules system, if the value you have defined in the Edit Net dialog is outside the min-max rule setting the width you get will be clipped back to the minimum or maximum defined in the applicable rule, whichever is appropriate.
Entering a Width that is Not Pre-defined
For the ultimate level of control, you can enter any width while you are routing. Altium Designer's generic edit on-the-fly feature is available during schematic or PCB object placement. Pressing TAB opens the Interactive Routing for Net dialog, as shown below.
Here you can enter an exact track width or via size. You can also check the current Interactive Routing settings, rather than having to drop out of routing and open the Preferences dialog. The value you enter in the Interactive Routing for Net dialog is saved as your user choice for that net, opening the Edit Net dialog for that net will confirm this.
Picking Up the Existing Track Width
If you do route using a variety of widths, and want new routing to default to size of an existing track you are starting from, enable the Pickup Track Width from Existing Routes option in the PCB Editor - Interactive Routing page of the Preferences dialog. To temporarily inhibit the pickup behavior, hold the SHIFT key as you click to start routing. To pickup a different width from some other existing track on the board, start routing, move the cursor over that track and press the INSERT key. Current layer objects have higher priority. Using any of these options will set the user choice value (in the Edit Net dialog) and switch the Track Width Mode to User Choice.
Keeping Track of your Status
During interactive routing keep an eye on the Status bar, it will let you know what interactive routing width mode you are currently in, as well as providing detailed feedback on the net, including the current routed net length. This information is also displayed in the Heads Up Display (HUD), if it is enabled (Shift = H to toggle the HUD on and off).
The Status bar and Heads Up Display provide information on the routing mode and the net being routed.
See Also
Getting ready to route
Modifying Existing Routing
Differential Pair Routing
Tuning Route Lengths
Fanout and Escape Routes