Mux4Way16 Chip

1. Mux4Way16 Chip

An 4-way 16-bit Multiplexor chip outputs one of the given four 16-bit inputs, which is specified by selector bit.

Unlike n-bit input logic gates, n-way logic gates use the same output iteratively over the boolean operation, which means, it uses the previous output as input for the next similar boolean operation.

2. Truth Table

| a[0] | b[0] | c[0] | d[0] | sel[0] | sel[1] | out[0] | ... | a[15] | b[15] | c[15] | d[15] | sel[0] | sel[1] | out[15] |
|------|------|------|------|--------|--------|--------|-----|-------|-------|-------|-------|--------|--------|---------|
|   0  |   0  |   0  |   0  |    0   |    0   |    0   | ... |   0   |   0   |   0   |   0   |    0   |    0   |    0    |
|   1  |   0  |   0  |   0  |    0   |    0   |    1   | ... |   1   |   0   |   0   |   0   |    0   |    0   |    1    |
|   0  |   1  |   0  |   0  |    0   |    1   |    1   | ... |   0   |   1   |   0   |   0   |    0   |    1   |    1    |
|   0  |   0  |   1  |   0  |    1   |    0   |    1   | ... |   0   |   0   |   1   |   0   |    1   |    0   |    1    |
|   0  |   0  |   0  |   1  |    1   |    1   |    1   | ... |   0   |   0   |   0   |   1   |    1   |    1   |    1    |

3. Implementation (Logisim)

Representation of the Mux4Way16 Chip in the logisim software using the previous gates.

4. Implementation (HDL)

Representation of the Mux4Way16 Chip in HDL using previous gates.

CHIP Mux4Way16 {
    IN a[16], b[16], c[16], d[16], sel[2];
    OUT out[16];

    PARTS:
    Mux16(a=a, b=b, sel=sel[0], out=ab);
    Mux16(a=c, b=d, sel=sel[0], out=cd);
    Mux16(a=ab, b=cd, sel=sel[1], out=out);
}