Routers in PCB Boards: Working with Altium Designer’s Multilayered Via Routing Rules
Table of Contents
Some of the first ideas and drawings of two-layered PCB design came at the turn of the century, right before the world would descend into its first world war. It should come as a surprise that an idea and an adaptation to circuit boards, two-layers, developed over one-hundred years ago is still alive and well. But it should come as no surprise that with time comes new adaptations, and the era of multilayered stackups is much more appropriate for today’s designs.
To look at the component layout of a television from the 50s to the circuit boards of today, one would find an intense contrast. Demands for greater and greater densely-packed HDI boards have made internal routing a necessary skill to implement on your multilayered PCBs.
You can think up a good routing scheme easily enough, but actually implementing them into design software, can be a tricky task. Fortunately, Altium makes it very simple to create a set of user-defined Multilayer VIA routing rules and create routing schemes that seamlessly follow along. Below we’ve put together a short run through of a multilayered routing scheme that can translate nicely into any layout or project of yours.
Before you get very far, you will obviously need to define the layers you’ll be working with. In this example, let’s use a ‘standard’ 8 layer stackup. This will allow you plenty of layers to route through.
To define the layer stackup in your PCB project file, navigate to ‘Design’ > ‘Layer Stack Manager.’ You’ll see something like the following image layout.
Default layer stack manager window.
To add additional layers, select ‘Add Layer’ until you’ve reached your number.
To change values of each layer, such as the layer name or thickness, double-click and edit the properties. For ease of this example, I’ve changed the name of each layer to Li where i is the layer number (L1 through L8):
Adding layers to the PCB document.
Once appropriately titled, you’ll need to specify drill pairs so your software knows which layers will be related. In our specific example, you’ll run through a stack up as follows:
- Through Hole from L1 to L8 (default)
- Micro Via from L1 to L2
- Micro Via from L2 to L3
- Buried Via from L3 to L6
- Micro Via from L6 to L7
- Micro Via from L7 to L8
To specify the drill pairs, select ‘Drill Pairs’ from the Layer Stack Manager to open up the Drill Pair Manager. Note that the default pair will always include the top and bottom layer for any standard through holes.
Begin adding pairs by selecting ‘Add.’ You should end up with pairs as below (we’ll specify their parameters in a bit):
Defining drill pairs between layers.
Once the drill pairs are defined in the Layer Stack Manager, you’ll now specify their parameters to follow when proceeding to the routing portion.
Navigate to ‘Design’ > ‘Rules’ to open up the Rules and Constraints Editor. Under ‘Routing’ > ‘RoutingVias’ you’ll be able to set the rules for each drill pair.
Starting with the through hole default drill pair, create a new rule (or change the name of the existing via rule) and name it ‘ThroughHole.’ You’ll specify the via diameter to be a typical .45mm with a hole size of .2mm by double-clicking the values you wish to change.
To specify the drill pairs associate with this rule, you’ll select ‘Drill Pair’ from the dropdown menu under ‘Where the Object Matches.’ Selecting ‘L1 - L8’ will let Altium Designer® know that when you route from layer 1 to layer 8, the ThroughHole rule will be in effect (which specifies our aforementioned parameters).
The result will look like this:
Setting via rules.
Now you’ll add some more rules for micro and buried vias similar to the above.
For the purpose of a buried via, you can duplicate your ‘ThroughHole’ rule, rename it, and select the appropriate drill pair (L3-L6). This way, you can leave the dimensions the same as they will be moving toward the same overall stackup.
But for your microvias, since there is more than one drill pair, you can either create a separate rule for each drill pair, or you can create a custom query that will encompass each drill pair in the one rule.
I, personally, like to use the custom query option as it will save less overall clicking and typing. Select ‘Custom Query’ from the drop down menu, and insert the following script into the box:
((StartLayer = 'L1') and (StopLayer = 'L2')) or
((StartLayer = 'L2') and (StopLayer = 'L3')) or
((StartLayer = 'L6') and (StopLayer = 'L7')) or
((StartLayer = 'L7') and (StopLayer = 'L8'))
This will inform Altium that any routing that occurs between layers 1 and 2, or routing between layers 2 and 3, or between layers 6 and 7, or between layers 7 and 8 will follow the ‘MicroVias’ rule.
Additionally, don’t forget to change the dimensions of the microvias to become, well, micro. It wouldn’t do to make a custom rule for something that will be consistent in size with a previous rule.
The end result will look like this:
Implementing a custom query for multi-layered routing.
With your rules in place, you can begin routing responsibly between layers. The best part is that for every step, your rules will follow along and be consistently applied.
Selecting the interactive routing option (Ctrl + W) you will be starting with the default at L1. Click to place an initial route and then toggle through board layers by either the ‘+’ and ‘-’ keys or by holding ‘Ctrl,’ ‘Shift,’ and using scrolling with your mouse wheel. Notice that the via size changes depending on the layers you’re routing in between - these are your rules at work!
A quick sketch between each layer results in a scheme that might look like this in the end (but in a full circuit of course):
What your color coordinated via routing will look like after setting layers and rules.
Altium’s layer stack management platform along with the rules constraint editor makes routing with rules, in a multilayered environment a piece of cake. This is just a small example of what can be done. As with any tool and feature in Altium’s user-friendly interface, it can be magnified and expanded into other rules of routing, placement, and so on.
For further documentation on using Altium’s layer stack manager, consult the following pages: