EEVblog Electronics Community Forum

Electronics => PCB/EDA/CAD => KiCad => Topic started by: berke on July 29, 2022, 08:16:02 am

Title: Managing equivalent units (for example for 74xx logic)
Post by: berke on July 29, 2022, 08:16:02 am
Hi all,

I have a bunch of logic gates (74xx series NAND, NOR) and I didn't pay much attention when capturing the schematic, so I have too many ICs as I'm only using one IC per gate!  I can edit the annotation and the units by hand, but is there a better, less tedious way?

(Yes, I did search the forum with terms such as "merging kicad logic"...)

I'm using KiCad 6.0.6.
Title: Re: Managing equivalent units (for example for 74xx logic)
Post by: langwadt on July 29, 2022, 10:53:29 am
wouldn't you want to do it by hand anyway?

they might not all have the same voltage, you wouldnt' want to route across the whole board or to the opposite side of a chip if swapping makes it much easier, etc.
Title: Re: Managing equivalent units (for example for 74xx logic)
Post by: berke on July 29, 2022, 11:18:53 am
wouldn't you want to do it by hand anyway?

they might not all have the same voltage, you wouldnt' want to route across the whole board or to the opposite side of a chip if swapping makes it much easier, etc.

They're all the same but valid point for routing.  That's what I ended up doing anyway.  For posterity here is the workflow :

- Generate a BOM and look at the collated components section, say you have 8 7400's
- Go over each gate
  - Press E to edit the IC number, use the first available
  - Select the unit (A,B,C then D)
  - When done move to the next unit
- There will be gaps in the IC numbering, so reannotate

Yes during layout I may have to do pin/gate/IC swapping.
Title: Re: Managing equivalent units (for example for 74xx logic)
Post by: retiredfeline on July 29, 2022, 01:02:17 pm
- There will be gaps in the IC numbering, so reannotate

There is no problem with having gaps in the numbering, but if they bother you, do as you please. I sometimes take advantage of gaps, for example, the left channel of an amplifier might have components 1xx, and the corresponding ones on the right 2xx.
Title: Re: Managing equivalent units (for example for 74xx logic)
Post by: julian1 on July 29, 2022, 11:22:53 pm
One tip. Drop all the symbols Units on a schematic, whenever a new part is added. That way you can visually see what logic is used/available for routing at any time.

It is preferable to do this anyway to ensure nothing is forgotten, and that any unused input is tied off to avoid oscillation/floating pins. I think DRC sometimes fails to check this condition.

Otherwise, maybe you can work out the high-level routing on paper first.
Title: Re: Managing equivalent units (for example for 74xx logic)
Post by: berke on July 30, 2022, 06:43:51 pm
One tip. Drop all the symbols Units on a schematic, whenever a new part is added. That way you can visually see what logic is used/available for routing at any time.

It is preferable to do this anyway to ensure nothing is forgotten, and that any unused input is tied off to avoid oscillation/floating pins. I think DRC sometimes fails to check this condition.
Good idea.  I think schematic DRC doesn't complain about unconnected pins (or maybe they are warning but there are hundreds of those and most are silly) but they get caught during the PCB DRC.

Quote
Otherwise, maybe you can work out the high-level routing on paper first.
Paper has its place, but I think some GUI code could help with this problem.  Maybe something like a "Copy IC number".  You enter copy IC number mode.  You click on a source gate.  You click on target gate.  It picks the next gate from that IC that hasn't been touched yet.  But it's a minor use case and there are more important things to fix in the GUI.

Is this the kind of thing that is easier with commercial software ?
Title: Re: Managing equivalent units (for example for 74xx logic)
Post by: julian1 on July 30, 2022, 09:27:10 pm
I think Altium has a generic/ pin remapping system for fpga parts, that can be used to ease routing. Perhaps there is a public interface whereby one could create a model of possible pin substitutions so that repeating 74 series gate logic could be optimized.

But there is also value in simplicity. And it is easy to imagine that these kinds of features would be very hard to get right/ and require a ton of user feedback. So I could see why it is not really a priority for Kicad feature development.