Defining Differential Pairs in Your Schematics

A differential pair on the schematic can be defined using Differential Pair directives. The two nets in the pair must each be identified by a common Net Label with the suffixes _N and _P, and a directive must be attached to each.

When using the Constraint Manager functionality, note that net classes, differential pairs, differential pair classes, and rules defined using the Differential Pair directives will not be detected and transferred when updating the PCB from the schematic. Only the net classes, differential pairs, differential pair classes, and rules defined in the Constraint Manager will be transferred.

You can import rules, net classes, differential pairs, and differential pair classes from directives placed in schematics using the Import from Directives command from the right-click menu of the Physical or Electrical view of the Constraint Manager when accessed from schematics – learn more.

Custom differential pair suffixes can be defined in the Diff Pairs section on the Options tab of the Project Options dialog.

Place a directive of this type by choosing the Place » Directives » Differential Pair command from the main menus. This command is used to place a Parameter Set object onto the active document, preconfigured as a differential pair directive (Label = DIFFPAIR). Each pair of directives (one for the positive net, one for the negative) of this type will yield a single differential pair object when transferred to the PCB.

Place directives on the schematic to define differential pairs. In this example, two differential pairs named V_RX1 and V_TX1 will be generated in the PCB.
Place directives on the schematic to define differential pairs. In this example, two differential pairs named V_RX1 and V_TX1 will be generated in the PCB.

On the PCB side, each resulting differential pair object will be added to the default Differential Pair class: <All Differential Pairs>. You can rename differential pair objects on the PCB side only.

To apply directives to a net-type object, place a Parameter Set directive object so that it touches the net object as shown above. It is the presence of the design rule and/or class in that Parameter Set object that the software detects and then outputs to the PCB during design synchronization.

Learn more about the Parameter Set object

If there are a large number of pairs to be defined, an alternate approach is to also place a Blanket directive. This allows you to apply directives to multiple nets that are under the blanket (Altium Designer detects nets whose Net Label hotspot is within the blanket boundary). A single Differential Pair directive is placed to touch the edge of the blanket, as shown in the image below.

The image also shows that as well as directing that the contained nets be defined as differential pair members (via the presence of the Differential Pair directive), the directive also instructs all contained nets to become members of the Net Class RocketIO, the pairs to become members of the Differential Pair Class ROCKET_IO_LINES, and also to create a Differential Pair Routing rule. Because there is a Net Class specified in the same Differential Pair directive, in the PCB editor this rule will be scoped to target the RocketIO Net Class when you transfer the design to the PCB editor.

The automatic PCB rule creation feature does not support assigning the Differential Pair Routing rule to the created Differential Pair Class. It does support automatically assigning the nets to a Net Class though if one is included in the Differential Pair directive. If this is done a single Differential Pair Routing rule will be created in the PCB editor, targeting this Net Class. The rule can then be edited to target the Differential Pair class instead. If the Net Class is not included, individual Differential Pair Routing rules will be created for every differential pair under the blanket.

A Blanket can be used to configure multiple nets as differential pair members, create a Diff Pair Class and Net Class of these nets, and apply a Differential Pair Routing design rule to this Net Class.
A Blanket can be used to configure multiple nets as differential pair members, create a Diff Pair Class and Net Class of these nets, and apply a Differential Pair Routing design rule to this Net Class.

Refer to the Differential Pair Routing page to learn about routing a differential pair in the PCB.
Note

The features available depend on your level of Altium Designer Software Subscription.