对PCB上的布线长度进行交互式调整
Parent page: The Routing
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 an essential ingredient of differential pair routing.
The Interactive Length Tuning and Interactive Diff Pair Length Tuning commands (launched from the Route menu) provide a dynamic means of optimizing and controlling net or differential pair lengths by allowing variable amplitude wave patterns (accordions) to be inserted, according to the available space, rules, and obstacles in your design.
Length tuning properties can be based on design rules, properties of the net, or values you specify. Controls for these wave patterns, also known as accordion sections, are accessed through the Interactive Length Tuning mode of the Properties panel - press TAB during length tuning to open the panel in this mode.
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.
Launched from the Route menu, the Interactive Length Tuning command prompts you to 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. If you drift off course simply bring the cursor back over the route, as soon as you do the algorithm will add tuning segments up to that point.
Controlling the Tuning Style and Size
There are 2 key ingredients to mastering the length tuning tool: knowing the shortcuts, and understanding how to read the Net Length Gauge.
The shortcuts available during length tuning include:
Shortcut | Function |
---|---|
Spacebar | Cycle through the 3 tuning patterns |
, (comma) | Decrease amplitude by the amount specified for the Amplitude Increment |
. (full stop) | Increase amplitude by the amount specified for the Amplitude Increment |
3 | Decrease pitch by the amount specified for the Gap Increment |
4 | Increase pitch by the amount specified for the Gap Increment |
1 | Decrease corner miter |
2 | Increase corner miter |
Y | Toggle starting direction |
Tab | Open the Interactive Length Tuning mode of the Properties panel |
Shift+G | Toggle Length Tuning Gauge on/off |
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.
To select which of these methods is going to be used, press Tab during length tuning to open the Properties panel in Interactive Length Tuning mode. The Target Length section of the 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 the shortcuts detailed above.
- Manual - enter the length in the Target Length field. Recently Used Lengths are retained, in case you want to use one again.
- From Net - choose a net from a list of nets in the design. The length of this net will become the target, but it will be overridden if there are more restrictive design rules defined - how the rules are applied is discussed below.
- 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.
Why Do the Tuning Accordions Disappear Sometimes?
The tuning engine builds the accordions according to the current Max Amplitude, Space, Miter and Style settings. There are combinations of these settings, along with the current track width, that can make it impossible for the tuning engine to create an accordion shape. If you are attempting to length tune and the accordions 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 Interactive Length Tuning mode during interactive length tuning.
- Press the Spacebar to cycle through the modes, leaving it in
Mitered Lines
mode. - Press the 1 shortcut multiple times, to reduce the Miter to zero.
- 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. Each press of that key will step the amplitude down by the current Max Amplitude Step setting, a sensible value for the Step setting is around 1/10 of the Max Amplitude 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.
- If the white outline rectangle is too small when you start tuning, press the key to increase the Amplitude.
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:
- The easiest Style for the tuning engine to create is Mitered Line accordions.
- When you are using the Mitered Arcs style, the current Miter amount also works together 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 accordions can be created when the
Amplitude > Radius + Route Width
.
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
(vertical green bar in Gauge)MinLimit = LongestNet - MatchedLength Rule Tolerance
(left yellow bar in Gauge)MaxLimit = TargetLength
(right yellow bar in Gauge, obscured by the green bar in above image)Red/green slider = current total route length
Length design rule
The Length design rule specifies the overall 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
(vertical green bar in Gauge)MinLimit = Rule Minimum
(left yellow bar in Gauge)MaxLimit = Rule Maximum
(right yellow bar in Gauge)Red/green slider = current total route length
How Overlapping Rules are Applied
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
(vertical green bar in Gauge, obscured by the right yellow bar in above image)MinLimit = (LongestNet - MatchedLength Rule Tolerance), or highest MinLimit from rules
(left yellow bar in Gauge)MaxLimit = TargetLength
(right yellow bar in Gauge)ValidRange = Highest MinLimit to Lowest MaxLimit
(most stringent combination of Length and Matched Length rules)Red/green slider = current total route length
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 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.
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.
- 2 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.
- 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 be within the minimum and maximum lengths allowed.
- The current Routed Length (length of the placed tracks and arcs), 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, or 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.
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 Un-Routed (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
.
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 that 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.
Reshaping an Existing Accordion
To modify an existing accordion, click once to select it and display the editing handles, as shown in the animation below. Click and drag on an edge or vertex to resize the accordion bounding region — the accordion sections are automatically resized to suit the new updated shape of the bounding region.
Converting an Accordion into Primitives
A length tuning accordion, being a union, is a group object - comprised of primitive track and/or arc segments. As with other group objects, such as components, coordinates, dimensions and polygons, a length tuning accordion object 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 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.
See Also
- The Routing
- Interactive Routing
- Differential Pair Routing
- Controlled Impedance Routing
- Modifying the Routing
- 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/