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);
}