Codifiqué un multiplicador de cabina de 4 bits en Verilog. Está funcionando bien para
Multiplicand Multiplier
+ 0 to 7 0 to +7 & -1 to -7
Pero no funciona para
multiplicand Multiplier
-8 +1 to +7 & -1 to -8
Incluso no estoy recibiendo respuesta a través del algoritmo a mano ejemplo -8 X 1
A Q Q_0 Control Bits Cnt
0000 0001 0 10 >> Subtraction 4
1000
-----
1000
ASR 1100 0000 1 01 >> ADD 3
1000
-----
0100
ASR 0010 0000 0 00 >> ASR 2
ASR 0001 0000 0 00 >> ASR 1
ASR 0000 1000 0 00 >> ASR 0
PRODUCT = 0000 1000 = +8 NOT -8
¿Es cierto que Booth tiene una limitación que puede multiplicarse solo en el rango de 0 a ((2 N) -1) & & (-1 a - (2 N) -1))
Me gusta en este ejemplo
+ range >> 0 to 7 Multiplied by (0 to 7) || ( -1 to -7)
-1 to -7 Multiplied by (0 to 7) || ( -1 to -7)
y no por -8?