29 lines
826 B
Plaintext
29 lines
826 B
Plaintext
|
// This file is part of www.nand2tetris.org
|
||
|
// and the book "The Elements of Computing Systems"
|
||
|
// by Nisan and Schocken, MIT Press.
|
||
|
// File name: projects/01/Mux8Way16.hdl
|
||
|
|
||
|
/**
|
||
|
* 8-way 16-bit multiplexor:
|
||
|
* out = a if sel == 000
|
||
|
* b if sel == 001
|
||
|
* etc.
|
||
|
* h if sel == 111
|
||
|
*/
|
||
|
|
||
|
CHIP Mux8Way16 {
|
||
|
IN a[16], b[16], c[16], d[16],
|
||
|
e[16], f[16], g[16], h[16],
|
||
|
sel[3];
|
||
|
OUT out[16];
|
||
|
|
||
|
PARTS:
|
||
|
// Put your code here:
|
||
|
Mux16(a=a, b=b, sel=sel[0], out=outab);
|
||
|
Mux16(a=c, b=d, sel=sel[0], out=outcd);
|
||
|
Mux16(a=e, b=f, sel=sel[0], out=outef);
|
||
|
Mux16(a=g, b=h, sel=sel[0], out=outgh);
|
||
|
Mux16(a=outab, b=outcd, sel=sel[1], out=outabcd);
|
||
|
Mux16(a=outef, b=outgh, sel=sel[1], out=outefgh);
|
||
|
Mux16(a=outabcd, b=outefgh, sel=sel[2], out=out);
|
||
|
}
|