// 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/1/DMux4Way.hdl /** * 4-way demultiplexor: * [a, b, c, d] = [in, 0, 0, 0] if sel = 00 * [0, in, 0, 0] if sel = 01 * [0, 0, in, 0] if sel = 10 * [0, 0, 0, in] if sel = 11 */ CHIP DMux4Way { IN in, sel[2]; OUT a, b, c, d; PARTS: // sel[1] split in to two groups DMux(in=in, sel=sel[1], a=lowGroup, b=highGroup); // sel[0] split each group to out DMux(in=lowGroup, sel=sel[0], a=a, b=b); DMux(in=highGroup, sel=sel[0], a=c, b=d); }