Vous êtes sur la page 1sur 5

UNIVERSIDAD NACIONAL DEL ALTIPLANO

Escuela Profesional de Ingeniera de Sistemas


ORGANIZACIN Y ARQUITECTURA DE COMPUTADORES
Disear, simular e implementar un circuito secuencial sncrono, utilizando la herramienta de
diseo digital Max+Plus II de Altera, que realice la multiplicacin de dos nmeros con signo de
n bits. Implementar la especificacin en forma jerrquica de este circuito multiplicador, usando
el lenguaje de descripcin AHDL. Se utilizar para esto, un archivo de tope (Multi) y 5 mdulos
(ver tabla 1). Para la implementacin del multiplicador, tomar en cuenta las figuras 1 y 2.
Nombre
del Mdulo

Smbolo
de Registro
o Bloque

Descripcin del Registro


o Bloque Funcional

Regm

Registro Multiplicando

Regr

Regs

Sumador

sumador

Parte izquierda (ms significativa)


del Registro Producto
Parte derecha (menos significativa)
del Registro Producto
Sumador de n bits

Control

control

Unidad de Control del Sistema

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

Tabla 1.- Mdulos del circuito multiplicador de n bits


multiplicando

....

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

Fig. 1.- Diagrama de Bloques del Multiplicador de "n" bits

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

Sumar el multiplicando a la mitad


izquierda del registro Producto y
colocar el resultado en la mitad
izquierda del registro Producto.

Desplazar un bit a la derecha todo


el registro Producto.

NO: < "n"


repeticiones

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:

Un nuevo estado comienza con un flanco de subida de la seal de reloj.


Las seales cargar y cargas son diferentes.
La seal p es el bit menos significativo del registro S.
El bloque sumador debe incluir el flip-flop CY.
La seal suma permite guardar en CY el valor de carry generado de la suma.
La salida del flip-flop CY alimenta al bit ms significativo del registro R.

Multiplicacin con signo


Primera solucin:
Convertir los nmeros a positivos
Hacer el producto sin signo (31 bit)
De acuerdo con los signos y la representacin cambia el
resultado final o no

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

restar el multiplicando desplazado 2 veces ( i) veces


Sumar el multiplicando desplazado 5 veces ( i +1)
veces

El nuevo algoritmo realiza la secuencia siguiente


Analiza los dos bits consecutivos del multiplicando
00 no realiza suma y desplaza.
11 no realiza suma y desplaza.
10 realiza resta y desplaza.
01 realiza suma y desplaza.
Inicialmente se supone que tiene un bit a de antes
Comparacin de Algoritmos
3

Ojo: Operaciones de desplazamientos aritmticos a derecha


Validez para los nmeros negativos (Complemento a dos)

Multiplicacin por constantes en el programa


Algunos compiladores lo reduce a desplazamientos, sumas y restas.
Equivalente a aplicar el algoritmo de Booth.
Lo suelen hacer con constantes pequeas
Multiplicaciones reales en MIPS
Tiene dos instrucciones:
mult:
multiplicacin con signo
multu:
multiplicacin sin signo

Usa un par de registros (32 +32 bit) Hi y Lo para el resultado


Instrucciones para recuperar valor de Hi y Lo
mflo (move from lo)
mfhi (move from hi)
Ambas instrucciones ignoran el desbordamiento,
comprobarlo por software

Vous aimerez peut-être aussi