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

Subversion Repositories raytrac

[/] [raytrac/] [branches/] [fp_sgdma/] [ap_n_dpc.vhd] - Diff between revs 149 and 150

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

Rev 149 Rev 150
Line 47... Line 47...
                add32blki                               : out   std_logic_vector ((08*width)-1 downto 0);        --! Entrada de los 8 sumandos del bloque de 4 sumadores.  
                add32blki                               : out   std_logic_vector ((08*width)-1 downto 0);        --! Entrada de los 8 sumandos del bloque de 4 sumadores.  
                resw                                    : out   std_logic_vector (4 downto 0);                           --! Salidas de escritura y lectura en las colas de resultados.
                resw                                    : out   std_logic_vector (4 downto 0);                           --! Salidas de escritura y lectura en las colas de resultados.
                fifo32x09_w                             : out   std_logic;
                fifo32x09_w                             : out   std_logic;
                fifo32x23_w,fifo32x09_r : out   std_logic;
                fifo32x23_w,fifo32x09_r : out   std_logic;
                fifo32x23_r                             : out   std_logic;
                fifo32x23_r                             : out   std_logic;
                res567f,res13f                  : in    std_logic;                                                                      --! Entradas de la señal de full de las colas de resultados. 
                resf_vector                             : in    std_logic_vector (3 downto 0);                           --! Entradas de la señal de full de las colas de resultados. 
                res2f,res0f                             : in    std_logic;
                resf_event                              : out   std_logic;                                                                      --! Salida decodificada que indica que la cola de resultados de la operación que está en curso.
                resf                                    : out   std_logic;                                                                      --! Salida decodificada que indica que la cola de resultados de la operación que está en curso.
 
                resultoutput                    : out   std_logic_vector ((08*width)-1 downto 0)         --! 8 salidas de resultados, pues lo máximo que podrá calcularse por cada clock son 2 vectores. 
                resultoutput                    : out   std_logic_vector ((08*width)-1 downto 0)         --! 8 salidas de resultados, pues lo máximo que podrá calcularse por cada clock son 2 vectores. 
        );
        );
end dpc;
end dpc;
 
 
architecture dpc_arch of dpc is
architecture dpc_arch of dpc is
Line 90... Line 89...
        signal ssqr32blk,sinv32blk                      : std_logic_vector(width-1 downto 0);
        signal ssqr32blk,sinv32blk                      : std_logic_vector(width-1 downto 0);
        signal ssync_chain                                      : std_logic_vector(28 downto 0);
        signal ssync_chain                                      : std_logic_vector(28 downto 0);
        signal ssync_chain_d                            : std_logic;
        signal ssync_chain_d                            : std_logic;
        signal sres567w,sres123w,sres2w         : std_logic;
        signal sres567w,sres123w,sres2w         : std_logic;
        signal sres0w,sres4w                            : std_logic;
        signal sres0w,sres4w                            : std_logic;
 
        signal sres567f,sres123f                        : std_logic; --! Entradas de la señal de full de las colas de resultados. 
 
        signal sres24f,sres0f                           : std_logic;
 
 
 
 
        constant rstMasterValue : std_logic := '0';
        constant rstMasterValue : std_logic := '0';
 
 
begin
begin
Line 228... Line 229...
        --! Conectar las entradas del sumador a, a la salida 
        --! Conectar las entradas del sumador a, a la salida 
        ssumando(s6) <= sadd32blk(a2);
        ssumando(s6) <= sadd32blk(a2);
        ssumando(s7) <= sdpfifo_q(dpfifocd);
        ssumando(s7) <= sdpfifo_q(dpfifocd);
 
 
        --!El siguiente proceso conecta la se&ntilde;al de cola "casi llena", de la cola que corresponde al resultado de la operaci&oacute;n indicada por los bit UCA (Unary, Crossprod, Addsub).
        --!El siguiente proceso conecta la se&ntilde;al de cola "casi llena", de la cola que corresponde al resultado de la operaci&oacute;n indicada por los bit UCA (Unary, Crossprod, Addsub).
        fullQ:process(res0f,res13f,res2f,res567f,unary,crossprod,addsub)
        sres0f          <= resf_vector(0);
 
        sres123f        <= resf_vector(1);
 
        sres24f         <= resf_vector(2);
 
        sres567f        <= resf_vector(3);
 
        fullQ:process(sres0f,sres123f,sres24f,sres567f,unary,crossprod,addsub,eoi_int)
        begin
        begin
                if unary='0' then
                if unary='0' then
                        if crossprod='1' or addsub='1' then
                        if crossprod='1' or addsub='1' then
                                eoi_demuxed_int <= "00"&eoi_int&'0';
                                eoi_demuxed_int <= "00"&eoi_int&'0';
                                resf <= res13f;
                                resf_event <= sres123f;
                        else
                        else
                                eoi_demuxed_int <= '0'&eoi_int&"00";
                                eoi_demuxed_int <= '0'&eoi_int&"00";
                                resf <= res2f;
                                resf_event <= sres24f;
                        end if;
                        end if;
                elsif crossprod='1' or addsub='1' then
                elsif crossprod='1' or addsub='1' then
                        eoi_demuxed_int <= eoi_int&"000";
                        eoi_demuxed_int <= eoi_int&"000";
                        resf <= res567f;
                        resf_event <= sres567f;
                else
                else
                        eoi_demuxed_int <= "000"&eoi_int;
                        eoi_demuxed_int <= "000"&eoi_int;
                        resf <= res0f;
                        resf_event <= sres0f;
                end if;
                end if;
        end process;
        end process;
 
 
        --! Decodificaci&oacute;n del Datapath.
        --! Decodificaci&oacute;n del Datapath.
        mul:process(unary,addsub,crossprod,sparaminput,sinv32blk,sprd32blk,sadd32blk,sdpfifo_q,snormfifo_q)
        mul:process(unary,addsub,crossprod,sparaminput,sinv32blk,sprd32blk,sadd32blk,sdpfifo_q,snormfifo_q)

powered by: WebSVN 2.1.0

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