I have reduced this problem to the simple circuit in the attachment.
I have three components attached to the ground symbol which is associated with a PWR flag. For various reasons I need to remote one of the pins and use labels as shown. When I do this the “GND” label vanishes in the resulting PCB and if forces the identity as the “PP15” label. I don’t think one would want this. it results in disassociation with the ground plane.
temp.zip (18.3 KB)
Assigning multiple labels to a single net results in kicad selecting one of them. A priority list is used to make this decission:
- The lowest priority are local labels.
- Next priority is a hierarchical pin/label.
- The highest priority are all global labels. This includes both power symbols and global labels (power symbols are global labels).
If you have multiple labels of the same priority then KiCad will choose one of them. I am not aware that the behaviour is documented in this case so for us users it might as well be random.
So what does it mean for you? Well you might want to rethink your use of global labels for connecting stuff that should be connected directly to ground.
I have not seen the rest of your circuit but it seems quite dodgy that you connect a thing that seems to be a GPIO (assumed from the name of the label) directly to ground and that not directly at the pin but somewhere else. (remember a GPIO can be a output pin, you are one programming error away from trouble.)
I assume you use global labels because you are using multiple pages. I am generally of the opinion that global labels are not the best choice to go about these things as they require knowledge of the full design at every decision (there is no isolation of knowledge domains). So it might be better to switch to hierarchical pins (and therefore true hierarchical design). See Hierarchical or flat schematic design, what is best for me? (How to deal with multi page schematics?)
From your Schematic snippet I find it difficult to deduce what your intentions are.
Power symbols are just glorified global labels with a bit of extra eye candy.
You can mix power symbols with global symbols of the same name.
For example, adding a few global GND labels simply short pins 2, 4, 6 and 8 of the LM6321.
Here is the Pcb (after update with [F8] together with "Pcbnew / Inspect / List Nets"
An important part of a good schematic is to be easily human readable. This helps with preventing errors in schematics. So think carefully if you want to do something like this.
I apologize for the silly circuit-it is not a real circuit–I just took a random component with a few pins on it so show my point-the functionality of the circuit is not pertinent to the problem. I did not want to over complicate a simple problem with a cluttered example.
I am attaching a jpg of the real circuit on this email. What I was trying to accomplish, was to “remote” some “busy” structures away from the 100 pins of an IC as they did not fit well localized near the pins. I do this a lot. The reason I used global labels is sometimes the associated components scope over more than one page.
I have since converted the labels to local since they happen to be on one page, and now the “GND” object is at the top of the priority list as expected. I am a bit surprised that this works for local, but not global labels. I was assuming that the system power labels take precedence.
I have only been using KiCad for around a month but it is about time I review the hierarchical page construct–thanks Rene for your additional documentation on this. My philosophy (possibly because I come from the paper and pencil era) is to get as much as possible on one page. I also like to “draw out” the connections as much as possible. I guess I subconsciously visualize the flowing of current as I debug a circuit and like all the connections on one page is possible. (For this reason I don’t like the box shaped modern components either!)
Parting question—is there a feature to list all the nets and their components? This info is in the netlist but not well formatted-
Netlist files can be generated in multiple formats via:
"Eeschema / Tools / Generate Netlist File …"
Maybe one of the other formats is more human readable. I also see an [Add Plugin …] button, but I have never used that. There may be some scripts somewhere for nice formatting / grouping.
Hierarchical sheets are nice, but take some time to get used to, and experience to use effectively. When experimenting with some new features it’s often best to start with a simple design, instead of 100+ pin components…
(Or experiment with a copy of an already existing project)
Pasting a picture directly in a post makes it easier to view:
Using all those labels on GND and +3.3V does not clarify the schematic to me. It just seems an extra layer of indirection. And that of course results in your question of viewing the netlist.
A big square IC never gives much usefull info on a schematic.
Splitting it into functional units in which signals flow from left to right on the schematic give a much better overview of the intention. Then you can also use one of the units for all the Vcc and GND connections. Have a look at a simple TTL IC such as 7400 for an example.
Power supply, decoupling caps and Power connections I usually gather on a separate sheet in the hierarchy.
An alternative method of making clear where connections go is to wire them explicitly such as the connectors in a project I’m working on at the moment:
Thanks Paul. I tend to vacillate between the “big square” and logically partitioned methods of drawing processors. The latter works well for the reasons that you show. Sometimes from a bookkeeping perspective it is easier for me to deal with what the IC really looks like on the PCB layout especially when both the layout and schematic are up on separate screens.
At any rate with the help you guys provided over the last month I now have 6 boards laid out and ready for the cutter after I review then one last time.
I moved to KiCad from another product so that I can order boards already populated. I think KiCad is a pretty remarkable product as I learn all that it does (and I sometimes think–wow! that must have been difficult to code!). I am sticking with it and have promoted it for the two labs that I work with as our standard.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.