Line 43... |
Line 43... |
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.
|
res567w,res13w,res2w : out std_logic; --! 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.
|
res0w,res4w,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.
|
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 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.
|
Line 88... |
Line 88... |
signal snormfifo_q,snormfifo_d : vectorblock03;
|
signal snormfifo_q,snormfifo_d : vectorblock03;
|
signal sdpfifo_q : vectorblock02;
|
signal sdpfifo_q : vectorblock02;
|
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 sres0w,sres4w : std_logic;
|
|
|
|
|
constant rstMasterValue : std_logic := '0';
|
constant rstMasterValue : std_logic := '0';
|
|
|
begin
|
begin
|
Line 113... |
Line 115... |
--! Escritura en las colas de resultados y escritura/lectura en las colas intermedias mediante cadena de resultados.
|
--! Escritura en las colas de resultados y escritura/lectura en las colas intermedias mediante cadena de resultados.
|
fifo32x09_w <= ssync_chain(5);
|
fifo32x09_w <= ssync_chain(5);
|
fifo32x23_w <= ssync_chain(1);
|
fifo32x23_w <= ssync_chain(1);
|
fifo32x09_r <= ssync_chain(13);
|
fifo32x09_r <= ssync_chain(13);
|
fifo32x23_r <= ssync_chain(24);
|
fifo32x23_r <= ssync_chain(24);
|
res0w <= ssync_chain(23);
|
sres0w <= ssync_chain(23);
|
res4w <= ssync_chain(22);
|
sres4w <= ssync_chain(22);
|
|
resw <= sres567w&sres4w&sres123w&sres2w&sres0w;
|
sync_chain_comb:
|
sync_chain_comb:
|
process (ssync_chain,addsub,crossprod,unary)
|
process (ssync_chain,addsub,crossprod,unary)
|
begin
|
begin
|
if unary='1' then
|
if unary='1' then
|
res567w <= ssync_chain(28);
|
sres567w <= ssync_chain(28);
|
else
|
else
|
res567w <= ssync_chain(4);
|
sres567w <= ssync_chain(4);
|
end if;
|
end if;
|
|
|
if addsub='1' then
|
if addsub='1' then
|
res13w <= ssync_chain(9);
|
sres123w <= ssync_chain(9);
|
res2w <= ssync_chain(9);
|
sres2w <= ssync_chain(9);
|
else
|
else
|
res13w <= ssync_chain(13);
|
sres123w <= ssync_chain(13);
|
if crossprod='1' then
|
if crossprod='1' then
|
res2w <= ssync_chain(13);
|
sres2w <= ssync_chain(13);
|
else
|
else
|
res2w <= ssync_chain(22);
|
sres2w <= ssync_chain(22);
|
end if;
|
end if;
|
end if;
|
end if;
|
end process sync_chain_comb;
|
end process sync_chain_comb;
|
|
|
|
|