Mux.hdl

// 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/Mux.hdl

/** 
 * Multiplexor:
 * out = a if sel == 0
 *       b otherwise
 */

CHIP Mux {
        IN a, b, sel;
        OUT out;

PARTS:
        Not(in=sel,out=notsel);
        And(a=a,b=notsel,out=x);
        And(a=b,b=sel,out=y);
        Or(a=x,b=y,out=out);
}