// 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 * {0, 0, in, 0, 0, 0, 0, 0} if sel == 010 {0, 0, 0, in, 0, 0, 0, 0} if sel == 011 {0, 0, 0, 0, in, 0, 0, 0} if sel == 100 {0, 0, 0, 0, 0, in, 0, 0} if sel == 101 {0, 0, 0, 0, 0, 0, in, 0} if sel == 110 * {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: // Put your code here: Not(in=sel[2], out=out1); DMux4Way(in=in, sel=sel[0..1], a=outA, b=outB, c=outC, d=outD); And(a=out1, b=outA, out=a); And(a=out1, b=outB, out=b); And(a=out1, b=outC, out=c); And(a=out1, b=outD, out=d); DMux4Way(in=in, sel=sel[0..1], a=outE, b=outF, c=outG, d=outH); And(a=sel[2], b=outE, out=e); And(a=sel[2], b=outF, out=f); And(a=sel[2], b=outG, out=g); And(a=sel[2], b=outH, out=h); }