Bob is an 8-bit two's complement addition, subtraction, multiplication, and
division ALU. The chip will have one 8-bit input that switches to accept both values and
place them in the appropriate registers. Bob will also have a 2 bit control inputs that
determine either multiplication between the two 8-bit inputs and a 16-bit output, division
of the two 8-bit values and a 16-bit combination consisting of the quotient and the
remainder, or addition/subtraction of the values with an 8-bit return plus a carry.
The multiplication and division will be done using a shift and add/subtract technique in order to best share resources. The subtraction will first carryout a two's complement transformation of the second input and then add the two; the addition is self-explanatory.
Bob will need one adder, an 8-bit inverter, an 8-bit shifter, and a 16-bit shifter. We will also place a PLA for the control signal interpretation, three registers (two 8-bit and one 16-bit). Finally we will have an 8-bit output that is multiplexed to output in two cycles for the divide and multiply 16-bit results.