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.