Electronics > Projects, Designs, and Technical Stuff

[solved, I think] Altium, Differential Signals, Harnesses and Net Labeling

(1/2) > >>

aandrew:
I'm at my wit's end trying to figure out how to *efficiently* route differential signals from different schematic sheets.

Overview:
I have an FPGA connected to five digitizers. Each digitizer has a clock in, clock out, data bit out, start and end signals. Each of these signals is a differential pair. I've put the digitizer subcircuit on its own schematic page, and have the toplevel schematic sheet with a single digitizer sheet with REPEAT(DIG,0,4) representing the five copies of this circuit. The sheet entries for those signals are straightforward enough: each is named and placed in a REPEAT() command, e.g. REPEAT(CLKIN_P), REPEAT(CLKOUT_P).

These sheet entries are then brought out to wires with net labels, and those wires are gathered into buses and fed into a harness.  The other end of the harness breaks them out into buses and those buses (not individual nets) are fed into the FPGA sheet.

Problem #1 is that the digitizer-side of the harness has six harness entries, one for each PAIR (not individual signal): e.g. one entry is "CLKO_P[0..4], CLKO_N[0..4]", another is "CLKI_P[0..4], CLKI_N[0..4]" etc., etc., but on the FPGA side, I'm trying to break that out to make use of sheet entry buses, so one harness entry on that side is "CLKO_P[0..4]" and "CLKO_N[0..4]". Altium complains of this, and I can get around it by breaking the digitizer-side harness entries into 12 instead of 6.

Problem #2 is the naming of the nets. Altium wants to see FOO_P and FOO_N for differential pairs, but you can't use repeating entries and get those. You get FOO_P0, FOO_P1 etc. I don't see a way to name them that way using [#..#] and I really don't want to use net ties to rename the nets. Altium's not a hobbyist tool; I must just not know the correct way to do this, but the online documentation from Altium is garbage when it comes to anything beyond the simple stuff.

Pictures always help:

The toplevel schematic page, showing me trying to connect 5 digitizer sheets to an FPGA sheet through a harness. I know I'm naming the buses wrong on the FPGA sheet entry, I'm trying to make Altium name things differently but it's not working:


The digitizer schematic page, repeated 5 times in the toplevel:


And the FPGA page, where I'm trying to rename the nets from the bus format FOO_P[0..4] to something which makes more sense here, which would be FOO_P0, FOO_N0, FOO_P1, etc.:


I've clearly got myself painted into a corner here. Can anyone help me untangle myself?

free_electron:
Try this

use   CLKO_P[4..0]   counting down !
and you need to keep the positive and negatives in separate buses.


aandrew:

--- Quote from: free_electron on August 27, 2018, 07:13:40 pm ---use   CLKO_P[4..0]   counting down !
--- End quote ---

I'm not sure what this is going to achieve; the bus is defined correctly using CLKO_P[0..4] and CLKO_P[4..0]; but if I try to get the "iterator" in the middle of the net name, the bus name ends at the iterator.  e.g. CLKO[4..0]_P will show the bus as "CLKO[4..0]" (no _P).


--- Quote ---and you need to keep the positive and negatives in separate buses.

--- End quote ---

This definitely cleaned up the harness errors, thank you! Now if I can figure out a way to rename a bunch of nets without calling each individual one out in a net tie... this would be ideal.

jbb:

--- Quote from: aandrew on August 28, 2018, 02:07:19 am ---...Now if I can figure out a way to rename a bunch of nets without calling each individual one out in a net tie... this would be ideal.

--- End quote ---

Find and replace :-)

Also, if you want a plain rename, I suggest you review the changelist in the ECO before pressing 'Execute' (or whatever it is) to make sure you've done it right.

Stragglers can be easier tp clean up by filtering, e.g. OnCopper and Not InNet('*')

T3sl4co1l:
Also, something about REPEAT not working at zero, you have to start at 1 for some reason?

Tim

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod