nand2tetris/projects/01/Mux8Way16.hdl

29 lines
826 B
Plaintext
Raw Normal View History

2021-12-05 03:37:22 +00:00
// 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);
}