A multiplexer, or mux, is a digital device that multiplexes multiple inputs onto one output. Depending upon the value of the select inputs, a single data input is connected to the output. A symbol for a 4:1 mux:
  +------+       
--|I0    |
--|I1    |
--|I2    |          __ __      __            __
--|I3   Q|--  Q=(I0*S1*S0)+(I1*S1*S0)+(I2*S1*S0)+(I3*S1*S0)
  |      |           
--|S1    |
--|S0    |
  +------+

If a value of '00' is present on S, then I0<->Q. If the value on S is '01', then I1<->Q; S='10' => I2<->Q; S='11' => I3<->Q.

As an example, the multiplexer can be used to time share a single line (here, we are calling it Q). On one end, the transmitter multiplexes the parallel data contained on I0-I3, and on the other end the receiver uses a decoder to demultiplex the signal. S1 and S0 count through all of the possibilities (0-4) at a specific rate, which is synchronized with both the transmitter and receiver via another line. If S changes fast enough, we can effectively transmit all of the data on I0-I3 over a single line, instead of 4. Here's a simple example:

               Transmitter               Receiver

               +---------+               +----------+
 >-------------|I3  4:1  |               |   1:4    |
 >-------------|I2  MUX  |               | Decoder  |
 >-------------|I1       |               |          |
 >-------------|I0      Q|---------------|EN      Q3|-->
               |         |               |        Q2|-->
            +--|S1       |            +--|S1      Q1|-->
+---------+ |+-|S0       |            |+-|S0      Q0|-->
| Counter | || +---------+            || +----------+
|         | ||                        ||
|       Q1|-+|------------------------+|
|       Q0|--+-------------------------+
|   /\    |
+---------+       
    ||
    clk

We can also use a mux as a quick way to implement many logic functions. Suppose we have a function, F, with this truth table:

A B|F
---+--
0 0|1  <-m0
0 1|1  <-m1
1 0|0  <-m2
1 1|1  <-m3

We then connect the output for each minterm to the inputs of the multiplexer and connect A and B to the select inputs of the mux.

   ^(+Vcc)
   |
   |  +------+       
   +--|I0    |
   +--|I1    |
   |+-|I2    |
   +|-|I3   Q|--> F
    | |      |  
A >-|-|S1    |
B >-|-|S0    |
    | +------+
    |
    V(Gnd)

See also decoder.

It should be noted that multiplexers need not be digital. Analog multiplexers have many practical applications as well. Although the selection is done as for a normal multiplexer, using digital signals, the values being switched themselves are analog signals. In other words, take the example of a CD4051. It has three selection inputs, A, B and C. These are digital inputs. It also has eight data inputs, x0 to x7. These are analog -- they need not be 0 or 1, they can be any value. There is a single output, X, which is set to be one of x0 to x7 depending on the values of A, B and C. For instance, if ABC = 001, then X = X1, if ABC = 010, X = X2.

Log in or register to write something here or to contact authors.