// 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/demo/Xor.hdl /** * Exclusive-or gate: true if either a is true and b is false, or * a is false and b is true; false otherwise. * QUESTION: how can the simulator execute this program properly without * HDL implementations of the underlying Not, And, and Or chip-parts? * Answer: since the demo folder contains no Not.hdl, And.hdl and Or.hdl * files, the simulator reverts to using their built-in implementations. */ CHIP Xor { IN a, b; OUT out; PARTS: Not (in=a, out=nota); Not (in=b, out=notb); And (a=a, b=notb, out=x); And (a=nota, b=b, out=y); Or (a=x, b=y, out=out); }