nand2tetris/projects/01/Mux8Way16.hdl

29 lines
729 B
VHDL
Raw Permalink Normal View History

2020-05-19 12:42:52 +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
2020-05-19 20:32:46 +00:00
* c if sel == 010
* d if sel == 011
* e if sel == 100
* f if sel == 101
* g if sel == 110
2020-05-19 12:42:52 +00:00
* 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:
2020-05-19 20:32:46 +00:00
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);
}