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

Subversion Repositories raytrac

[/] [raytrac/] [branches/] [fp_sgdma/] [ap_n_dpc.vhd] - Diff between revs 236 and 242

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

Rev 236 Rev 242
Line 31... Line 31...
 
 
entity ap_n_dpc is
entity ap_n_dpc is
 
 
        port (
        port (
 
 
 
                p0,p1,p2                                        : out std_logic_vector(31 downto 0);
 
 
 
 
                clk                                             : in    std_logic;
                clk                                             : in    std_logic;
                rst                                             : in    std_logic;
                rst                                             : in    std_logic;
 
 
                ax                                              : in    std_logic_vector(31 downto 0);
                ax                                              : in    std_logic_vector(31 downto 0);
                ay                                              : in    std_logic_vector(31 downto 0);
                ay                                              : in    std_logic_vector(31 downto 0);
Line 70... Line 73...
        constant ssync_chain_max : integer :=27;
        constant ssync_chain_max : integer :=27;
        constant ssync_chain_min : integer :=2;
        constant ssync_chain_min : integer :=2;
 
 
        --! Tunnning delay
        --! Tunnning delay
        constant adder2_delay: integer := 1;
        constant adder2_delay: integer := 1;
        constant prod3_delay : integer := 2;
        constant adder1_delay : integer := 1;
 
 
        --!TBXSTART:FACTORS_N_ADDENDS
        --!TBXSTART:FACTORS_N_ADDENDS
        signal sfactor0         : std_logic_vector(31 downto 0);
        signal sfactor0         : std_logic_vector(31 downto 0);
        signal sfactor1         : std_logic_vector(31 downto 0);
        signal sfactor1         : std_logic_vector(31 downto 0);
        signal sfactor2         : std_logic_vector(31 downto 0);
        signal sfactor2         : std_logic_vector(31 downto 0);
Line 273... Line 276...
        process(clk,rst,sync_chain_1)
        process(clk,rst,sync_chain_1)
        begin
        begin
                if rst=rstMasterValue then
                if rst=rstMasterValue then
                        ssync_chain(ssync_chain_max downto ssync_chain_min) <= (others => '0');
                        ssync_chain(ssync_chain_max downto ssync_chain_min) <= (others => '0');
 
 
 
                        p0 <= (others => '0');
 
                        p1 <= (others => '0');
 
                        p2 <= (others => '0');
 
 
                elsif clk'event and clk='1' then
                elsif clk'event and clk='1' then
                        for i in ssync_chain_max downto ssync_chain_min+1 loop
                        for i in ssync_chain_max downto ssync_chain_min+1 loop
                                ssync_chain(i) <= ssync_chain(i-1);
                                ssync_chain(i) <= ssync_chain(i-1);
                        end loop;
                        end loop;
                        ssync_chain(ssync_chain_min) <= sync_chain_1;
                        ssync_chain(ssync_chain_min) <= sync_chain_1;
 
 
 
                        --! Salida de los multiplicadores p0 p1 p2 
 
                        if ssync_chain(21)='1' then
 
                                p0 <= sa0; -- El resultado quedara consignado en VZ1=BASE+1
 
                        elsif ssync_chain(22)='1' then
 
                                p1 <= sa0; -- El resutlado quedara consignado en VY1=BASE+2
 
                        elsif ssync_chain(23)='1' then
 
                                p2 <= sa0; -- El resultado quedara consignado en VX1=BASE+3
 
                        end if;
 
 
                end if;
                end if;
        end process sync_chain_proc;
        end process sync_chain_proc;
 
 
 
 
 
 
Line 400... Line 417...
                                ssumando4 <= az;
                                ssumando4 <= az;
                                ssumando5 <= bz;
                                ssumando5 <= bz;
 
 
                                if dcs(1)='1' then
                                if dcs(1)='1' then
                                        sq2_d <= ssq32;
                                        sq2_d <= ssq32;
                                        sq2_w <= ssync_chain(22);
                                        sq2_w <= ssync_chain(22+adder1_delay);
                                else
                                else
                                        sq2_d <= sa1;
                                        sq2_d <= sa1;
                                        sq2_w <= ssync_chain(21);
                                        sq2_w <= ssync_chain(21+adder1_delay);
                                end if;
                                end if;
 
 
                                sqr_dx <= sp3;
                                sqr_dx <= sp3;
                                sqr_dy <= sp4;
                                sqr_dy <= sp4;
                                sqr_dz <= sp5;
                                sqr_dz <= sp5;
Line 467... Line 484...
        )
        )
        port    map (
        port    map (
                sclr            => '0',
                sclr            => '0',
                clock           => clk,
                clock           => clk,
                rdreq           => ssync_chain(13),
                rdreq           => ssync_chain(13),
                wrreq           => ssync_chain(5+adder2_delay),
                wrreq           => ssync_chain(5),
                data            => sp2,
                data            => sp2,
                q                       => sq0_q
                q                       => sq0_q
        );
        );
        --! Colas internas de producto punto, ubicada en el pipe line aritm&eacute;co. Paralelo a los sumadores a0 y a2.  
        --! Colas internas de producto punto, ubicada en el pipe line aritm&eacute;co. Paralelo a los sumadores a0 y a2.  
        q2 : scfifo --! Debe ir registrada la salida.
        q2 : scfifo --! Debe ir registrada la salida.

powered by: WebSVN 2.1.0

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