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

Subversion Repositories raytrac

[/] [raytrac/] [trunk/] [fpbranch/] [add/] [ema32x2.vhd] - Diff between revs 107 and 118

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

Rev 107 Rev 118
Line 238... Line 238...
                        for i in 39 downto 0 loop
                        for i in 39 downto 0 loop
                                s1signeddata56a(i+16)  <= s1signa xor s1data40a(i);
                                s1signeddata56a(i+16)  <= s1signa xor s1data40a(i);
                                s1signeddata56b(i) <= s1signb xor s1data40b(i);
                                s1signeddata56b(i) <= s1signb xor s1data40b(i);
                        end loop;
                        end loop;
                end if;
                end if;
 
 
        end process;
        end process;
 
 
 
 
        s1b2b1s:
        s1b2b1s:
        for i in 22 downto 0 generate
        for i in 22 downto 0 generate
                b1s(i) <= s1b(22-i);
                b1s(i) <= s1b(22-i);
        end generate s1b2b1s;
        end generate s1b2b1s;
        signa:
        signa:
        for i in 22 downto 0 generate
        for i in 22 downto 0 generate
                s1sma(i) <= s1a(31) xor s1a(i);
                s1sma(i) <= s1a(31) xor s1a(i);
        end generate;
        end generate;
        s1sma(23) <= not(s1a(31));
        s1sma(23) <= not(s1a(31));
        s1sma(24) <= s1a(31);
        s1sma(24) <= s1a(31);
 
 
 
 
        --! Combinatorial Gremlin, Etapa2: Finalizar la denormalizaci&oacute;n de b.
        --! Combinatorial Gremlin, Etapa2: Finalizar la denormalizaci&oacute;n de b.
        s2signslab:
        s2signslab:
        for i in 16 downto 0 generate
        for i in 16 downto 0 generate
                s2slab(i) <= s2smb(24);
                s2slab(i) <= s2smb(24);
        end generate s2signslab;
        end generate s2signslab;
 
 
        --! Combinatorial Gremlin, Etapa 3 Realizar la suma, quitar el signo de la mantissa y codificar el corrimiento hacia la izquierda. 
        --! Combinatorial Gremlin, Etapa 3 Realizar la suma, quitar el signo de la mantissa y codificar el corrimiento hacia la izquierda. 
        --adder:sadd2
        --adder:sadd2
        --port map (s3sma(24)&s3sma,s3smb(24)&s3smb,dpc,s3res);
        --port map (s3sma(24)&s3sma,s3smb(24)&s3smb,dpc,s3res);
        process (s3sma,s3smb)
        process (s3sma,s3smb)
        begin
        begin
                --! Magia: La suma ocurre aqui
                --! Magia: La suma ocurre aqui
                s3res <= (s3sma(24)&s3sma)+(s3smb(24)&s3smb);
                s3res <= (s3sma(24)&s3sma)+(s3smb(24)&s3smb);
        end process;
        end process;
 
 
        process(s3res)
        process(s3res)
                variable lshift : integer range 24 downto 0;
                variable lshift : integer range 24 downto 0;
        begin
        begin
                lshift:=24;
                lshift:=24;
 
 
Line 283... Line 276...
                        end if;
                        end if;
                end loop;
                end loop;
                s3ures(24) <= s3res(24) xor s3res(25);
                s3ures(24) <= s3res(24) xor s3res(25);
                s3lshift <= conv_std_logic_vector(lshift,5);
                s3lshift <= conv_std_logic_vector(lshift,5);
        end process;
        end process;
 
 
 
 
        --! Combinatorial Gremlin, Etapa 4 corrimientos y normalizaci&oacute;n de la mantissa resultado.
        --! Combinatorial Gremlin, Etapa 4 corrimientos y normalizaci&oacute;n de la mantissa resultado.
        normsupershiftermult:lpm_mult
        normsupershiftermult:lpm_mult
        generic map ("DEDICATED_MULTIPLIER_CIRCUITRY=YES,MAXIMIZE_SPEED=9","UNSIGNED","LPM_MULT",9,9,18)
        generic map ("DEDICATED_MULTIPLIER_CIRCUITRY=YES,MAXIMIZE_SPEED=9","UNSIGNED","LPM_MULT",9,9,18)
        port    map (shl(conv_std_logic_vector(1,9),s4lshift(2 downto 0)),s4ures(22 downto 14),s4nrmS);
        port    map (shl(conv_std_logic_vector(1,9),s4lshift(2 downto 0)),s4ures(22 downto 14),s4nrmS);
        normhighshiftermult:lpm_mult
        normhighshiftermult:lpm_mult

powered by: WebSVN 2.1.0

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