I’ve run into a problem creating a complex schematic with several levels of heirarchy. Essentially the problem is that I have a wide bus in one block and want to split it to narrower busses to route to other blocks.
In my simple example I have a bus SIG[0…7] and I want to route 4 bits to each of two other blocks. As far as I can tell there is no way to do this… SIG[0…3] connect to the first read4 block but SIG[4…7] don’t connect anywhere.
EDIT:
If I run DRC I get ‘pin not connected’ for SIG[4…7]
Also the netlist doesn’t include those connections.
Interestingly, it works fine in the 5.99 nightly. I’m reluctant to switch my project over since doing real work with the nightly seems risky. I’d prefer to find a work-around for the stable release.
Hover the mouse over the sheet and right click.
Select : “Import Sheet Pins”
Note: I don’t think the V5.99 syntax works with V5.1.x; so I think you have only 2 actual net labels on your buss.
Note_2: At one point in time the sheet naming that you seem to be using caused problems in one of my designs. It may be fixed now as of a earlier/the current stable version.
A workaround that should work in 5.1.x is to fan-out your signals before entering the read4 sub-sheets. You’ll need to have 4 input pins on your read4 schematic. Not very elegant, but should pass the correct signals to the two sub-sheets.
My real design has 576 signals, which are variously grouped by 32, 96 and 192 for different processing elements. Unfortunately this would result in a rather hard-to-read schematic.
Yeah, 5.x really isn’t up to the task for your real design, unfortunately. This will be one of the features that is improved with 6.x as you have discovered with 5.99.
Both of your sheets use the same filename “read4.sch”. This means that both sheets must have the exact same content. When you change either sheet, the change is reflected in the other sheets of the same filename.
It seems to me that it would work if you renamed your filenames, and sheets to reflect them. Change the filename of sheet “sheet611C4A49” to “read_4_7” and then change the labels IN[0], to IN[3] to IN[4], IN[7]. Delete any existing pins on the sheet and then import the pins on that sheet.
ON EDIT: Both sheets must have the same content, but the Annotation can/should be different.
Thanks for the suggestion. I could do that. However, the final design has 9 sheets but a total of 56 instances of them. If I really had to do it this way I’d write some code to automatically generate all the variations of the sheets.
I think this sort of project is best done after KiCAD 6 settles.
Meanwhile, thanks for the various suggestions, but I really need to move ahead and I think unfortunately Altium is the way. At least I can translate the individual sheets using their translator, so my work drawing the shem isn’t completely wasted.