Hi there,
I’m currently facing an issue involving hierarchical sheets, multiple instantiations, and bus connections. I have a single schematic file, Ethernet.kicad_sch, which I’ve instantiated three times in my top-level schematic: once for the Ethernet interface, and twice for two EtherCAT ports (P0 and P1).
Of course I can’t use the same bus label twice or 3 time within one hierarchical sheet so I tried to define bus aliases for ETH, ECAT_P0, and ECAT_P1.
While this reduces the number of DRC warnings at first glance, it ends up connecting all instances to the same bus
One potential solution would be to split each instance into its own schematic file. However, I’m concerned that this approach might conflict with the multi-channel functionality I plan to use later during PCB layout.
After playing around with a test project, I found a way to manage or work around the problem: on the hierarchical sheet that needs the ETH bus multiple times, I added an individual prefix to the bus label. At least in my test project, this seems to work.
A few years ago I made an example with buses routed through a hierarchy. From what I remember, you have to give the buses a name in the top level to keep them separated, but buses can be renamed in sub levels.
But I don’t really use buses of this complexity in my own projects, and I forgot further details. You can find my test project in the link to below.