// 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/3/a/Bit.hdl /** * 1-bit register: * If load is asserted, the register's value is set to in; * Otherwise, the register maintains its current value: * if (load(t)) out(t+1) = in(t), else out(t+1) = out(t) */ CHIP Bit { IN in, load; OUT out; PARTS: // choose new input or current stored value Mux(a=dffOut, b=in, sel=load, out=muxOut); // DFF (new): hold val DFF(in=muxOut, out=out, out=dffOut); }