Divisor de punto flotante

Anuncio
INSTITUTO TECNOLÓGICO DE MORELIA
MAESTRIA EN CIENCIAS EN INGENIERÍA
ELECTRÓNICA
ELECTRONICA DIGITAL AVANZADA
REPORTE 4
“DIVISOR DE PUNTO FLOTANTE FORMATO IEEE
CORTO EN VHDL”
NOMBRE:
ING. ANTONY MORALES CERVANTES
N. C. M06120218
PROFESOR:
DR. ARTURO MENDEZ PATIÑO
1 DE MARZO DEL 2012
Para el desarrollo de la división de punto flotante con formato de IEEE corto se describe en el
siguiente diagrama a bloques, el código para el desarrollo de este diagrama se muestra
posteriormente.
Para el desarrollo de la división de punto flotante con formato de IEEE corto se realizó de la
siguiente manera:
Inicio
Inicio=1
Si
Divisor
No
-Carga de datos del divisor y dividendo a señales
para el exponente y la mantiza de cada uno.
-inicialización del auxcociente en cero.
-Cociente(31)= Divisor(31) XOR Dividendo(31)
Dividendo
Resta de exponentes
Dividendo – Divisor +127
¿Sobreflujo en resta?
Divisor = 0
Dividendo !=0
Resultado de exponente y
auxcociente a salida del
cociente
Divisor != 0
Dividendo =0
Divisor = 0
Dividendo =0
Error = 1
Si
Error = 1
Fin
Divisor <=Dividendo
Si
No
Indeterminado = 1
Fin
Dividendo = Dividendo – Divisor
Corrimiento del Dividendo
Cociente (0) = 1
Contador = contador + 1
No
Contador < 24
¿La primera resta fue cero?
Si
Corrimiento del cociente
Resta de exponentes -1
Corrimiento del Dividendo
Cociente (0) = 0
Contador = contador + 1
Si
Corrimiento del cociente
Programa en VHDL para divisor de punto flotante formato IEEE
corto.
CONCLUSIONES
Para el desarrollo de la practica la parte del exponente se uso solo una XOR en los bits mas
significativos del divisor y el dividendo.
En los exponentes de los valores introducidos se restó el del dividendo al del divisor y se le sumó
127 para el sobreflujo. Si aun así se encontraba un sobreflujo marcaba error y si no continuaba con
el programa.
En las mantizas se hacia una comparación para ver si el dividendo era mayor que el divisor y poder
hacer la resta, si lo era, se le ponía un 1 al cociente y se hacia un corrimiento del cociente y del
resultado de esa resta, si no, se ponía 0 en el cociente y se hacia un corrimiento de la mantiza del
dividendo y del cociente. En ambos casos se aumentaba un contador inicializado previamente en
cero y si el contador era menor que 24 se repetía el proceso de la comparación de dividendo
contra divisor, si no, terminaba el programa y mandaba los resultados de los exponentes y
cociente a la salida del cociente de 32 bits y espera a que se dé inicio para comenzar nuevamente.
Durante la realización se tuvieron varios detalles que fueron difíciles de encontrar, el método para
saber que la secuencia del algoritmo era correcta fue agregando una salida con el nombre de
estados, cada vez que entraba un estado se asignaba un numero diferente para saber en qué
estado estaba. Con esto se pudo observar como al estar en un estado y si hacia otra cosa diferente
a lo que se tenía pensado, entonces ver el error y corregirlo.
Descargar