5
\$\begingroup\$

I have a sheet symbol representing a schematic that includes a differential pair (USB_N, USB_P). In repeating the sheet symbol with the syntax REPEAT(U,1,10) syntax (and REPEAT(USB_N)) for the sheet entry), this creates nets USB_N1 through USB_N10.

However, Altium requires that differential pair net names end with _P and _N in order to recognize them. With the numeric suffix, this breaks that convention.

Is there a method to utilize the sheet symbol repeat function and preserve differential pair recognition? Can differential pairs be used in combination with repeating sheet symbols?

\$\endgroup\$

2 Answers 2

4
\$\begingroup\$

What I have done to get differential pairs to work as repeated elements in repeated sheet symbols is the following:

  1. In project options, disable "Allow ports to name nets".
  2. Attach differential pair directives to the nets at the origin (the device being repeated).
  3. Attach net labels to the nets at the origin with appropriate _P and _N names (e.g. USB_N).
  4. Create ports and connect the nets to them. The port names need only be something that will make sense to you on the sheet symbol (e.g. USB-, USB+). Note that you shouldn't combine these into a wire harness, as they are not supported as a repeated element in a sheet symbol. (A non-repeating wire harness is supported in a repeated sheet symbol, where it is desirable to have all child objects connected to the same harness. But a repeated wire harness is not supported. This is as of Altium Designer v21.)
  5. At the parent level, attach a wire to the repeated port. Attach a net label to the wire which is the net name that will receive an index number suffix (e.g. USB_N which will become USB_N1, USB_N2, USB_N3, etc.).
  6. Use a bus to combine the indexed nets. Attach a net label to the bus with the appropriate naming convention (e.g. USB_N[1..10]).
  7. Break individual wires out as needed elsewhere on the parent sheet, with a net label that corresponds to the single wire needed at that location (e.g. USB_N1).

This method results in the differential pair being connected and handled through the repeated element, but will cause a compiler warning like:

[Warning] Document.SchDoc Compiler Nets Element[2]: USB_N1 has multiple names (Net Label USB_N, Net Label USB_N1, Net Label USB_N1 (Inferred))

Since you do not need differential pair directives on every segment of a connected net, the fact that the segments have different net names does not appear to matter. Either ignore this specific compiler warning, or change it to not be reported in project options ("Violations associated with nets" > Nets with multiple names").

\$\endgroup\$
2
\$\begingroup\$

I would just like to add to JYelton's reccomendation.

I do not recommend not having the error reported as it may cause issues elsewhere in a complex circuit.

Instead, you can suppress the specific errors individually by using the "Generic No ERC". Then with the Generic No ERC selected, I would change the style, I personally used the checkmarks but you can use any style.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.