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.