Electronic – How to implement 8-bit 2:1 multiplexers on a PCB

digital-logicintegrated-circuitmultiplexerpcb-designttl

I need to implement a 2:1 multiplexer for 8-bit data. That is: as inputs it should take two 8-bit numbers and a Select line; and as output an 8-bit number.

I could use two 74HC(T)157s (this is a quad 2-input multiplexer), however, because of its pinout (see below), implementing an 8-bit 2:1 multiplexer would cause a mess on the PCB, and I will probably use several multiplexers in this project.

What is the common way to implement more-than-one-bit (2:1) multiplexers on a PCB? Are there readymade ICs for this (I couldn't find them) or is there a way to keep the PCB uncluttered?

Since I will be home-etching the prints I'm unfortunately rather limited to one layer. The final project should be a home-made CPU of discrete components (really).


This is the pinout of the chip I mentioned. For example, 1I0 and 1I1 are inputs for 1Y. S is the common selector.

enter image description here

Best Answer

First, presumably you've already looked at assigning channels by geometric convenience rather than number and decided that doesn't solve your problem.

A CPLD could give you a lot of pinout flexiblity, but perhaps would be "cheating" by your goals (though there were board-level mainframe CPUs that used early PALs).

On the novel front, if your delay budget is generous an (E)PROM loaded with a suitable truth table to use address lines as channel and select inputs could be a solution. Perhaps you are already using something similar to hold a table for instruction decode or even microcode.

A more off-the-shelf solution might be to use tri-state buffers on each side, with only one enabled at a time, or even at an extreme, open-collector logic gates and a pullup.