New symbols for 7400 library


I have been working on new symbols for the 7400 logic library (74xx.lib). One major goal is to remove hidden VCC/GND pins, which are now considered “old hat”. Additionally, the current symbols lack consistency and most are not conformant to latest library conventions (KLC 2.0.4)

Therefore I have extracted data from the current lib, and regenerated the symbols using a script. Some of the existing symbols already have visible power pins, so I have not included those in the new library, which for now I will refer to as “74xx_new.lib”

I have created “contact sheets” for the existing and new libraries. Some notes

  1. this is work in progress, so there are several symbols still to be tidied up.
  2. if all units in the component are interchangeable then only the first unit is shown
  3. the KiCad output to PDF does not show hidden pins
  4. not shown are De Morgan equivalents, I have not implemented these in 74xx_new

Hopefully this shows the general direction - at this stage it is a proposal and nothing is set in stone. It’s important to note that the new lib is not backward compatible with the existing lib. There are too many changes so I felt a “clean sweep” is the only practical way forward.

There is one major restriction placed by KiCad : all units must have the name and reference in the same position. In some cases, this causes the text to overlap the symbol, which is not ideal.

Existing 74xx.lib (github latest)
7400_old.pdf (390.9 KB)

Draft 74xx_new.lib
7400_new.pdf (544.5 KB)
74xx_new.lib (109.6 KB)

CD4051 power pins not available in schematic symbol

IMHO these “revolutionary changes” should wait for new schematic library file format, because it will introduce new mechanisms: better units swapping and pin swapping.


I did think of that. The new KiCad schematic features won’t be available until 2018+, so that is a while to wait. In the meantime, unit swapping would improve the useful of a new library, but doesn’t prevent the current library being improved.

Obviously, reworking the libraries for the new format might take a lot of effort. Of course, the legacy libraries will still be supported and likely in use for several years yet.


And one more thing. If U really have a need 74xx/74gxx library rework, made a basic gates smaller. :pray:


Yes, that has been suggested, seems like a good idea. The script has a template for each type of gate, so it is quite simple to change.


Agreed, I suspect academic reasons


I always said that default KiCad basic symbols are huge. And you can still find such monsters.

IMO. This is a perfect example of reasonable basic gate and flip-flops size:

Compare with default KiCad NAND in right up corner.


The Kicad symbols are sized to allow up to 4 inputs with the same shape. Making the size smaller for 2-input gates is easy. but then do we have different shapes for 3 and 4 input gates? The current shapes are also standardised to allow easy swapping between the standard gate and the De Morgan equivalent.

A compromise might be a smaller gate that can be used for 2 or 3 inputs, and use the larger one for >=4 inputs. Then we only need 6 symbols instead of 9.


A bar on the input side and keep the AND symbol the same size looks better


That works nicely for AND, but what about OR gates?


I have to agree with @bobc here.
We need to remove the invisible power pins stuff as early as possible. (It creates more problems than it solves.)
Yes the new format will make it even better but i think this approach is a step in the right direction.

Of course even if the symbol update is finished now it will not be rolled out until kicad 4.0.7 and if we don’t finish before this release it will not be added until 4.0.8 (or 5.x if no further 4.0 release is made after 4.0.7)


Same idea

By academic, I meant that these oversized symbols with hidden power pins might have been more intended for lecture illustration and text books rather than as real schematics


Thanks @bobc for your voluntary efforts on this library. Looks good.

These “revolutionary changes”, as you put it, don’t seem to change much at all other than eliminate the troublesome implicit connections. I don’t think there is any reason to wait, if the new library format allows additional features to be implemented then it can be revisited
if and when that ever happens.

Use an arc in place of the “bar”, 3 sizes of arc/bar for 2,3 and 4 inputs, but keep the symbol body the same size. Beyond 4 inputs, I’ve often seen multiple arcs used or one arc extended with straight lines as @davidsrsb suggested.

I do think it is rather ironic that the main reason for a separate power unit is to lessen “clutter” on the schematic and yet the power unit itself it so much larger than other units.


The main reason for separate power unit is to remove hidden pins, the hidden pins were designed to reduce clutter. Removing the hidden pins puts the clutter back, I can’t see a good way round that.

I could reduce the size of the power unit if I break some KLC rules

Because it was quick to do, I reduced size for 2/3 input AND/OR gates.

Smaller gates : test.pdf (544.3 KB)


I was always taught to put power units on a dedicated page, so not in the way of the general schematic


That’s true, but I meant the reason for having power units as opposed to the following example. This would maintain interchangeability, the power pins would move but that is fairly easy to deal with. Those opposed to this usually cite “clutter” as the reason.

While this is my preference, in the end anything at all is better than having hidden power pins.


I’m about testing the unit-interchangeable functions. So assumed we have an IC with two NAND and two NOR gates. Swapping the NANDs among each other and the NORs among each other is allowed. If the check “units are not interchangable” is off, nothing prevents me from swapping a NAND with a NOR, right ?


If you select units are not interchangeable you loose the unit interchange function for that symbol. (at least in the 4.0.2 stable release)
This is a small price to pay to get rid of the hidden power pins nonsense.


Sorry, but that does not answer my question.


Sorry i seem to have understood it the wrong. (need more coffee.)

Yes if you have different gates in one part you need to select all units are not interchangeable otherwise kicad will assume it can interchange all units.

Sadly in the current format there is no way to tell kicad that gates 1 and 2 are interchangeable and gates 3 and 4 are interchangeable but not 2 and 3.
Hopefully the new library format will support this usecase. (But we will need to wait a bit to get this new format.)