multiplicador de booth

7
Multiplicador de 8 bits usando el algoritmo de Booth Sobre Tarjeta Spartan-3 Barbosa-Almonazi Jorge Iván, Carbajal-Guillén Manuel Alejandro, Pérez-Ramírez Carlos Andrés {ji.barbosaalmonazi, ma.carbajalguillen, ca.perezramirez}*@ugto.mx Departamento de Electrónica, DICIS Universidad de Guanajuato Introducción. El algoritmo de multiplicación de Booth es un algoritmo de multiplicación que multiplica dos números binarios con signo en la notación de complemento a dos. El algoritmo fue inventado por Andrew Donald Booth en 1950 [1]. Al primer número se le llama multiplicando. Al segundo número se le denomina multiplicador. Hay varias variantes del algoritmo. En esta práctica se implementará el radix-4. Este algoritmo consiste en Tome al multiplicando, realice el complemento a dos del mismo y realice la extensión de signo tomando en cuenta el número de bits para el resultado. Añada al multiplicador un cero en el LSB. Forme grupos de 3 bits. Estos grupos se denominan recodificadores. Tenga cuidado de traslapar el MSB de cada recodificador con el LSB de siguiente recodificador formado. El valor de cada recodificador está dado en la siguiente tabla Recodific ador Fact or 000 0 001 1 010 1 011 2 100 -2 101 -1 110 -1 111 0

Upload: carlos-andres-perez-ramirez

Post on 30-Jul-2015

235 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Multiplicador de Booth

Multiplicador de 8 bits usando el algoritmo de Booth Sobre Tarjeta Spartan-3

Barbosa-Almonazi Jorge Iván, Carbajal-Guillén Manuel Alejandro, Pérez-Ramírez Carlos Andrés{ji.barbosaalmonazi, ma.carbajalguillen, ca.perezramirez}*@ugto.mx

Departamento de Electrónica, DICISUniversidad de Guanajuato

Introducción.El algoritmo de multiplicación de Booth es un algoritmo de multiplicación que multiplica

dos números binarios con signo en la notación de complemento a dos. El algoritmo fue inventado por Andrew Donald Booth en 1950 [1]. Al primer número se le llama multiplicando. Al segundo número se le denomina multiplicador.

Hay varias variantes del algoritmo. En esta práctica se implementará el radix-4. Este algoritmo consiste en

Tome al multiplicando, realice el complemento a dos del mismo y realice la extensión de signo tomando en cuenta el número de bits para el resultado.

Añada al multiplicador un cero en el LSB. Forme grupos de 3 bits. Estos grupos se denominan recodificadores. Tenga cuidado de traslapar el MSB de cada recodificador con el LSB de siguiente recodificador formado.

El valor de cada recodificador está dado en la siguiente tabla

Recodificador

Factor

000 0001 1010 1011 2100 -2101 -1110 -1111 0

Tabla 1. Valor de cada recodificador [1]

En la tabla 1, el valor de 2, implica desplazar a la izquierda el multiplicando. -1 implica que se debe realizar el complemento a dos del multiplicando.

Por último, aplique los factores presentados en la tabla 1 al multiplicando. Tenga en cuenta que por cada recodificador existente, debe recorrer, antes de verificar el valor de éste, 2 veces el multiplicando.

Objetivo.Diseñar e implementar un multiplicador de Booth sobre un FPGA Spartan3. El resultado se

exhibirá en los led’s de la FPGA.

Page 2: Multiplicador de Booth

Desarrollo.

Para implementar el sistema digital antes descrito se tiene que generar el diagrama a bloques que lo describa en el primer nivel de abstracción, el cual se presenta en la figura 1.

Figura1. Primer nivel de abstracción del frecuencímetro.

En la figura 1, X es el multiplicando, y es el multiplicador.

El segundo nivel de abstracción se presenta en la figura 2.

Figura 2. Módulos del multiplicador.

Como se aprecia en la figura 2, el multiplicador entra a un registro de desplazamiento derecho, cuya salida es de 3 bits, con el fin de obtener el recodificador. A continuación, en el módulo de recodificación, se evalúa el recodificador obtenido. Además, se efectúa la extensión de signo del multiplicando. De este módulo sale el producto evaluado. Posteriormente, entra a otro registro de desplazamiento (izquierdo), con el fin de evaluar los desplazamientos. Todo esto es controlado por una FSM, que lleva la cuenta de la posición, así como de la activación del algoritmo. Una vez que se han procesado los recodificadores obtenidos, la FSM carga el registro de salida, obteniéndose así un resultado válido.

Para la implementación en la FPGA, se optó por acoplar el receptor RS-232, debido a que se carecían de switches suficientes para operar el multiplicador. De igual manera, para mostrar el resultado, se optó por multiplexar el mismo, debido a que no se poseen los suficientes led’s. El diagrama a bloques empleado se muestra en la figura 3.

Page 3: Multiplicador de Booth

Figura 3. Diagrama a bloques de la práctica realizada

Una vez realizado el código se procedió a la simulación del mismo, obteniendo lo que a continuación se presenta en la figura 4.

Figura 4. Banco de pruebas del frecuencímetro

En la figura 3 se muestra el procedimiento del algoritmo empleado. Para fines demostrativos, simplemente se usó un multiplicador de 2 bits. El número obtenido, 1110, es el complemento a dos de 2, lo cual muestra que la implementación realizada es correcta.

Resultados.Para realizar la multiplicación, se usó un breve código en Matlab, donde se mandaron los

números a multiplicar usando el puerto serial. En la figura 5 se muestra el código empleado, así como los números enviados.

Page 4: Multiplicador de Booth

Figura 5. Números enviados.

En la figura 6 se aprecia el resultado.

Figura 6. Resultado obtenido.

En las figuras 7 y 8 se aprecian los números enviados, así como el resultado obtenido.

Figura 7. Datos enviados

Page 5: Multiplicador de Booth

Figura 8. Resultado obtenido.

Cuestionario Realice un resumen de los recursos utilizados del FPGA en la síntesis del sistema.

Reporte la máxima frecuencia de operación que entrega el proceso de la síntesis para el circuito implementado. 137.268 MHz

Conclusiones.Barbosa Almonazi Jorge Iván:

En esta práctica se implementó el algoritmo de booth. Se puede observar que es eficiente en cuanto al tiempo que tarda en realizar la operación, sin embargo, quitando el receptor, consume más recursos que implementando otras soluciones.

Page 6: Multiplicador de Booth

Carbajal Guillén Manuel Alejandro:Para la realización de la práctica fue necesario pensar la forma más apropiada para realizar

obtener los recodificadores. Una vez que se ideó un algoritmo rápido, fue sencillo realizar la práctica.

Pérez Ramírez Carlos Andrés: La parte desafiante de la práctica consistió en pensar la estructura digital de tal manera que

fuese sencilla de ir depurando. La solución a la que se llegó fue hacer el uso de la FSM como contador de los recodificadores. Puesto que cada recodificador, implica per sé, recorre a la izquierda el multiplicando. Aún y cuando se podía realizar el algoritmo de manera genérica, considero que sería demasiado complejo de hacer, puesto que los registros de desplazamiento y contadores consumen muchos recursos en una FPGA.

Referencias.[1] Electrónica Digital y Lógica Programable. René de Jesús Romero Troncoso. PP 44-45. Editorial Universidad de Guanajuato.