I am trying to understand how the track impedance feature is working in Pulsonix. You seem to specify the impedance in the "Track Impedance" in the High Speed section. But what is the reference for this impedance? And more importantly when you try to route on an internal layer, how is the impedance set? There could be one or two GND layer for a line. If somebody have experience with this please advise.
I usually start from the Schematic with this feature and I use Saturn PCB Toolkit to calculate the impedance required, although I could easily use the built in design calculator.
I create a netclass for the impedance controlled tracks, for example:
Then I use the Rules/High-Speed/Track Impedance to set up the rules in the schematic, using netclass names and wildcards, so:
imp_50R* imp_70R* imp_90R*
etc.
This reduces the number of rules you need to set up, whilst keeping things separate, easily changable in the design, and neat. You can also use wildcards in your normal netclass spacing rules like this, for example:
seg1.5mm* to cover both seg1.5mm_batterycharger and seg1.5mm_buzzer
I usaully create a track width style for the required impedance and use that with the Track and Via Size Limit to define the track width for these impedance controlled tracks.
At the end of the design I identify the tracks on the fabrication drawing, using either a shaded area or drawn lines, with a text call out with the required impedance and tolerance, to identify to the PCB Fabricator what is required.
I instruct the Fabricator to use thier skill here as they are going to use tools (more expensive ones like Polar) that are tuned to their processes and the materials that they use.
The rule in Pulsonix is a DRC check to make sure that you know the tracks are impedance controlled and you have 'done something about that'.
It is a nice tip with the wildcards for multible net assignments.
So in the High Speed section, you specify the imnpedances:
imp_50R* imp_70R* imp_90R*
And the program calculates these? Because my main question is how the program calculates it, I would guess it uses the same formulas as the calculators, but how does it know what reference planes it should use?
It could be that I am routing on the TOP layer and what to use a reference on the third layer.