ALU: k-bit
What about conditional branch?
Branch if 2 values are either equal or not equal
Easiest way to test if a == b: subtract, test result:
OR all result bits together and complement
One more refinement: combine Binvert and CarryIn control values into Bnegate:
subtract: both are 1
add or logical ops: both are 0
Bnegate (1 bit) and Operation (2 bits) are 3-bit control for MUX:
control function
000 AND
001 OR
010 ADD
110 SUB
111 SLT