Line 247... |
Line 247... |
--! 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ñ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).
|
|
--!Adicionalmente codifca en formato one HOT la cola de la instruccion en la que se escriben los resultados de la ultima instrucción que haya finalizado.
|
sres0f <= resf_vector(0);
|
sres0f <= resf_vector(0);
|
sres123f <= resf_vector(1);
|
sres123f <= resf_vector(1);
|
sres24f <= resf_vector(2);
|
sres24f <= resf_vector(2);
|
sres567f <= resf_vector(3);
|
sres567f <= resf_vector(3);
|
fullQ:process(sres0f,sres123f,sres24f,sres567f,unary,crossprod,addsub,eoi_int)
|
fullQ:process(sres0f,sres123f,sres24f,sres567f,unary,crossprod,addsub,eoi_int)
|
begin
|
begin
|
if unary='0' then
|
if unary='0' then
|
if addsub='1' then
|
|
--! Suma o Resta
|
if addsub='1' or crossprod='1' then
|
|
--! Suma o Resta o producto cruz, comparten la misma cola de resultados.
|
eoi_demuxed_int <= "00"&eoi_int&'0';
|
eoi_demuxed_int <= "00"&eoi_int&'0';
|
resf_event <= sres123f;
|
resf_event <= sres123f;
|
elsif crossprod='0' then
|
else
|
--! Producto Punto
|
--! Producto Punto utiliza como salida las colas 2 y 4
|
eoi_demuxed_int <= '0'&eoi_int&"00";
|
eoi_demuxed_int <= '0'&eoi_int&"00";
|
resf_event <= sres24f;
|
resf_event <= sres24f;
|
else
|
|
--! Producto Cruz
|
|
eoi_demuxed_int <= "00"&eoi_int&'0';
|
|
resf_event <= sres123f;
|
|
end if;
|
end if;
|
elsif crossprod='1' then
|
elsif crossprod='1' then
|
|
|
--! Normalización o Producto Escalar
|
--! Normalización o Producto Escalar
|
eoi_demuxed_int <= eoi_int&"000";
|
eoi_demuxed_int <= eoi_int&"000";
|