Wishlist: "harnesses" or buses with named members

Bug #1419146 reported by Chris Pavlina on 2015-02-06
This bug affects 39 people
Affects Status Importance Assigned to Milestone
Jon Evans

Bug Description

It would be exceedingly useful if KiCad allowed buses to have named members. As far as I can tell, buses are intended to be used exclusively for numbered, sequential elements like data bits; one can "fake" named members but the support code such as hierarchy traversal will balk. The grouping functionality could be quite nice to have for named signals as well.

Example use cases include a memory bus including control signals, and in the project I'm working on right now, a differential bus which has signals "BUS0+, BUS0-" through "BUS7+, BUS7-" as well as "BUSCLK+, BUSCLK-". Grouping them into separate positive and negative buses could work, but it doesn't really fit with the usual differential design practice of keeping signals paired at all times.

(Side note - I know there's current work on differential routing; dunno if there are related plans at least to support pairs because of that.)

Altium implements this as "signal harnesses", see here: http://techdocs.altium.com/display/ADOH/Using+Signal+Harnesses

I'm not familiar with the code that implements buses, so I don't know how difficult this would be to add, though I might look into it myself later tonight...

Changed in kicad:
importance: Undecided → Wishlist
Nicholas Savenlid (nicholas-z) wrote :

crucial feature available on all other major tools out there
mentor, cadence etc

cant live without it

Nicholas Savenlid (nicholas-z) wrote :

in mentor you edit a separate bus file containing all the project´s buses and its members.

so you actually get suggestions on members when you connect to the bus, of course you need to name it ta a valid bus name existing in your file first
bus members can be arbitrary names and arrays net[0:10]
also signed bus members net[0:10]+ , net[0:10]- this will form diff-pair automatically in constraints editor.

i am up to some major head-ache now on to how to avoid this bug that will make schematics way more complex and logical

being logical is the point with schematics

Doug McKnight (doug-f) wrote :

I'm not sure if this is precisely the same issue/request but I think it would be excellent if there was a way to, elegantly, split buses for connection to hierarchical sub-sheets.

E.g. I have a 64-bit bus Analog[0..63] and I want to hook it up to a set of drivers. Each driver has its input, In[0..7] which it presents as a hierarchical pin in the usual way.
So, the connections would be:

Analog[0..7] ---> Driver_0[0..7]
Analog[8..15] ---> Driver_1[0..7]
Analog[16..23] ---> Driver_2[0..7]

Analog[56..63] ---> Driver_7[0..7]

If there's already a way to do this, I'd love to be corrected, but the only work round I have found is to draw a stack of wires, each with both names on it...

I've used another schematic tool that does this. If one rips a bus into smaller buses, with the correct number of wires (8 in this case) and connect it to an input with that number of wires, it simply does the mapping in the obvious way by incrementing the wire labels appropriately.

IMHO hierarchical schematics are essential for logic, clarity, and sanity for certain types of design. I would love it if KiCad were to strengthen its support for this kind of design.

Jon Evans (craftyjon) on 2017-11-28
Changed in kicad:
status: New → In Progress
assignee: nobody → Jon Evans (craftyjon)

@Doug, have you tried manually placing junctions at branches of your busses. You might be able to get your scenario to work if you create short branches off of the main bus using junctions (not certain if bus to bus connectors would work as well) and then use a label to select the appropriate 8 signals from the main bus on each short branch.

Hack Spider (hackspider) wrote :

This feature is "In Progress" over a year. Are there any updates since then?

I would love to see the heterogeneous bus feature in KiCAD since this is the last feature why we are currently sticking to Altium (with the high subscription fees). Anything else is solved/work around.

Best regards

Maciej Suminski (orsonmmz) wrote :

Hi Hack Spider,

The main reason why the feature is not in the master branch is that we have not started yet the 6.0 development cycle. It means that we currently focus on fixing Python and GTK3 issues that will land in 5.1 and after that we will starting adding new stuff.

Feel free to take the feature branch [1] for a test ride. Be warned that it is still considered experimental and you might not be able to open your schematics with the standard KiCad builds once you start using the new features. If you do not want to risk too much, then you may find interesting an early announcement and demo [2].

1. https://github.com/craftyjon/kicad/tree/bus_upgrades
2. https://lists.launchpad.net/kicad-developers/msg32423.html

Changed in kicad:
milestone: none → 6.0.0-rc1
Jon Evans (craftyjon) on 2019-04-01
Changed in kicad:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers