I have grown to dislike the multiplexor.
The
misery during my logic
unit design was only the start of my troubles.
For my 16 way 4:1 multiplexor design I forgot pullup resistors on
the output stage. Not by itself a huge error if found early
enough. Trouble is my test circuit is built using 74LS chips which
kind of pulls up floating inputs anyway and so hid the problem.
With the benefit of copy and paste I replicated the error on just
about every other multiplexor I subsequently designed. So I've had
to do a lot of bodges like this:
One of the required features of the 16 wide 4:1 mux was that if no
input was selected then it should output all zeroes. I got that
wrong, it output all ones. Trouble is that I made another error in
that my board test didn't check that particular feature and so I
discovered it quite late on having already built a dozen of the
boards. Fortunately the feature wasn't always needed so I could
use most of the boards anyway, but there's still 3 or 4 for which
I have no use.
So I added an inverter stage to sort out the 0/1 issue. Trouble is
I forgot to move the LEDs forward that extra stage so under this
condition they display all 1s even when the mux is outputting all
0s. I almost cried when I discovered this. Have to confess I spent
a bit of time wondering if this really mattered. Would anyone
actually even notice or care ? And then redid the board. Works ok
now. Finally.
But it is the most tedious board to build. It's quite big and
quite dense and not very exciting. About 2 solid days of effort.