// 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/Xor.hdl /** * Exclusive-or gate: * if ((a and Not(b)) or (Not(a) and b)) out = 1, else out = 0 */ CHIP Xor { IN a, b; OUT out; PARTS: // invert both inputs Not(in=a, out=notA); Not(in=b, out=notB); // a and not b path And(a=a, b=notB, out=aPath); // not a and b path And(a=notA, b=b, out=bPath); // combine both paths Or(a=aPath, b=bPath, out=out); }