diff options
| author | Yuchen Pei <me@ypei.me> | 2017-11-29 12:30:41 +0100 | 
|---|---|---|
| committer | Yuchen Pei <me@ypei.me> | 2017-11-29 12:30:41 +0100 | 
| commit | a000308104aab27c2dde9a306f1bc654b2db4806 (patch) | |
| tree | aecc628e14c1628b5714281437aba18680cdc27b /projects/demo/Xor.hdl | |
first commit
Diffstat (limited to 'projects/demo/Xor.hdl')
| -rw-r--r-- | projects/demo/Xor.hdl | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/projects/demo/Xor.hdl b/projects/demo/Xor.hdl new file mode 100644 index 0000000..db49351 --- /dev/null +++ b/projects/demo/Xor.hdl @@ -0,0 +1,25 @@ +// 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);
 +}
\ No newline at end of file  | 
