Line 36... |
Line 36... |
sqr32blko,inv32blko : in std_logic_vector (width-1 downto 0); --! Salidas de la raiz cuadradas y el inversor.
|
sqr32blko,inv32blko : in std_logic_vector (width-1 downto 0); --! Salidas de la raiz cuadradas y el inversor.
|
fifo32x23_q : in std_logic_vector (03*width-1 downto 0); --! Salida de la cola intermedia.
|
fifo32x23_q : in std_logic_vector (03*width-1 downto 0); --! Salida de la cola intermedia.
|
fifo32x09_q : in std_logic_vector (02*width-1 downto 0); --! Salida de las colas de producto punto.
|
fifo32x09_q : in std_logic_vector (02*width-1 downto 0); --! Salida de las colas de producto punto.
|
unary,crossprod,addsub : in std_logic; --! Bit con el identificador del bloque AB vs CD e identificador del sub bloque (A/B) o (C/D).
|
unary,crossprod,addsub : in std_logic; --! Bit con el identificador del bloque AB vs CD e identificador del sub bloque (A/B) o (C/D).
|
sync_chain_0 : in std_logic; --! Señal de dato valido que se va por toda la cadena de sincronizacion.
|
sync_chain_0 : in std_logic; --! Señal de dato valido que se va por toda la cadena de sincronizacion.
|
|
eoi_int : in std_logic; --! Sennal de interrupción de final de instrucción.
|
|
eoi_demuxed_int : out std_logic_vector (3 downto 0); --! Señal de interrupción de final de instrucción pero esta vez va asociada a la instruccón UCA.
|
sqr32blki,inv32blki : out std_logic_vector (width-1 downto 0); --! Salidas de las 2 raices cuadradas y los 2 inversores.
|
sqr32blki,inv32blki : out std_logic_vector (width-1 downto 0); --! Salidas de las 2 raices cuadradas y los 2 inversores.
|
fifo32x26_d : out std_logic_vector (03*width-1 downto 0); --! Entrada a la cola intermedia para la normalización.
|
fifo32x26_d : out std_logic_vector (03*width-1 downto 0); --! Entrada a la cola intermedia para la normalización.
|
fifo32x09_d : out std_logic_vector (02*width-1 downto 0); --! Entrada a las colas intermedias del producto punto.
|
fifo32x09_d : out std_logic_vector (02*width-1 downto 0); --! Entrada a las colas intermedias del producto punto.
|
prd32blki : out std_logic_vector ((12*width)-1 downto 0); --! Entrada de los 12 factores en el bloque de multiplicación respectivamente.
|
prd32blki : out std_logic_vector ((12*width)-1 downto 0); --! Entrada de los 12 factores en el bloque de multiplicación respectivamente.
|
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.
|
Line 47... |
Line 49... |
res0w,res4w,fifo32x09_w : out std_logic;
|
res0w,res4w,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.
|
res567f,res13f : in std_logic; --! Entradas de la señal de full de las colas de resultados.
|
res2f,res0f : in std_logic;
|
res2f,res0f : in std_logic;
|
resf : out std_logic; --! Salida decodificada que indica que la cola de resultados de la operación 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 224... |
Line 226... |
--!El siguiente proceso conecta la señal de cola "casi llena", de la cola que corresponde al resultado de la operación indicada por los bit UCA (Unary, Crossprod, Addsub).
|
--!El siguiente proceso conecta la señal de cola "casi llena", de la cola que corresponde al resultado de la operación indicada por los bit UCA (Unary, Crossprod, Addsub).
|
fullQ:process(res0f,res13f,res2f,res567f,unary,crossprod,addsub)
|
fullQ:process(res0f,res13f,res2f,res567f,unary,crossprod,addsub)
|
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';
|
resf <= res13f;
|
resf <= res13f;
|
else
|
else
|
|
eoi_demuxed_int <= '0'&eoi_int&"00";
|
resf <= res2f;
|
resf <= res2f;
|
end if;
|
end if;
|
elsif crossprod='1' or addsub='1' then
|
elsif crossprod='1' or addsub='1' then
|
|
eoi_demuxed_int <= eoi_int&"000";
|
resf <= res567f;
|
resf <= res567f;
|
else
|
else
|
|
eoi_demuxed_int <= "000"&eoi_int;
|
resf <= res0f;
|
resf <= res0f;
|
end if;
|
end if;
|
end process;
|
end process;
|
|
|
--! Decodificación del Datapath.
|
--! Decodificación del Datapath.
|