Anda di halaman 1dari 2

Matemticas con FPGA.

Representacin de los nmeros.


Para una representacin de un nmero largo con punto flotante se requiere una gran
cantidad de bits. Dichas representaciones consisten en la parte entera y la fraccional. La
representacin de punto flotante le permite al punto colocarse en distintos lugares del
nmero dependiendo de la magnitud. Son divididos en exponente y mantiza. Es similar a la
notacin cientfica. Se estandarizaron por la IEEE con 8 bits de exponente y 24 bits de
mantisa. Las operaciones pueden ser con signo (0 a

rango) o sin signo. MSB (0


positivo, 1 negativo).
El complemento a dos permite realizar una substraccin por medio de una adicin.
Considerando el nmero que se va a restar de otro nmero, se niega y se le suma uno,
despus de esto se suma este resultado y el nmero al que se le va a restar.
La notacin para las matemticas de punto flotante (A,B) es como sigue: A indica el
nmero de bits de los enteros, mientras que B indica el nmero de bits de la parte
fraccional. Para determinar el nmero de bits requerido para un nmero est la siguiente
ecuacin.
(


)
Si el resultado es por ejemplo 9 y se usan 16 bits para representarlo, entonces quiere decir
que 7 bits pueden ser utilizados para representar la parte fraccional. La precisin de tal
representacin est dada por:
(


)
En el caso en el que nicamente nos interesan los nmeros fraccionales (0,B) entonces se
multiplica al nmero que se desea representar por

y se almacena la parte entera. Guardar


este resultado trae como consecuencia que se guarde el nmero

. La diferencia entre el
nmero almacenado y el requerido es substancial por lo que puede traer error inaceptable
en el clculo.
Reglas para punto flotante.
Para realizar una suma, resta o divisin, el punto decimal de ambos nmero debe de estar
alineado de lo contrario (x,y) se debe arreglar el nmero para que quede en este formato.
Para ello se puede multiplicar el nmero con ms bits de entero por

o dividir el nmero
con el entero ms pequeo por

. En el FPGA se puede escalar o reducir un nmero


moviendo a la izquierda o a la derecha para cada potencia de 2 requerida para balancear los
dos puntos decimales.
Por ejemplo, se quiere sumar 234.58 + 312.732, que estn almacenados en 8,8 y 9,7
respectivamente.


Los dos nmeros que se sumaran son 60052 y 40029. Sin embargo, antes de sumarlos se
debe alinear el punto decimal. Para ello se escala al nmero con ms bits de entero. 9,7 por
un factor

.
40029x

=80058
Entonces si se puede realizar la suma (140110) y representa a 547.3046875 en un formato
de 10,8 (

).
La multiplicacin no requiere del alineamiento x(a,b)*y(c,d) da como resultado una parte
entera de a+c y una parte fraccional de b+d. La divisin puede ser implementada como la
multiplicacin de uno por el reciproco de otro.
Cuestiones de sobreflujo.
Cuando se implementa un algoritmo, el resultado no debe ser ms grande de lo que es
capaz de almacenar. De lo contrario ocurre sobreflujo, el resultado almacenado ser
incorrecto y los bits ms significativos se perderan. Para evitarlo hay que determinar el
valor mximo que resulta de la operacin y usar la ecuacin para determinar el tamao del
registro requerido.

Anda mungkin juga menyukai