nand2tetris/projects/01/Mux8Way16.hdl
2021-12-23 19:44:21 +05:30

29 lines
798 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);
}