Interactively Tuning the Lengths of Your Routes on a PCB in Altium Designer
Two of the core challenges with routing a high-speed design are controlling the impedance of the routes, and matching the lengths of critical nets. Impedance controlled routing ensures that the signal that leaves an output pin is correctly received by the target input pins. Matching the route lengths ensures that timing-critical signals arrive at their target pins at the same time. Tuning and matching route lengths is also essential to differential pair routing.
The Interactive Length Tuning and Interactive Diff Pair Length Tuning commands (launched from the Route menu, or the button on the Active Bar) provide a dynamic means of optimizing and controlling net or differential pair lengths by allowing variable amplitude tuning patterns to be inserted, according to the available space, rules, and obstacles in your design.
Three styles of tuning patterns are available: Accordion, Trombone, and Sawtooth.
Length tuning properties can be based on design rules, properties of the net, or values you specify. Controls for these wave patterns are accessed through the Properties panel - press Tab during length tuning to open the panel.
Tuning the Length of a Net
The elegance of the length tuning feature is that it cleverly combines sophisticated software algorithms with intuitive user control. Length tuning segments are added by simply wiping the cursor along the route path, with the dimensions and positions of the various tracks and arcs that make up the tuning segments automatically calculated and inserted by the length tuning algorithm. Keyboard shortcuts give control over the style and properties of the tuning segments, as they are being added.
The process of interactive length tuning is following:
- Configure the Matched Length and Length design rules if you are going to perform length tuning based on the rules.
- Launch the Interactive Length Tuning command from the Route menu (or via the button on the Active Bar).
- Press Tab to open the Properties panel and select a length tuning pattern, then click the design space pause button overlay ( ) to resume placement.
- Select a route. After clicking on a net or differential pair (or any free line or track for that matter), you simply slide or wipe the cursor along the path of the route.
The sections below describe these steps in more detail.
Configuring the Design Rules
There are two design rules that are obeyed during length tuning, the Matched Length rule and the Length rule, both are in the High Speed category in the PCB Rules and Constraints Editor. Either or both of these rules may be important in your design, it all depends if your potential issues are related to skew (signals arriving at different times - use the Matched Length rule), or the overall signal delay (use the Length rule).
Matched Length Design Rule
The Matched Length design rule specifies that the target nets must all be routed to the length of the longest net in the set, within the specified tolerance (show image). The set of nets that are targeted is defined by the rule scope or query.
The length tuning tool will find the longest net in the set of target nets and give you a valid range and target length (Value) of:
-
TargetLength = Longest routed net in set
-
MinLimit = LongestNet - MatchedLength Rule Tolerance
-
MaxLimit = TargetLength
Length Design Rule
Complementing the Matched Net Lengths rule, the Length design rule specifies the minimum and maximum permissable routed length of a net, or set of nets. Targeted nets must have a length within the specified Minimum and Maximum lengths (show image).
The length tuning tool will find the longest net in the set of target nets and give you a valid range and target length (Value) of:
-
TargetLength = Longest routed net in set
-
MinLimit = Rule Minimum
-
MaxLimit = Rule Maximum
How Overlapping Rules are Applied
Either or both of these rules may be important in your design, it all depends if your potential issues are related to skew (signals arriving at different times - think Matched Net Lengths rule), or the overall signal delay (think Length rule).
If there is an applicable Length rule and a Matched Length rule, the length tuning tool considers both rules and works out the tightest set of constraints.
The valid range and target length (Value) are determined as follows:
-
TargetLength = Longest routed net in set, or lowest MaxLimit from rules
-
MinLimit = (LongestNet - MatchedLength Rule Tolerance), or highest MinLimit from rules
-
MaxLimit = TargetLength
-
ValidRange = Highest MinLimit to Lowest MaxLimit
(most stringent combination of Length and Matched Length rules)
For example, if the maximum length specified by the Length rule is shorter than the longest existing route length identified by the Matched Length rule, then the Length rule wins and its shorter length is used during tuning. The panel displays the calculated Min Limit and Max Limit for each rule, use these to check that the target lengths are what you are expecting.
In the image shown just above, a Length rule and a Matched Length rule apply to the target nets. Note that the most stringent values come from the Matched Net Length rule (tolerance 0.5mm
), the Max Limit value shows that the current length of the longest net in the target set of nets is 46.836mm
(which is less than the maximum allowed by the Length rule). In this example, the tightest allowable tolerance in the range of lengths is the tolerance defined in the Matched Length rule (0.5mm
), so it is used to calculate the ValidRange
. The target length is always the more stringent maximum length.
Choosing the Tuning Pattern
After launching the Length Tuning command and before clicking a route for length tuning in the design space, press Tab to open the Properties panel where the Accordion, Trombone and Sawtooth buttons are available. Click the appropriate button to choose the required pattern, then click the design space pause button overlay ( ) to resume placement.
Pattern Geometry Properties
Accordion Pattern Geometry Properties
- Max Amplitude – the maximum height (measured from the original route path) that the accordion can extend (it can be less than this, for example, to avoid an existing obstacle). To specify the units when entering a number, add the mm or mil suffix to the value.
- Space – the distance between the centerlines of adjacent accordion switchback paths.
-
Miter – percentage that the corners of the tuning pattern are mitered when the Style is
Mitered Lines
orMitered Arcs
. This value is also used to miter the traces that connect the accordion to the route. -
Style – style of the accordion corners, choose between
Mitered Lines
,Mitered Arcs
orRounded
.
Trombone Pattern Geometry Properties
- Space – the distance between the centerlines of adjacent trombone switchback paths.
-
Miter – percentage that the corners of the tuning pattern are mitered when the Style is
Mitered Lines
orMitered Arcs
. -
Style – style of the trombone corners, choose between
Mitered Lines
,Mitered Arcs
orRounded
. - Single Side – create the tuning pattern so that it only projects in one direction from the original route path.
Sawtooth Pattern Geometry Properties
- Angle – slope of the leading and trailing tooth edges, relative to the original route path of the net being tuned.
- Tooth Width – width of the top of the tooth.
- Min Joint – minimum length of the first colinear track segment placed before the first tooth is created.
- Min Height – minimum allowable tooth height.
- Actual Height – current tooth height, measured from the centerline of the original route path being tuned, to the centerline of the tooth's top track segment.
- Single Side – create the tuning pattern so that it only projects in one direction from the original route path.
- Fixed Size – fixes the Sawtooth Height to the current height, and prevents the creation of teeth that are not at that size.
Tuning Pattern Placement
When the required tuning pattern is chosen in the Properties panel, click a route in the design space to start its length tuning. Filtering will be applied to the design space to allow better visibility of just that net. Move the cursor along the route in the direction that the accordion is to be added. A tuning pattern will appear and continue to grow as the cursor moves. The animation below shows an example of placing an accordion tuning pattern.
During length tuning, press Tab to open the Properties panel, where the properties of the selected tuning pattern (target length and geometry properties) can be changed on-the-fly. Click the design space pause button overlay ( ) to resume placement.
Controlling the Target Length
There are three approaches for specifying the target length: manually defined, based on a net that has already been routed, or defined by design rules.
During interactive length tuning, the Target section of the Properties panel includes options for selecting the required Target Length mode. The lower section of the panel includes options that define the shape and dimensions of the tuning pattern, which can also be controlled interactively using shortcuts.
- Manual – enter the length in the Value field. Recently Used Lengths are retained, in case you want to use one again.
- From Net (when tuning a net) / From Diff. Pairs (when tuning a differential pair) – choose a net/differential pair from the list of the nets/differential pairs in the design.
-
From Rules – applicable Length and Matched Length design rules. The software will then obey the most stringent combination of these rules. Double-click on a rule in the list in the panel to examine its properties in detail. To learn more about how the Length and Matched Length design rules are applied when tuning a net, refer to the Configuring the Design Rules section.
The applied rule is highlighted in blue. You can change the applied rule as you tune by clicking that rule's entry – it will become the rule highlighted in blue, and the target length (and descriptive text) will change accordingly.
The Value / Target Length field shows the overall length that the Interactive Length Tuning or Differential Pair Length Tuning command is attempting to achieve with the addition of the tuning pattern being placed. If the Clip to Target option is enabled, the tuning pattern length is automatically clipped once the target length (when tuning in Manual or From Net / From Diff. Pairs mode) or the length slightly below the target but within the defined tolerance (when tuning in From Rules mode) is achieved. That can be used to prevent adding too many tuning segments, which could result in passing the target length and exceeding the maximum permissible length.
Using the PCB Panel
When the PCB panel is set to Nets mode, it displays the current length of the routed signals. The default mode of the panel is to display the Name, Node Count, Routed length, and Unrouted (Manhattan) length. Right-click in the column headings region of the panel to display a menu, where you can select extra columns, as well as hide existing columns.
If there are Length design rules configured, then the routed state of each net targeted by the rule is also colored, highlighted in yellow if the route length < rule minimum
, clear if the net passes the rule
, or red if the route length > rule maximum
.
Using the Net Length Gauge
If there is a Length rule and/or a Matched Length rule defined, then you can monitor the length during both interactive routing and interactive length tuning, by displaying the Length Tuning Gauge. While you are routing or tuning, use the Shift+G shortcut to toggle the Gauge on and off.
The Gauge shows the current Routed Length as a number, and the red/green slider shows the Estimated Length. If you are length tuning an existing route then the Estimated Length is the sum of all of the placed tracks and arcs (the actual physical length). If you are using the Length Gauge while you are interactively routing a net, then the Estimated Length will be the sum of the placed routing plus the remaining distance to the target pad (the length of the connection line).
During interactive routing, it might seem confusing that the Routed Length has not even reached the rule minimum value, but the Gauge slider is somewhere between the rule minimum and maximum - as it is in the image below. That is because during interactive routing the slider represents the Estimated Length, where:
Estimated Length = Routed Length + distance to target (length of connection line)
The Gauge functions as follows:
- A rectangular box that defines the outline of the Gauge.
- Two vertical yellow bars that indicate the minimum and maximum lengths allowed. The minimum and maximum are determined from the tightest set of constraints defined by the design rules, as described above.
- The green vertical bar that represents the target length, which will either be a manually entered value, a length used from an existing selected net, or the mid-point of the valid length range when calculated from design rules.
- A red or green slider that shows the current Routed Length of the net (during length tuning), or the Estimated Length (during interactive routing). The slider changes from red to green when the current length moves from being out-of-range to being within the minimum and maximum lengths allowed.
- The current Routed Length (length of the placed tracks and arcs) is displayed as a numerical value overlaid on the Gauge slider (62.781mm in the example image).
-
The gauge's rectangular outline indicates the total range of possible lengths, the meaning of its upper and lower limits depends on the target length mode you have chosen.
- If the mode is Manual or From Net and there is no applicable Length rule, the lower limit of the slider box will be the length of the current net, and the upper limit will be the specified Max Length.
- If the mode is Manual or From Net and there is an applicable Length rule, the lower limit of the slider box is taken from the rule or the current route length (whichever is smaller), the upper limit is defined by the user.
- If the mode is From Rule and there is an applicable Length rule, an applicable Matched Length rule, or a combination of both, the lower limit of the slider box is determined from the rule or the current route length (whichever is smaller), the upper limit of the slider box is determined from the rule's MaxLimit.
Length Gauge Example
-
Gauge minimum (left edge of gauge) is 45 (lowest
MinLimit
) -
Gauge maximum (right edge of gauge) is 48 (highest
MaxLimit
) -
Left yellow bar (highest
MinLimit
) is 46.58 -
Right yellow bar (lowest
MaxLimit
) is 47.58 (obscured by the green bar in the image above) -
Green bar (
TargetLength
) is 47.58 (route length of the longest net in the set, equal toMaxLimit
) - Green slider and the overlaid numerical value (Current route length) is 47.197.
Controlling the Pattern Geometry Properties During Length Tuning
During interactive length tuning, the pattern geometry properties can be changed on the fly from the Properties panel or using the shortcuts. The shortcuts available during length tuning include:
Why Do the Tuning Patterns Disappear Sometimes?
The tuning engine builds tuning patterns according to the current geometry settings. There are combinations of these settings, along with the current track width, that can make it impossible for the tuning engine to create a pattern shape. If you are attempting to length tune and the patterns do not appear, try these steps:
- Display the Properties panel as you work, so you can observe the various settings. It will automatically display the appropriate mode during interactive length tuning.
-
For Accordion and Trombone patterns, press the Spacebar to cycle through the modes, leaving it in
Mitered Lines
mode. - For Accordion and Trombone patterns, press the 1 shortcut multiple times, to reduce the Miter to zero.
- For Accordion and Sawtooth patterns, when you first click on a route to tune its length, a selection rectangle will appear. If it is very large (extends a large distance beyond the adjacent routes), press the key multiple times to reduce the amplitude/height. Each press of that key will step the amplitude/height down by the current Step setting; a sensible value for the Step setting is around 1/10 of the Max Amplitude / Actual Height setting. If the Step setting is too large, press Tab on the keyboard to pause length tuning, enter a suitable Step value, and click the button to resume length tuning.
- For Accordion and Sawtooth patterns, if the white outline rectangle is too small when you start tuning, press the key to increase the amplitude/height.
If you follow these steps you should see rectangular-shaped tuning segments as you length tune. Keep these additional points in mind as you work with accordion patterns:
- The easiest Style for the tuning engine to create is Mitered Line accordions.
- When using the Mitered Arcs style, the current Miter amount also works with the Amplitude and Space settings. If you are using this Style it can help to use a small amount of Miter until you have found suitable Amplitude and Space values, then increase the Miter to the required amount.
-
The hardest shape to create is Rounded tuning accordions because the tuning engine's ability to create semi-circular ends is tightly related to the current Amplitude and Space settings. Typically the patterns can be created when the
Amplitude > Radius + Route Width
.
Working with Placed Tuning Patterns
To modify a placed tuning pattern, click once to select it and display the editing handles. Click and drag on an edge or vertex to resize the pattern bounding region – the pattern sections are automatically resized to suit the new updated shape of the bounding region.
The Properties panel can be used (it will display an associated mode when a tuning pattern is selected). Use the controls to change the properties of the selected pattern.
The shortcuts can be also used during interactive editing. Click and hold a selected tuning pattern to use them.
Reshaping a Placed Accordion Pattern
Below is a video demonstrating how an Accordion pattern can be resized.
Rotating a Placed Accordion Pattern
As you tune the lengths of multiple nets, it can become difficult to fit additional tuning patterns in. If you are using Accordion patterns they can be rotated, which can help fit them between obstacles or add additional patterns. The video below demonstrates how to rotate a placed accordion pattern.
To rotate a selected accordion, hold Ctrl then:
- Click and drag on either end of the accordion selection box to pivot around the opposite end of the accordion.
- Click and drag on either side of the accordion selection box to pivot around the center of the accordion.
- Press the R key during rotation to toggle (on/off) the rotation to snap in 45-degree increments.
Working with Placed Trombone and Sawtooth Patterns
For the Trombone and Sawtooth patterns, the polygonal area that the pattern is constructed within an envelope that can be thought of as a sleeve. Click to select a placed pattern and display the sleeve.
There a number of different movement and size-change behaviors available, depending on where you click and hold on the sleeve. There are three zones where you can click and drag, these are shown in the image above.
- Click and Drag on Zone 1 or 2 to lengthen or widen the pattern. Note that it is not necessary to click on a handle to resize the pattern; use anywhere along the sleeve edge.
- Click and Drag on Zone 3 to freely move the pattern along or perpendicular to the original route path.
- Edit the properties of the selected pattern(s) in the Properties panel.
The Shift and Ctrl shortcuts can be included during a click and drag action, modifying the behavior in the following ways:
- Shift + Click and Drag on Zone 1 or 3 to slide the pattern along the original route path, maintaining the pattern's lateral distribution across the route path.
- Ctrl + Click and Drag on Zone 2 or 3 to move the pattern perpendicular to the original route path.
Changing Layer of a Placed Tuning Pattern
The Properties panel of a placed tuning pattern selected in the design space includes the Layer drop-down in its Properties region. Use this drop-down to quickly change the signal layer where the tuning pattern is placed.
Note that you can select multiple routing objects (tuning pattern, tracks, arcs) to change their signal layer in a single action. Learn more about Strategies for Selecting the Routing.
Length Tuning Differential Pairs
The length of a differential pair can also be tuned against the length of other differential pairs, using the Interactive Differential Pair Length Tuning command (Route menu). As with differential pair routing, this command operates on the two nets in the pair simultaneously.
If you plan to length tune differential pairs, create the following rules to target the set of differential pairs:
- A matched length rule defines the length matching requirements between pairs. To configure the rule to test the length of one pair against the length of another pair, enable the Group Matched Lengths option.
- A second, higher-priority matched length rule that defines the within-pair length matching requirements. To configure the rule to test the length of one pair-member against the other pair-member, enable the Within Differential Pair Length option.
A good approach to tune the lengths of differential pairs is to:
- Route the pairs.
- First length tune between the pairs using the Interactive Differential Pair Length Tuning command. Length tuning uses the longest signal length in the longest pair as the Target Length and tunes the longest net in the pair to this length.
- Then length tune the shorter net within each pair against the other net in the pair using the Interactive Length Tuning command.
- Now you can use the PCB Rules and Violations panel to check the within-pair Matched Net Length rule(s). To do this, select Matched Net Lengths in the Rule Classes section of the panel, then right-click on the required Matched Length rule and select the Run DRC Rule <RuleName> command from the context menu. Adjust the single-net tuning accordions if required.
- Then use the PCB Rules and Violations panel to check the between-pair Matched Net Length rule(s), using the process just described. Adjust the differential pair tuning accordions if required.
Automatic Tuning of Multiple Nets
The PCB editor also provides you with automatic length/delay tuning (or multi-tuning) functionality. The functionality supports both single traces and differential pairs. Regular traces and odd angles (except differential pairs) are also supported.
The functionality is used as follows:
-
Configure the set of Length and Matched Length design rules for nets and/or xSignals as required. Refer to the Configuring the Design Rules section to learn more.
-
Select the traces of multiple nets to be tuned. Selected portions of routing will be tuned; the routing that is not selected will not be changed.
-
Choose the Route » Automatic Length Tuning command from the main menus (shortcut: Ctrl+Alt+T).
-
Configure the accordion-based pattern and its attributes as required on the Accordion tab of the Auto Tuning Process dialog that opens. Refer to the Accordion Pattern Geometry Properties section to learn more.
-
After clicking OK in the dialog, the tuning patterns will be created.
Phase Matching for Differential Pairs
As part of automatic diff pair length tuning, you can enable phase matching between the sides of a differential pair.
The functionality is used as follows:
-
Configure the set of Matched Length design rules (with the Within Differential Pair Length option enabled) for differential pairs as required.
-
Select traces from both sides of differential pairs to be tuned.
-
Choose the Route » Automatic Length Tuning command from the main menus (shortcut: Ctrl+Alt+T).
-
Configure the sawtooth-based pattern and its attributes as required on the Sawtooth tab of the Auto Tuning Process dialog that opens. Refer to the Sawtooth Pattern Geometry Properties section to learn more.
-
After clicking OK in the dialog, the tuning patterns will be created.
Converting a Tuning Pattern into Primitives
A length tuning pattern, being a union, is a group object – comprised of primitive track and/or arc segments, with full control over the amplitude, gap, and corner radius (or miter). As with other group objects, such as components, dimensions, and polygons, a length tuning pattern can be exploded. In other words, it can be converted into its constituent-free primitives, which can then be modified independently. Use the Explode Length Tuning to Free Primitives command to do this, available from the main Tools » Convert sub-menu, or the right-click Unions sub-menu.
Note that exploding any object in the PCB editor is a one-way process, once an object has been exploded it cannot be converted back into that object-kind. You can only use the Undo command to achieve this.
Equalizing Net Lengths
The Tools » Equalize Net Lengths command from the main menus of the PCB editor can be used to match the length of nets identified by a defined Matched Net Lengths design rule. After launching the command, the Equalize Nets dialog will open.
Use this dialog to define the style and sizing of the accordion segments that will be added by the software to equalize the lengths of the target nets. After clicking OK, track segments will be added to all nets in the set covered by the design rule that are shorter than the longest net in the set. The command will attempt to add track to these shorter nets until the specified tolerance condition in the relevant Matched Net Lengths rule has been met.
A design rule check will be performed for all defined (and enabled) Matched Net Lengths rules only and the Design Rule Verification Report (Design Rule Check - <PCBDocumentName>.html) will be opened as the active document. The report will list any violations of these rules. For information about how far outside of the tolerance each net in the applicable set is, refer to the relevant message in the Messages panel, an example of which is shown below:
Matched Net Lengths: Between Net LCD_RW And Net LCD_RS Length:85.061mm, outside tolerance by 7.564mm
In this case, the longest net in the set targeted by the applicable Matched Net Lengths rule is LCD_RS. The net LCD_RW has a routed length of 85.061mm, which is outside of the tolerance defined by the rule by 7.564mm.
See Also
- Routing the PCB
- Interactive Routing
- Differential Pair Routing
- Controlled Impedance Routing
- Modifying Existing Routes
- Glossing & Retracing of Existing Routes
- High Speed Design
- Website for Eric Bogatin, signal integrity lecturer and industry expert http://www.bethesignal.com/
- Website for Dr. Howard Johnson, high-speed design lecturer and industry expert http://www.signalintegrity.com/
- Website for Lee Ritchey, lecturer and high-speed PCB design expert http://www.speedingedge.com/