Anda di halaman 1dari 3

LABORATORIO DE TECNOLOGA DE COMPUTADORES PRCTICA 9

Objetivo: Diseo e implementacin de un multiplicador secuencial de nmeros de 4 bits sin signo usando la herramienta de diseo Xilinx Foundation. El diseo se realizar con captura de esquemticos y ser necesario realizar su simulacin funcional antes de proceder a su implementacin. reloj

A (4 bits) B (4 bits) INI Figura 1 Multiplicador

S (8 bits) FIN

Realizacin: Para realizar la multiplicacin se usar el algoritmo de suma y desplazamiento. Suponiendo que el multiplicando se encuentra almacenado en el registro A y el multiplicador en el registro B, el algoritmo de suma y desplazamiento tendr el siguiente pseudocdigo: C := 0 For i := 0 to 3 { If b0 = 1 { C := C + A Desplazar un bit a la derecha el CARRY-C-B } else { Desplazar el conjunto 0-C-B un bit a la derecha } } Si se realiza la suma parcial, el acarreo de salida se almacena en un biestable D. Si no hay suma parcial, el biestable se pone a 0. En cualquier caso, la salida del biestable se introduce en el registro C. El resultado de la multiplicacin se encuentra en los registros C y B. La ruta de datos del multiplicador (figura 2) estar formada por tres registros de 4 bits con posibilidad de carga, desplazamiento y puesta a 0, un biestable y un sumador de 4 bits.

LA

CC LC DC

LB DB

C0

SUMADOR

Cin

b0 0

CD

Salida
Figura 2 El diagrama de estados de un posible controlador para implementar este algoritmo con la ruta de datos de la figura 2 se muestra en la figura 3. S0

S1 Fin F

S2 Fin

S3 Figura 3

La seal F es el resultado de comparar el valor de la seal de entrada INI en un instante de tiempo anterior (valor almacenado en un biestable) y el actual. Si la seal INI ha cambiado el valor de F ser 1 y procederemos con la multiplicacin, sino ser 0 y se permanecer en el estado S1 a la espera de que esta seal cambie (F= XOR(INI, INI_OLD). Para construir la mquina de estados usaremos biestables D y puertas lgicas. La realimentacin entre los estados S2 y S3 representa el bucle for y se tendr que realizar 4 veces (para lo cual se utilizar un contador mdulo 4 para contar el nmero de veces que se ha ejecutado el bucle). Tras la cuarta iteracin del bucle (estado contador = 11), la seal FIN se pondr a 1 y habr terminado la multiplicacin. S0: S1: S2: S3: Se carga en un biestable el valor de la seal INI y a continuacin el sistema siempre se va al estado S1. Si F = 1 se cargan los registros A y B con el valor de los operandos (L A = LB = 1). Se inicializa a 0 el registro C (CC = 1). Y se pasa a S2. Si B0 = 1 se carga en el registro C (L C = 1) el resultado de la suma A + C, y se carga el biestable D con el acarreo. Si B0 1, se inicializa el biestable D a 0 (CD = 1) y se pasa al estado S3. Se incrementa el contador del bucle (INC = 1) y se desplaza el conjunto D C B (DC y DB = 1). Si FIN = 0 se vuelve al estado S2. Si FIN = 1 se vuelve al estado S0.

Anda mungkin juga menyukai