Hi, I’m using 5.99 DRC rules to enforce spacing between various voltage domains in a high voltage design. In the following example, all these nets are in a high voltage domain and need to belong to the same net class:
So, I labeled every net on the page AHOT_1, AHOT_2, AHOT_3, etc and than assigned them to a net class. It seems a bit tedious, so wondering if this is the best way to do this?
One advantage to this method though is once you label all the nets AHOT*, then selecting them and applying a net class is really easy.
Overall, fairly pleased with this functionality flow – just want to make sure I’m not missing something.
That is the best way to do it. Which part seems tedious to you? It seems you’ve already discovered how to use the net name filter to apply the netclass to all of them in one go. Are you saying you find it tedious to label the nets in the first place?
What i think is missing is means to assign net classes from eeschema. Presently the workflow is:
assign a label to key nets
go to PCBnew and assign class to labels.
This however means every node needs to be labelled for this to work effectively (tedious, cluttering and defocuses the significance of a label) as there is no easy way to determine net-x-y to the circuit
Some means to lasso nets/components from eeschema and apply a netclass all in one would solve this
Yes, this seemed a little tedious versus maybe selecting a large block of nets and assigning the netclass in one operation. However, this is not a huge deal, and for special nets, probably best to have them labeled anyway.
A few more questions:
Why do nets need to be labeled before they can be assigned to a netclass?
Is there any way to highlight a netclass in the layout?
In 7.0 we plan to add graphical labels for assigning netclasses, so you’ll be able to do this without also labeling the nets. In 6.0/5.99, best practice is to explicitly label any “important” nets.
They don’t actually need to be, but it unlabeled nets get a name based on the components they are connected to. If these components change (or annotation changes), it will mess up the netclass assignment.
Yes. Go to the Nets tab of the Appearance panel, then right-click the netclass in the list.
ok fair enough, individual nets can be assigned via eeschema (and selection if you are careful to select only nets) but not in some balloon type operation.
is it worth considering a UID for nets (like components) to mitigate the concern w.r.t. non-labeled nets changing and thus not being apart of a netclass
Euhm… Eeschema / File / Schematic Setup / Project / Net Classes lets you make new net classes directly into Eeschema (In KiCad-nightly V5.99).
You can also change the wire color and thickness for schematic wires according to their net class so you have direct feedback of to which netclass a net belongs. This is for example also very handy for making high current nets a bit thicker.
as above, you can right-click on a net and goto “Assign Netclass…” (in >= 5.99 only, some of us are still using 5.1.x for official work ) but you can’t lasso and just apply as doing such an operation selects more than just nets. Means to filter selection would help I guess, so would UID on nets.
Multi-voltage domains with varying creapage makes this tedious - NOTE the rules of 5.99 make such interrelation <3 so its swings and roundabouts when you compare to say… Mentor Xpedition (easier to group-apply but painful net class table)
I just tried the Assign Netclass from the popup menu in Eeschema and it does work for me. I also tried selecting multiple nets by holding the shift key while clicking on them, but that does not work. It only changes the netclass for the location where I right clicked to get to the popup menu.
I also tried to assign a net class to a net that was not labeled, but this does not work either.
I was a bit surprised by this.
I assume it is because auto-generated net names are treated differently from named nets. What if the pin from which the net name was derived is removed from the net? This may be where an UUID for nets may be useful.
Yes this is correct. We’ll be expanding this in V7 by using graphical netclass labels so you can assign netclasses to unnamed nets.
Same as in the PCB editor, you can apply to multiple nets at once using the schematic setup dialog. No, you can’t currently lasso-select only net wires and then assign netclasses on the schematic drawing canvas.
Generally you’re smarter then I am about this stuff and KiCad is doing quite well over the years I’m aware of the project, so maybe I should just trust in that.
A new object on the schematic screen that assigns the wire it touches to a netclass, the same way that a net label assigns the wire it touches to a net.
I also tried to assign a net class to a net that was not labeled, but this does not work either.
I’m also surprised by this. I understand the risks associated with assigning netclasses to unlabeled nets, and that best practice is to label nets where you care about the netclass, but I’d rather Kicad didn’t prevent me from doing this. Especially given that you can assign netclasses to unlabeled nets in pcbnew and in schematic setup.
For unlabeled nets, right clicking to assign a netclass is definitely more convenient than finding it in the schematic setup or board setup windows… maybe it’s too easy and that’s why it’s prevented? Still would prefer that kicad let me do this.
Me to, but it’s (very likely) a result from the limited resources of the KiCad project. There are many more ideas then developers to implement them, with the result that some fairly “logical” things are missing. Another one of such issues is for example the grid on which lines and schematic symbol pins are drawn and the way they have to line up. It works, and it works quite well, but it’s not ideal.
But overall things are improving at a pretty quick rate.
We went back and forth on this. The problem with allowing it is that will silently break anytime you rewire your schematic or reannotate. If you go through the schematic setup dialog, you at least get a clue that the name of the net is a fragile thing and that you should add a net label.
Graphical netclass labels are already a WIP and will be added early in V7 development.
Occasionally I can get highlight to toggle between two recently highlighted netclasses, but it is not reliable. I think I got it to happen twice, but can’t figure out how I did it. This would be super useful to visually compare the placement of components and nets in two netclasses.
“Clear Net Highlighting” seems to clear the net highlighting memory, but is useful if board is in highlight mode and you can’t get it out.