www.altium.com
Open in
urlscan Pro
34.205.10.130
Public Scan
Submitted URL: https://diffpair.novarover.space/
Effective URL: https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb
Submission: On August 20 via api from US — Scanned from CA
Effective URL: https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb
Submission: On August 20 via api from US — Scanned from CA
Form analysis
4 forms found in the DOMhttps://www.altium.com/search
<form class="header-v2__search__field-wrap" action="https://www.altium.com/search" target="_blank" data-once="form-updated" data-drupal-form-fields="">
<input class="header-v2__search__field" type="text" value="" name="s">
<button class="header-v2__search__btn header-v2__ico header-v2__use-ico-search" type="submit"> Search<span></span>
</button>
<a class="header-v2__search__close header-v2__ico header-v2__use-ico-close" href="">
Search Close <span></span></a>
</form>
<form class="am-form am-form-search" data-once="form-updated" data-drupal-form-fields="">
<div class="form-item f-search__input-wrap">
<div class="f-search__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M10.5911 11.5511C9.47395 12.4571 8.05025 13 6.49976 13C2.9099 13 -0.000244141 10.0899 -0.000244141 6.5C-0.000244141 2.91015 2.9099 0 6.49976 0C10.0896 0 12.9998 2.91015 12.9998 6.5C12.9998 8.0505 12.4569 9.4742 11.5508 10.5914L14.9996 14.0402L14.04 14.9999L10.5911 11.5511ZM11.9998 6.5C11.9998 9.53757 9.53732 12 6.49976 12C3.46219 12 0.999756 9.53757 0.999756 6.5C0.999756 3.46243 3.46219 1 6.49976 1C9.53732 1 11.9998 3.46243 11.9998 6.5Z"
fill="#111111"></path>
</svg>
</div>
<input class="form-text form-search-input" type="text" placeholder="Search" value="">
</div>
</form>
POST
<form method="post" id="collapse-text-dynamic-form-number-1" accept-charset="UTF-8" data-once="form-updated"
data-drupal-form-fields="viewing_and_managing_differential_pairs_on_the_pcb_using_the_pcb_differential_pairs_editor_panel,Differential_Pair_Dlg,Create_Differential_Pairs_From_Nets_Dlg,using_the_differential_pair_rule_wizard_to_define_the_rules,routing_a_differential_pair,configuring_the_interactive_differential_pair_router,quick_differential_pair_routing,Properties_Panel_Quick_Differential_Pair_Routing">
<div class="collapse-text-text">
<p> <img alt="Explanatory diagram showing how differential signaling works" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="497" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/DiffSignaling_900.png" style="" title="" width="900" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<p>Differential pair routing is a design technique employed to create a balanced transmission system able to carry differential (equal and opposite) signals across a printed circuit board. Typically this differential routing will interface to an
external differential transmission system, such as a connector and cable. </p>
<p>A differential signaling system is one where a signal is transmitted down a pair of tightly coupled carriers, one of these carrying the signal, the other carrying an equal but opposite image of the signal. Differential signaling was developed
to cater for situations where the logic reference ground of the signal source could not be well connected to the logic reference ground of the load. Differential signaling is inherently immune to common mode electrical noise, which is
the most common interference artifact present in an electronic product. Another major advantage of differential signaling is that it minimizes electromagnetic interference (EMI) generated from the signal pair. </p>
<p>Differential pair PCB routing is a design technique employed to create a balanced transmission system able to carry differential (equal and opposite) signals across a printed circuit board. Typically this differential routing will interface to
an external differential transmission system, such as a connector and cable. </p>
<p>
<a href="/documentation/sites/default/files/wiki_attachments/322391/RoutedDiffPair.png" rel="fancybox" class="fancybox" data-fancybox="group-ro6iuw"> <img alt="Example of differential routing on a PCB" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="304" id="" src="/documentation/sites/default/files/wiki_attachments/322391/RoutedDiffPair.png" style="" title="" width="1000" loading="lazy" data-once="force-lightbox marginBottom"></a>
</p>
<p>It is important to note that while the coupling ratio achieved in a twisted pair differential cable may be better than 99%, the coupling achieved in differential pair routing will typically be less than 50%. Current expert opinion is that the
PCB routing task is not to try to ensure a specific differential impedance is achieved, rather, to focus on ensuring the differential signal arrives in good condition at the target component as it travels from the external cabling. </p>
<p>According to Lee Ritchey, a noted industry high-speed PCB design expert, successful differential signaling requires: </p>
<ul>
<li> To set each of the routing signal impedances to half the incoming differential cable impedance. </li>
<li> That each of the two signal lines is properly terminated in its own characteristic impedance at the receiver end. </li>
<li> That the two lines should be of equal length, to within tolerances of the logic family and the circuit frequency used in the design. The focus should be on preserving the timing; match the lengths close enough to satisfy the skew
budget of the design. Example length tolerances include high-speed USB, length mismatch should be no greater than 150 mils; DDR2 clocks need to be matched to within 25 mils. </li>
<li> Use the benefit of routing the two signals side-by-side to help achieve good quality routing of matched lengths. Where required, it is acceptable to separate to route around obstacles. </li>
<li> Layer changes are acceptable as long as the signal impedances are maintained. </li>
</ul>
<div class="messages status">
<p>For more information, refer to the article <em>Differential Signaling Doesn't Require Differential Impedance</em>, by Lee W. Ritchey, available from
<a href="https://speedingedge.com/home/related-articles/" target="_blank">https://speedingedge.com/home/related-articles/</a>. </p>
<p>Use this link to learn about <a href="/documentation/altium-designer/pcb-layout-high-speed-design">High Speed Design in Altium Designer</a>. </p>
<p>Use this link to learn about <a href="/documentation/altium-designer/interactively-routing-controlled-impedance-pcb">Controlled Impedance Routing</a> in Altium Designer. </p>
</div>
<h2 id="transferring-the-differential-pairs-to-the-pcb-editor-from-schematics">Transferring the Differential Pairs to the PCB Editor from Schematics <span class="b-copy b-copy_processed"
data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#transferring-the-differential-pairs-to-the-pcb-editor-from-schematics"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#transferring-the-differential-pairs-to-the-pcb-editor-from-schematics">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
</h2>
<p>If you have <a href="/documentation/altium-designer/defining-differential-pairs-schematics">placed Differential Pair directives on nets in the schematic</a>, the default project options settings will result in the differential pairs members
being created on the PCB. The following options in the <em>Options for PCB Project</em> dialog are used to configure this: </p>
<ul>
<li>
<a href="/documentation/altium-designer/accessing-defining-managing-project-options">Comparator tab</a> - <strong>Extra Differential Pairs</strong> (then the Different Differential Pair checks for subsequent updates, and the Rules options if
you are also creating/changing design rules)
</li>
<li>
<a href="/documentation/altium-designer/accessing-defining-managing-project-options">ECO Generation tab</a> - <strong>Add Differential Pair</strong> (then the Change Differential Pair checks for subsequent updates, and the Rules options if
you are also creating/changing design rules)
</li>
<li>
<a href="/documentation/altium-designer/accessing-defining-managing-project-options">Class Generation tab</a> - <strong>Generate Net Classes</strong> (if you are also creating a Net Class to use to scope a PCB Differential Pair Routing rule)
</li>
</ul>
<p><a id="viewing_and_managing_differential_pairs_on_the_pcb_using_the_pcb_differential_pairs_editor_panel" name="viewing_and_managing_differential_pairs_on_the_pcb_using_the_pcb_differential_pairs_editor_panel"></a>
</p>
<h2 id="viewing-and-managing-differential-pairs-on-the-pcb">Viewing and Managing Differential Pairs on the PCB <span class="b-copy b-copy_processed"
data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#viewing-and-managing-differential-pairs-on-the-pcb"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#viewing-and-managing-differential-pairs-on-the-pcb">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
</h2>
<p>Differential pair definitions are viewed and managed in the <a href="/documentation/altium-designer/pcb-panel">PCB panel</a> set to <strong>Differential Pairs Editor</strong> mode. The image below shows the pairs that belong to the
Differential Pair Class <code>ROCKET_IO_LINES</code>. Pair <code>V_RX0</code> is highlighted; the nets in this pair are <code>V_RX0_N</code> and <code>V_RX0_P</code>. The<strong> -</strong> and <strong>+ </strong>displayed next to each
member's net name is a system flag indicating if it is the positive or negative member of the pair. </p>
<p> <img alt="Differential pairs can be viewed and managed in the Differential Pair Editor. Right-click in the Differential Pair Classes region to create a new class." border="" class="" data-disable-lightbox="" data-force-lightbox=""
data_another_folder="" data_margin_bottom="" height="650" id="" src="/documentation/sites/default/files/wiki_attachments/322391/DiffPairEditor_AD19_0.png" style=""
title="Differential pairs can be viewed and managed in the Differential Pair Editor. Right-click in the Differential Pair Classes region to create a new class." width="362" loading="lazy" data-once="force-lightbox marginBottom"> <span
class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Differential pairs can be viewed and managed in the Differential Pair Editor. Right-click in the <strong>Differential Pair Classes</strong> region
to create a new class.</span>
</p>
<p>In the <em>PCB</em> panel’s <strong>Differential Pairs Editor</strong> mode, its three main regions change to reflect the differential pair hierarchy of the current PCB design (in order from the top): </p>
<ul>
<li>
<strong>Differential Pair Classes</strong>.
</li>
<li> Individual member <strong>Differential Pairs</strong> within a class. </li>
<li> The constituent <strong>Nets</strong> (negative and positive) that form a differential pair. </li>
</ul>
<h3 id="defining-a-differential-pair-class">Defining a Differential Pair Class</h3>
<p>Often there is more than one differential pair that needs to be targeted by a design rule. In this situation, you can define classes of differential pairs, clustering them into logical groups. Right-clicking on a differential pair class
entry then selecting <strong>Properties</strong> (or double-clicking on the entry directly) will open the <a href="/documentation/altium-designer/classes-schematic-pcb#Edit_Class_Dlg">Edit Object Class dialog</a> in which you can rename or
view/modify the differential pair membership of the class. For full control and editing of all classes, including Differential Pair Classes, open the
<a href="/documentation/altium-designer/classes-schematic-pcb#Object_Class_Explorer_Dlg">Object Class Explorer dialog</a> using the <strong>Design » Classes </strong>command from the main menus. </p>
<p>
<a href="/documentation/sites/default/files/wiki_attachments/322391/Object_Class_Explorer.png" rel="fancybox" class="fancybox" data-fancybox="group-726bgu"> <img alt="The Object Class Explorer allows creating, viewing and modification for all classes, including Differential Pairs." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="469" id="" src="/documentation/sites/default/files/wiki_attachments/322391/Object_Class_Explorer.png" style="" title="The Object Class Explorer allows creating, viewing and modification for all classes, including Differential Pairs." width="650" loading="lazy" data-once="force-lightbox marginBottom"></a><br>
<span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">The Object Class Explorer allows creating, viewing and modification for all classes, including Differential Pairs.</span>
</p>
<div class="messages info"> To learn more about working with classes, refer to the <a href="/documentation/altium-designer/classes-schematic-pcb">Working with Classes on a Schematic & PCB</a> page. </div>
<h3 id="managing-differential-pairs">Managing Differential Pairs</h3>
<p>Differential pairs can be defined on the schematic and also in the PCB Editor. Management in the latter is performed from the <strong>Differential Pairs</strong> region of the <em>PCB</em> panel, when configured in
its <strong>Differential Pairs Editor</strong> mode. For the particular differential pair class selected, all currently defined differential pair objects that belong to that class will be listed in the <strong>Differential
Pairs</strong> region. </p>
<p>
<a href="/documentation/sites/default/files/wiki_attachments/322391/DifferentialPairs_Region.png" rel="fancybox" class="fancybox" data-fancybox="group-g66kie"> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="251" id="" src="/documentation/sites/default/files/wiki_attachments/322391/DifferentialPairs_Region.png" style="" title="" width="360" loading="lazy" data-once="force-lightbox marginBottom"></a>
</p>
<p>Use the buttons below the region to manage your differential pairs as needed: </p>
<ul>
<li>
<a id="Differential_Pair_Dlg" name="Differential_Pair_Dlg"></a>To create a new differential pair object, click the <strong>Add</strong> button. In the resulting <em>Differential Pair</em> dialog, select existing nets for both the positive and
negative nets, give the pair a name then click <strong>OK</strong>.
</li>
</ul>
<div class="messages info rteindent1"> Note that only <em>available</em> nets are listed for selection. Nets currently defined as part of existing differential pairs are not listed. </div>
<p class="rteindent1"> <img alt="Quickly create pairs from the named nets." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="324" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/DialogDiffPair_AD18_0.png" style="" title="Quickly create pairs from the named nets." width="464" loading="lazy" data-once="force-lightbox marginBottom"> <span class="caption"
style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Quickly create pairs from the named nets.</span>
</p>
<ul>
<li> To modify an existing differential pair, select its entry and click the <strong>Edit</strong> button. The <em>Differential Pair</em> dialog will open with the currently chosen nets for the pair entered into the <strong>Positive
Net</strong> and <strong>Negative Net</strong> drop-down fields. Change one or both nets for the pair or rename the pair as required. </li>
</ul>
<div class="messages status rteindent1"> You can also right-click on a differential pair entry, then select <strong>Properties</strong>, or double-click on the entry directly. </div>
<ul>
<li> To delete an existing differential pair, select its entry and click the <strong>Delete </strong>button. </li>
</ul>
<h4 id="creating-differential-pairs-from-design-nets">Creating Differential Pairs from Design Nets</h4>
<p><a id="Create_Differential_Pairs_From_Nets_Dlg" name="Create_Differential_Pairs_From_Nets_Dlg"></a>If you are pairing nets that have a consistent naming scheme (i.e. they have a common prefix and a consistent positive/negative suffix, for
example, <code>TX0_P</code> and <code>TX0_N</code>), you can use the <em>Create Differential Pairs From Nets</em> dialog. Click the <strong>Create From Nets</strong> button in the <em>PCB</em> panel in <strong>Differential
Pairs Editor</strong> mode to open the dialog. </p>
<p>
<a href="/documentation/sites/default/files/wiki_attachments/322391/Create_Differential_Pairs_From_Nets_AD18.png" rel="fancybox" class="fancybox" data-fancybox="group-edp67d"> <img alt="Prospective differential pair objects are listed for creation in response to the filter entries at the top of the dialog." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="398" id="" src="/documentation/sites/default/files/wiki_attachments/322391/Create_Differential_Pairs_From_Nets_AD18.png" style="" title="Prospective differential pair objects are listed for creation in response to the filter entries at the top of the dialog." width="500" loading="lazy" data-once="force-lightbox marginBottom"></a><br>
<span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Prospective differential pair objects are listed for creation in response to the filter entries at the top of the dialog.</span>
</p>
<p>The effectiveness of this automated method directly depends on the naming convention that has been used for the specific nets that will make up the differential pairs. Ideally, a naming convention will be used so that a common root is followed
by a consistent positive/negative indicator (<code>P</code> and <code>N</code>). For example, consider the receiver signal <code>D_ETH_O.RX</code>, which is a differential signal in the design. The two nets that constitute this signal are
<code>ETH_O.RX_P</code> and <code>ETH_O.RX_N</code> - these represent the positive and negative sides of the signal, respectively. </p>
<p>The filters at the top of the dialog enable you to quickly target these nets in terms of the net class to which they belong and the particular differentiating factor that has been used to distinguish the positive and negative nets in an
intended pairing, for example, <code>_P</code> and <code>_N</code>. You can also define a prefix to be added to the differential pair objects created, and also determine in which differential pair class they are to be added. </p>
<p>For each differential pair object, the dialog lists its constituent positive and negative nets. By default, all prospective differential pair objects are selected for creation and individual ones can be excluded by clearing the associated
<strong>Create</strong> check box. </p>
<p>When all options are set as required, click the <strong>Execute</strong> button - the differential pair objects will be created and the <em>PCB </em>panel will update accordingly. </p>
<div class="messages info">
<ul>
<li> Right-clicking on a <strong>Net(s)</strong> entry in the <em>PCB</em> panel then selecting <strong>Properties</strong> (or double-clicking on the entry directly) will open the
<a href="/documentation/altium-designer/pcb-dlg-editnetedit-net-ad">Edit Net dialog</a> in which you can view/modify the properties of the net as required. </li>
<li> Use the <strong>Rule Wizard</strong> button to access the <em>Differential Pair Rule Wizard</em> and implement the differential pair rule properties in an automated process. Refer to
the <a href="#using_the_differential_pair_rule_wizard_to_define_the_rules">Using the Differential Pair Rule Wizard to Define the Rules</a> section below to learn more. </li>
</ul>
</div>
<h2 id="using-xsignals-with-differential-pairs">Using xSignals with Differential Pairs <span class="b-copy b-copy_processed"
data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#using-xsignals-with-differential-pairs"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#using-xsignals-with-differential-pairs">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
</h2>
<p><em>Main page:</em> <a href="/documentation/altium-designer/defining-high-speed-signal-paths-with-xsignals">Defining High Speed Signal Paths with xSignals</a>
</p>
<p>If your differential pairs have series components in the signal path, you might find it worthwhile to create xSignals. An xSignal is a designer-defined signal path between two nodes. They can be two nodes within the same net or they can
be two nodes in different nets. Using an xSignal, you can define the signal path so that it includes the net on either side of a series component. Route length calculations for xSignals include the length of the path through the series
component, as shown by the thin line that is displayed when an xSignal is selected in the <a href="/documentation/altium-designer/managing-xsignals">xSignals</a> mode of the <em>PCB</em> panel. </p>
<p> <img alt="These differential pairs have been defined as xSignals; the route length includes the series component. " border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom=""
height="824" id="" src="/documentation/sites/default/files/wiki_attachments/322391/xSignals.png" style="" title="These differential pairs have been defined as xSignals; the route length includes the series component. " width="657"
loading="lazy" data-once="force-lightbox marginBottom"><span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">These differential pairs have been defined as xSignals; the route length includes the
series component. </span>
</p>
<div class="messages status">
<p>xSignals can be used to scope design rules including the Matched Length and Length rules. </p>
<p><span style="color:#696969;">►</span> Learn more about <a href="/documentation/altium-designer/defining-high-speed-signal-paths-with-xsignals">Defining High Speed Signal Paths with xSignals</a>
</p>
</div>
<h2 id="applicable-design-rules">Applicable Design Rules <span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#applicable-design-rules"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#applicable-design-rules">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
</h2>
<p>To interactively route a differential pair, create and configure the following two design rules in the
<a href="/documentation/altium-designer/defining-scoping-managing-pcb-design-rules#defining_and_managing_design_rules">PCB Rules and Constraints Editor dialog</a> (<strong>Design » Rules</strong>): </p>
<ul>
<li>
<a href="/documentation/altium-designer/pcb-routing-rules#differential_pairs_routing">Differential Pairs Routing</a> - defines the routing width of the nets in the pair, the separation (gap) between the nets in the pair, and the overall
uncoupled length (the pair becomes uncoupled when the gap is wider than the <strong>Max Gap</strong> setting). Set the scope of this rule to target objects that are a differential pair, e.g., <code>IsDifferentialPair</code> or
<code>InDifferentialPairClass(</code>'<code>All Differential Pairs</code>'<code>)</code>. Note that the <strong>Min/Preferred/Max Gap </strong>settings can be used during routing but not during design rule checking. During design rule
checking, the distance between the nets in a pair is tested by the applicable Electrical Clearance design rule, as explained in the highlight box below.
</li>
</ul>
<p class="rteindent1">
<a href="/documentation/sites/default/files/wiki_attachments/322391/Rule_DiffPairRouting.png" rel="fancybox" class="fancybox" data-fancybox="group-ordw1a"> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="501" id="" src="/documentation/sites/default/files/wiki_attachments/322391/Rule_DiffPairRouting.png" style="" title="" width="800" loading="lazy" data-once="force-lightbox marginBottom"></a>
</p>
<ul>
<li>
<a href="/documentation/altium-designer/pcb-electrical-rules#clearance">Electrical Clearance</a> - defines the minimum clearance between any two primitive objects (e.g., pad-pad, track-pad) on either any net, the same net, or between
different nets. Set the scope of this rule to target objects that are members of a differential pair, e.g., <code>InDifferentialPair</code>, and select the appropriate object types In the constraints region of the dialog, as shown below.
</li>
</ul>
<p class="rteindent1">
<a href="/documentation/sites/default/files/wiki_attachments/322391/Rule_Clearance_WithinDiffPair_AD20_0.png" rel="fancybox" class="fancybox" data-fancybox="group-8rja6q"> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="576" id="" src="/documentation/sites/default/files/wiki_attachments/322391/Rule_Clearance_WithinDiffPair_AD20_0.png" style="" title="" width="800" loading="lazy" data-once="force-lightbox marginBottom"></a>
</p>
<div class="messages note">
<p><strong>Important Note:</strong> As you route a differential pair, the routed nets in the pair will be separated by the current <strong>Min/Preferred/Max Gap </strong>setting defined in the applicable Differential Pair Routing design
rule (press <strong>Shift+6</strong> to cycle through the Gap modes during routing, check the Status bar to see which mode is being applied). However, during design rule checking, all electrical objects will be tested using the applicable
Electrical Clearance design rule, so if the gap value used for routing the differential pair is less than the minimum allowed clearance between the differential pair nets set by the Electrical Clearance design rule, a violation of the
Electrical Clearance design rule will occur. If the nets in the pair are placed closer together than the minimum setting allowed by the applicable Electrical Clearance design rule, you will need to add an additional Electrical Clearance
design rule targeting the differential pairs, allowing them to have a clearance equal to the Diff Pair Routing Gap setting. This rule should also have the setting that defines the Net types to be tested set to <strong>Same Differential
Pair</strong>, as shown in
<a href="/documentation/sites/default/files/wiki_attachments/301051/InSameDiffPairSetting_AD18_0.png" data-fancybox="group-1gy2c3"> <img data_another_folder="null" style="display: none;" data-once="force-lightbox marginBottom">this image</a>.
</p>
</div>
<h3 id="setting-the-scope-of-the-design-rules">Setting the Scope of the Design Rules</h3>
<p>The scope of the design rule defines the set of objects to which you want the rule applied. Since a differential pair is an object, you can use queries like the following examples: </p>
<ul>
<li>
<strong>InAnyDifferentialPair </strong>- is the object in any differential pair.
</li>
<li>
<strong>InDifferentialPair('D_V_TX1')</strong> - targets both nets in the differential pair named <code>D_V_TX1</code>.
</li>
<li>
<strong>InDifferentialPairClass('ROCKET_IO_LINES') </strong>- targets all nets in all pairs belonging to the differential pair class called <code>ROCKET_IO_LINES</code>.
</li>
<li>
<strong>(IsDifferentialPair And (Name = 'D_V_TX1'))</strong> - targets the differential pair object that has a name of <code>D_V_TX1</code>.
</li>
<li>
<strong>(IsDifferentialPair And (Name Like 'D*'))</strong> - targets all differential pair objects whose name starts with the letter <code>D</code>.
</li>
</ul>
<p><a id="using_the_differential_pair_rule_wizard_to_define_the_rules" name="using_the_differential_pair_rule_wizard_to_define_the_rules"></a>
</p>
<h3 id="using-the-differential-pair-rule-wizard-to-define-the-rules">Using the Differential Pair Rule Wizard to Define the Rules</h3>
<p>While rules can be created manually using the <a href="/documentation/altium-designer/defining-scoping-managing-pcb-design-rules#defining_and_managing_design_rules">PCB Rules and Constraints Editor</a> (<strong>Design »
Rules</strong>), the <em>PCB</em> panel in <strong>Differential Pairs Editor</strong> mode offers the convenience of the <em>Differential Pair Rule Wizard</em>. Use the <strong>Rule Wizard</strong> button (below the <strong>Nets</strong>
region in the <em>PCB</em> panel) to access the Wizard and implement the rule properties as required. </p>
<p>
<a href="/documentation/sites/default/files/wiki_attachments/322391/DifferentialPairRuleWizard_AD20.png" rel="fancybox" class="fancybox" data-fancybox="group-hytlpi"> <img alt="The Differential Pair Rule Wizard guides you through the rule definition process." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="767" id="" src="/documentation/sites/default/files/wiki_attachments/322391/DifferentialPairRuleWizard_AD20.png" style="" title="The Differential Pair Rule Wizard guides you through the rule definition process." width="660" loading="lazy" data-once="force-lightbox marginBottom"></a><br>
<span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">The <em>Differential Pair Rule Wizard</em> guides you through the rule definition process.</span>
</p>
<p>Note that the scope of the rules will depend on the selection in the <em>PCB</em> panel prior to launching the wizard, as follows: </p>
<p><strong>Differential Pair Class</strong>
</p>
<p>If the <tt>All Differential Pairs</tt> class is selected, the scope will be <code>All</code> for each rule. </p>
<p>If a specific differential pair class is selected, the scope will be <code>InDifferentialPairClass('ClassName')</code> for each rule. </p>
<p><strong>Differential Pair</strong>
</p>
<p>If a single differential pair object is selected in the panel, the scopes will be: </p>
<ul>
<li> Width - <code>InDifferentialPair('PairName')</code>
</li>
<li> Matched Net Lengths and Differential Pairs Routing - <code>IsDifferentialPair And (Name = 'PairName'))</code>
</li>
</ul>
<p>If multiple differential pair objects are selected in the panel, there will be individual scope entries for each pair object, each separated by an 'Or' operator. For example, a routing Width rule targeting individually selected differential
pair objects <code>D_ETH_O.TX</code> and <code>D_ETH_O.RX</code> will have a scope of:<br>
<code>InDifferentialPair('<code>D_ETH_O.TX</code>') Or InDifferentialPair('<code>D_ETH_O.RX</code>')</code>
</p>
<div class="messages info"> Note that the clearance from a net in a differential pair to any <em>other</em> electrical object that is not a part of the pair is monitored by the applicable <strong>Clearance</strong> rule. </div>
<p><a id="routing_a_differential_pair" name="routing_a_differential_pair"></a>
</p>
<h2 id="routing-a-differential-pair">Routing a Differential Pair <span class="b-copy b-copy_processed"
data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#routing-a-differential-pair"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#routing-a-differential-pair">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
</h2>
<p><em>Related page:</em> <a href="/documentation/altium-designer/interactive-routing-pcb">Interactive Routing</a>
</p>
<p>Differential pairs are routed as a pair - that is, you route two nets simultaneously. To route a differential pair, select <strong>Interactive Differential Pair Routing</strong> from the <strong>Route</strong> menu or the <strong>Active
Bar</strong>. You will be prompted to select one of the nets in the pair; click on either to start routing. It doesn't matter if the positive or negative trace in a pair is selected as the system will automatically select the other trace
too. The video below shows a differential pair being routed. </p>
<p>
<video controls="" height="y" poster="/documentation/sites/default/files/wiki_attachments/322391/DiffPairRouting_AD20_0_static.png" preload="auto" style="max-width:100%; height: auto;" width="x">
<source src="/documentation/sites/default/files/wiki_attachments/322391/DiffPairRouting_AD20_0.mp4" type="video/mp4">
</video>
</p>
<p>During differential pair routing, you can perform the following functions: </p>
<ul>
<li>
<strong>Shift+R</strong> to cycle through the conflict resolution routing modes (Walkaround, Push, Hug and Push, Stop at First Obstacle, Ignore Obstacles).
</li>
<li>
<strong>Shift+Spacebar</strong> to cycle through the available corner styles (45 degree corner, 45 degree arc in corner, any angle, 90 degree corner, 90 degree arc in corner).
</li>
<li> When routing a diff pair using the any angle corner style, press and hold <strong>Shift</strong> to route the diff pair using tangent arcs. </li>
<li> Press <strong>Spacebar</strong> to toggle between the two corner direction sub-modes. </li>
<li> Press the <strong>Backspace</strong> key to remove the last vertex. </li>
<li> Press <strong>3</strong> to cycle possible diff pair routing widths (User Choice, Rule Min, Rule Preferred, Rule Max). </li>
<li> Press <strong>Shift+6</strong> to cycle possible diff pair gaps (Rule Min, Rule Preferred, Rule Max). </li>
<li> Use the <strong>+</strong> and <strong>-</strong> keys on the numeric keypad to switch routing layers. </li>
<li> To switch layers and insert a via pair: Press the <strong>*</strong> key on the numeric keypad or use the <strong>Ctrl+Shift+Wheel Scroll</strong> shortcut combination, then <ul>
<li> Press <strong>4</strong> to cycle possible via sizes (User Choice, Rule Min, Rule Preferred, Rule Max) </li>
<li> Press <strong>5</strong> to toggle between staggered and perpendicular via patterns during a layer change, or alternatively, move the cursor around to toggle the pattern </li>
<li> Press <strong>6</strong> to cycle possible via stacks, or press <strong>8</strong> to display a list to select from (learn more about
<a href="/documentation/altium-designer/blind-buried-micro-vias#controlling-the-via-placed-during-interactive-routing">controlling the vias placed during interactive routing</a>) </li>
</ul>
</li>
<li>
<strong>Shift+F1</strong> to display all of the available in-command shortcuts.
</li>
<li> In the arc in corner modes, press the "<strong>,</strong>" key to decrease the maximum arc radius and the "<strong>.</strong>" key to increase the maximum arc radius. The arc size can be changed interactively by moving the
cursor. The setting defines the maximum allowable arc radius, which is displayed on the Status bar when you are routing. </li>
</ul>
<div class="messages note">
<ul>
<li> When using the Interactive Differential Pair Routing tool, note that coupling the differential pair has priority. Therefore, the <a href="/documentation/altium-designer/pcb-smt-rules#smd_to_corner">SMD To Corner</a> and
<a href="/documentation/altium-designer/pcb-smt-rules#smd_entry">SMD Entry</a> design rules may not work as expected. If strict respect for these rules is required when routing a differential pair, use the
<a href="#quick_differential_pair_routing">Quick Differential Pair Routing tool</a>. </li>
<li> The current main limitations of any angle diff pair routing are: <ul>
<li> Routing transitions through borders of rooms with different design rules are not currently supported. </li>
<li> The SMD Entry design rule is not currently supported. </li>
</ul>
</li>
<li>
<p>Automatic loop removal in any angle diff pairs is supported. This feature is in Open Beta and available when the <code>Legacy.PCB.Routing.LoopRemoval</code> option is disabled in
the <a href="/documentation/altium-designer/system-preferences#Advanced_Settings_Dlg">Advanced Settings dialog</a>. </p>
</li>
</ul>
</div>
<div class="messages info">
<p>Many of the settings, such as the current routing mode, width, gap and via size, are displayed on the Status bar (shown below) or the Heads Up Display (<strong>Shift+H</strong> to toggle it on/off). </p>
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="24" id="" src="/documentation/sites/default/files/wiki_attachments/322391/StatusBar_DiffPairRouting.png"
style="margin-bottom: -4px;" title="" width="954" loading="lazy" data-once="force-lightbox marginBottom">
</p>
</div>
<div class="messages status">
<p>Many of the differential pair routing behaviors are the same as single-net interactive routing. </p>
<p><span class="reference-link">Learn more about <a href="/documentation/altium-designer/interactive-routing-pcb">Interactive Routing</a></span>
</p>
</div>
<p><a id="configuring_the_interactive_differential_pair_router" name="configuring_the_interactive_differential_pair_router"></a>
</p>
<h3 id="configuring-the-interactive-differential-pair-router">Configuring the Interactive Differential Pair Router</h3>
<p>Many of the interactive differential pair routing settings can be changed during interactive differential pair routing, in the <strong>Interactive Differential Pair Routing</strong> mode of the <em>Properties</em> panel.
Press <strong>Tab</strong> during routing to display the panel. </p>
<div class="messages info"> To recognize the members in a differential pair, the concept of Coupling is used. When the software recognizes objects that belong to a differential pair it will attempt to drag the pair's partner track or via if the
<strong>Keep Coupled</strong> option is enabled in the <strong>Interactive Sliding</strong> or the <strong>Interactive Via Dragging</strong> modes of the <em>Properties</em> panel (which are described below). </div>
<p>The following collapsible sections contain information about the options and controls available: </p>
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="net_information_idpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="net_information_idpr" aria-expanded="false" class="title"><a>Net Information</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#net_information_idpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#net_information_idpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="368" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/Diffpairrouting_NetInfo_AD20.png" style="" title="" width="345" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<ul>
<li>
<strong>DP Name</strong> – displays the differential pair name.
</li>
<li>
<strong>DP Class</strong> – displays the differential pair class that the routing belongs to (if it is a member of a differential pair class).
</li>
<li>
<em>Selected</em>
<ul>
<li>
<strong>Length</strong> – the total length sum of the selected segments.
</li>
<li>
<strong>Delay</strong> – the total delay of the selected segments, including those unrouted.
</li>
</ul>
</li>
<li>
<strong>Total</strong>
<ul>
<li>
<strong>Length</strong> – the total <em>Signal Length</em>. The <em>Signal Length</em> is the accurate calculation of the total node-to-node distance. Placed objects are analyzed to resolve stacked or overlapping objects and
wandering paths within pads, and via lengths are included. If the net is not completely routed, the Manhattan (X + Y) length of the connection line is also included.
</li>
<li>
<strong>Delay</strong> – the delay of the routed segments of the <strong>Total Length</strong>.
</li>
</ul>
</li>
</ul>
<div class="messages status"> Select the clickable links of the <strong>DP Name</strong>, <strong>DP Class</strong>, <strong>Length</strong>, and <strong>Delay</strong> from the <strong>Differential Pair Routing</strong> mode of the
<em>Properties</em> panel to be redirected to the <a href="/documentation/altium-designer/understanding-connectivity-pcb#browsing_nets_using_the_pcb_nets_panel">PCB – Nets panel</a>, where you may view and change the details of the nets
associated. </div>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="properties_idpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="properties_idpr" aria-expanded="false" class="title"><a>Properties</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#properties_idpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#properties_idpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="588" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/Diffpairrouting_Properties_AD20.png" style="" title="" width="345" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<ul>
<li>
<strong>Layer</strong> – use the drop-down to specify on which layer the routing is located.
</li>
<li>
<strong>Gap</strong> – use the drop-down or the <strong>Shift+6</strong> shortcut to cycle through the permissible clearances. <ul>
<li>
<strong>Min</strong> – select to specify the minimum permissible clearance between primitives on different nets within the same differential pair.
</li>
<li>
<strong>Preferred</strong> – select to specify the preferred clearance between primitives on different nets within the same differential pair.
</li>
<li>
<strong>Max</strong> – select to specify the maximum permissible clearance between primitives on different nets within the same differential pair.
</li>
</ul>
</li>
<li>
<strong>Via</strong> – if the via is associated with a template, the template name is displayed here.
</li>
<li>
<strong>Via Diameter</strong> – specify the via diameter.
</li>
<li>
<strong>Via Hole Size</strong> – specify the via hole size.
</li>
<li>
<strong>Width</strong> – use the drop-down to specify the width. <ul>
<li>
<strong>Min</strong> – signifies that the design rule minimum width defined for the current net will be used
</li>
<li>
<strong>Preferred</strong> – signifies that the design rule preferred width defined for the current net will be used.
</li>
<li>
<strong>Max</strong> – signifies that the design rule maximum width defined for the current net will be used.
</li>
</ul>
</li>
</ul>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
<div class="conditional_box conditional_box_anonymous conditional_box_authenticated">
<div class="conditional_box_title_checked">
<div class="conditional_box_title_anonymous"> </div>
<div class="conditional_box_title_authenticated"> </div>
<div class="conditional_box_title_beta_user"> </div>
<div class="conditional_box_title_circuitmaker_pro_beta"> </div>
<div class="conditional_box_title_altium_employee"> </div>
</div>
<div class="conditional_box-content">
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="interactive_routing_options_idpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="interactive_routing_options_idpr" aria-expanded="false" class="title"><a>Interactive Routing Options</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#interactive_routing_options_idpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#interactive_routing_options_idpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="777" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/Pnl_Properties_DifferentialPairRouting_InteractiveRoutingOptions_AD24_0.png" style="" title="" width="350" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<ul>
<li>
<strong>Routing Mode</strong> – use the drop-down or use the <strong>Shift+R</strong> shortcut to cycle through the desired routing modes. The following choices are available: <ul>
<li>
<code>Ignore Obstacles</code> – select to ignore existing objects (routing can be freely placed). Violations are highlighted.
</li>
<li>
<code>Walkaround Obstacles</code> – select to have the Interactive Router route around existing tracks, pads and vias. If this mode cannot walk around an obstacle without causing a violation, an indicator appears to show that
the route is blocked.
</li>
<li>
<code>Push Obstacles</code> – select to have the Interactive Router move existing tracks out of the way. This mode can also push vias to make way for the new routing. If this mode cannot push an obstacle without causing a
violation, an indicator appears to show that the route is blocked.
</li>
<li>
<code>HugNPush Obstacles</code> – select to have the Interactive Router hug existing tracks, pads, and vias as closely as possible and where necessary, push obstacles to continue the route. If this mode cannot hug or push an
obstacle without causing a violation, an indicator appears to show that the route is blocked.
</li>
<li>
<code>Stop At First Obstacle</code> – in this mode, the routing engine will stop at the first obstacle that gets in the way.
</li>
<li>
<code>AutoRoute Current Layer</code> – select to enable auto-routing only on the current layer.
</li>
<li>
<code>AutoRoute MultiLayer</code> – select to enable auto-routing on multiple layers.
</li>
</ul>
</li>
<li>
<strong>Corner Style</strong> – select the desired routing corner style or use the <strong>Shift+Spacebar</strong> shortcut to cycle through the corner styles. <ul>
<li>
<strong>Restrict to 90/45</strong> – enable to restrict the routing to 90 degrees and 45 degrees only.
</li>
</ul>
</li>
<li>
<strong>Gloss Effort (Routed)</strong> – select the desired gloss level from the panel or use the <strong>Shift+Ctrl+G</strong> shortcut to cycle through the following choices: <ul>
<li>
<strong>Off</strong> – in this mode, glossing is essentially disabled. Note, however, that cleanup is still run after routing/dragging occurs to eliminate, for example, overlapping track segments. This mode is typically useful
at the end stage of board layout when the ultimate level of fine-tuning is required (for example, when manually dragging tracks, cleaning pad entries, etc.).
</li>
<li>
<strong>Weak</strong> – in this mode, a low level of glossing is applied with the Interactive Router considering only those tracks directly connected to or in the area of the tracks that you are currently routing (or tracks/vias
being dragged). This mode of glossing is typically useful for fine-tuning track layout or when dealing with critical traces.
</li>
<li>
<strong>Strong</strong> – in this mode, a high level of glossing is applied with the Interactive Router looking for shortest paths, smoothing out tracks, etc. This mode of glossing is typically useful in the early stages of the
layout process when the aim is to get a good amount of the board routed quickly.
</li>
</ul>
</li>
<li>
<strong>Gloss Effort (Neighbor)</strong> – select the desired gloss level to apply to traces being pushed by the net currently being routed directly from the panel through the following choices: <ul>
<li>
<strong>Off</strong> – in this mode, glossing is essentially disabled. Note, however, that cleanup is still run after routing/dragging occurs to eliminate, for example, overlapping track segments. This mode is typically useful
at the end stage of board layout when the ultimate level of fine-tuning is required (for example, when manually dragging tracks, cleaning pad entries, etc.).
</li>
<li>
<strong>Weak</strong> – in this mode, a low level of glossing is applied with the Interactive Router considering only those tracks directly connected to or in the area of the tracks that you are currently routing (or tracks/vias
being dragged). This mode of glossing is typically useful for fine-tuning track layout or when dealing with critical traces.
</li>
<li>
<strong>Strong</strong> – in this mode, a high level of glossing is applied with the Interactive Router looking for shortest paths, smoothing out tracks, etc. This mode of glossing is typically useful in the early stages of the
layout process when the aim is to get a good amount of the board routed quickly.
</li>
</ul>
</li>
<li>
<strong>Automatically Terminate Routing</strong> – when enabled, when you complete a route to the target pad, the routing tool does not continue in routing mode <em>from</em> the target pad but rather resets and is ready for you to
click on the next source pad from which to route. If this option is disabled, after you route to the target pad, the tool will remain in routing mode and use the previous target pad as the source for the next route.
</li>
<li>
<strong>Automatically Remove Loops</strong> – enable to automatically remove any redundant loops that are created during manual routing. This allows you to re-route a connection without having to manually remove redundant tracks.
However, there are times when you need to route nets, such as power nets and when you need loops; you can toggle this option for a selected net by using the <strong>Shift+D</strong> shortcut to override this global setting for the
same net. <ul>
<li>
<strong>Remove Loops With Vias</strong> – enable this option to automatically remove loops with vias. Disable this option for vias to remain during loop removal.
</li>
<li>
<strong>Remove Net Antennas</strong> – enable this option to remove any track or arc end that is not connected to any other primitive and forms an antenna.
</li>
</ul>
</li>
<li>
<strong>Allow Via Pushing</strong> – check this option to allow pushing a Via when in Push Obstacles or HugNPush Obstacles mode.
</li>
<li>
<strong>Pin Swapping</strong> – check this option to enable pin swapping or use the <strong>Shift+C</strong> shortcut.
</li>
<li>
<strong>Display Clearance Boundaries</strong> – enable this option to have the no-go clearance area defined by the existing objects and the applicable clearance rule displayed as shaded polygons within a local viewing circle. This
option is not available in the <strong>Ignore Obstacles</strong> routing mode. <ul>
<li>
<strong>Reduce Clearance Display Area</strong> – enable this option to use a smaller clearance boundary. This option is available only when the <strong>Display Clearance Boundaries option</strong> is enabled.
</li>
</ul>
</li>
<li>
<strong>Miter Ratio</strong> – controls the minimum corner tightness. The Miter Ratio multiplied by the current track width equals the separation between walls of the tightest U-shape that can be routed for that ratio. Enter a
positive value equal to or greater than zero (the <strong>x</strong> multiplier is added automatically).
</li>
<li>
<strong>Subnet Jumper Length</strong> – specify the desired Subnet Jumper length.
</li>
</ul>
<div class="messages info"> Jumpers, which are also referred to as wire links, allow the designer to replace routing with a Jumper component. To learn more, see
<a href="/documentation/altium-designer/working-with-jumper-components">Working with Jumper Components</a>. </div>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
</div>
</div>
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="rules_idpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="rules_idpr" aria-expanded="false" class="title"><a>Rules</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#rules_idpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#rules_idpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="364" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/Diffpairrouting_Rules_AD20.png" style="" title="" width="345" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<p>Constraints defined by the applicable design rules will be listed under the <strong>Rules</strong> section of the <em>Properties</em> panel. </p>
<ul>
<li>
<strong>Via Constraint</strong> – click to open the <em>Edit PCB Rule</em> dialog in which you can define PCB rules for via.
</li>
<li>
<strong>Differential Pair Constraint</strong> – click to open the <em>Edit PCB Rule</em> dialog in which you can define PCB rules for the differential pair.
</li>
</ul>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
<h3 id="improving-the-quality-of-the-routing">Improving the Quality of the Routing</h3>
<p><em>Main article:</em> <a href="/documentation/altium-designer/glossing-retracing-existing-routes-pcb">Glossing & Retracing of Existing Routes</a>
</p>
<p>The PCB editor includes powerful tools for improving the quality of existing routing. These tools are known as Glossing and Retracing and both are available in the <strong>Route</strong> menu. </p>
<ul dir="ltr">
<li>
<strong>Gloss - </strong>focuses on improving the trace geometry, attempting to reduce the number of corners and shorten the overall route length. Gloss preserves the existing trace width and differential pair gap. Glossing respects the
current <strong>Gloss Effort (Routed)</strong> setting configured in the <strong>PCB - Interactive Routing</strong> page of the <em>Preferences</em> dialog
(<a href="/documentation/sites/default/files/wiki_attachments/301051/Dlg_Prefs_InteractiveRouting_GlossEffort.png" data-fancybox="group-dkze4d">show image<img style="display: none;" data-once="force-lightbox marginBottom"></a>).
</li>
<li>
<strong>Retrace</strong> - assumes the overall geometry is satisfactory, focusing instead on verifying that the routing meets the design rules. Where Gloss preserves the existing trace width and pair gap, Retrace changes them to Preferred.
Retrace is an excellent tool to use when a Differential Pair Routing design rule has changed, and that change needs to be applied to existing routing.
</li>
</ul>
<p>The animation in the previous section, <a href="#routing_a_differential_pair">Routing a Differential Pair</a>, includes a simple demonstration of glossing with the <strong>Gloss Effort (Routed)</strong> set to <code>Strong</code>. </p>
<div class="messages status">
<p><span style="color:#696969;">►</span> Learn more about <a href="/documentation/altium-designer/glossing-retracing-existing-routes-pcb">Glossing & Retracing of Existing Routes</a>
</p>
</div>
<h3 id="interactively-modifying-the-differential-pair-routing">Interactively Modifying the Differential Pair Routing</h3>
<p><em>Main page:</em> <a href="/documentation/altium-designer/modifying-existing-routes-pcb">Modifying Existing Routes</a>
</p>
<p>During routing there will be many instances where you need to change some of the existing routing, for example, you might not be happy with the pad exits and you want to re-shape them (as shown in the video below). While you can change the
existing routing using a drafting type approach of clicking and dragging track segments, it is often easier to simply re-route. </p>
<p>To do this, select the <strong>Route » Interactive Differential Pair Routing</strong> command, then click anywhere on the existing routing. Proceed to route the new path, coming back to meet the existing routing where required. This will
create a loop between the old path and the new path. When you right-click or press <strong>Esc</strong> to terminate the route, the redundant segments are automatically removed, including any redundant vias. </p>
<div class="messages info"> The loop removal feature is employed by enabling the <strong>Automatically Remove Loops</strong> option - either from within the
<a href="/documentation/altium-designer/interactively-routing-differential-pairs-pcb#configuring_the_interactive_differential_pair_router">Properties panel</a> (while in interactive differential pair routing mode), or on the
<a href="/documentation/altium-designer/pcb-editor-preferences#interactive_routing">PCB Editor - Interactive Routing page</a> of the <em>Preferences</em> dialog. To toggle this feature on or off while routing, use the <strong>Shift+D</strong>
keyboard shortcut. </div>
<p>Differential pair routing is slightly different from single net routing. Single net routing can be configured so that the last segment is hollow (the look-ahead segment); this segment is not placed when you click. Differential pair
routing does not include look-ahead segments, so when you click you will place all visible segments. Position the cursor to ensure that there are no redundant segments. </p>
<p>If you are adjusting differential pairs by manually dragging track segments, you can either push one pair member with the other or drag each independently. </p>
<p>
<video controls="" height="y" poster="/documentation/sites/default/files/wiki_attachments/322391/DiffPairReRoute_AD20_2_static.png" preload="auto" style="max-width:100%; height: auto;" width="x">
<source src="/documentation/sites/default/files/wiki_attachments/322391/DiffPairReRoute_AD20_2.mp4" type="video/mp4">
</video>
<span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Use the loop removal feature to interactively re-route a diff pair along a new path, the old routing loop is automatically removed. Pairs can also be
modified by dragging one route so that it pushes the other.</span>
</p>
<div class="messages status">
<p>To learn more, refer to <a href="/documentation/altium-designer/modifying-existing-routes-pcb">Modifying Existing Routes</a>. </p>
</div>
<h3 id="interactive-via-dragging">Interactive Via Dragging</h3>
<p>PCB designers can spend a lot of time adjusting the routing, perhaps due to a late design change, or to achieve completion of their design. This can mean pushing and shoving existing routing, dragging vias, and nudging components. </p>
<p> <img alt="Adjust the via dragging behavior in the Properties panel." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="559" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/Ipp_InteractiveViaDragging2.png" style="" title="Adjust the via dragging behavior in the Properties panel." width="380" loading="lazy"
data-once="force-lightbox marginBottom"><span class="caption" style="color:#666666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Adjust the via dragging behavior in the Properties panel.</span>
</p>
<p>Complimenting the support for glossing of neighbor routes, via dragging is also supported. Via dragging supports <strong>Neighbor Glossing</strong>, configured through the <strong>Interactive Via Dragging</strong> mode of the PCB editor's
<em>Properties</em> panel. Press <strong>Tab</strong> during via dragging to access the panel and adjust the settings. </p>
<h3 id="differential-pair-dragging">Differential Pair Dragging</h3>
<p>To recognize the members in a differential pair, the concept of Coupling is used. When the software recognizes objects that belong to a differential pair it will attempt to drag the pair's partner track or via if the <strong>Keep
Coupled</strong> option is enabled in the <strong>Interactive Sliding</strong> or the <strong>Interactive Via Dragging</strong> modes of the <em>Properties</em> panel. </p>
<p>
<video controls="" height="y" poster="/documentation/sites/default/files/wiki_attachments/322391/DiffPairDragging_static.png" preload="auto" style="max-width:100%; height: auto;" width="x">
<source src="/documentation/sites/default/files/wiki_attachments/322391/DiffPairDragging.mp4" type="video/mp4">
</video>
<span class="caption" style="color:#666666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Press X as you drag a via-pair to rotate the pair by 90 degrees.</span>
</p>
<p>To confirm that the partner objects are coupled, the software checks that the objects: </p>
<ul>
<li> For via pairs - belong to the pair, and are closer than <code>2 * Preferred Gap</code>
</li>
<li> For track pairs - belong to the pair, are on the same layer, are separated by no more than the<code> Preferred Gap</code>
</li>
</ul>
<h3 id="displaying-the-available-clearance">Displaying the Available Clearance</h3>
<p>Have you ever been stuck during routing, wondering why the route won't fit through that gap? This frustration is even more likely during differential pair routing. Altium Designer includes a feature to help with this, called <em>dynamic
display of clearance boundaries</em>. When enabled, the no-go clearance area defined by the <em>existing objects + the applicable clearance rule</em> is displayed as shaded polygons within a local viewing circle, as shown in the video
below. Press <strong>Ctrl+W</strong> to toggle the feature on and off. </p>
<p> <img alt="Dynamically display the clearance boundaries during differential pair routing." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="" id=""
onclick="this.src='/documentation/sites/default/files/wiki_attachments/322391/DynamicClearanceControl_AD19_0.gif';" src="/documentation/sites/default/files/wiki_attachments/322391/DynamicClearanceControl_AD19_0_static.png" style=""
title="Dynamically display the clearance boundaries during differential pair routing." width="" loading="lazy" data-once="force-lightbox marginBottom"><span id="cke_bm_263C" style="display: none;"> </span><span class="caption"
style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Dynamically display the clearance boundaries during differential pair routing.</span>
</p>
<p>The display area can be restricted to a region around the current cursor location, or it can be the entire screen. This is controlled by the <strong>Reduce Clearance Display Area</strong> sub-option on the
<a href="/documentation/altium-designer/pcb-editor-preferences#interactive_routing">PCB Editor - Interactive Routing</a> page of the <em>Preferences</em> dialog. </p>
<p><a id="quick_differential_pair_routing" name="quick_differential_pair_routing"></a>
</p>
<h3 id="the-quick-differential-pair-routing-tool">The Quick Differential Pair Routing Tool</h3>
<p>The <strong>Quick Differential Pair Routing</strong> command (accessed from the main menu and the <strong>Active Bar</strong>) offers lighter routing with less settings and capabilities, suitable for simpler designs. Its general
behavior and shortcuts is the same as the standard Interactive Differential Pair Routing command. </p>
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="415" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/Cmd_QuickDifferentialPairRouting_AD23.png" style="" title="" width="630" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<p>Capabilities include: </p>
<ul>
<li> A number of routing modes, such as: stop at first obstacle, walkaround, and push and shove. </li>
<li> Powerful dragging capabilities that maintain track angles and orthogonality. </li>
<li> A loop removal feature that makes re-routing a quick and easy process. </li>
</ul>
<p>The Quick Differential Pair Routing tool helps maximize routing efficiency and flexibility in an intuitive way, including following cursor path for laying route sections, single-click routing completion, pushing or walking around
obstacles, and automatically following existing connections, all in accordance with applicable design rules. </p>
<p>This router is referred to as <em>Quick</em> because it offers a reduced feature-set. Features that are not included in the Quick Differential Pair Router include: </p>
<ul>
<li> No turn smoothing </li>
<li> Little support for Any Angle routing </li>
<li> No pushing of T-junctions </li>
<li> Simple Push&Shove support </li>
<li> No Miter Ratio, Min Arc, or Pad Entry Stability </li>
<li> Simple Gloss Effort, with no support for Gloss Neighbor </li>
<li> No differential pair convergence when exiting the start pins laterally </li>
<li> No hugging by routed differential pairs </li>
<li> No differential pair maintenance when a neighbor differential pair is pushed </li>
</ul>
<p>If you need any of these features, use the <a href="#routing_a_differential_pair">Interactive Differential Pair Routing</a> tool. </p>
<p><a id="Properties_Panel_Quick_Differential_Pair_Routing" name="Properties_Panel_Quick_Differential_Pair_Routing"></a>The following collapsible sections contain information about the Quick Differential Pair Routing options and controls
available: </p>
<div class="messages info"> To recognize the members in a differential pair, the concept of Coupling is used. When the software recognizes objects that belong to a differential pair it will attempt to drag the pair's partner track or via if the
<strong>Keep Coupled</strong> option is enabled in the <strong>Interactive Sliding</strong> or the <strong>Interactive Via Dragging</strong> modes of the <em>Properties</em> panel. </div>
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="net_information_qidpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="net_information_qidpr" aria-expanded="false" class="title"><a>Net Information</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#net_information_qidpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#net_information_qidpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="376" id="" src="/documentation/sites/default/files/wiki_attachments/322391/QDiffPairing_AD_21_0.png"
style="" title="" width="334" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<ul>
<li>
<strong>DP Name</strong> – displays the differential pair name.
</li>
<li>
<strong>DP Class</strong> – displays the differential pair class that the routing belongs to (if it is a member of a differential pair class).
</li>
<li>
<em>Selected</em>
<ul>
<li>
<strong>Length</strong> – the total length sum of the selected segments.
</li>
<li>
<strong>Delay</strong> – the total delay of the selected segments, including those unrouted.
</li>
</ul>
</li>
<li>
<strong>Total</strong>
<ul>
<li>
<strong>Length</strong> – the total <em>Signal Length</em>. The <em>Signal Length</em> is the accurate calculation of the total node-to-node distance. Placed objects are analyzed to resolve stacked or overlapping objects and
wandering paths within pads, and via lengths are included. If the net is not completely routed, the Manhattan (X + Y) length of the connection line is also included.
</li>
<li>
<strong>Delay</strong> – the delay of the routed segments of the <strong>Total Length</strong>.
</li>
</ul>
</li>
</ul>
<div class="messages status"> Select the clickable links of the <strong>DP Name</strong>, <strong>DP Class</strong>, <strong>Length</strong>, and <strong>Delay</strong> from the <strong>Differential Pair Routing</strong> mode of the
<em>Properties</em> panel to be redirected to the <a href="/documentation/altium-designer/understanding-connectivity-pcb#browsing_nets_using_the_pcb_nets_panel">PCB – Nets panel</a>, where you may view and change details of the nets
associated. </div>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="properties_qidpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="properties_qidpr" aria-expanded="false" class="title"><a>Properties</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#properties_qidpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#properties_qidpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="589" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/QuickDiffPairRoutingProperties_AD21_0.png" style="" title="" width="334" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<ul>
<li>
<strong>Layer</strong> – use the drop-down to specify on which layer the routing is located.
</li>
<li>
<strong>Gap</strong> – use the drop-down or the <strong>Shift+6</strong> shortcut to cycle through the permissible clearances. <ul>
<li>
<strong>Min</strong> – select to specify the minimum permissible clearance between primitives on different nets within the same differential pair.
</li>
<li>
<strong>Preferred</strong> – select to specify the preferred clearance between primitives on different nets within the same differential pair.
</li>
<li>
<strong>Max</strong> – select to specify the maximum permissible clearance between primitives on different nets within the same differential pair.
</li>
</ul>
</li>
<li>
<strong>Via</strong> – if the via is associated with a template, the template name is displayed here.
</li>
<li>
<strong>Via Diameter</strong> – specify the via diameter.
</li>
<li>
<strong>Via Hole Size</strong> – specify the via hole size.
</li>
<li>
<strong>Width</strong> – use the drop-down to specify the width. <ul>
<li>
<strong>Min</strong> – signifies that the design rule minimum width defined for the current net will be used
</li>
<li>
<strong>Preferred</strong> – signifies that the design rule preferred width defined for the current net will be used.
</li>
<li>
<strong>Max</strong> – signifies that the design rule maximum width defined for the current net will be used.
</li>
</ul>
</li>
</ul>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="interactive_routing_options_qidpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="interactive_routing_options_qidpr" aria-expanded="false" class="title"><a>Interactive Routing Options</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#interactive_routing_options_qidpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#interactive_routing_options_qidpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="532" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/QuickDiffPairRoutingOptions_AD21_0.png" style="" title="" width="334" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<ul>
<li>
<strong>Routing Mode</strong> – use the drop-down or use the <strong>Shift+R</strong> shortcut to cycle through the desired routing modes. The following choices are available: <ul>
<li>
<code>Ignore Obstacles</code> – select to ignore existing objects (routing can be freely placed). Violations are highlighted.
</li>
<li>
<code>Walkaround Obstacles</code> – select to have the Interactive Router route around existing tracks, pads and vias. If this mode cannot walk around an obstacle without causing a violation, an indicator appears to show that the
route is blocked.
</li>
<li>
<code>Push Obstacles</code> – select to have the Interactive Router move existing tracks out of the way. This mode can also push vias to make way for the new routing. If this mode cannot push an obstacle without causing a violation,
an indicator appears to show that the route is blocked.
</li>
<li>
<code>HugNPush Obstacles</code> – select to have the Interactive Router hug existing tracks, pads, and vias as closely as possible and where necessary, push obstacles to continue the route. If this mode cannot hug or push an
obstacle without causing a violation, an indicator appears to show that the route is blocked.
</li>
<li>
<code>Stop At First Obstacle</code> – in this mode, the routing engine will stop at the first obstacle that gets in the way.
</li>
<li>
<code>AutoRoute Current Layer</code> – select to enable auto-routing only on the current layer.
</li>
<li>
<code>AutoRoute MultiLayer</code> – select to enable auto-routing on multiple layers.
</li>
</ul>
</li>
<li>
<strong>Corner Style</strong> – select the desired routing corner style or use the <strong>Shift+Spacebar</strong> shortcut to cycle through the corner styles. <ul>
<li>
<strong>Restrict to 90/45</strong> – enable to restrict the routing to 90 degrees and 45 degrees only.
</li>
</ul>
</li>
<li>
<strong>Automatically Remove Loops</strong> – enable to automatically remove any redundant loops that are created during manual routing. This allows you to re-route a connection without having to manually remove redundant tracks.
However, there are times when you need to route nets, such as power nets and when you need loops; you can toggle this option for a selected net by using the <strong>Shift+D</strong> shortcut to override this global setting for the same
net. <ul>
<li>
<strong>Remove Loops With Vias</strong> – enable to automatically remove loops with vias. Disable this option for vias to remain during loop removal.
</li>
<li>
<strong>Remove Net Antennas</strong> – enable this option to remove any track or arc end that is not connected to any other primitive and forms an antenna.
</li>
</ul>
</li>
<li>
<strong>Display Clearance Boundaries</strong> – enable this option to have the no-go clearance area defined by the existing objects and the applicable clearance rule displayed as shaded polygons within a local viewing circle. This
option is not available in the <strong>Ignore Obstacles</strong> routing mode. <ul>
<li>
<strong>Reduce Clearance Display Area</strong> – enable this option to use a smaller clearance boundary. This option is available only when the <strong>Display Clearance Boundaries option</strong> is enabled.
</li>
</ul>
</li>
</ul>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
<div class="collapse">
</div>
<details class="b-collapsed-block collapsible collapsed js-form-wrapper form-wrapper b-collapsed-block_processed" id="rules_qidpr" data-inclusion-in-toc="" data-once="details">
<summary role="button" aria-controls="rules_qidpr" aria-expanded="false" class="title"><a>Rules</a>
<div class="b-collapsed-block__control-text"></div>
<span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#rules_qidpr"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#rules_qidpr">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
<span class="summary"></span>
</summary>
<div class="details-wrapper">
<div class="collapse-text-text">
<p> <img alt="" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="355" id=""
src="/documentation/sites/default/files/wiki_attachments/322391/QuickDiffPairRoutingRules_AD21_0.png" style="" title="" width="334" loading="lazy" data-once="force-lightbox marginBottom">
</p>
<p>Constraints defined by the applicable design rules will be listed under the <strong>Rules</strong> section of the <em>Properties</em> panel. </p>
<ul>
<li>
<strong>Via Constraint</strong> – click to open the <em>Edit PCB Rule</em> dialog in which you can define PCB rules for a via.
</li>
<li>
<strong>Differential Pair Constraint</strong> – click to open the <em>Edit PCB Rule</em> dialog in which you can define PCB rules for the differential pair.
</li>
</ul>
</div>
</div>
</details>
<div class="collapse-text-text">
</div>
<h2 id="matching-the-lengths-of-differential-pairs">Matching the Lengths of Differential Pairs <span class="b-copy b-copy_processed"
data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#matching-the-lengths-of-differential-pairs"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#matching-the-lengths-of-differential-pairs">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
</h2>
<p>Differential pairs are often used in high-speed designs due to their inherent immunity to noise, and the fact that they simplify the challenge of providing a high-quality return path for the signals. However, like single-sided signals, their
lengths must be managed to ensure the signal timing requirements are met. </p>
<p>During differential pair routing, the length of each of the two nets in the pair is displayed on the Status bar, and also in the Heads-up display (<strong>Shift+H</strong> to toggle on/off). The length values displayed in the <em>PCB</em>
panel are updated when you drop out of routing a pair. </p>
<p> <img alt="The current route length of each net in the pair is displayed in the Heads-up display (Shift+H to toggle on/off)." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom=""
height="451" id="" src="/documentation/sites/default/files/wiki_attachments/322391/DiffPairRouteLengths_AD20_0.png" style=""
title="The current route length of each net in the pair is displayed in the Heads-up display (Shift+H to toggle on/off)." width="900" loading="lazy" data-once="force-lightbox marginBottom"><span class="caption"
style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">The current route length of each net in the pair is displayed in the Heads-up display (<strong>Shift+H</strong> to toggle on/off).</span>
</p>
<div class="messages info">
<p>The <em>PCB</em> panel is used to examine objects in the design space and includes modes for examining <a href="/documentation/altium-designer/understanding-connectivity-pcb#browsing_nets_using_the_pcb_nets_panel">Nets</a>,
<a href="/documentation/altium-designer/interactively-routing-differential-pairs-pcb#viewing_and_managing_differential_pairs_on_the_pcb_using_the_pcb_differential_pairs_editor_panel">Differential Pairs</a> and
<a href="/documentation/altium-designer/managing-xsignals">xSignals</a>, amongst others. The panel includes details about each net/differential pair/xSignal, including the signal length and the delay - right-click in each section of the panel
to display a context menu of commands for that section. For example, when the panel is in <strong>Nets</strong> mode, right-click in the Nets section of the panel and use the <strong>Columns</strong> sub-menu to enable or disable details such
as <strong>Signal Length</strong> and <strong>Delay</strong>. When there are Length and/or Matched Length rules applied, the <strong>Signal Length</strong> column for nets that fail the design rule will highlight in orange (less than target
length) or red (exceeds target length). </p>
<p>
<a href="/documentation/sites/default/files/wiki_attachments/322391/Pnl_Pcb_xSignals.png" rel="fancybox" class="fancybox" data-fancybox="group-snl7a0"> <img alt="Use the PCB panel to monitor the progress of length matching." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="330" id="" src="/documentation/sites/default/files/wiki_attachments/322391/Pnl_Pcb_xSignals.png" style="" title="Use the PCB panel to monitor the progress of length matching." width="700" loading="lazy" data-once="force-lightbox marginBottom"></a><span
class="caption" style="color:#666666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Use the PCB panel to monitor the progress of length matching.</span>
</p>
<p><span style="color:#696969;">►</span> Learn more about the <a href="/documentation/altium-designer/pcb-panel"><em>PCB</em> panel</a>
</p>
</div>
<h3 id="matched-length-and-length-design-rules">Matched Length and Length Design Rules</h3>
<p><a href="/documentation/altium-designer/pcb-high-speed-rules#length">Length</a> and <a href="/documentation/altium-designer/pcb-high-speed-rules#matched_lengths">Matched Length</a> design rules can be defined to ensure that the flight time and
skew timing requirements are met. As well as being used during a design rule check (DRC), these rules are also used during interactive length tuning. </p>
<p>The Matched Length design rule detects the longest pair targeted by the rule scope and uses the <strong>Average Length</strong> value of that pair as the reference to compare the other targeted pairs, requiring their lengths to be within + or
- the Tolerance defined in the rule. The <strong>Average Length</strong> value is shown in the <strong>Differential Pairs Editor</strong> mode of the <em>PCB</em> panel. </p>
<div class="messages status">
<p>Length and Matched Length design rules can be scoped by <strong>Length Units</strong> or <strong>Delay Units</strong>. If the rules are scoped by delay, the Length Tuning Gauge will also display using delay. </p>
</div>
<h3 id="within-pair-and-between-pair-design-rules">Within-Pair and Between Pair Design Rules</h3>
<p>It is likely that you will have matched length requirements between the pairs, and also within each pair. </p>
<p>To manage this, create suitable Matched Length design rules: </p>
<ol>
<li> Define a Matched Length design rule that applies across (between) the pairs (achieved by selecting the <strong>Group Matched Lengths</strong> option). Scope the rule to apply to the required pairs (or xSignals), as shown in the image
below. </li>
</ol>
<p class="rteindent1"> <img alt="Create a matched length rule to define the length requirements between the differential pairs, or in this example, between the xSignals." border="" class="" data-disable-lightbox="" data-force-lightbox=""
data_another_folder="" data_margin_bottom="" height="600" id="" src="/documentation/sites/default/files/wiki_attachments/322391/Rule_DiffPair_BetweenPairs_AD20_0.png" style=""
title="Create a matched length rule to define the length requirements between the differential pairs, or in this example, between the xSignals." width="900" loading="lazy" data-once="force-lightbox marginBottom"><span class="caption"
style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Create a matched length rule to define the length requirements between the differential pairs, or in this example, between the xSignals.</span>
</p>
<ol start="2">
<li> Define another Matched Length design rule that applies within the pair (achieved by selecting the <strong>Within Differential Pair Length</strong> option). This rule ensures the lengths of the two nets within each pair are within
tolerance. Note that this rule must be scoped using a <strong>Where the Object Matches</strong> setting that targets differential pairs, as shown below. This rule should have a higher priority than the between-pairs rule. </li>
</ol>
<p class="rteindent1"> <img alt="Create a second matched length rule to define the length requirements within the pairs." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="600"
id="" src="/documentation/sites/default/files/wiki_attachments/322391/Rule_DiffPair_InPairs_AD20_0.png" style="" title="Create a second matched length rule to define the length requirements within the pairs." width="900" loading="lazy"
data-once="force-lightbox marginBottom"><span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Create a second matched length rule to define the length requirements within the pairs.</span>
</p>
<h3 id="length-tuning-a-differential-pair">Length Tuning a Differential Pair</h3>
<p><em>Main article:</em> <a href="/documentation/altium-designer/length-tuning-pcb">Length Tuning</a>
</p>
<p>The length of pairs, and the nets within each pair, are tuned using the two length tuning commands. To tune the lengths: </p>
<ol>
<li> The length of a differential pair can be accurately tuned using the <strong>Interactive Diff Pair Length Tuning</strong> command on the <strong>Route</strong> menu. During length tuning, you can use shortcuts to interactively adjust
the accordion style and size, or press <strong>Tab</strong> to open the <em>Properties</em> panel in <strong>Differential Pair Length Tuning</strong> mode. In the panel, the target length is defined: <ul>
<li>
<p>From the applicable Length and/or Matched Length design rules </p>
</li>
<li>
<p>From a user-selected routed diff pair </p>
</li>
<li>
<p>Manually, enter the value in the <strong>Target Length</strong> field </p>
</li>
</ul>
</li>
</ol>
<p class="rteindent1">
<a href="/documentation/sites/default/files/wiki_attachments/322391/DiffPair_LengthTuning_AD20_0.png" rel="fancybox" class="fancybox" data-fancybox="group-dqft5e"> <img alt="The length of a differential pair can be interactively tuned to match the lengths of other pairs" border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom="" height="539" id="" src="/documentation/sites/default/files/wiki_attachments/322391/DiffPair_LengthTuning_AD20_0.png" style="" title="" width="754" loading="lazy" data-once="force-lightbox marginBottom"></a>
</p>
<ol start="2">
<li> To tune a net within a pair, use the <strong>Interactive Length Tuning</strong> command on the <strong>Route</strong> menu. If you attempt to tune the longer net in the pair, the message <strong>Target Length Shorter than Old
Length</strong> will appear. </li>
</ol>
<p class="rteindent1"> <img alt="Tune the lengths of differential pairs first, then tune the length of the shorter net within a pair." border="" class="" data-disable-lightbox="" data-force-lightbox="" data_another_folder="" data_margin_bottom=""
height="514" id="" src="/documentation/sites/default/files/wiki_attachments/322391/DiffPair_LengthTuningInPair_AD20_0.png" style="" title="Tune the lengths of differential pairs first, then tune the length of the shorter net within a pair."
width="754" loading="lazy" data-once="force-lightbox marginBottom"> <span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">Tune the lengths of differential pairs first, then tune the length of the
shorter net within a pair.</span>
</p>
<div class="messages info">
<p>If you do not get tuning accordions appearing during length tuning it is most likely that the current settings are not suitable for the space available to place an accordion. If this occurs during tuning, press <strong>Tab </strong>to open
the <em>Properties panel</em> in <strong>Differential Pair Length Tuning</strong> mode and check that the settings in the <strong>Pattern</strong> section of the panel are sensible. For example: </p>
<ul>
<li> The <strong>Max Amplitude</strong> value may be too large </li>
<li> When the <strong>Style</strong> is Mitered Arcs, the Miter percentage may be too great to form an arc for the current Amplitude and Space </li>
</ul>
<p>A good option is to set the Style to Mitered Lines, click the Pause button to resume length tuning then use the <strong>1</strong> & <strong>2</strong> shortcuts to interactively adjust the <strong>Miter</strong>, the <strong>3</strong>
& <strong>4</strong> shortcuts to adjust the <strong>Space</strong> (pitch), and the <strong>,</strong> and & <strong>.</strong> shortcuts to adjust the <strong>Amplitude</strong>. When the tuning is looking how you want it,
press the <strong>Spacebar</strong> to cycle to your preferred Style. </p>
</div>
<div class="messages status">
<p>Refer to the <a href="/documentation/altium-designer/length-tuning-pcb">Length Tuning</a> page to learn more, where you will find a detailed list of the shortcuts that can be used to change the accordion style, amplitude and pitch. The page
also explains how the software decides which rule settings to obey when there are overlapping settings in the Length and Matched Length design rules. </p>
</div>
<h3 id="demonstration-of-length-tuning-and-modifying-the-accordions">Demonstration of Length Tuning and Modifying the Accordions</h3>
<p>The video shows pair lengths being tuned against other pairs (based on xSignal lengths) by adding length tuning accordions. The shorter member of each pair is then length-tuned against the longer member of that pair. The video then shows how
pairs can be moved and reshaped interactively, how a tuning accordion can be deleted, and how a new accordion can be shaped during placement using shortcuts. </p>
<p>
<video controls="" height="548" poster="/documentation/sites/default/files/wiki_attachments/322391/DiffPairLengthTuning_static.png" preload="auto" width="1000">
<source src="/documentation/sites/default/files/wiki_attachments/322391/DiffPairLengthTuning_AccordionEdit_AD23.mp4" type="video/mp4">
</video>
<span class="caption" style="color:#666;font-family:tahoma,verdana,sans-serif;font-size:11px;">The length of a differential pair can be tuned by adding length tuning accordions. The accordion is an object that can be moved, reshaped and
deleted.</span>
</p>
<h2 id="see-also">See Also <span class="b-copy b-copy_processed" data-clipboard-text="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#see-also"
data-url="https://www.altium.com/documentation/altium-designer/interactively-routing-differential-pairs-pcb#see-also">
<span class="b-copy__ico">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.81807 4.64903C8.66213 4.8162 9.46754 5.22685 10.1217 5.88097C11.879 7.63833 11.879 10.4876 10.1217 12.2449L8.00034 14.3663C6.24298 16.1236 3.39374 16.1236 1.63638 14.3663C-0.12098 12.6089 -0.12098 9.75965 1.63638 8.00229L3.6424 5.99627C3.55808 6.48206 3.53928 6.97701 3.586 7.46688L2.34349 8.7094C0.976651 10.0762 0.976651 12.2923 2.34349 13.6591C3.71032 15.026 5.9264 15.026 7.29323 13.6591L9.41455 11.5378C10.7814 10.171 10.7814 7.95491 9.41455 6.58808C8.72205 5.89558 7.81156 5.55393 6.90396 5.56313L7.81807 4.64903Z"
fill="#111111"></path>
<path
d="M8.18261 11.3556C7.33855 11.1884 6.53314 10.7777 5.87902 10.1236C4.12166 8.36625 4.12166 5.51701 5.87902 3.75965L8.00034 1.63833C9.7577 -0.119027 12.6069 -0.119027 14.3643 1.63833C16.1217 3.39569 16.1217 6.24493 14.3643 8.00229L12.3583 10.0083C12.4426 9.52252 12.4614 9.02758 12.4147 8.5377L13.6572 7.29519C15.024 5.92835 15.024 3.71227 13.6572 2.34544C12.2904 0.978604 10.0743 0.978604 8.70745 2.34544L6.58613 4.46676C5.21929 5.83359 5.21929 8.04967 6.58613 9.41651C7.27863 10.109 8.18912 10.4507 9.09671 10.4415L8.18261 11.3556Z"
fill="#111111"></path>
</svg>
</span>
<span class="b-copy__text">Copy Link</span>
<span class="b-copy__text-copied">Copied</span>
</span>
</h2>
<ul>
<li>
<a href="/documentation/altium-designer/interactive-routing-pcb">Interactive Routing</a>
</li>
<li>
<a href="/documentation/altium-designer/length-tuning-pcb">Length Tuning</a>
</li>
<li>
<a href="/documentation/altium-designer/interactively-routing-controlled-impedance-pcb">Controlled Impedance Routing</a>
</li>
<li>
<a href="/documentation/altium-designer/modifying-existing-routes-pcb">Modifying Existing Routes</a>
</li>
<li>
<a href="/documentation/altium-designer/glossing-retracing-existing-routes-pcb">Glossing & Retracing of Existing Routes</a>
</li>
<li>
<a href="/documentation/altium-designer/pcb-layout-high-speed-design">High Speed Design in Altium Designer</a>
</li>
<li>
<a href="/documentation/altium-designer/defining-high-speed-signal-paths-with-xsignals">Defining High Speed Signal Paths with xSignals</a>
</li>
</ul>
<div class="messages status">
<p>## Thanks to Robert Feranec of the FEDEVEL Academy (<a href="http://www.fedevel.com" target="_blank">www.fedevel.com</a>) for the use of the iMX6 Rex development board in images on this page
(<a href="http://www.imx6rex.com/" target="_blank">http://www.imx6rex.com/</a>). </p>
</div>
<link href="/documentation/sites/default/files/wiki_attachments/301051/DiffPairRouting_AD19_0.gif" rel="prefetch" type="image">
<link href="/documentation/sites/default/files/wiki_attachments/301051/DiffPair_Modify_AD18_0.gif" rel="prefetch" type="image">
<link href="/documentation/sites/default/files/wiki_attachments/322391/DynamicClearanceControl_AD19_0.gif" rel="prefetch" type="image">
<link href="/documentation/sites/default/files/wiki_attachments/301051/DiffPair_RemoveAccordions_AD18_0.gif" rel="prefetch" type="image">
<link href="/documentation/sites/default/files/wiki_attachments/300209/SelectionTechniques_Routed.mp4" rel="prefetch" type="image">
</div>
</form>
POST /documentation/altium-designer/interactively-routing-differential-pairs-pcb
<form class="form-report-issue" data-drupal-selector="form-report-issue" action="/documentation/altium-designer/interactively-routing-differential-pairs-pcb" method="post" id="form-report-issue" accept-charset="UTF-8" data-once="form-updated"
data-drupal-form-fields="typo-context,typo-url,edit-issue,edit-actions">
<input autocomplete="off" data-drupal-selector="form-kjrrps7yp1z-vlclgjocb1llm9uuzldgt-f0pdyuvmc" type="hidden" name="form_build_id" value="form-kjRRPs7yp1Z_vLcLGJOcB1llm9uUzldgT_F0PdyUVMc">
<input data-drupal-selector="edit-form-report-issue" type="hidden" name="form_id" value="form_report_issue">
<input id="typo-context" data-drupal-selector="edit-typo-context" type="hidden" name="typo_context" value="">
<input id="typo-url" data-drupal-selector="edit-typo-url" type="hidden" name="typo_url" value="">
<div class="am-form">
<div class="form-item">
<div class="js-form-item form-item js-form-type-textarea form-type-textarea js-form-item-issue form-item-issue">
<label for="edit-issue" class="js-form-required form-required">ISSUE</label>
<div class="form-textarea-wrapper">
<textarea placeholder="Please describe the issue encountered (e.g., a typo, incorrect information, outdated imagery)." class="form-text form-textarea required resize-vertical" data-drupal-selector="edit-issue" id="edit-issue" name="issue"
rows="6" cols="60" maxlength="1024" required="required" aria-required="true"></textarea>
</div>
</div>
</div>
<div class="modal__text">
<p>For further assistance, please connect to our <a href="https://supportcenter.live.altium.com" target="_blank">Support Center</a></p>
</div>
<div class="form-actions">
<button class="am-button _style-transparent" type="button" data-dismiss="modal">Cancel</button>
<input class="form-submit am-form-submit button js-form-submit" style="margin-right: 0" data-drupal-selector="edit-actions" type="submit" id="edit-actions" name="op" value="Send Feedback" data-once="drupal-ajax">
</div>
</div>
</form>
Text Content
Skip to main content Mobile menu * PCB Design * Altium Designer World’s Most Popular PCB Design Software * CircuitStudio Entry Level, Professional PCB Design Tool * CircuitMaker Free PCB design for makers, open source and non-profits * Why Switch to Altium See why and how to switch to Altium from other PCB design tools * Solutions * For Enterprise The Last Mile of Digital Transformation * For Parts and Data Extensive, Easy-to-Use Search Engine for Electronic Parts * Altium 365 * Resources & Support Explore Products * Free Trials * Downloads * Extensions Free Altium 365 Tools * Online PCB Viewer Resources & Support * Altium / Renesas Scheme: Information for Shareholders * Renesas / Altium CEO Letter To Customers * All Resources * Support Center * Documentation Altium Community * Forum * Bug Crunch * Ideas Education Programs * Professional Training / Certification * University / College Educators * University / College Students * Webinars * Store * Search Open Search Search Close Sign In Search In: Doc:Documentation: Altium Designer Altium DesignerAltium 365Altium MCAD CoDesignerAltium CircuitMakerCompany DashboardAltium On-Prem Enterprise ServerAltium Infrastructure Server Ver: Version: 24 2423222120.220.120.019.119.018.118.017.117.016.116.015.1 Close Search Search on Documentation * Altium Designer Documentation * New in Altium Designer * Tutorial - A Complete Design Walkthrough with Altium Designer * Getting Familiar with the Altium Design Environment * Capturing Your Design Idea as a Schematic * Analyzing Your Design Using Circuit Simulation * BOM Management with ActiveBOM * Managing Design Changes between the Schematic & PCB * Laying Out Your PCB * PCB Environment Setup * PCB Placement & Editing Techniques * Pre-layout Stage * Component Placement * Understanding Connectivity on Your PCB * Routing the PCB * Polygons & Copper Regions * Finalizing Your PCB Design * PCB Health Check Monitor * Design Rule Check (DRC) * Board Panelization * Designing a Rigid-Flex PCB * High Speed Design * Defining High Speed Signal Paths with xSignals * Differential Pair Routing * Controlled Impedance Routing * Length Tuning * Controlled Depth Drilling (Back Drilling) * Advanced Technologies * PCB CoDesign * PCB Editor & PCB Footprint Editor Shortcuts * PCB Layout Query Functions * QuickNav - PCB Design Objects * Analyzing Your PCB Design * Streamlining Board Design Documentation with Draftsman * Preparing Your Design for Manufacture * Designing with Multiple PCBs * Harness Design * Building & Maintaining Your Components and Libraries * Configuring and Administrating Your Workspace * Installation, Licensing & Management * Retired Documentation QUICK LINKS * QuickLinks * Using Altium Documentation * Documentation Copyright Information * Altium Documentation - Home * Knowledge Base Altium Designer Documentation Laying Out Your PCB High Speed Design DIFFERENTIAL PAIR ROUTING Created: November 16, 2023 | Updated: July 23, 2024 | Applies to version: 24 Note The features available depend on your Altium product access level. Compare features included in the various levels of Altium Designer Software Subscription and functionality delivered through applications provided by the Altium 365 platform. If you don’t see a discussed feature in your software, contact Altium Sales to find out more. Differential pair routing is a design technique employed to create a balanced transmission system able to carry differential (equal and opposite) signals across a printed circuit board. Typically this differential routing will interface to an external differential transmission system, such as a connector and cable. A differential signaling system is one where a signal is transmitted down a pair of tightly coupled carriers, one of these carrying the signal, the other carrying an equal but opposite image of the signal. Differential signaling was developed to cater for situations where the logic reference ground of the signal source could not be well connected to the logic reference ground of the load. Differential signaling is inherently immune to common mode electrical noise, which is the most common interference artifact present in an electronic product. Another major advantage of differential signaling is that it minimizes electromagnetic interference (EMI) generated from the signal pair. Differential pair PCB routing is a design technique employed to create a balanced transmission system able to carry differential (equal and opposite) signals across a printed circuit board. Typically this differential routing will interface to an external differential transmission system, such as a connector and cable. It is important to note that while the coupling ratio achieved in a twisted pair differential cable may be better than 99%, the coupling achieved in differential pair routing will typically be less than 50%. Current expert opinion is that the PCB routing task is not to try to ensure a specific differential impedance is achieved, rather, to focus on ensuring the differential signal arrives in good condition at the target component as it travels from the external cabling. According to Lee Ritchey, a noted industry high-speed PCB design expert, successful differential signaling requires: * To set each of the routing signal impedances to half the incoming differential cable impedance. * That each of the two signal lines is properly terminated in its own characteristic impedance at the receiver end. * That the two lines should be of equal length, to within tolerances of the logic family and the circuit frequency used in the design. The focus should be on preserving the timing; match the lengths close enough to satisfy the skew budget of the design. Example length tolerances include high-speed USB, length mismatch should be no greater than 150 mils; DDR2 clocks need to be matched to within 25 mils. * Use the benefit of routing the two signals side-by-side to help achieve good quality routing of matched lengths. Where required, it is acceptable to separate to route around obstacles. * Layer changes are acceptable as long as the signal impedances are maintained. For more information, refer to the article Differential Signaling Doesn't Require Differential Impedance, by Lee W. Ritchey, available from https://speedingedge.com/home/related-articles/. Use this link to learn about High Speed Design in Altium Designer. Use this link to learn about Controlled Impedance Routing in Altium Designer. TRANSFERRING THE DIFFERENTIAL PAIRS TO THE PCB EDITOR FROM SCHEMATICS COPY LINK COPIED If you have placed Differential Pair directives on nets in the schematic, the default project options settings will result in the differential pairs members being created on the PCB. The following options in the Options for PCB Project dialog are used to configure this: * Comparator tab - Extra Differential Pairs (then the Different Differential Pair checks for subsequent updates, and the Rules options if you are also creating/changing design rules) * ECO Generation tab - Add Differential Pair (then the Change Differential Pair checks for subsequent updates, and the Rules options if you are also creating/changing design rules) * Class Generation tab - Generate Net Classes (if you are also creating a Net Class to use to scope a PCB Differential Pair Routing rule) VIEWING AND MANAGING DIFFERENTIAL PAIRS ON THE PCB COPY LINK COPIED Differential pair definitions are viewed and managed in the PCB panel set to Differential Pairs Editor mode. The image below shows the pairs that belong to the Differential Pair Class ROCKET_IO_LINES. Pair V_RX0 is highlighted; the nets in this pair are V_RX0_N and V_RX0_P. The - and + displayed next to each member's net name is a system flag indicating if it is the positive or negative member of the pair. Differential pairs can be viewed and managed in the Differential Pair Editor. Right-click in the Differential Pair Classes region to create a new class. In the PCB panel’s Differential Pairs Editor mode, its three main regions change to reflect the differential pair hierarchy of the current PCB design (in order from the top): * Differential Pair Classes. * Individual member Differential Pairs within a class. * The constituent Nets (negative and positive) that form a differential pair. DEFINING A DIFFERENTIAL PAIR CLASS Often there is more than one differential pair that needs to be targeted by a design rule. In this situation, you can define classes of differential pairs, clustering them into logical groups. Right-clicking on a differential pair class entry then selecting Properties (or double-clicking on the entry directly) will open the Edit Object Class dialog in which you can rename or view/modify the differential pair membership of the class. For full control and editing of all classes, including Differential Pair Classes, open the Object Class Explorer dialog using the Design » Classes command from the main menus. The Object Class Explorer allows creating, viewing and modification for all classes, including Differential Pairs. To learn more about working with classes, refer to the Working with Classes on a Schematic & PCB page. MANAGING DIFFERENTIAL PAIRS Differential pairs can be defined on the schematic and also in the PCB Editor. Management in the latter is performed from the Differential Pairs region of the PCB panel, when configured in its Differential Pairs Editor mode. For the particular differential pair class selected, all currently defined differential pair objects that belong to that class will be listed in the Differential Pairs region. Use the buttons below the region to manage your differential pairs as needed: * To create a new differential pair object, click the Add button. In the resulting Differential Pair dialog, select existing nets for both the positive and negative nets, give the pair a name then click OK. Note that only available nets are listed for selection. Nets currently defined as part of existing differential pairs are not listed. Quickly create pairs from the named nets. * To modify an existing differential pair, select its entry and click the Edit button. The Differential Pair dialog will open with the currently chosen nets for the pair entered into the Positive Net and Negative Net drop-down fields. Change one or both nets for the pair or rename the pair as required. You can also right-click on a differential pair entry, then select Properties, or double-click on the entry directly. * To delete an existing differential pair, select its entry and click the Delete button. CREATING DIFFERENTIAL PAIRS FROM DESIGN NETS If you are pairing nets that have a consistent naming scheme (i.e. they have a common prefix and a consistent positive/negative suffix, for example, TX0_P and TX0_N), you can use the Create Differential Pairs From Nets dialog. Click the Create From Nets button in the PCB panel in Differential Pairs Editor mode to open the dialog. Prospective differential pair objects are listed for creation in response to the filter entries at the top of the dialog. The effectiveness of this automated method directly depends on the naming convention that has been used for the specific nets that will make up the differential pairs. Ideally, a naming convention will be used so that a common root is followed by a consistent positive/negative indicator (P and N). For example, consider the receiver signal D_ETH_O.RX, which is a differential signal in the design. The two nets that constitute this signal are ETH_O.RX_P and ETH_O.RX_N - these represent the positive and negative sides of the signal, respectively. The filters at the top of the dialog enable you to quickly target these nets in terms of the net class to which they belong and the particular differentiating factor that has been used to distinguish the positive and negative nets in an intended pairing, for example, _P and _N. You can also define a prefix to be added to the differential pair objects created, and also determine in which differential pair class they are to be added. For each differential pair object, the dialog lists its constituent positive and negative nets. By default, all prospective differential pair objects are selected for creation and individual ones can be excluded by clearing the associated Create check box. When all options are set as required, click the Execute button - the differential pair objects will be created and the PCB panel will update accordingly. * Right-clicking on a Net(s) entry in the PCB panel then selecting Properties (or double-clicking on the entry directly) will open the Edit Net dialog in which you can view/modify the properties of the net as required. * Use the Rule Wizard button to access the Differential Pair Rule Wizard and implement the differential pair rule properties in an automated process. Refer to the Using the Differential Pair Rule Wizard to Define the Rules section below to learn more. USING XSIGNALS WITH DIFFERENTIAL PAIRS COPY LINK COPIED Main page: Defining High Speed Signal Paths with xSignals If your differential pairs have series components in the signal path, you might find it worthwhile to create xSignals. An xSignal is a designer-defined signal path between two nodes. They can be two nodes within the same net or they can be two nodes in different nets. Using an xSignal, you can define the signal path so that it includes the net on either side of a series component. Route length calculations for xSignals include the length of the path through the series component, as shown by the thin line that is displayed when an xSignal is selected in the xSignals mode of the PCB panel. These differential pairs have been defined as xSignals; the route length includes the series component. xSignals can be used to scope design rules including the Matched Length and Length rules. ► Learn more about Defining High Speed Signal Paths with xSignals APPLICABLE DESIGN RULES COPY LINK COPIED To interactively route a differential pair, create and configure the following two design rules in the PCB Rules and Constraints Editor dialog (Design » Rules): * Differential Pairs Routing - defines the routing width of the nets in the pair, the separation (gap) between the nets in the pair, and the overall uncoupled length (the pair becomes uncoupled when the gap is wider than the Max Gap setting). Set the scope of this rule to target objects that are a differential pair, e.g., IsDifferentialPair or InDifferentialPairClass('All Differential Pairs'). Note that the Min/Preferred/Max Gap settings can be used during routing but not during design rule checking. During design rule checking, the distance between the nets in a pair is tested by the applicable Electrical Clearance design rule, as explained in the highlight box below. * Electrical Clearance - defines the minimum clearance between any two primitive objects (e.g., pad-pad, track-pad) on either any net, the same net, or between different nets. Set the scope of this rule to target objects that are members of a differential pair, e.g., InDifferentialPair, and select the appropriate object types In the constraints region of the dialog, as shown below. Important Note: As you route a differential pair, the routed nets in the pair will be separated by the current Min/Preferred/Max Gap setting defined in the applicable Differential Pair Routing design rule (press Shift+6 to cycle through the Gap modes during routing, check the Status bar to see which mode is being applied). However, during design rule checking, all electrical objects will be tested using the applicable Electrical Clearance design rule, so if the gap value used for routing the differential pair is less than the minimum allowed clearance between the differential pair nets set by the Electrical Clearance design rule, a violation of the Electrical Clearance design rule will occur. If the nets in the pair are placed closer together than the minimum setting allowed by the applicable Electrical Clearance design rule, you will need to add an additional Electrical Clearance design rule targeting the differential pairs, allowing them to have a clearance equal to the Diff Pair Routing Gap setting. This rule should also have the setting that defines the Net types to be tested set to Same Differential Pair, as shown in this image. SETTING THE SCOPE OF THE DESIGN RULES The scope of the design rule defines the set of objects to which you want the rule applied. Since a differential pair is an object, you can use queries like the following examples: * InAnyDifferentialPair - is the object in any differential pair. * InDifferentialPair('D_V_TX1') - targets both nets in the differential pair named D_V_TX1. * InDifferentialPairClass('ROCKET_IO_LINES') - targets all nets in all pairs belonging to the differential pair class called ROCKET_IO_LINES. * (IsDifferentialPair And (Name = 'D_V_TX1')) - targets the differential pair object that has a name of D_V_TX1. * (IsDifferentialPair And (Name Like 'D*')) - targets all differential pair objects whose name starts with the letter D. USING THE DIFFERENTIAL PAIR RULE WIZARD TO DEFINE THE RULES While rules can be created manually using the PCB Rules and Constraints Editor (Design » Rules), the PCB panel in Differential Pairs Editor mode offers the convenience of the Differential Pair Rule Wizard. Use the Rule Wizard button (below the Nets region in the PCB panel) to access the Wizard and implement the rule properties as required. The Differential Pair Rule Wizard guides you through the rule definition process. Note that the scope of the rules will depend on the selection in the PCB panel prior to launching the wizard, as follows: Differential Pair Class If the All Differential Pairs class is selected, the scope will be All for each rule. If a specific differential pair class is selected, the scope will be InDifferentialPairClass('ClassName') for each rule. Differential Pair If a single differential pair object is selected in the panel, the scopes will be: * Width - InDifferentialPair('PairName') * Matched Net Lengths and Differential Pairs Routing - IsDifferentialPair And (Name = 'PairName')) If multiple differential pair objects are selected in the panel, there will be individual scope entries for each pair object, each separated by an 'Or' operator. For example, a routing Width rule targeting individually selected differential pair objects D_ETH_O.TX and D_ETH_O.RX will have a scope of: InDifferentialPair('D_ETH_O.TX') Or InDifferentialPair('D_ETH_O.RX') Note that the clearance from a net in a differential pair to any other electrical object that is not a part of the pair is monitored by the applicable Clearance rule. ROUTING A DIFFERENTIAL PAIR COPY LINK COPIED Related page: Interactive Routing Differential pairs are routed as a pair - that is, you route two nets simultaneously. To route a differential pair, select Interactive Differential Pair Routing from the Route menu or the Active Bar. You will be prompted to select one of the nets in the pair; click on either to start routing. It doesn't matter if the positive or negative trace in a pair is selected as the system will automatically select the other trace too. The video below shows a differential pair being routed. During differential pair routing, you can perform the following functions: * Shift+R to cycle through the conflict resolution routing modes (Walkaround, Push, Hug and Push, Stop at First Obstacle, Ignore Obstacles). * Shift+Spacebar to cycle through the available corner styles (45 degree corner, 45 degree arc in corner, any angle, 90 degree corner, 90 degree arc in corner). * When routing a diff pair using the any angle corner style, press and hold Shift to route the diff pair using tangent arcs. * Press Spacebar to toggle between the two corner direction sub-modes. * Press the Backspace key to remove the last vertex. * Press 3 to cycle possible diff pair routing widths (User Choice, Rule Min, Rule Preferred, Rule Max). * Press Shift+6 to cycle possible diff pair gaps (Rule Min, Rule Preferred, Rule Max). * Use the + and - keys on the numeric keypad to switch routing layers. * To switch layers and insert a via pair: Press the * key on the numeric keypad or use the Ctrl+Shift+Wheel Scroll shortcut combination, then * Press 4 to cycle possible via sizes (User Choice, Rule Min, Rule Preferred, Rule Max) * Press 5 to toggle between staggered and perpendicular via patterns during a layer change, or alternatively, move the cursor around to toggle the pattern * Press 6 to cycle possible via stacks, or press 8 to display a list to select from (learn more about controlling the vias placed during interactive routing) * Shift+F1 to display all of the available in-command shortcuts. * In the arc in corner modes, press the "," key to decrease the maximum arc radius and the "." key to increase the maximum arc radius. The arc size can be changed interactively by moving the cursor. The setting defines the maximum allowable arc radius, which is displayed on the Status bar when you are routing. * When using the Interactive Differential Pair Routing tool, note that coupling the differential pair has priority. Therefore, the SMD To Corner and SMD Entry design rules may not work as expected. If strict respect for these rules is required when routing a differential pair, use the Quick Differential Pair Routing tool. * The current main limitations of any angle diff pair routing are: * Routing transitions through borders of rooms with different design rules are not currently supported. * The SMD Entry design rule is not currently supported. * Automatic loop removal in any angle diff pairs is supported. This feature is in Open Beta and available when the Legacy.PCB.Routing.LoopRemoval option is disabled in the Advanced Settings dialog. Many of the settings, such as the current routing mode, width, gap and via size, are displayed on the Status bar (shown below) or the Heads Up Display (Shift+H to toggle it on/off). Many of the differential pair routing behaviors are the same as single-net interactive routing. Learn more about Interactive Routing CONFIGURING THE INTERACTIVE DIFFERENTIAL PAIR ROUTER Many of the interactive differential pair routing settings can be changed during interactive differential pair routing, in the Interactive Differential Pair Routing mode of the Properties panel. Press Tab during routing to display the panel. To recognize the members in a differential pair, the concept of Coupling is used. When the software recognizes objects that belong to a differential pair it will attempt to drag the pair's partner track or via if the Keep Coupled option is enabled in the Interactive Sliding or the Interactive Via Dragging modes of the Properties panel (which are described below). The following collapsible sections contain information about the options and controls available: Net Information Copy Link Copied * DP Name – displays the differential pair name. * DP Class – displays the differential pair class that the routing belongs to (if it is a member of a differential pair class). * Selected * Length – the total length sum of the selected segments. * Delay – the total delay of the selected segments, including those unrouted. * Total * Length – the total Signal Length. The Signal Length is the accurate calculation of the total node-to-node distance. Placed objects are analyzed to resolve stacked or overlapping objects and wandering paths within pads, and via lengths are included. If the net is not completely routed, the Manhattan (X + Y) length of the connection line is also included. * Delay – the delay of the routed segments of the Total Length. Select the clickable links of the DP Name, DP Class, Length, and Delay from the Differential Pair Routing mode of the Properties panel to be redirected to the PCB – Nets panel, where you may view and change the details of the nets associated. Properties Copy Link Copied * Layer – use the drop-down to specify on which layer the routing is located. * Gap – use the drop-down or the Shift+6 shortcut to cycle through the permissible clearances. * Min – select to specify the minimum permissible clearance between primitives on different nets within the same differential pair. * Preferred – select to specify the preferred clearance between primitives on different nets within the same differential pair. * Max – select to specify the maximum permissible clearance between primitives on different nets within the same differential pair. * Via – if the via is associated with a template, the template name is displayed here. * Via Diameter – specify the via diameter. * Via Hole Size – specify the via hole size. * Width – use the drop-down to specify the width. * Min – signifies that the design rule minimum width defined for the current net will be used * Preferred – signifies that the design rule preferred width defined for the current net will be used. * Max – signifies that the design rule maximum width defined for the current net will be used. Interactive Routing Options Copy Link Copied * Routing Mode – use the drop-down or use the Shift+R shortcut to cycle through the desired routing modes. The following choices are available: * Ignore Obstacles – select to ignore existing objects (routing can be freely placed). Violations are highlighted. * Walkaround Obstacles – select to have the Interactive Router route around existing tracks, pads and vias. If this mode cannot walk around an obstacle without causing a violation, an indicator appears to show that the route is blocked. * Push Obstacles – select to have the Interactive Router move existing tracks out of the way. This mode can also push vias to make way for the new routing. If this mode cannot push an obstacle without causing a violation, an indicator appears to show that the route is blocked. * HugNPush Obstacles – select to have the Interactive Router hug existing tracks, pads, and vias as closely as possible and where necessary, push obstacles to continue the route. If this mode cannot hug or push an obstacle without causing a violation, an indicator appears to show that the route is blocked. * Stop At First Obstacle – in this mode, the routing engine will stop at the first obstacle that gets in the way. * AutoRoute Current Layer – select to enable auto-routing only on the current layer. * AutoRoute MultiLayer – select to enable auto-routing on multiple layers. * Corner Style – select the desired routing corner style or use the Shift+Spacebar shortcut to cycle through the corner styles. * Restrict to 90/45 – enable to restrict the routing to 90 degrees and 45 degrees only. * Gloss Effort (Routed) – select the desired gloss level from the panel or use the Shift+Ctrl+G shortcut to cycle through the following choices: * Off – in this mode, glossing is essentially disabled. Note, however, that cleanup is still run after routing/dragging occurs to eliminate, for example, overlapping track segments. This mode is typically useful at the end stage of board layout when the ultimate level of fine-tuning is required (for example, when manually dragging tracks, cleaning pad entries, etc.). * Weak – in this mode, a low level of glossing is applied with the Interactive Router considering only those tracks directly connected to or in the area of the tracks that you are currently routing (or tracks/vias being dragged). This mode of glossing is typically useful for fine-tuning track layout or when dealing with critical traces. * Strong – in this mode, a high level of glossing is applied with the Interactive Router looking for shortest paths, smoothing out tracks, etc. This mode of glossing is typically useful in the early stages of the layout process when the aim is to get a good amount of the board routed quickly. * Gloss Effort (Neighbor) – select the desired gloss level to apply to traces being pushed by the net currently being routed directly from the panel through the following choices: * Off – in this mode, glossing is essentially disabled. Note, however, that cleanup is still run after routing/dragging occurs to eliminate, for example, overlapping track segments. This mode is typically useful at the end stage of board layout when the ultimate level of fine-tuning is required (for example, when manually dragging tracks, cleaning pad entries, etc.). * Weak – in this mode, a low level of glossing is applied with the Interactive Router considering only those tracks directly connected to or in the area of the tracks that you are currently routing (or tracks/vias being dragged). This mode of glossing is typically useful for fine-tuning track layout or when dealing with critical traces. * Strong – in this mode, a high level of glossing is applied with the Interactive Router looking for shortest paths, smoothing out tracks, etc. This mode of glossing is typically useful in the early stages of the layout process when the aim is to get a good amount of the board routed quickly. * Automatically Terminate Routing – when enabled, when you complete a route to the target pad, the routing tool does not continue in routing mode from the target pad but rather resets and is ready for you to click on the next source pad from which to route. If this option is disabled, after you route to the target pad, the tool will remain in routing mode and use the previous target pad as the source for the next route. * Automatically Remove Loops – enable to automatically remove any redundant loops that are created during manual routing. This allows you to re-route a connection without having to manually remove redundant tracks. However, there are times when you need to route nets, such as power nets and when you need loops; you can toggle this option for a selected net by using the Shift+D shortcut to override this global setting for the same net. * Remove Loops With Vias – enable this option to automatically remove loops with vias. Disable this option for vias to remain during loop removal. * Remove Net Antennas – enable this option to remove any track or arc end that is not connected to any other primitive and forms an antenna. * Allow Via Pushing – check this option to allow pushing a Via when in Push Obstacles or HugNPush Obstacles mode. * Pin Swapping – check this option to enable pin swapping or use the Shift+C shortcut. * Display Clearance Boundaries – enable this option to have the no-go clearance area defined by the existing objects and the applicable clearance rule displayed as shaded polygons within a local viewing circle. This option is not available in the Ignore Obstacles routing mode. * Reduce Clearance Display Area – enable this option to use a smaller clearance boundary. This option is available only when the Display Clearance Boundaries option is enabled. * Miter Ratio – controls the minimum corner tightness. The Miter Ratio multiplied by the current track width equals the separation between walls of the tightest U-shape that can be routed for that ratio. Enter a positive value equal to or greater than zero (the x multiplier is added automatically). * Subnet Jumper Length – specify the desired Subnet Jumper length. Jumpers, which are also referred to as wire links, allow the designer to replace routing with a Jumper component. To learn more, see Working with Jumper Components. Rules Copy Link Copied Constraints defined by the applicable design rules will be listed under the Rules section of the Properties panel. * Via Constraint – click to open the Edit PCB Rule dialog in which you can define PCB rules for via. * Differential Pair Constraint – click to open the Edit PCB Rule dialog in which you can define PCB rules for the differential pair. IMPROVING THE QUALITY OF THE ROUTING Main article: Glossing & Retracing of Existing Routes The PCB editor includes powerful tools for improving the quality of existing routing. These tools are known as Glossing and Retracing and both are available in the Route menu. * Gloss - focuses on improving the trace geometry, attempting to reduce the number of corners and shorten the overall route length. Gloss preserves the existing trace width and differential pair gap. Glossing respects the current Gloss Effort (Routed) setting configured in the PCB - Interactive Routing page of the Preferences dialog (show image). * Retrace - assumes the overall geometry is satisfactory, focusing instead on verifying that the routing meets the design rules. Where Gloss preserves the existing trace width and pair gap, Retrace changes them to Preferred. Retrace is an excellent tool to use when a Differential Pair Routing design rule has changed, and that change needs to be applied to existing routing. The animation in the previous section, Routing a Differential Pair, includes a simple demonstration of glossing with the Gloss Effort (Routed) set to Strong. ► Learn more about Glossing & Retracing of Existing Routes INTERACTIVELY MODIFYING THE DIFFERENTIAL PAIR ROUTING Main page: Modifying Existing Routes During routing there will be many instances where you need to change some of the existing routing, for example, you might not be happy with the pad exits and you want to re-shape them (as shown in the video below). While you can change the existing routing using a drafting type approach of clicking and dragging track segments, it is often easier to simply re-route. To do this, select the Route » Interactive Differential Pair Routing command, then click anywhere on the existing routing. Proceed to route the new path, coming back to meet the existing routing where required. This will create a loop between the old path and the new path. When you right-click or press Esc to terminate the route, the redundant segments are automatically removed, including any redundant vias. The loop removal feature is employed by enabling the Automatically Remove Loops option - either from within the Properties panel (while in interactive differential pair routing mode), or on the PCB Editor - Interactive Routing page of the Preferences dialog. To toggle this feature on or off while routing, use the Shift+D keyboard shortcut. Differential pair routing is slightly different from single net routing. Single net routing can be configured so that the last segment is hollow (the look-ahead segment); this segment is not placed when you click. Differential pair routing does not include look-ahead segments, so when you click you will place all visible segments. Position the cursor to ensure that there are no redundant segments. If you are adjusting differential pairs by manually dragging track segments, you can either push one pair member with the other or drag each independently. Use the loop removal feature to interactively re-route a diff pair along a new path, the old routing loop is automatically removed. Pairs can also be modified by dragging one route so that it pushes the other. To learn more, refer to Modifying Existing Routes. INTERACTIVE VIA DRAGGING PCB designers can spend a lot of time adjusting the routing, perhaps due to a late design change, or to achieve completion of their design. This can mean pushing and shoving existing routing, dragging vias, and nudging components. Adjust the via dragging behavior in the Properties panel. Complimenting the support for glossing of neighbor routes, via dragging is also supported. Via dragging supports Neighbor Glossing, configured through the Interactive Via Dragging mode of the PCB editor's Properties panel. Press Tab during via dragging to access the panel and adjust the settings. DIFFERENTIAL PAIR DRAGGING To recognize the members in a differential pair, the concept of Coupling is used. When the software recognizes objects that belong to a differential pair it will attempt to drag the pair's partner track or via if the Keep Coupled option is enabled in the Interactive Sliding or the Interactive Via Dragging modes of the Properties panel. Press X as you drag a via-pair to rotate the pair by 90 degrees. To confirm that the partner objects are coupled, the software checks that the objects: * For via pairs - belong to the pair, and are closer than 2 * Preferred Gap * For track pairs - belong to the pair, are on the same layer, are separated by no more than the Preferred Gap DISPLAYING THE AVAILABLE CLEARANCE Have you ever been stuck during routing, wondering why the route won't fit through that gap? This frustration is even more likely during differential pair routing. Altium Designer includes a feature to help with this, called dynamic display of clearance boundaries. When enabled, the no-go clearance area defined by the existing objects + the applicable clearance rule is displayed as shaded polygons within a local viewing circle, as shown in the video below. Press Ctrl+W to toggle the feature on and off. Dynamically display the clearance boundaries during differential pair routing. The display area can be restricted to a region around the current cursor location, or it can be the entire screen. This is controlled by the Reduce Clearance Display Area sub-option on the PCB Editor - Interactive Routing page of the Preferences dialog. THE QUICK DIFFERENTIAL PAIR ROUTING TOOL The Quick Differential Pair Routing command (accessed from the main menu and the Active Bar) offers lighter routing with less settings and capabilities, suitable for simpler designs. Its general behavior and shortcuts is the same as the standard Interactive Differential Pair Routing command. Capabilities include: * A number of routing modes, such as: stop at first obstacle, walkaround, and push and shove. * Powerful dragging capabilities that maintain track angles and orthogonality. * A loop removal feature that makes re-routing a quick and easy process. The Quick Differential Pair Routing tool helps maximize routing efficiency and flexibility in an intuitive way, including following cursor path for laying route sections, single-click routing completion, pushing or walking around obstacles, and automatically following existing connections, all in accordance with applicable design rules. This router is referred to as Quick because it offers a reduced feature-set. Features that are not included in the Quick Differential Pair Router include: * No turn smoothing * Little support for Any Angle routing * No pushing of T-junctions * Simple Push&Shove support * No Miter Ratio, Min Arc, or Pad Entry Stability * Simple Gloss Effort, with no support for Gloss Neighbor * No differential pair convergence when exiting the start pins laterally * No hugging by routed differential pairs * No differential pair maintenance when a neighbor differential pair is pushed If you need any of these features, use the Interactive Differential Pair Routing tool. The following collapsible sections contain information about the Quick Differential Pair Routing options and controls available: To recognize the members in a differential pair, the concept of Coupling is used. When the software recognizes objects that belong to a differential pair it will attempt to drag the pair's partner track or via if the Keep Coupled option is enabled in the Interactive Sliding or the Interactive Via Dragging modes of the Properties panel. Net Information Copy Link Copied * DP Name – displays the differential pair name. * DP Class – displays the differential pair class that the routing belongs to (if it is a member of a differential pair class). * Selected * Length – the total length sum of the selected segments. * Delay – the total delay of the selected segments, including those unrouted. * Total * Length – the total Signal Length. The Signal Length is the accurate calculation of the total node-to-node distance. Placed objects are analyzed to resolve stacked or overlapping objects and wandering paths within pads, and via lengths are included. If the net is not completely routed, the Manhattan (X + Y) length of the connection line is also included. * Delay – the delay of the routed segments of the Total Length. Select the clickable links of the DP Name, DP Class, Length, and Delay from the Differential Pair Routing mode of the Properties panel to be redirected to the PCB – Nets panel, where you may view and change details of the nets associated. Properties Copy Link Copied * Layer – use the drop-down to specify on which layer the routing is located. * Gap – use the drop-down or the Shift+6 shortcut to cycle through the permissible clearances. * Min – select to specify the minimum permissible clearance between primitives on different nets within the same differential pair. * Preferred – select to specify the preferred clearance between primitives on different nets within the same differential pair. * Max – select to specify the maximum permissible clearance between primitives on different nets within the same differential pair. * Via – if the via is associated with a template, the template name is displayed here. * Via Diameter – specify the via diameter. * Via Hole Size – specify the via hole size. * Width – use the drop-down to specify the width. * Min – signifies that the design rule minimum width defined for the current net will be used * Preferred – signifies that the design rule preferred width defined for the current net will be used. * Max – signifies that the design rule maximum width defined for the current net will be used. Interactive Routing Options Copy Link Copied * Routing Mode – use the drop-down or use the Shift+R shortcut to cycle through the desired routing modes. The following choices are available: * Ignore Obstacles – select to ignore existing objects (routing can be freely placed). Violations are highlighted. * Walkaround Obstacles – select to have the Interactive Router route around existing tracks, pads and vias. If this mode cannot walk around an obstacle without causing a violation, an indicator appears to show that the route is blocked. * Push Obstacles – select to have the Interactive Router move existing tracks out of the way. This mode can also push vias to make way for the new routing. If this mode cannot push an obstacle without causing a violation, an indicator appears to show that the route is blocked. * HugNPush Obstacles – select to have the Interactive Router hug existing tracks, pads, and vias as closely as possible and where necessary, push obstacles to continue the route. If this mode cannot hug or push an obstacle without causing a violation, an indicator appears to show that the route is blocked. * Stop At First Obstacle – in this mode, the routing engine will stop at the first obstacle that gets in the way. * AutoRoute Current Layer – select to enable auto-routing only on the current layer. * AutoRoute MultiLayer – select to enable auto-routing on multiple layers. * Corner Style – select the desired routing corner style or use the Shift+Spacebar shortcut to cycle through the corner styles. * Restrict to 90/45 – enable to restrict the routing to 90 degrees and 45 degrees only. * Automatically Remove Loops – enable to automatically remove any redundant loops that are created during manual routing. This allows you to re-route a connection without having to manually remove redundant tracks. However, there are times when you need to route nets, such as power nets and when you need loops; you can toggle this option for a selected net by using the Shift+D shortcut to override this global setting for the same net. * Remove Loops With Vias – enable to automatically remove loops with vias. Disable this option for vias to remain during loop removal. * Remove Net Antennas – enable this option to remove any track or arc end that is not connected to any other primitive and forms an antenna. * Display Clearance Boundaries – enable this option to have the no-go clearance area defined by the existing objects and the applicable clearance rule displayed as shaded polygons within a local viewing circle. This option is not available in the Ignore Obstacles routing mode. * Reduce Clearance Display Area – enable this option to use a smaller clearance boundary. This option is available only when the Display Clearance Boundaries option is enabled. Rules Copy Link Copied Constraints defined by the applicable design rules will be listed under the Rules section of the Properties panel. * Via Constraint – click to open the Edit PCB Rule dialog in which you can define PCB rules for a via. * Differential Pair Constraint – click to open the Edit PCB Rule dialog in which you can define PCB rules for the differential pair. MATCHING THE LENGTHS OF DIFFERENTIAL PAIRS COPY LINK COPIED Differential pairs are often used in high-speed designs due to their inherent immunity to noise, and the fact that they simplify the challenge of providing a high-quality return path for the signals. However, like single-sided signals, their lengths must be managed to ensure the signal timing requirements are met. During differential pair routing, the length of each of the two nets in the pair is displayed on the Status bar, and also in the Heads-up display (Shift+H to toggle on/off). The length values displayed in the PCB panel are updated when you drop out of routing a pair. The current route length of each net in the pair is displayed in the Heads-up display (Shift+H to toggle on/off). The PCB panel is used to examine objects in the design space and includes modes for examining Nets, Differential Pairs and xSignals, amongst others. The panel includes details about each net/differential pair/xSignal, including the signal length and the delay - right-click in each section of the panel to display a context menu of commands for that section. For example, when the panel is in Nets mode, right-click in the Nets section of the panel and use the Columns sub-menu to enable or disable details such as Signal Length and Delay. When there are Length and/or Matched Length rules applied, the Signal Length column for nets that fail the design rule will highlight in orange (less than target length) or red (exceeds target length). Use the PCB panel to monitor the progress of length matching. ► Learn more about the PCB panel MATCHED LENGTH AND LENGTH DESIGN RULES Length and Matched Length design rules can be defined to ensure that the flight time and skew timing requirements are met. As well as being used during a design rule check (DRC), these rules are also used during interactive length tuning. The Matched Length design rule detects the longest pair targeted by the rule scope and uses the Average Length value of that pair as the reference to compare the other targeted pairs, requiring their lengths to be within + or - the Tolerance defined in the rule. The Average Length value is shown in the Differential Pairs Editor mode of the PCB panel. Length and Matched Length design rules can be scoped by Length Units or Delay Units. If the rules are scoped by delay, the Length Tuning Gauge will also display using delay. WITHIN-PAIR AND BETWEEN PAIR DESIGN RULES It is likely that you will have matched length requirements between the pairs, and also within each pair. To manage this, create suitable Matched Length design rules: 1. Define a Matched Length design rule that applies across (between) the pairs (achieved by selecting the Group Matched Lengths option). Scope the rule to apply to the required pairs (or xSignals), as shown in the image below. Create a matched length rule to define the length requirements between the differential pairs, or in this example, between the xSignals. 2. Define another Matched Length design rule that applies within the pair (achieved by selecting the Within Differential Pair Length option). This rule ensures the lengths of the two nets within each pair are within tolerance. Note that this rule must be scoped using a Where the Object Matches setting that targets differential pairs, as shown below. This rule should have a higher priority than the between-pairs rule. Create a second matched length rule to define the length requirements within the pairs. LENGTH TUNING A DIFFERENTIAL PAIR Main article: Length Tuning The length of pairs, and the nets within each pair, are tuned using the two length tuning commands. To tune the lengths: 1. The length of a differential pair can be accurately tuned using the Interactive Diff Pair Length Tuning command on the Route menu. During length tuning, you can use shortcuts to interactively adjust the accordion style and size, or press Tab to open the Properties panel in Differential Pair Length Tuning mode. In the panel, the target length is defined: * From the applicable Length and/or Matched Length design rules * From a user-selected routed diff pair * Manually, enter the value in the Target Length field 2. To tune a net within a pair, use the Interactive Length Tuning command on the Route menu. If you attempt to tune the longer net in the pair, the message Target Length Shorter than Old Length will appear. Tune the lengths of differential pairs first, then tune the length of the shorter net within a pair. If you do not get tuning accordions appearing during length tuning it is most likely that the current settings are not suitable for the space available to place an accordion. If this occurs during tuning, press Tab to open the Properties panel in Differential Pair Length Tuning mode and check that the settings in the Pattern section of the panel are sensible. For example: * The Max Amplitude value may be too large * When the Style is Mitered Arcs, the Miter percentage may be too great to form an arc for the current Amplitude and Space A good option is to set the Style to Mitered Lines, click the Pause button to resume length tuning then use the 1 & 2 shortcuts to interactively adjust the Miter, the 3 & 4 shortcuts to adjust the Space (pitch), and the , and & . shortcuts to adjust the Amplitude. When the tuning is looking how you want it, press the Spacebar to cycle to your preferred Style. Refer to the Length Tuning page to learn more, where you will find a detailed list of the shortcuts that can be used to change the accordion style, amplitude and pitch. The page also explains how the software decides which rule settings to obey when there are overlapping settings in the Length and Matched Length design rules. DEMONSTRATION OF LENGTH TUNING AND MODIFYING THE ACCORDIONS The video shows pair lengths being tuned against other pairs (based on xSignal lengths) by adding length tuning accordions. The shorter member of each pair is then length-tuned against the longer member of that pair. The video then shows how pairs can be moved and reshaped interactively, how a tuning accordion can be deleted, and how a new accordion can be shaped during placement using shortcuts. The length of a differential pair can be tuned by adding length tuning accordions. The accordion is an object that can be moved, reshaped and deleted. SEE ALSO COPY LINK COPIED * Interactive Routing * Length Tuning * Controlled Impedance Routing * Modifying Existing Routes * Glossing & Retracing of Existing Routes * High Speed Design in Altium Designer * Defining High Speed Signal Paths with xSignals ## Thanks to Robert Feranec of the FEDEVEL Academy (www.fedevel.com) for the use of the iMX6 Rex development board in images on this page (http://www.imx6rex.com/). * English * Русский * 日本語 * 中文(简体) * 한국어 * English If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback. Printer-friendly version Note The features available depend on your Altium product access level. Compare features included in the various levels of Altium Designer Software Subscription and functionality delivered through applications provided by the Altium 365 platform. If you don’t see a discussed feature in your software, contact Altium Sales to find out more. CONTENT * Transferring the Differential Pairs to the PCB Editor from Schematics * Viewing and Managing Differential Pairs on the PCB * Defining a Differential Pair Class * Managing Differential Pairs * Creating Differential Pairs from Design Nets * Using xSignals with Differential Pairs * Applicable Design Rules * Setting the Scope of the Design Rules * Using the Differential Pair Rule Wizard to Define the Rules * Routing a Differential Pair * Configuring the Interactive Differential Pair Router * Improving the Quality of the Routing * Interactively Modifying the Differential Pair Routing * Interactive Via Dragging * Differential Pair Dragging * Displaying the Available Clearance * The Quick Differential Pair Routing Tool * Matching the Lengths of Differential Pairs * Matched Length and Length Design Rules * Within-Pair and Between Pair Design Rules * Length Tuning a Differential Pair * Demonstration of Length Tuning and Modifying the Accordions * See Also WAS THIS PAGE HELPFUL? 1 HomeDocumentation PCB Design * Altium Designer * CircuitStudio * CircuitMaker * Altium 365 Viewer How to Buy * Store * Regional Resellers * Special Offers Solutions * For Enterprise * For Parts and Data * Altium 365 Contact Us * Sales: * 1-800-544-4186 * 1-858-864-1798 * sales.na@altium.com * Student Enquires: * students@altium.com Product Extension * All Extensions * Power Analyzer Company * About Altium * Our Customers * Investor News * Publications & Reports * Corporate Governance * Investor Center * Trust Center * Hire an Expert * Partners & Alliances * Partner Job Openings * Newsroom * Affiliate Program * Launchpad Startup Program Resources & Support * Free Trials * Status * Downloads * All Resources * Support Center * Bug Crunch * Forum * Documentation * Ideas * Education * Professional Training / Certification * Secondary / High School * University / College * Webinars * Beta Program PCB Design Guides * Component Creation and Management * High-Speed PCB Design * PCB Layout * PCB Routing * Schematic Capture and Schematic Entry * PCB Design Collaboration * ECAD/MCAD PCB Design * Multi-Board PCB Design Careers * Career at Altium English * Русский * 日本語 * 中文(简体) * 한국어 * English * Copyrights & Trademark * Privacy policy * Cookie policy * Do Not Sell/Share My Personal Information * Terms of Service * End-User License Agreement * Legal Notice © 2024 Altium Limited REPORT DOCUMENT ISSUE You are reporting an issue with the following selected text and/or image within the active document: ISSUE For further assistance, please connect to our Support Center Cancel YOUR PRIVACY OPTIONS We use cookies and other tracking technologies to enhance user experience, analyze website performance, and monitor usage of our website. You can customize your preferences by using the options below. If you would like to opt-out of the sale or sharing of your personal information for targeted advertising, you can do so by disabling “Targeting Related Cookies.” For more information about our use of cookies and other tracking technologies, please review our Cookie PolicyPrivacy policy * Strictly Necessary Cookies STRICTLY NECESSARY COOKIES * Functional Cookies FUNCTIONAL COOKIES * Analytical Cookies ANALYTICAL COOKIES * Targeting Cookies TARGETING COOKIES Confirm My Choice Accept All Cookies We use cookies and other tracking technologies to enhance user experience, analyze website performance, and monitor usage of our website. You can customize your preferences by using the options below. If you would like to opt-out of the sale or sharing of your personal information for targeted advertising, you can do so by disabling “Targeting Cookies.” For more information about our use of cookies and other tracking technologies, please review our Cookie Policy Privacy policy Allow All MANAGE CONSENT PREFERENCES STRICTLY NECESSARY COOKIES Always Active These are cookies which are needed to provide services and features you have specifically requested. We may use cookies and tracking technologies required to prevent fraudulent activity, improve security, for system administration and/or allow you to remain logged in to the Altium Community portal at https://live.altium.com. View Vendor Details FUNCTIONAL COOKIES Functional Cookies These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly. View Vendor Details ANALYTICAL COOKIES Analytical Cookies These are analytics/statistical cookies that help to improve the performance of our Websites, and to provide a better user experience. Via Analytics Cookies, we obtain information about the quality and/or effectiveness of our services. It helps us to understand how our visitors use our Websites, which enables us to improve how we present our content to you. View Vendor Details TARGETING COOKIES Targeting Cookies These are cookies to deliver content, including marketing, relevant to your interests based upon your use of our Websites and based on how you interact with our marketing content. View Vendor Details Back Button VENDORS LIST Search Icon Filter Icon Clear checkbox label label Apply Cancel Consent Leg.Interest checkbox label label checkbox label label checkbox label label Confirm My Choices