nand2tetris/projects/01/Mux8Way16.hdl

29 lines
729 B
VHDL

// 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
* c if sel == 010
* d if sel == 011
* e if sel == 100
* f if sel == 101
* g if sel == 110
* 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:
Mux4Way16(a=a, b=b, c=c, d=d, sel[0]=sel[0],sel[1]=sel[1], out=w);
Mux4Way16(a=e, b=f, c=g, d=h, sel[0]=sel[0],sel[1]=sel[1], out=x);
Mux16(a=w, b=x, sel=sel[2], out=out);
}