Login  Register

Re: Special XOR for half-adder and full-adder

Posted by jonk on Mar 01, 2016; 7:13am
URL: http://nand2tetris-questions-and-answers-forum.52.s1.nabble.com/Special-XOR-for-half-adder-and-full-adder-tp4029600p4029601.html

Oh, cripes. I just found out how. I do this:
  CHIP XorS {
    IN a, b;
    OUT sum, ncarry;

    PARTS:
    Nand( a=a, b=b, out=p, out=ncarry );
    Nand( a=a, b=p, out=q );
    Nand( a=p, b=b, out=r );
    Nand( a=q, b=r, out=sum );
  }
  CHIP HalfAdder {
    IN a, b;
    OUT sum, carry;

    PARTS:
    XorS( a=a, b=b, sum=sum, ncarry=nc );
    Nand( a=nc, b=true, out=carry );
  }
  CHIP FullAdder {
    IN a, b, c;
    OUT sum, carry;

    PARTS:
    XorS( a=a, b=b, sum=sumab, ncarry=nc1 );
    XorS( a=sumab, b=c, sum=sum, ncarry=nc2 );
    Nand( a=nc1, b=nc2, out=carry );
  }

I just needed to read the survival guide better. Tricky!
Jon