-
Notifications
You must be signed in to change notification settings - Fork 1
/
DMux8Way.hdl
32 lines (27 loc) · 936 Bytes
/
DMux8Way.hdl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 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/DMux8Way.hdl
/**
* 8-way demultiplexor:
* {a, b, c, d, e, f, g, h} = {in, 0, 0, 0, 0, 0, 0, 0} if sel == 000
* {0, in, 0, 0, 0, 0, 0, 0} if sel == 001
* etc.
* {0, 0, 0, 0, 0, 0, 0, in} if sel == 111
*/
CHIP DMux8Way {
IN in, sel[3];
OUT a, b, c, d, e, f, g, h;
PARTS:
DMux4Way(in=in,sel[0]=sel[0],sel[1]=sel[1],a=w1,b=w2,c=w3,d=w4);
Not(in=sel[2],out=nsel);
And(a=nsel,b=w1,out=a);
And(a=nsel,b=w2,out=b);
And(a=nsel,b=w3,out=c);
And(a=nsel,b=w4,out=d);
DMux4Way(in=in,sel[0]=sel[0],sel[1]=sel[1],a=w5,b=w6,c=w7,d=w8);
And(a=sel[2],b=w5,out=e);
And(a=sel[2],b=w6,out=f);
And(a=sel[2],b=w7,out=g);
And(a=sel[2],b=w8,out=h);
}