Our multiplier takes two eight-bit two's complement values and outputs a sixteen-bit two's complement value. In order to do so, we add or subtract the multiplicand from the product, depending on the control bit values, and shift. Further detail follows.
The product register consists of seventeen master-slave latches: p15-px. Only the signals p15-p0 are outputted. p0 and px are used by the PLA to dictate control signals.
In the first step, B is loaded onto p7-p0, and the bits p15-p8 and px are all set to 0. At that point, the A operand is loaded into the 8 bit multiplicand register. The multiplier then cycles for 8 times through these steps:
(When shifting right, the value of p15 does not change.)
After 8 cycles, the process is complete, and the product is in the product registers.