Hacker News new | ask | show | jobs
by exmadscientist 2186 days ago
There's actually five of them, not just one: the ’57, ’58, ’97/’157, ’98/’158, and ’99. (Plus four more if you count the open-drain-output types released only by Fairchild, but I don't as they're too annoying to source reliably.)

These guys are super useful. Unfortunately it's somewhat unobvious how best to use them, since the manufacturer literature is written in a very obtuse way. Except for the ’99, they're all just two-input multiplexers. Some have an input inverted and some have an output inverted. The ’99 adds an output enable line and a fourth input, which it XORs with the output. It's much easier to design with these things when you think of them as multiplexers!

I've made a nice chart that I use to help design with these parts, but it's on my work machine and I'm too lazy to log in on a weekend to retrieve it. I've made a lot of nice charts and references... I should figure out somewhere to publish them....

Page 5 of this old NXP PDF was the starting point I used:

https://www.avnet.com/wps/wcm/connect/onesite/8100cb9c-39d1-...

but I removed the redundant entries (most of us know how logic families work by the time this chart is useful...) and added the descriptions of what the parts really are inside.

1 comments

Yes, thanks for expanding on that. I used the ‘97 most recently so it was the part number I remembered.

The open drain ones make good level translators as well, since the output can be pulled up to a different voltage. If you find that chart, I’d love to see it!

Let's try this: https://ibb.co/HDsYHFP

(I'm not sure about that image host, but a screenshot seemed the easiest way to get it free of the corporate G Suite, with no-strings-attached absolutely guaranteed.)

There's more than just the five gates previously discussed because this was supposed to be a general list of all multifunction gates: that is, if you need to implement anything other than the obvious functions, start here first.

There were also three notes attached to the columns:

1. XNOR = 2-XOR with 1 inverted input = A XOR !B

2. A | !B = 2-OR with 1 inverted input = 2-NAND with 1 inverted input: A | !B = !(!A & B)

3. A & !B = 2-AND with 1 inverted input = 2-NOR with 1 inverted input: A & !B = !(!A | B)