Smbolo
de Registro
o Bloque
Regm
Registro Multiplicando
Regr
Regs
Sumador
sumador
Control
control
Notacin
(Entradas)
Notacin
(Salidas)
M[(n-1)..0].d,
cargam, clk
R[(n-1)..0].d, shr,
cargar, cy, clk
S[(n-1)..0].d, shr,
cargas, clk
A[(n-1)..0], shr,
B[(n-1)..0], suma
start, p, clk
M[(n-1)..0].q
R[(n-1)..0].q
S[(n-1)..0].q
F[(n-1)..0]
fin, cargam,
cargar, shr,
cargas, suma
....
n-1
n-1
cargam
clk
fin
sumador
n bits
suma
shr
CY
cargar
n-1
n-1
start
multiplicador
CONTROL
....
n-1
n-1
S
n
shr
cargas
clk
p
Para esto, tomar en cuenta que la seal CLK, es una onda cuadrada de frecuencia muy baja,
solamente para el caso de la implementacin circuital. Para la simulacin escoger una
frecuencia de reloj de 5 MHz (50% de duty cycle).
Tomar en cuenta que el conjunto de los registros R y S forman el registro Producto, donde R
representa la parte ms significativa y S representa la parte menos significativa.
Todos los registros del sistema sern implementados usando Flip-Flops tipo D. La seal de reloj
es comn a todos los registros y se denota como CLK. La activacin de todos los registros ser
por el flanco de subida de la seal de reloj CLK.
COMIENZO
bit 0 = 1
bit 0 = 0
Bit 0 registro
Producto
Repeticin
"n"
SI: "n"
repeticiones
REALIZADO
Fig. 2.- Diagrama de flujo del funcionamiento
del multiplicador de "n" bits
Por otro lado, el bloque de Control deber ser implementado como una mquina de estado, la
cual va a transicionar por diferentes estados, cumpliendo con el diagrama de flujo de la figura 2.
Cuando la seal externa start se coloca a 1, se da inicio al funcionamiento del circuito, de
manera sncrona, y ste sigue sus operaciones conforme el bloque de control entregue sus
seales, de acuerdo al diagrama de flujo mostrado en la figura 2.
A continuacin se cargan los datos del multiplicando y multiplicador, utilizando las seales
cargam y cargas. La seal shr ser utilizada para desplazar a la derecha todo el registro
producto, un bit a la vez. Una vez finalizada la multiplicacin de los n bits de los operandos, la
seal fin ser valida. Por otro lado, habr una seal externa CLR, tal que en la aplicacin de la
misma (valor 0) deber resetear al circuito en forma asncrona.
Para la implementacin circuital, sta se va a realizar en el dispositivo de la familia MAX 7000,
EPM7128SLC8415, utilizando el valor de n igual a 8 para el diseo. El valor n deber ser
declarado como una constante. Para la implementacin circuital, el multiplicador y el
multiplicando reciben su informacin a partir a dip-switches y las salidas (registro producto y
seal fin) se conectarn a visualizadores LED. No ser necesario que los alumnos diseen los
circuitos para los visualizadores, ni para la entrada de datos.
Notas Generales:
Segunda solucin:
Multiplicar independiente de los signos: Algoritmo de Booth.
Algoritmo de BOOTH
Dada una cadena de UNOS seguidos, su aportacin al resultado de la
multiplicacin se reduce a una resta y una suma
Ejemplo:
Sea el producto de M por el nmero 00111000
M * (0011100) = M (0100000 0000100) = M 25 M 22