Sending bus between sheets


I’m trying to move a CPU’s address and data busses from the parent sheet (where the CPU is) to a child sheet, which has the address decoding logic. If I use individual signals, everything works, but if I connect a bus to a hierarchical pin or global label, the nets don’t connect.

I’ve seen various questions about this, but haven’t found a clear response or solution which works for me.

I made a simplified example which shows the problem. The schematic is nonsensical, it’s just to show the issue.

Here’s are the sheets. I had to squash parent and child into a single image.
I’ve put the outputs of this '74 on a bus, and connected it to the second unit of the same part via a bus; also, sent both OUT1 and the whole bus to the child sheet.

The child sheet pulls OUT0 from OB, and connects OUT1 directly. The latter connects fine, but the former does not connect at all.

I have tried:

  • Creating a local label for the bus on each sheet. I found some people saying this was necessary for the signals to connect. It doesn’t work for me.
  • Connecting the bus directly to the sub-sheet, versus using a local label in the parent sheet. This also doesn’t work.
  • Changing the label to be a common prefix for all the lines on the bus. ex. for lines A[0…15], the bus label is A. This does not work.
  • Using a global labels instead of hierarchical. I prefer not to use this approach, since I’d rather see the connections between sheets; however, this inexplicably also doesn’t work.

I’m baffled that this doesn’t appear to work at all. Is there any way to send a bus to a sheet?

I’m using KiCad 4.0.5.


The bus name needs to match the prefix of the individual labels.
You need to add the range [x…y] to the bus name

How do I carry bus signals throughout sheets?
FAQ Index Thread