Routing the PCB
Parent page: More about PCB Design
Working in harmony with the component placement, the routing is the other key factor in the success of your PCB design. Altium Designer includes a number of intuitive interactive routing features to help you efficiently and accurately route your board, from a simple double sided board all the way through to a high density, high speed, multi-layer board. It also includes a differential pair router, and interactive length tuning of both single-sided and differential routes. If your design has a high net count, you might like to explore the topological autorouter, which produces results like that of a board designer.
Before you commence routing, it is important that the board is ready. Use this article as a checklist to help you work out if your board is ready, then refer to the lower-level articles to learn more about the various approaches to routing.
Is it Ready to Route?
There is a saying that PCB design is 90% placement and 10% routing. While you could argue about the percentage of each, it is generally accepted that good component placement is the most important aspect to good board design. Keep in mind that you may need to tune the placement as you route too, perhaps running a test autoroute on a dense area first to see if it is route-able. If the autorouter can complete more than 80% of the nets, then you should be able to interactively route it with that number of layers.
If the design includes high speed nets, then the component placement becomes even more critical. Now you must consider the separation of noisy nets, such as clocks, from quiet nets, such as data lines. You must also consider the distribution of power over the board - referred to as the Power Distribution Network (PDN) - and plan where those critical return paths for the high-speed signals will flow. As part of this process, the placement of bypass and decoupling capacitors is critical. For the routing in and out of the components, the manufacturers often include layout guidelines in the device datasheet - follow these when they are available.
Prioritizing the Routing
Where to begin, you ask? An autorouter typically routes connections one by one, whereas a human can consider the impact of many connections simultaneously. For the autorouter to have any hope it must do a good job of ordering the connections for routing. It will use factors such as connection length, density of connections, assignment of direction to routing layers, alignment of the connection direction to routing directions, and so on. And if it is any good, it will review the order constantly as it routes. A human will consider these factors as well, but will also use higher-order skills, such as will this set of 16 routes pass between those two components, should these noisy nets be routed on a separate pair of layers from these sensitive nets, and so on.
First route or fan out the power nets. After the power nets, consider the critical signals, such as oscillators, differential pairs, high-speed interfaces, then the quiet nets.
Finding a Net on the Board
An unrouted board can appear intimidating - a mass of connection lines crisscrossing all over the board. A good approach to routing is to work from the schematic, where you can easily locate important components and critical nets. You can cross-select and cross-probe directly from the schematic components and nets, highlighting the equivalent item on the PCB. To learn more, refer to the Working Between the Schematic and the Board article.
You can also control the display of the connection lines by masking or hiding the nets you are not interested in. Setting the color of important connection lines will also help you manage the routing process. The following sections discuss how to control the display and color of nets.
Using the PCB Panel to Identify the Net
A valuable feature is the PCB Editor's ability to mask or dim objects in the workspace. This filtering feature will fade out everything, except the object(s) that pass through the filter. The image below shows a single net has been selected, with the filtering system set to Dim all objects that do not pass the filter.
To explore this, set the mode of the PCB panel to Nets, this will display a list of nets on the board. Use the dropdown to set the filter mode to Dim or Mask, then enable the Select and Zoom options, as shown in the image below.
As you click on a net name in the panel the workspace display will change, zooming to show the nodes in the net, and fading out everything except the pads and connection lines in the net - effectively pulling that net out from the rest of the board. Note that even when you click in the workspace the filter remains, the chosen net remains clearly visible, making it easy to examine or route.
Click the Clear button at the bottom right of the workspace to clear the filter and restore the entire workspace to normal brightness.
Note that as well as an individual net, you can filter out a class of nets (if any classes are defined), and also do it for multiple nets (by holding the CTRL key as you click in the PCB panel to select a net name).
Changing the Connection Line Color
When the design is transferred from the schematic into the PCB workspace, default layer and color settings are applied. As part of this process, all of the connection lines are assigned the Default Color for New Nets, as defined by that color option in the Board Layers and Colors tab of the View Configuration dialog (Design » Board Layers & Colors [shortcut L]). View configurations are available for use in both 2D and 3D workspaces, and can be saved and re-used.
An easy way to make important nets stand out during the routing process is to change the color of their connection lines. To do this, double-click the net name in the PCB panel to open the Edit Net dialog, where you can edit the connection line color (set the panel to Nets mode). Alternatively, to change the color of one or multiple nets, first select the required nets in the PCB panel, then right-click on a selected net and choose the Change Color command.
Displaying Connection Lines using the Layer Colors
As well as setting the connection line color for individual nets, you can also display the connection lines using the colors of the start and end layers that the connection line travels between. These connection lines are displayed as dashed lines, using the colors of both the start and end layers.
This feature is ideal when you are routing a multi-layer board, as it you can easily tell the target layer that connection being routed must get to. Note that this dashed color override is only applied to nets that travel from one layer to another, if the connection starts and ends on the same layer it retains its defined color.
To use the color-by-layer feature, enable the Use Layer Colors for Connection Drawing option in the View Options tab of the View Configurations dialog, as shown below.
Displaying Connection Lines in Single Layer Mode
A multi-layer board is visually dense, making it difficult to interpret what is going on. To help with this, you can easily switch the layer display from the enabled layers to Single Layer mode, by pressing the Shift+S shortcut.
Normally, when you do this, all connection lines that do not either start or end on the current layer are also hidden, as it is assumed that they are not relevant. To always display the connection lines, enable the Show All Connections in Single Layer Mode option in the View Options tab of the View Configurations dialog, as shown below.
Hiding/Displaying Connection Lines
As an alternate to filtering nets via the PCB panel, you can completely hide one, many, or all of the connection lines. There are a number of commands to control the display of connection lines in the View » Connections submenu. You can also access these commands while you are working by pressing the N shortcut key.
Using the Net Color on Routed Nets
You know how to change the color of a net, and how to configure the options to use the net color for the connection lines. You can also use the net color for routed nets, by enabling the Net Override Color feature.
The feature is enabled by the checkbox located next to each net name in the PCB panel. When it is enabled, the net color will override the layer color, in accordance with the Color Override settings configured in the PCB Editor - Board Insight Color Overrides page of the Preferences dialog.
When zoomed in, any net with the Override Color checkbox enabled will display in the chosen Base Pattern, in the example image above it is a checkerboard mix of layer color and net color. The Zoom Out Behavior in the image above is for the override (net) color to dominate.
Are the Design Rules Defined?
Main articles: Specifying the Design Requirements - Design Rules, Design Rules Reference
Before you start routing, you need to configure the applicable routing design rules. Select Design » Rules from the menus to display the PCB Rules and Constraints Editor dialog. The tree on the left of the dialog shows the 10 rule categories (Electrical, down to Signal Integrity). In each category there are a number of rule types, for example, there are eight different types of routing rules you can define.
Selecting a rule type will display all the rules of that type that are currently defined. The image below shows the four routing width rules defined for a board. Note the rule priority, this defines the precedence that the rules are applied, with 1 being the highest. The rules engine searches for the highest applicable rule when an object is being checked for rule compliance.
Click on an individual rule name in the tree on the left of the dialog to display the settings for that rule. There are two distinct parts to every design rule, the constraint - what are my requirements?, and the scope - what do I want this rule to target? Using the routing width design rule as an example, let's look at this in more detail.
The Rule Constraints
Rule constraints specify the settings or limits you want applied to the objects targeted by this rule.
For the Width rule, constraints define the minimum, preferred and maximum widths of the track segments that make up the routing. Note that the min / preferred / max settings can also be defined for each of layer of the board, an important feature for controlled impedance routing. A handy feature is the ability to change the routing width as you route, between the minimum and maximum settings, read about this in the Changing the Track Width while Interactively Routing section of the Interactive Routing article.
The Rule Scope
Altium Designer has a powerful and flexible rule definition system, making it possible to exactly specify the design requirements, however complex they might be. Rather than defining routing requirements as attributes of the objects, design rules are defined separately, and then target the objects they apply to, via the rule's scope along the lines of 'I want this rule to apply to those objects'.
The rule scoping system uses the filtering engine that underlies the PCB editor, to target the objects that it applies to. Ultimately each rule scope becomes a query, but for many rule scopes you can define it by selecting options from dropdown lists. For example, in the image above the query is targeting the GND
net - this actually becomes a query, of the form InNet('GND')
. When there is no suitable option in the dropdown you choose the Custom Query option, and then use the Query Builder to walk through the process of creating a query, or write one directly yourself, using the Query Helper if needed.
It is this ability to exactly scope each rule, in combination with the ability to assign each rule's priority that gives you complete control over the PCB design requirements.
To learn more about writing a query for a design rule, refer to the Scoping Design Rules article.
The Width Rule
The most basic routing rule is the Routing Width rule, which determines the width that the nets will be routed at. As a minimum, your design will have one width rule, targeting all nets on the board.
It is not good design practice to have only one width rule for a board, with the minimum width set to the smallest routing width you need on the board, and the maximum set to the widest route you need. A better approach is to have one rule that targets the largest number of nets, with a scope of All. You then add extra rules that target individual nets or classes of nets, such the GND net, or the PowerNets net class (if such a class has been created). Set these rules to have a higher priority, so whenever you start to route one of these nets the higher priority rule will override the All nets rule, giving you the correct routing width. Suitable Width rules need to be defined before you start routing.
The Clearance Constraint
The partner to the width rule is the clearance constraint, which defines how close the net you are routing is allowed to get to other objects on the board. Again you can define multiple clearance constraints, to keep higher voltage nets or differential pair nets away from other routing, to keep polygon pours a specific distance from routing, and so on. Suitable Clearance Constraints need to be defined before you start routing.
Setting Up the Routing Layers
Main article: Defining the Layer Stack
Routing layers, also referred to as signal layers, are set up in the Layer Stack Manager dialog (Design » Layer Stack Manager), as shown below. Use the dialog controls to add layers and set their location in the layer stack.
Check out the Layer Stack Manager dialog to learn more about configuring the fabrication layers.
The display of all layers, and the addition of mechanical layers, is controlled in the View Configurations dialog (shortcut L)\ shown below.
Check out the View Configurations dialog to learn more about configuring the display of layers.
Where to Next?
Ready to route? Altium Designer includes a number of interactive routing capabilities, including interactive and differential pair routing tools.
Altium Designer V17.0 also saw the introduction of ActiveRoute, 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.