OpenCores
URL https://opencores.org/ocsvn/raytrac/raytrac/trunk

Subversion Repositories raytrac

[/] [raytrac/] [branches/] [fp/] [fadd32.vhd] - Diff between revs 163 and 164

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 163 Rev 164
Line 111... Line 111...
                        if (s0b(30 downto 23)&s0a(30 downto 23))=x"0000" then
                        if (s0b(30 downto 23)&s0a(30 downto 23))=x"0000" then
                                s1zero <= '0';
                                s1zero <= '0';
                        else
                        else
                                s1zero <= '1';
                                s1zero <= '1';
                        end if;
                        end if;
                        s1delta <= not(s0delta(7)) & (s0delta(7) xor s0delta(4))&(s0delta(7) xor s0delta(3)) & s0delta(2 downto 0);
                        s1delta <= s0delta(7) & (s0delta(7) xor s0delta(4))&(s0delta(7) xor s0delta(3)) & s0delta(2 downto 0);
                        case s0delta(7) is
                        case s0delta(7) is
                                when '1'  =>
                                when '1'  =>
                                        s1exp <= s0b(30 downto 23);
                                        s1exp <= s0b(30 downto 23);
                                        s1umantshift <= s0a(31)&s0a(22 downto 0);
                                        s1umantshift <= s0a(31)&s0a(22 downto 0);
                                        s1umantfixed <= s0b(31)&s0b(22 downto 0);
                                        s1umantfixed <= s0b(31)&s0b(22 downto 0);
Line 130... Line 130...
                                when "00" =>    s2umantshift <= s1umantshift(23)&s1postshift(23 downto 0);
                                when "00" =>    s2umantshift <= s1umantshift(23)&s1postshift(23 downto 0);
                                when "01" =>    s2umantshift <= s1umantshift(23)&x"00"&s1postshift(23 downto 8);
                                when "01" =>    s2umantshift <= s1umantshift(23)&x"00"&s1postshift(23 downto 8);
                                when "10" =>    s2umantshift <= s1umantshift(23)&x"0000"&s1postshift(23 downto 16);
                                when "10" =>    s2umantshift <= s1umantshift(23)&x"0000"&s1postshift(23 downto 16);
                                when others =>  s2umantshift <= (others => '0');
                                when others =>  s2umantshift <= (others => '0');
                        end case;
                        end case;
 
 
                        s2mantfixed <= s1umantfixed(23) &         ( ( ('1'&s1umantfixed(22 downto 0)) xor s1xorslab)   + ( x"00000"&"000"&s1umantfixed(23)  )   );
                        s2mantfixed <= s1umantfixed(23) &         ( ( ('1'&s1umantfixed(22 downto 0)) xor s1xorslab)   + ( x"00000"&"000"&s1umantfixed(23)  )   );
                        s2exp  <= s1exp;
                        s2exp  <= s1exp;
 
 
                        --! Etapa2: Signar la mantissa denormalizada.
                        --! Etapa2: Signar la mantissa denormalizada.
                        s3mantfixed <= s2mantfixed;
                        s3mantfixed <= s2mantfixed;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.