SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
Proyecto con Microprocesadores II
Informe de Trabajo Final
Sumador/Restador en Punto Flotante en el MIPS
Fecha: 1 de julio de 2013
Pedro D. Ramírez López
Alberto Gómez de la Fuente
0.1. Descripción del Proyecto
Diseño de un módulo de operaciones entre registros tipo coma flotante F-TYPE de
MIPS con base en el estandar IEEE 754.
0.2. Diagrama de Bloques
Después de consultar algunos ejemplos sobre la manera de realizar el proyecto, se
decide que la mejor manera de implementar el diseño de este proyecto es mediante un
banco de datos propio, como se puede apreciar en la figura 1.
Para Obtener la Implementación en el Spartan 3AN completa del trabajo diríjase el
sgte Link
Figura 1: Unidad de Punto Flotante con el Mips
AG-PR 1
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
0.3. Diseño de Modulos de Operaciones Internos
0.3.1. Excepción
Este módulo puramente combinacional se encarga de comparar los registros que con-
tienen los operandos de manera previa a la realización de cualquier operación con el fin
de revisar si se esta llegando a generar una excepción.
Data A Data B Flag Operation Data C Type
xxxx xxxx Overflow add/sub Infinite Operation Process
xxxx xxxx Underflow add/sub Zero Operation Process
Invalid Operation
Infinite xxxx none add/sub NaN Propagation
xxxx Infinite none add/sub NaN Propagation
Infinite Infinite none add/sub NaN Propagation
NaN xxxx none add/sub NaN Propagation
xxxx NaN none add/sub NaN Propagation
NaN NaN none add/sub NaN Propagation
Cuadro 1: Manejador de Excepciones del FPU
0.3.2. Pre-Normalización
Este es un módulo donde:
1. Se debe decodificar la información de exponente que se encuentra en el respectivo
registro con el fin de procesarla.
2. Se debe hacer la correspondiente operación entre exponentes; es decir como los
registros se suman o restan, se debe hallar el exponente mayor entre ambos.
si
no
Figura 2: Diagrama de Flujo del Módulo de Pre-Normalización
AG-PR 2
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
0.3.3. Suma/Resta
Este módulo debe:
1. Efectuar la operación teniendo en cuenta las consideraciones del estandar de tra-
bajar con números con signo y no con complemento a dos.
2. Generar un flag de carry necesaria para el módulo de post-normalización.
si
si
nono
si
si
no nono
si
Figura 3: Diagrama de Flujo del Módulo de Suma y Resta(Big Alu)
0.3.4. Postnormalización
En este módulo se deben:
1. Efectuar corrimientos respectivos para lograr la normalización efectiva de la mantisa
con el correspondiente aumento/disminución de pre_exp_result proveniente del
módulo de prenormalización.
2. Comprobar la que no haya desbordamiento o sub-desbordamiento de alguna de las
variables de modo que no se llegen a estados obsoletos, para ello se deben generar
los flags de excepción underflow y overflow.
AG-PR 3
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
shift_right_post_norm
PM_SR
mantisa_in(63:0)
carry
mantisa_out(63:0)
demux_64
PM_DEMUX_64
c(63:0)
sel
a(63:0)
b(63:0)
amount
PM_AMOUNT
pre_mant_c(63:0) shift_amount(10:0)
mux_64
PM_MUX_64
a(63:0)
b(63:0)
sel
c(63:0)
calcular_exponente
PM_CALCULAR
pre_exp(10:0)
shift_amount(10:0)
carry
mode
amount(10:0)
exponente(10:0)
overflow
shift_left_2
PM_SL
pre_mant_c(63:0)
shift_amount(10:0)
mant_shift(63:0)
or2
overflow_imp_overflow1
I0
I1
O
exponente_final
PM_EXPONENTE_FINAL
exponente_in(10:0)
mantisa_shift_left(63:0)
carry
mode
exponente_out(10:0)
overflow
underflow
redondeo_52
PM_ROUND_52
mant_c(63:0) mantisa(51:0)
carry
underflow
or2
underflow_imp_underflow1
I0
I1
O
post_norm:1
PM_POST_NORM
pre_exp(10:0)
pre_mant_c(63:0)
carry
mode
exponente(10:0)
mantisa(51:0)
overflow
underflow
Figura 4: Módulo de Post-Norm implementado en VHDL
0.4. Conversión de simple a doble precisión
Especificación del operador:
1. Entrada: SA (1 bit), EA (8 bits) y MA (23 bits)
2. Salida: SR(1 bit), ER (11 bits) y MR (52 bits)
3. El signo no cambia: SR = SA
4. Exponente: hay que cambiar de exceso 127 a exceso 1023
ER = EA + 896
Obs.: Los números desnormalizados son iguales excepto que exponente = −126 y
mantisa = 0, Fracción. (exponente NO es -127 : la mantisa ha de ser desplazado a
la derecha por un bit más, de forma que incluya el bit principal, que no siempre es 1
en este caso. Esto se balancea incrementando el exponente a -126 para el cálculo.).
Por lo tanto, para el caso desnormalizado se tiene que:
ER = EA + 896 + 1
5. Mantisa: hay que añadir 52-23 = 29 ceros a la derecha
MR = MA||00 · · · 0
6. Hay que tratar correctamente los valores especiales:
AG-PR 4
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
EA SR ER MR
Zero 000000002 SA 000000000002 MA || 00 · · · 0
Subnormal 000000002 SA 89610 MA || 00 · · · 0
±∞ i NaN 111111112 SA 111111111112 MA || 00 · · · 0
Valores Corrientes (otros valores) SA EA + 896 MA || 00 · · · 0
Cuadro 2: Valores Especiales en el Estándar IEEE745
Tratamiento de los valores especiales Detalle del cálculo del exponente.
27
! El operador básico
– No trata los valores especiales
SA EA MA
1 8 23
1 11 52
00..0
896 29
SR ER MR
28
Conversión de simple a doble precisión
! Tratamiento de los valores especiales
– Detalle del cálculo del exponente
1 8 23
DEC
0
1…254
255
MUX
896
11
8
1 11 52
SR ER MR
SA EA MA
00…02 11…12
Figura 5: Diagrama en bloques del Hardware simple a double precisión.
0.5. Conversión de doble a simple precisión
0.5.1. Estructura del operador
1. El signo no cambia
2. Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en exceso
127
Puede darse desbordamiento
3. Mantisa: hay que eliminar 29 bits por la derecha y redondear
AG-PR 5
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
29
Conversión de doble a simple precisión
! Estructura del operador
– El signo no cambia
– Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en
exceso 127
• puede darse desbordamiento
– Mantisa: hay que eliminar 29 bits por la derecha y redondear
S E M
1 8 23
S E M
1 11 52
–896
Redondeo
cA
30
El redondeo
! Circuito para el redondeo al más próximo
R
M (simple precisión)
cA
b51 b50 … b29 b28 b27 … b0
redondeo
guarda
retenidos
0
b29 g red R
x 0 x 0
0 1 0 0
1 1 0 1
x 1 1 10 1
MUX
0
1.1111111
1
10.00000
1.00000
+
1.1001101
0
1.10011
+
Si R=0, truncar:
Si R=1, incrementar:
1.1001111
1
1.10100
+
implícito
Si cA=1, corregir
Figura 6: Diagrama en bloques del Hardware double a simple precisión.
0.6. El redondeo
Circuito para el redondeo al más próximo
29
Conversión de doble a simple precisión
! Estructura del operador
– El signo no cambia
– Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en
exceso 127
• puede darse desbordamiento
– Mantisa: hay que eliminar 29 bits por la derecha y redondear
S E M
1 8 23
S E M
1 11 52
–896
Redondeo
cA
30
El redondeo
! Circuito para el redondeo al más próximo
R
M (simple precisión)
cA
b51 b50 … b29 b28 b27 … b0
redondeo
guarda
retenidos
0
R
0
0
1
10 1
MUX
0
1.1111111
1
10.00000
1.00000
+
1.1001101
0
1.10011
+
Si R=0, truncar:
Si R=1, incrementar:
1.1001111
1
1.10100
+
implícito
Si cA=1, corregir
Figura 7: Diagrama en boques del Hardware de redondeo.
AG-PR 6
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
b29 guarda redondeo R
X 0 X 0
0 1 0 0
1 1 0 1
X 1 1 1
Cuadro 3: Tabla de verdad del Algoritmo de redondeo al más próximo
Casos de valores de R
Si R = 0, Truncar
29
– El signo no cambia
– Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en
exceso 127
• puede darse desbordamiento
– Mantisa: hay que eliminar 29 bits por la derecha y redondear
S E M
1 8 23
S E M
1 11 52
–896
Redondeo
cA
30
El redondeo
! Circuito para el redondeo al más p
R
M (simple precisión)
cA
b51 b50 … b29 b28 b27 … b0
redondeo
guarda
retenidos
0
b29 g red R
x 0 x 0
0 1 0 0
1 1 0 1
x 1 1 10 1
MUX
0
1.1111111
1
10.00000
1.00000
+
1.1001101
0
1.10011
+
Si R=1, incrementar:
1.1001111
1
1.10100
+
implícito
Si cA=1, corregir
Figura 8: Caso de R = 0
Si R = 1, Incrementar
29
structura del operador
– El signo no cambia
– Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en
exceso 127
• puede darse desbordamiento
– Mantisa: hay que eliminar 29 bits por la derecha y redondear
S E M
1 8 23
S E M
1 11 52
–896
Redondeo
cA
30
edondeo
rcuito para el redondeo al más próximo
R
M (simple precisión)
1 b50 … b29 b28 b27 … b0
redondeo
guarda
retenidos
0
b29 g red R
x 0 x 0
0 1 0 0
1 1 0 1
x 1 1 10 1
MUX
0
1.1111111
1
10.00000
1.00000
+
1.1001101
0
1.10011
+
Si R=0, truncar:
Si R=1, incrementar:
1.1001111
1
1.10100
+
implícito
Si cA=1, corregir
Figura 9: Caso R = 1
Si CA = 1, Corregir
AG-PR 7
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
30
ircuito para el redondeo al más próximo
R
M (simple precisión)
1 b50 … b29 b28 b27 … b0
redondeo
guarda
retenidos
0
b29 g red R
x 0 x 0
0 1 0 0
1 1 0 1
x 1 1 10 1
MUX
0
1.1111111
1
10.00000
1.00000
+
1.1001101
0
1.10011
+
Si R=0, truncar:
Si R=1, incrementar:
1.1001111
1
1.10100
+
implícito
Si c
Figura 10: Caso CA = 1
0.7. Resultados
Aquí el código del test bench de la implementacion en vhdl del trabajo
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--USE ieee.numeric_std.ALL;
ENTITY floating_point_unit_tbm IS
END floating_point_unit_tbm;
ARCHITECTURE behavior OF floating_point_unit_tbm IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT floating_point_unit
PORT(
a1 : IN std_logic_vector(31 downto 0);
a2 : IN std_logic_vector(31 downto 0);
b1 : IN std_logic_vector(31 downto 0);
b2 : IN std_logic_vector(31 downto 0);
mode : IN std_logic;
operation : IN std_logic;
c1 : OUT std_logic_vector(31 downto 0);
c2 : OUT std_logic_vector(31 downto 0)
);
END COMPONENT;
--Inputs
signal a1 : std_logic_vector(31 downto 0) := (others => ’0’);
signal a2 : std_logic_vector(31 downto 0) := (others => ’0’);
signal b1 : std_logic_vector(31 downto 0) := (others => ’0’);
AG-PR 8
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
signal b2 : std_logic_vector(31 downto 0) := (others => ’0’);
signal mode : std_logic := ’0’;
signal operation : std_logic := ’0’;
--Outputs
signal c1 : std_logic_vector(31 downto 0);
signal c2 : std_logic_vector(31 downto 0);
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: floating_point_unit PORT MAP (
a1 => a1,
a2 => a2,
b1 => b1,
b2 => b2,
mode => mode,
operation => operation,
c1 => c1,
c2 => c2
);
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
-- insert stimulus here
--Modo simple
a1 <= X"40C80000";--6.25
a2 <= X"00000000";
b1 <= X"40C80000";
b2 <= X"00000000";
mode <= ’0’; -- simple
operation <= ’0’; -- suma
wait for 100 ns;
a1 <= X"40C80000";--6.25
a2 <= X"00000000";
b1 <= X"40200000";--2.5
b2 <= X"00000000";
mode <= ’0’; -- simple
operation <= ’1’; -- resta
wait for 100 ns;
AG-PR 9
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
a1 <= X"40C80000";--6.25
a2 <= X"00000000";
b1 <= X"40C80000";--2.5
b2 <= X"00000000";
mode <= ’0’; -- simple
operation <= ’1’; -- resta
wait for 100 ns;
a1 <= X"41020000";--8.125
a2 <= X"00000000";
b1 <= X"41020000";--8.125
b2 <= X"00000000";
mode <= ’0’; -- simple
operation <= ’1’; -- resta
wait for 100 ns;
a1 <= X"3FF40000";--1.25 en double
a2 <= X"00000000";
b1 <= X"3FD00000";--0.25 en double
b2 <= X"00000000";
mode <= ’1’; -- double
operation <= ’1’; -- resta
wait for 100 ns;
a1 <= X"3FF40000";--1.25 en double
a2 <= X"00000000";
b1 <= X"3FD00000";--0.25 en double
b2 <= X"00000000";
mode <= ’1’; -- double
operation <= ’0’; -- suma
wait for 100 ns;
wait;
end process;
END;
AG-PR 10
CYT808 Universidad Católica “Nuestra Señora de Asunción”
Proyecto con
Microprocesadores II
Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre IX Departamento de Electrónica e Informática
Los resultados se pueden ver en la formas de onda de salida donde los resultados estan
en hexadecimal, a1,a2 es el primer operando, b1,b2 es el segundo operando, c1,c2 es
el resultado, mode es ’0’ en forma simple y ’1’ en forma double, operation es una resta
cuando es ’1’ y ’0’ cuando es una suma, Si se opera en fornato simple solo se opera sobre
los operandos a1,b1 y el resultado tiene sentido solo en c1, en caso de operar en modo
double los operandos son en conjunto a1&a2(64 bits) y b1&b2(64 bits) y el resultado es
c1&c2(64 bits).
0 ns 100 ns 200 ns 300 ns 400 ns 500 ns 600 ns 700 ns
Figura 11: Resultados de la FPU
0.8. Referencias
1. Organización y Diseño de Computadores David A. Patterson, McGraw Hill, 3Th
Edición
2. http://www.zator.com/Cpp/E2_2_4a1.htm
3. http://www6.uniovi.es/ãntonio/uned/ieee754/IEEE-754hex32.html
4. http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html
5. http://www.h-schmidt.net/FloatConverter/
6. http://www.mipshelper.com/mips-converter.php
AG-PR 11

Más contenido relacionado

La actualidad más candente

Presentación1
Presentación1Presentación1
Presentación1
kyguerra
 
Estadio cognosciente ii daniel o y angel s. final
Estadio cognosciente ii daniel o y angel s. finalEstadio cognosciente ii daniel o y angel s. final
Estadio cognosciente ii daniel o y angel s. final
ordazrivas
 
Numeros complejos 1 y 2
Numeros complejos 1 y 2Numeros complejos 1 y 2
Numeros complejos 1 y 2
Verolinasaco
 
Sumador en Paralelo de Circuito Integrado
Sumador en Paralelo de Circuito IntegradoSumador en Paralelo de Circuito Integrado
Sumador en Paralelo de Circuito Integrado
Diana
 
Numeros complejos 1 y 2
Numeros complejos 1 y 2Numeros complejos 1 y 2
Numeros complejos 1 y 2
andrepmafel
 
Operacion[1]..
Operacion[1]..Operacion[1]..
Operacion[1]..
SarisMale
 
Numeros complejos 1 y 2
Numeros complejos 1 y 2Numeros complejos 1 y 2
Numeros complejos 1 y 2
Laura-Juliana
 
Operaciones numeros complejos
Operaciones numeros complejosOperaciones numeros complejos
Operaciones numeros complejos
mariaandrea9
 

La actualidad más candente (19)

Matriices
MatriicesMatriices
Matriices
 
U12 circuitoscombinacionales ejemplos
U12 circuitoscombinacionales ejemplosU12 circuitoscombinacionales ejemplos
U12 circuitoscombinacionales ejemplos
 
Alu
AluAlu
Alu
 
Algoritmo congruencial multiplicativo y prueba de medias u otavalo
Algoritmo congruencial multiplicativo y prueba de medias u otavaloAlgoritmo congruencial multiplicativo y prueba de medias u otavalo
Algoritmo congruencial multiplicativo y prueba de medias u otavalo
 
Presentación1
Presentación1Presentación1
Presentación1
 
07 alu
07 alu07 alu
07 alu
 
Estadio cognosciente ii daniel o y angel s. final
Estadio cognosciente ii daniel o y angel s. finalEstadio cognosciente ii daniel o y angel s. final
Estadio cognosciente ii daniel o y angel s. final
 
Tarea2 08 sol_avion
Tarea2 08 sol_avionTarea2 08 sol_avion
Tarea2 08 sol_avion
 
Sumador\Restador
Sumador\RestadorSumador\Restador
Sumador\Restador
 
Numeros complejos 1 y 2
Numeros complejos 1 y 2Numeros complejos 1 y 2
Numeros complejos 1 y 2
 
Sumadores,codificadores, decodificadores,multiplexores y demultiplexores
Sumadores,codificadores, decodificadores,multiplexores y demultiplexoresSumadores,codificadores, decodificadores,multiplexores y demultiplexores
Sumadores,codificadores, decodificadores,multiplexores y demultiplexores
 
Medio restador[1]
Medio restador[1]Medio restador[1]
Medio restador[1]
 
Compuertas Lógicas
Compuertas LógicasCompuertas Lógicas
Compuertas Lógicas
 
Sumador en Paralelo de Circuito Integrado
Sumador en Paralelo de Circuito IntegradoSumador en Paralelo de Circuito Integrado
Sumador en Paralelo de Circuito Integrado
 
Numeros complejos 1 y 2
Numeros complejos 1 y 2Numeros complejos 1 y 2
Numeros complejos 1 y 2
 
Operacion[1]..
Operacion[1]..Operacion[1]..
Operacion[1]..
 
Numeros complejos 1 y 2
Numeros complejos 1 y 2Numeros complejos 1 y 2
Numeros complejos 1 y 2
 
Operacion
OperacionOperacion
Operacion
 
Operaciones numeros complejos
Operaciones numeros complejosOperaciones numeros complejos
Operaciones numeros complejos
 

Destacado

Planificacion de Electronica industrial
Planificacion de Electronica industrialPlanificacion de Electronica industrial
Planificacion de Electronica industrial
indira
 
Diapositivas instrumentacion corregidas
Diapositivas instrumentacion corregidasDiapositivas instrumentacion corregidas
Diapositivas instrumentacion corregidas
Yesid Perdomo Bahamon
 

Destacado (20)

Planificacion de Electronica industrial
Planificacion de Electronica industrialPlanificacion de Electronica industrial
Planificacion de Electronica industrial
 
Proyecto electronica
Proyecto electronicaProyecto electronica
Proyecto electronica
 
Las webquest jeicy
Las webquest jeicyLas webquest jeicy
Las webquest jeicy
 
Electrónica (1)
Electrónica (1)Electrónica (1)
Electrónica (1)
 
Ciencia de los materiales
Ciencia de los materialesCiencia de los materiales
Ciencia de los materiales
 
MOD-20160810
MOD-20160810MOD-20160810
MOD-20160810
 
Guia laboratorio 1 de electrónica nueva
Guia laboratorio 1 de electrónica nuevaGuia laboratorio 1 de electrónica nueva
Guia laboratorio 1 de electrónica nueva
 
Trabajo modulación (AM)
Trabajo modulación (AM)Trabajo modulación (AM)
Trabajo modulación (AM)
 
Comunicaciones modulacion am
Comunicaciones modulacion amComunicaciones modulacion am
Comunicaciones modulacion am
 
Oscilador de puente wien
Oscilador de puente wienOscilador de puente wien
Oscilador de puente wien
 
Practica6 0708
Practica6 0708Practica6 0708
Practica6 0708
 
2015-03-31_MotifGP
2015-03-31_MotifGP2015-03-31_MotifGP
2015-03-31_MotifGP
 
Desarrollo de un Inversor sinusoidal
Desarrollo de un Inversor sinusoidal Desarrollo de un Inversor sinusoidal
Desarrollo de un Inversor sinusoidal
 
Electronica 2015 competencias-capacidades
Electronica   2015  competencias-capacidadesElectronica   2015  competencias-capacidades
Electronica 2015 competencias-capacidades
 
Amplitud modulada am
Amplitud modulada amAmplitud modulada am
Amplitud modulada am
 
Power capacidades (1)
Power capacidades (1)Power capacidades (1)
Power capacidades (1)
 
Filtros y oscilador de wien
Filtros y oscilador de wienFiltros y oscilador de wien
Filtros y oscilador de wien
 
Osciladores Rc
Osciladores RcOsciladores Rc
Osciladores Rc
 
Puentes de medicion
Puentes de medicionPuentes de medicion
Puentes de medicion
 
Diapositivas instrumentacion corregidas
Diapositivas instrumentacion corregidasDiapositivas instrumentacion corregidas
Diapositivas instrumentacion corregidas
 

Similar a Sumador/Restador en Punto Flotante IEEE 745 en el MIPS

UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13
UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13
UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13
Saúl Montalván Apolaya
 
Tf 011 - reloj electrónico luminoso
Tf   011 -  reloj electrónico luminosoTf   011 -  reloj electrónico luminoso
Tf 011 - reloj electrónico luminoso
zambito123
 
Algoritmo de booth
Algoritmo de boothAlgoritmo de booth
Algoritmo de booth
velleza
 
Monografia contador digital
Monografia contador digitalMonografia contador digital
Monografia contador digital
Juanito Edgar
 
Ejemplos de retardos al paso de la señal
Ejemplos de retardos al paso de la señalEjemplos de retardos al paso de la señal
Ejemplos de retardos al paso de la señal
Ross Jovel
 
Introducción a la electrónica digital
Introducción a la electrónica digitalIntroducción a la electrónica digital
Introducción a la electrónica digital
Daniel Remondegui
 

Similar a Sumador/Restador en Punto Flotante IEEE 745 en el MIPS (20)

UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13
UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13
UNAMAD: CIRCUITOS Y MAQUINAS ELECTRICAS: 3 i@402 clase_16may13
 
Ejercicio 04 Calculos
Ejercicio 04 CalculosEjercicio 04 Calculos
Ejercicio 04 Calculos
 
Sistemas combinacionale1
Sistemas combinacionale1Sistemas combinacionale1
Sistemas combinacionale1
 
4 modelado
4 modelado4 modelado
4 modelado
 
2 unidd control clasico
2 unidd control clasico2 unidd control clasico
2 unidd control clasico
 
Seguidor de linea y metodo de quine mcclusky
Seguidor de linea y metodo de quine mccluskySeguidor de linea y metodo de quine mcclusky
Seguidor de linea y metodo de quine mcclusky
 
Sistemas cedula
Sistemas cedulaSistemas cedula
Sistemas cedula
 
Reloj digital
Reloj digitalReloj digital
Reloj digital
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Tf 011 - reloj electrónico luminoso
Tf   011 -  reloj electrónico luminosoTf   011 -  reloj electrónico luminoso
Tf 011 - reloj electrónico luminoso
 
Algoritmo de booth
Algoritmo de boothAlgoritmo de booth
Algoritmo de booth
 
7 diseño de instalacionedificio
7 diseño de instalacionedificio7 diseño de instalacionedificio
7 diseño de instalacionedificio
 
Tarea4 09 sol
Tarea4 09 solTarea4 09 sol
Tarea4 09 sol
 
Ejercicios_TeoriaOCW_zuz.pdf
Ejercicios_TeoriaOCW_zuz.pdfEjercicios_TeoriaOCW_zuz.pdf
Ejercicios_TeoriaOCW_zuz.pdf
 
Prob resueltost3 mapas k
Prob resueltost3 mapas kProb resueltost3 mapas k
Prob resueltost3 mapas k
 
Intro computacion cuantica_seva
Intro computacion cuantica_sevaIntro computacion cuantica_seva
Intro computacion cuantica_seva
 
CALCULO DE LOS ESFUERZOS Y REACCIONES EN CADA ZONA DE UNA ESTRUCTURA METALICA...
CALCULO DE LOS ESFUERZOS Y REACCIONES EN CADA ZONA DE UNA ESTRUCTURA METALICA...CALCULO DE LOS ESFUERZOS Y REACCIONES EN CADA ZONA DE UNA ESTRUCTURA METALICA...
CALCULO DE LOS ESFUERZOS Y REACCIONES EN CADA ZONA DE UNA ESTRUCTURA METALICA...
 
Monografia contador digital
Monografia contador digitalMonografia contador digital
Monografia contador digital
 
Ejemplos de retardos al paso de la señal
Ejemplos de retardos al paso de la señalEjemplos de retardos al paso de la señal
Ejemplos de retardos al paso de la señal
 
Introducción a la electrónica digital
Introducción a la electrónica digitalIntroducción a la electrónica digital
Introducción a la electrónica digital
 

Más de SNPP

Más de SNPP (20)

RR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfRR00X_RESUMEN.pdf
RR00X_RESUMEN.pdf
 
RR_TAYI.pdf
RR_TAYI.pdfRR_TAYI.pdf
RR_TAYI.pdf
 
1. panel de le ds
1. panel de le ds1. panel de le ds
1. panel de le ds
 
7. incubadora de huevos
7. incubadora de huevos7. incubadora de huevos
7. incubadora de huevos
 
6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real
 
5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder
 
3. radar medidor de velocidad
3. radar medidor de velocidad3. radar medidor de velocidad
3. radar medidor de velocidad
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasico
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresiones
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteres
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectores
 
5.5 instruccion for
5.5 instruccion for5.5 instruccion for
5.5 instruccion for
 
5.4 instruccion do-while
5.4 instruccion do-while5.4 instruccion do-while
5.4 instruccion do-while
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion while
 
5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switch
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-else
 
4. entrada y salida de datos
4. entrada y salida de datos4. entrada y salida de datos
4. entrada y salida de datos
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de biblioteca
 
3.5 operador condicional
3.5 operador condicional3.5 operador condicional
3.5 operador condicional
 
2.10 entrada y salida
2.10 entrada y salida2.10 entrada y salida
2.10 entrada y salida
 

Último

clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
DayanaCarolinaAP
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
bcondort
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
vladimirpaucarmontes
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
BRAYANJOSEPTSANJINEZ
 

Último (20)

PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 

Sumador/Restador en Punto Flotante IEEE 745 en el MIPS

  • 1. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática Proyecto con Microprocesadores II Informe de Trabajo Final Sumador/Restador en Punto Flotante en el MIPS Fecha: 1 de julio de 2013 Pedro D. Ramírez López Alberto Gómez de la Fuente 0.1. Descripción del Proyecto Diseño de un módulo de operaciones entre registros tipo coma flotante F-TYPE de MIPS con base en el estandar IEEE 754. 0.2. Diagrama de Bloques Después de consultar algunos ejemplos sobre la manera de realizar el proyecto, se decide que la mejor manera de implementar el diseño de este proyecto es mediante un banco de datos propio, como se puede apreciar en la figura 1. Para Obtener la Implementación en el Spartan 3AN completa del trabajo diríjase el sgte Link Figura 1: Unidad de Punto Flotante con el Mips AG-PR 1
  • 2. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática 0.3. Diseño de Modulos de Operaciones Internos 0.3.1. Excepción Este módulo puramente combinacional se encarga de comparar los registros que con- tienen los operandos de manera previa a la realización de cualquier operación con el fin de revisar si se esta llegando a generar una excepción. Data A Data B Flag Operation Data C Type xxxx xxxx Overflow add/sub Infinite Operation Process xxxx xxxx Underflow add/sub Zero Operation Process Invalid Operation Infinite xxxx none add/sub NaN Propagation xxxx Infinite none add/sub NaN Propagation Infinite Infinite none add/sub NaN Propagation NaN xxxx none add/sub NaN Propagation xxxx NaN none add/sub NaN Propagation NaN NaN none add/sub NaN Propagation Cuadro 1: Manejador de Excepciones del FPU 0.3.2. Pre-Normalización Este es un módulo donde: 1. Se debe decodificar la información de exponente que se encuentra en el respectivo registro con el fin de procesarla. 2. Se debe hacer la correspondiente operación entre exponentes; es decir como los registros se suman o restan, se debe hallar el exponente mayor entre ambos. si no Figura 2: Diagrama de Flujo del Módulo de Pre-Normalización AG-PR 2
  • 3. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática 0.3.3. Suma/Resta Este módulo debe: 1. Efectuar la operación teniendo en cuenta las consideraciones del estandar de tra- bajar con números con signo y no con complemento a dos. 2. Generar un flag de carry necesaria para el módulo de post-normalización. si si nono si si no nono si Figura 3: Diagrama de Flujo del Módulo de Suma y Resta(Big Alu) 0.3.4. Postnormalización En este módulo se deben: 1. Efectuar corrimientos respectivos para lograr la normalización efectiva de la mantisa con el correspondiente aumento/disminución de pre_exp_result proveniente del módulo de prenormalización. 2. Comprobar la que no haya desbordamiento o sub-desbordamiento de alguna de las variables de modo que no se llegen a estados obsoletos, para ello se deben generar los flags de excepción underflow y overflow. AG-PR 3
  • 4. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática shift_right_post_norm PM_SR mantisa_in(63:0) carry mantisa_out(63:0) demux_64 PM_DEMUX_64 c(63:0) sel a(63:0) b(63:0) amount PM_AMOUNT pre_mant_c(63:0) shift_amount(10:0) mux_64 PM_MUX_64 a(63:0) b(63:0) sel c(63:0) calcular_exponente PM_CALCULAR pre_exp(10:0) shift_amount(10:0) carry mode amount(10:0) exponente(10:0) overflow shift_left_2 PM_SL pre_mant_c(63:0) shift_amount(10:0) mant_shift(63:0) or2 overflow_imp_overflow1 I0 I1 O exponente_final PM_EXPONENTE_FINAL exponente_in(10:0) mantisa_shift_left(63:0) carry mode exponente_out(10:0) overflow underflow redondeo_52 PM_ROUND_52 mant_c(63:0) mantisa(51:0) carry underflow or2 underflow_imp_underflow1 I0 I1 O post_norm:1 PM_POST_NORM pre_exp(10:0) pre_mant_c(63:0) carry mode exponente(10:0) mantisa(51:0) overflow underflow Figura 4: Módulo de Post-Norm implementado en VHDL 0.4. Conversión de simple a doble precisión Especificación del operador: 1. Entrada: SA (1 bit), EA (8 bits) y MA (23 bits) 2. Salida: SR(1 bit), ER (11 bits) y MR (52 bits) 3. El signo no cambia: SR = SA 4. Exponente: hay que cambiar de exceso 127 a exceso 1023 ER = EA + 896 Obs.: Los números desnormalizados son iguales excepto que exponente = −126 y mantisa = 0, Fracción. (exponente NO es -127 : la mantisa ha de ser desplazado a la derecha por un bit más, de forma que incluya el bit principal, que no siempre es 1 en este caso. Esto se balancea incrementando el exponente a -126 para el cálculo.). Por lo tanto, para el caso desnormalizado se tiene que: ER = EA + 896 + 1 5. Mantisa: hay que añadir 52-23 = 29 ceros a la derecha MR = MA||00 · · · 0 6. Hay que tratar correctamente los valores especiales: AG-PR 4
  • 5. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática EA SR ER MR Zero 000000002 SA 000000000002 MA || 00 · · · 0 Subnormal 000000002 SA 89610 MA || 00 · · · 0 ±∞ i NaN 111111112 SA 111111111112 MA || 00 · · · 0 Valores Corrientes (otros valores) SA EA + 896 MA || 00 · · · 0 Cuadro 2: Valores Especiales en el Estándar IEEE745 Tratamiento de los valores especiales Detalle del cálculo del exponente. 27 ! El operador básico – No trata los valores especiales SA EA MA 1 8 23 1 11 52 00..0 896 29 SR ER MR 28 Conversión de simple a doble precisión ! Tratamiento de los valores especiales – Detalle del cálculo del exponente 1 8 23 DEC 0 1…254 255 MUX 896 11 8 1 11 52 SR ER MR SA EA MA 00…02 11…12 Figura 5: Diagrama en bloques del Hardware simple a double precisión. 0.5. Conversión de doble a simple precisión 0.5.1. Estructura del operador 1. El signo no cambia 2. Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en exceso 127 Puede darse desbordamiento 3. Mantisa: hay que eliminar 29 bits por la derecha y redondear AG-PR 5
  • 6. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática 29 Conversión de doble a simple precisión ! Estructura del operador – El signo no cambia – Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en exceso 127 • puede darse desbordamiento – Mantisa: hay que eliminar 29 bits por la derecha y redondear S E M 1 8 23 S E M 1 11 52 –896 Redondeo cA 30 El redondeo ! Circuito para el redondeo al más próximo R M (simple precisión) cA b51 b50 … b29 b28 b27 … b0 redondeo guarda retenidos 0 b29 g red R x 0 x 0 0 1 0 0 1 1 0 1 x 1 1 10 1 MUX 0 1.1111111 1 10.00000 1.00000 + 1.1001101 0 1.10011 + Si R=0, truncar: Si R=1, incrementar: 1.1001111 1 1.10100 + implícito Si cA=1, corregir Figura 6: Diagrama en bloques del Hardware double a simple precisión. 0.6. El redondeo Circuito para el redondeo al más próximo 29 Conversión de doble a simple precisión ! Estructura del operador – El signo no cambia – Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en exceso 127 • puede darse desbordamiento – Mantisa: hay que eliminar 29 bits por la derecha y redondear S E M 1 8 23 S E M 1 11 52 –896 Redondeo cA 30 El redondeo ! Circuito para el redondeo al más próximo R M (simple precisión) cA b51 b50 … b29 b28 b27 … b0 redondeo guarda retenidos 0 R 0 0 1 10 1 MUX 0 1.1111111 1 10.00000 1.00000 + 1.1001101 0 1.10011 + Si R=0, truncar: Si R=1, incrementar: 1.1001111 1 1.10100 + implícito Si cA=1, corregir Figura 7: Diagrama en boques del Hardware de redondeo. AG-PR 6
  • 7. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática b29 guarda redondeo R X 0 X 0 0 1 0 0 1 1 0 1 X 1 1 1 Cuadro 3: Tabla de verdad del Algoritmo de redondeo al más próximo Casos de valores de R Si R = 0, Truncar 29 – El signo no cambia – Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en exceso 127 • puede darse desbordamiento – Mantisa: hay que eliminar 29 bits por la derecha y redondear S E M 1 8 23 S E M 1 11 52 –896 Redondeo cA 30 El redondeo ! Circuito para el redondeo al más p R M (simple precisión) cA b51 b50 … b29 b28 b27 … b0 redondeo guarda retenidos 0 b29 g red R x 0 x 0 0 1 0 0 1 1 0 1 x 1 1 10 1 MUX 0 1.1111111 1 10.00000 1.00000 + 1.1001101 0 1.10011 + Si R=1, incrementar: 1.1001111 1 1.10100 + implícito Si cA=1, corregir Figura 8: Caso de R = 0 Si R = 1, Incrementar 29 structura del operador – El signo no cambia – Exponente: hay que cambiar de 11 bits en exceso 1023 a 8 bits en exceso 127 • puede darse desbordamiento – Mantisa: hay que eliminar 29 bits por la derecha y redondear S E M 1 8 23 S E M 1 11 52 –896 Redondeo cA 30 edondeo rcuito para el redondeo al más próximo R M (simple precisión) 1 b50 … b29 b28 b27 … b0 redondeo guarda retenidos 0 b29 g red R x 0 x 0 0 1 0 0 1 1 0 1 x 1 1 10 1 MUX 0 1.1111111 1 10.00000 1.00000 + 1.1001101 0 1.10011 + Si R=0, truncar: Si R=1, incrementar: 1.1001111 1 1.10100 + implícito Si cA=1, corregir Figura 9: Caso R = 1 Si CA = 1, Corregir AG-PR 7
  • 8. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática 30 ircuito para el redondeo al más próximo R M (simple precisión) 1 b50 … b29 b28 b27 … b0 redondeo guarda retenidos 0 b29 g red R x 0 x 0 0 1 0 0 1 1 0 1 x 1 1 10 1 MUX 0 1.1111111 1 10.00000 1.00000 + 1.1001101 0 1.10011 + Si R=0, truncar: Si R=1, incrementar: 1.1001111 1 1.10100 + implícito Si c Figura 10: Caso CA = 1 0.7. Resultados Aquí el código del test bench de la implementacion en vhdl del trabajo LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --USE ieee.numeric_std.ALL; ENTITY floating_point_unit_tbm IS END floating_point_unit_tbm; ARCHITECTURE behavior OF floating_point_unit_tbm IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT floating_point_unit PORT( a1 : IN std_logic_vector(31 downto 0); a2 : IN std_logic_vector(31 downto 0); b1 : IN std_logic_vector(31 downto 0); b2 : IN std_logic_vector(31 downto 0); mode : IN std_logic; operation : IN std_logic; c1 : OUT std_logic_vector(31 downto 0); c2 : OUT std_logic_vector(31 downto 0) ); END COMPONENT; --Inputs signal a1 : std_logic_vector(31 downto 0) := (others => ’0’); signal a2 : std_logic_vector(31 downto 0) := (others => ’0’); signal b1 : std_logic_vector(31 downto 0) := (others => ’0’); AG-PR 8
  • 9. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática signal b2 : std_logic_vector(31 downto 0) := (others => ’0’); signal mode : std_logic := ’0’; signal operation : std_logic := ’0’; --Outputs signal c1 : std_logic_vector(31 downto 0); signal c2 : std_logic_vector(31 downto 0); BEGIN -- Instantiate the Unit Under Test (UUT) uut: floating_point_unit PORT MAP ( a1 => a1, a2 => a2, b1 => b1, b2 => b2, mode => mode, operation => operation, c1 => c1, c2 => c2 ); -- Stimulus process stim_proc: process begin -- hold reset state for 100 ns. wait for 100 ns; -- insert stimulus here --Modo simple a1 <= X"40C80000";--6.25 a2 <= X"00000000"; b1 <= X"40C80000"; b2 <= X"00000000"; mode <= ’0’; -- simple operation <= ’0’; -- suma wait for 100 ns; a1 <= X"40C80000";--6.25 a2 <= X"00000000"; b1 <= X"40200000";--2.5 b2 <= X"00000000"; mode <= ’0’; -- simple operation <= ’1’; -- resta wait for 100 ns; AG-PR 9
  • 10. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática a1 <= X"40C80000";--6.25 a2 <= X"00000000"; b1 <= X"40C80000";--2.5 b2 <= X"00000000"; mode <= ’0’; -- simple operation <= ’1’; -- resta wait for 100 ns; a1 <= X"41020000";--8.125 a2 <= X"00000000"; b1 <= X"41020000";--8.125 b2 <= X"00000000"; mode <= ’0’; -- simple operation <= ’1’; -- resta wait for 100 ns; a1 <= X"3FF40000";--1.25 en double a2 <= X"00000000"; b1 <= X"3FD00000";--0.25 en double b2 <= X"00000000"; mode <= ’1’; -- double operation <= ’1’; -- resta wait for 100 ns; a1 <= X"3FF40000";--1.25 en double a2 <= X"00000000"; b1 <= X"3FD00000";--0.25 en double b2 <= X"00000000"; mode <= ’1’; -- double operation <= ’0’; -- suma wait for 100 ns; wait; end process; END; AG-PR 10
  • 11. CYT808 Universidad Católica “Nuestra Señora de Asunción” Proyecto con Microprocesadores II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre IX Departamento de Electrónica e Informática Los resultados se pueden ver en la formas de onda de salida donde los resultados estan en hexadecimal, a1,a2 es el primer operando, b1,b2 es el segundo operando, c1,c2 es el resultado, mode es ’0’ en forma simple y ’1’ en forma double, operation es una resta cuando es ’1’ y ’0’ cuando es una suma, Si se opera en fornato simple solo se opera sobre los operandos a1,b1 y el resultado tiene sentido solo en c1, en caso de operar en modo double los operandos son en conjunto a1&a2(64 bits) y b1&b2(64 bits) y el resultado es c1&c2(64 bits). 0 ns 100 ns 200 ns 300 ns 400 ns 500 ns 600 ns 700 ns Figura 11: Resultados de la FPU 0.8. Referencias 1. Organización y Diseño de Computadores David A. Patterson, McGraw Hill, 3Th Edición 2. http://www.zator.com/Cpp/E2_2_4a1.htm 3. http://www6.uniovi.es/ãntonio/uned/ieee754/IEEE-754hex32.html 4. http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html 5. http://www.h-schmidt.net/FloatConverter/ 6. http://www.mipshelper.com/mips-converter.php AG-PR 11