x y speedX speedY color # Re-route inputs 1 0 0 0 GA 0 1 0 0 GA 1 1 0 0 GA # 2 duplicators create copies of 2 bits -1 0 0 0 PU 2 0 0 0 PU # What happens to the bottom copy (XOR) -1 2 0 0 GA 2 3 0 0 GA 3 2 0 0 GA 4 3 0 0 GA 3 -1 0 0 GA 4 -2 0 0 GA -3 -1 0 0 GA -4 -2 0 0 GA -4 3 0 0 !xor.qua # Outputs to 2, 15 # What happens to the top copy (AND) -1 -3 0 0 GA 2 -4 0 0 GA -9 -3 0 0 GA -10 -4 0 0 GA -9 -2 0 0 CY -9 -1 0 0 CY -10 15 0 0 !and.qua # Outputs to -10, 18 -10 22 0 0 GA -5 22 0 0 PU -5 21 0 0 RE # Delay the top copy (so lines up with the bottom one) -5 26 0 0 GA 1 26 0 0 GA 1 22 0 0 GA -2 22 0 0 GA -2 23 0 0 CY -2 24 0 0 CY -2 26 0 0 CY # A HALF-ADDER B = (A AND B, A XOR B) # Inputs: 0, 0 # 1, 0 # Outputs: -2, 26 # -1, 26 # Time: 90