How to Perform Differential Pair Tuning in Altium Designer

Zachariah Peterson
|  Created: April 8, 2020  |  Updated: September 26, 2021
Interactive differential pair length tuning in Altium Designer

In order to properly suppress common-mode noise, differential pairs should be routed in parallel with symmetry and matched lengths. Today's CAD tools make it easy to come close to all three objectives, but only if you have the right design tools. Instead of eyeing out your different pair lengths, the interactive routing tools in Altium Designer make differential pair length matching easy. You can encode permissible length mismatches as design rules as part of controlled impedance routing, or you can manually perform differential pair tuning using a variety of meandering styles. Here’s how this works in Altium Designer.

Objectives in Differential Pair Tuning

In a simple example I’ll show below, I’m routing differential pairs between a USB 2.0/Ethernet hub chip which I want to connect to multiple USB PHY interfaces, which then connect to multiple USB ports. If you’re not familiar with USB, the data connections to the USB ports are differential pairs, which must be impedance controlled and length matched to ensure connections have low noise and reflections are suppressed. According to the USB standards, the differential impedance of the pairs leading to the USB connectors must be set to 90 Ohms, with tolerance depending on the USB generation. Since we’re using USB 2.0, we have a generous 15% tolerance on the impedance.

Here, the size of the connectors I’m using are much wider than the size of the hub, so we have a situation  in which we almost “fanout” (not in the BGA sense) the differential pairs from the hub’s 48-pin QFP and to the downstream PHY/connector interfaces. If the distances are long, and depending on how the pairs are arranged, the pairs may not meet the precise length matching requirements for USB connections. In the USB 2.0 PHY standard, the length mismatch shouldn’t exceed 2 mils, and total length should not exceed 4 inches. These design rules (differential impedance and length/delay tolerance) are the two inputs

When creating your schematic, make sure to define the appropriate nets as positive and negative ends of the differential pairs, otherwise the following steps will not work for length tuning. After you do this, you can get started with the steps required for differential pair tuning in a controlled impedance application.

Getting Started: Defining an Impedance Profile

Once you’ve created your schematic and decided on a layer stack, you’ll need to create an impedance profile. Here, I’m using a 64-bit PCI Universal Short Card board with 10 layers; it's a bit overkill but it's a quickly accessible template in Altium Designer. This template is accessible when you create a new project in Altium Designer.

If you open the Layer Stack Manager in the PCB Editor window, you can go to the Impedance tab to create a new impedance profile. Here, we want to create a differential-pair impedance profile set to 90 Ohms differential impedance with 15% tolerance. To do this, keep the Impedance tab open and bring up the Properties panel. You can define all aspects of the differential pair—including copper roughness—in your manufacturing process, directly in the Properties panel.

Differential pair impedance profile in Altium Designer
Defining a differential pair impedance profile in Altium Designer

Here, I’ve named my differential impedance profile “D90”, and I’ve left the default single-ended impedance profile named “S50.” Once your differential impedance profile is defined, you’ll need to bring it into your design rules.

Setting Design Rules

Next, we need to modify the default design rules so that the differential impedance profile we defined above applies to the differential pair routing tools. To do this, click the “Design” menu, then click on “Rules…” This will bring up the PCB Rules and Constraints Editor, as shown below. Here, we want to create a new rule that applies to the differential pairs to be routed between the USB PHY interfaces and the USB hub component.

Here, you need to create a new rule and select the nets to which it will apply. You can also set this new rule to apply to an entire layer if you like. Once you create the new rule, check the “Use Impedance Profile” box and select the differential impedance profile you defined (mine is “D90”).

Selecting a differential pair impedance profile in Altium Designer
Selecting a differential pair impedance profile for your USB routing nets

You can also modify other important design rules for your application. For the USB application I’m working on, the hub and PHY components have narrow pad spacing, which will violate the default Clearance design rule (minimum 10 mil clearance by default). I’ve dropped this down to 5 mil to suppress these errors in this tutorial.

Finally, you can set your length matching tolerance or your delay tuning tolerance in the design rules dialog. Under the High Speed design rules section, you can set the delay/length tolerance in the Matched Lengths section. This can be set to apply only specific differential pairs, or to all differential pairs. If you need to apply length matching for multiple differential pairs, you can create a rule that takes top priority and applies to Group Matched Lengths.

Defining length targets for a differential pair in Altium Designer
Defining length targets for a differential pair

Routing Your Traces

To route your traces, simply select the Interactive Differential Pair Routing tool from the top of the PCB Editor. If you do a good job with routing your differential pairs, and you properly planned your layout ahead of time, then you likely won’t have much length matching to perform, especially if each end of the differential pair is routed using an even number of bends with tight routing.

Length Tuning

After you’ve routed your traces, you’re ready to match trace lengths. To get started, you can match individual traces within a differential pair to ensure the two ends meet the length tolerance requirements. This is done using the single-ended Interactive Length Tuning tool in the PCB Editor, as you want to adjust individual traces to the correct length.

My initial routing was done well and there was only a minor mismatch on one of the traces, as shown below. In other applications, such as when a differential pair breaks out from vias on a surface layer, you may need to use a longer length tuning segment. My mismatch only required increasing the length of one trace by a few mils. Be sure to keep track of the total length of your traces; under the USB standard, my traces should not be longer than 4 inches.

The image below shows my adjustment to a small length-matching section. You’ll notice the indicator bar goes green when the length is within the allowed tolerance. If you select this length matching section and open the Properties panel, you’ll be able to change some of the parameters in your length matching scheme, including geometry.

Single-ended length tuning in Altium Designer
Single-ended length tuning for a trace in a differential pair

When you select one side of the differential pair, you might accidentally select the longer of the two traces. In this case, you will see a message that says “Target Length Is Shorter Than Current Length” as you try to apply length matching. This is your cue to select the other end of the differential pair.

Length Matching Among Multiple Differential Pairs

Although this isn’t required for my USB hub application, it is still an important point to consider for other applications. Here, I’m dealing with three differential pairs, each connecting to three USB PHY interfaces. I’m going to match the lengths of the two shorter differential pairs to the longer differential pair.

One way to do this in Altium Designer is to define a target length for the shorter pairs. Select the longest pair out of the group of differential pairs, and note its length. Then, select each of the shorter differential pairs and set the Target Length value in the Properties panel. Now you can add the length matching segment with the Differential Pair Interactive Length Tuning tool in the PCB Editor window. Simply click the differential pair and drag out the length matching segment until the indicator bar turns green. My results are shown below.

Interactive differential pair length tuning in Altium Designer
Interactive differential pair length tuning

The other way to do this is to define a pair length rule that applies to all the differential pairs you'll work with, to specific nets, or to a specific Differential Pair Class. You can find the method that works best for you. Note that defining a Differential Pair Class with the signals shown above is a simple way to target a design rule at multiple nets simultaneously, rather than building a very long query with potentially hundreds of targeted nets.

The differential pair tuning tools in Altium Designer® are easy to use and provide a nice visual indicator showing when length matching meets tolerances. The tools presented here are all accessible in a single program and can be configured for nearly any application. Now you can download a free trial of Altium Designer, and learn more about the industry’s best layout, simulation, and production planning tools. Talk to an Altium expert today to learn more.


About Author

About Author

Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to companies in the electronics industry. Prior to working in the PCB industry, he taught at Portland State University and conducted research on random laser theory, materials, and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensors, and stochastics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written 1000+ technical blogs on PCB design for a number of companies. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society, and the Printed Circuit Engineering Association (PCEA), and he previously served on the INCITS Quantum Computing Technical Advisory Committee.

Recent Articles

Back to Home