Você está na página 1de 5

1

lMultiplicador de punto flotante usando el formato


IEEE-754 precisión sencilla.
Diseño a nivel de registro usando Megafunciones.
(Noviembre 25 2008)
Alejandra López Ramírez

Estudiante de Pregrado de Ingeniería Electrónica

Universidad del Valle, EIEE


a aplicar la lógica de excepciones para clasificar ciertas
Resumen—Este documento pretende dar a conocer la consideraciones que se explicaran más adelante.
estructura e implementación de la operación multiplicación
en punto flotante usando el formato IEEE-754 de simple
precisión, se debe tener en cuenta que el multiplicador a
diseñar cumple con los estándares, pero se advierte las
limitaciones en casos triviales, este dispositivo diseñado no
cumple con los anteriores mencionados. La implementación
se lleva a cabo sobre FPGAs de Altera y la simulación bajo el
software Quartus II versión 6.0sp1 Web Edition Full.

Palabras clave—IEEE-754, Punto Flotante, Mantisa,


Overflow, Underflow, NaN, infinito, Multiplexor, Lógica de
Excepciones.

I. INTRODUCCION

IEEE-754 es uno de los estándares más utilizados en la


representación de números en punto flotante, su base es 2 y el
número de exponentes que disponemos es de 254, se
distribuye igual que todos los demás, es decir, un bit de signo,
una trama de bits para el exponente y una trama de bits mucho
mayor para la mantisa o significando. Dentro de estos
formatos se pueden clasificar tres clases de precisión según la
cantidad de bits: precisión sencilla (32 bits), precisión doble
(64 bits) y precisión expandida (entre 33 y 63 bits).
La precisión simple es un formato de 32 bits, el cual consta de
un bit de signo, los siguientes 8 bits son el exponente y los 23 Figura 1. Algoritmo para la multiplicación de punto flotante.
bits restantes son la mantisa.
El punto flotante es más utilizado que el punto fijo por que El paso a continuación es sumar los exponentes de cada
con el primero se puede representar cantidades muy grandes y número, se debe tener en cuenta que el sesgo es un valor de
con el segundo como el punto es fijo el rango es mucho menor offset para cada número, este valor tiene un peso en decimal
pero con una mayor precisión. de 127 en este proceso simplemente es sumar los exponentes y
restar el sesgo, esto se implementa utilizando la MegaFunción
II. MULTIPLICACION DE PUNTO FLOTANTE Lpm_Add_Sub

Las operaciones aritméticas de multiplicación y división en


punto flotante son procesos más sencillos que la suma y la
resta. En la figura 1 se puede observar el algoritmo del
multiplicador de punto flotante. En primer lugar se reconocen
los datos de entrada, esto se hace para desempaquetar el valor
de 32 bits, Esto se hace para cada número, una vez se hallan
separado el bit de signo, el exponente y la mantisa se procede
Figura 2. Tratamiento del Exponente.
2

Como se puede observa en la figura 2 el primer sumador tiene Para terminar el algoritmo se debe colocar el signo al
un Cin de entrada y Cout. El Cout es el bit más significativo resultado figura 5, para ello solo basta con aplicar la ley de
del bus de entrada del restador siguiente, esta implantación signos y la compuerta que cumple con la ley de signo a nivel
permite la identificación de un posible Overflow, para ser mas de un bit es la XOR
explicito cuando en la entrada del restador entran un
exponente muy grande aun restando el sesgo se produce un
estado alto en el Cout de este, el Cout y el bit más
significativo del exponente de salida se utilizan para indicar la
presencia de Overflow y Underflow. Figura 5. Compuerta XOR aplicando la ley de signos.

III. LOGICA DE EXCEPCIONES

El IEEE-754 va mas allá de un simple formato, comprende


todo un estándar de aritmética binaria haciendo que la
aritmética de coma flotante produzca resultados predecibles y
uniformes. En esta parte del proyecto se contemplan algunas
operaciones o casos triviales que en realidad son infinitos por
Figura 3. Indicadores de Overflow y Underflow. que se desea representar toda una aritmética con un sistema
finito o formato definido, pero en este momento solo nos
Los indicadores de Overflow y Underflow se implementaron importa algunos casos críticos.
como se muestra en la figura 3 la clave de esta lógica está
comprendida en los 9 bits de entrada porque estos representan En la lógica de excepciones se empieza a trabajar con la
un exponente grande o pequeño y dependiendo un estado alto clasificación de cada numero ya sea normal, infinito, NaN o
en el bit más significativo de la salida del restador la zero según el estándar de números singulares IEEE-754 figura
existencia de carry de salida da a entender que hay un 6. Esto hace fácil la implementación de las operaciones entre
Overflow, así mismo si no hay carry de salida en el restador los dos números, en la figura 7 muestra la lógica
es porque es un exponente demasiado pequeño y se presentara combinacional para clasificar y dar señales de indicación
Underflow. según el caso.

Según el algoritmo de la figura 1 el paso a seguir es


multiplicar las mantisas de los dos números de entrada
normalizar el producto y examinar el resultado, si es necesario
se debe corregir el exponente ya que la mantisa utiliza un
punto fijo, en la figura 4 se observa el circuito implementado.

Figura 6.Estandar IEEE-754 para números singulares.

Figura 4.Normalizacion y corrección de exponente.

Se puede observar que se utiliza un Busmux para la corrección


del exponente, el bit más significativo de la multiplicación de
las mantisas es el que decide si existe corrección de
exponente. Si existe corrección de exponente es porque el bit
más significativo resultante de multiplicar las mantisas de
punto fijo es un estado alto, por consiguiente el resultado de la
normalización se debe desplazar hacia la izquierda para
conservar el punto fijo de la mantisa, al desplazar la mantisa
hacia la izquierda de debe incrementar en uno el exponente,
por ello en el tratamiento del exponente lleva un Cin. Si no
existe corrección de exponente es que el bit más significativo
de la norma de la mantisa resultante es cero, por tanto se
puede despreciar y no hacer corrección de exponente.
Figura 7.Logica de excepciones a nivel de compuertas y Megafunciones.
3

Como se puede observar se utilizan una simple lógica Figura 8.Logica de excepciones a nivel de registros.
combinacional y la ayuda de Megafunciones básicas como Existen algunos casos que no están contemplados en este
Lpm_or y Lpm_and. Esta lógica clasifica e indica la existencia diseño como la multiplicación de un número infinito por zero,
de alguno de los casos anteriormente mencionados y anticipa la multiplicación de un numero zero por NaN o infinito por
el resultado en el caso de un resultado que sea zero, si no NaN.
indica alguna anomalía el resultado se encuentra permitido y A continuación se muestra el diagrama de bloques para la
su realiza todo el algoritmo de multiplicación contemplado multiplicación de punto flotante y precisión simple figura 9 y
anteriormente. el diagrama circuital implementado figura 10. En el diagrama
de bloque se puede observar que los cálculos de hacen de
manera paralela, el reconocimiento de los datos, las
operaciones de exponente y mantisa, haciendo este diseño
muy rápido y con cualidades de predicción de resultados de
acuerdo con la Lógica de excepciones.

Figura 10.Diagrama de bloques multiplicador punto flotante y precisión simple.


4

Figura 11. Diagrama cicuital de un multiplicador con punto flotante y precisión simple.

El paso a seguir es realizar las simulaciones, se debe tener en


cuenta algo muy importante puesto que este diseño usa el
formato IEEE-754 los datos de entrada son datos ya en el
formato y cuya salida se obtendrá en el mismo formato, en la
siguientes figuras se muestran diversas operaciones en el
formato IEEE-754

Después de verificar los anteriores casos y obtener los


resultados esperados y encontrar un máximo retardo de
34.908ns se podría decir que el diseño esta dentro de lo
esperado.
5

IV. CONCLUSIONES

La representación en punto flotante amplia el rango de trabajo,


pero se pierde algunos bits de resolución

La representación en punto fijo tiene una excelente resolución


pero solo es muy eficiente en rangos no tan grandes de trabajo

El estándar IEEE-754 tiene dos formatos muy utilizados,


precisión simple y doble precisión. El primero trabaja con un
máximo de 32 bits, 1 de signo, 8 de exponente y 23 de
mantisa. El segundo trabaja con un máximo de 64 bits, 1 de
signo, 11 de exponente y 52 de mantisa.

La mantisa ya que obtuvo antes de normalizar un producto de


puntos flotantes estará siempre entre 1 y 3. Después de
normalizarlo estará entre 1 y 2.

El diseño implementado es muy rápido, la simulación muestra


un tpd máximo de 34.908ns.

El diseño se construyo utilizando compuertas, registros y


Megafunciones parametisadas, mostrando un desarrollo
notable en la aplicación de lo aprendido en el curso del
laboratorio de sistemas digitales.

El proyecto se puede mejorar a futuro conociendo todo el


formato IEEE-754 para aritmética en coma flotante, diseñando
una nueva lógica de excepciones donde se imprentaría la
mayoría de casos triviales mencionados a través del proyecto.

5. BIBLIOGRAFIA

[1] Eduardo A. Daniello “Diseño de un multiplicador de punto


flotante en doble precisión basado en el estándar IEEE-754”

[2] Gustavo Ordoñes-Jaime Velazco-Mario Vera


”Diseño de operadores aritméticos en punto flotante
usando FPGAs”

[3]Willian Stalling ”Organización y Arquitectura de


Computadores”.

[4]Álvaro Caicedo “Sumador-Restador de punto flotante


IEEE-754 Precisión sencilla”.

[5] http://babbage.cs.qc.edu/IEEE-754/Decimal.html

[6] http://babbage.cs.qc.edu/IEEE-754/32bit.html

Você também pode gostar