// 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/Mux.hdl /** * Multiplexor: * if (sel = 0) out = a, else out = b */ CHIP Mux { IN a, b, sel; OUT out; PARTS: // Mux(a,b,sel) = Or(And(a, Not(sel)), And(b, sel)) Not(in=sel, out=notSel); And(a=a, b=notSel, out=aAndNotSel); And(a=b, b=sel, out=bAndSel); Or(a=aAndNotSel, b=bAndSel, out=out); }