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

Subversion Repositories raytrac

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /raytrac/branches/fp
    from Rev 135 to Rev 136
    Reverse comparison

Rev 135 → Rev 136

/dpc.vhd
29,14 → 29,16
--!external_readable_widthad : integer := integer(ceil(log(real(external_readable_blocks),2.0))))
);
port (
clk : in std_logic;
paraminput : in std_logic_vector ((12*width)-1 downto 0); --! Vectores A,B,C,D
prd32blko : in std_logic_vector ((06*width)-1 downto 0); --! Salidas de los 6 multiplicadores.
add32blko : in std_logic_vector ((04*width)-1 downto 0); --! Salidas de los 4 sumadores.
sqr32blko,inv32blko : in std_logic_vector (width-1 downto 0); --! Salidas de las 2 raices cuadradas y los 2 inversores.
sqr32blko,inv32blko : in std_logic_vector (width-1 downto 0); --! Salidas de la raiz cuadradas y el inversor.
fifo32x26_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.
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).
scalar : in std_logic;
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.
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.
93,14 → 95,27
add32blki(i*width+width-1 downto i*width) <= ssumando(i);
resultoutput(i*width+width-1 downto i*width) <= sresult(i);
end generate stuff08;
stuff06:
for i in 05 downto 0 generate
sprd32blk(i) <= prd32blko(i*width+width-1 downto i*width);
end generate stuff06;
process (clk)
begin
if clk'event and clk='1' then
for i 05 downto 0 loop
sprd32blk(p0) <= prd32blko(i*width+width-1 downto i*width);
end loop;
end if;
end process;
stuff04:
for i in 03 downto 0 generate
for i in 03 downto 1 generate
sadd32blk(i) <= add32blko(i*width+width-1 downto i*width);
end generate stuff04;
process (clk)
begin
if clk'event and clk='1' then
sadd32blk(a0) <= add32blko(a0*width+width-1 downto a0*width);
sinv32blk <= inv32blko;
end if;
end process;
stuff03:
for i in 02 downto 0 generate
snormfifo_q(i) <= fifo32x26_q(i*width+width-1 downto i*width);
115,10 → 130,9
sinv32blk <= inv32blko;
ssqr32blk <= sqr32blko;
--! Salidas de los distintos resultados;
--! Colas de salida de los distintos resultados;
sresult(0) <= ssqr32blk;
sresult(1) <= sadd32blk(a0);
sresult(2) <= sadd32blk(a1);
133,11 → 147,20
snormfifo_d(qy) <= sparaminput(ay);
snormfifo_d(qz) <= sparaminput(az);
--! Signo de los 3 primeros sumadores
--! La entrada al inversor SIEMPRE viene con la salida de la raiz cuadrada
inv32blki <= sqr32blko;
 
sqr32blki <= sadd32blk(a1);
--! Conectar las entradas del sumador a, a la salida
ssumando(s6) <= sadd32blk(a2);
ssumando(s7) <= sdpfifo_q(dpfifocd);
mul:process(unary,addsub,crossprod,scalar,sparaminput,sinv32blk,sprd32blk,sadd32blk,sdpfifo_q,snormfifo_q)
begin
199,8 → 222,7
end if;
ssumando(s6) <= sadd32blk(a2);
ssumando(s7) <= sdpfifo_q(dpfifocd);
if addsub='1' then
ssumando(s0) <= sparaminput(ax);
ssumando(s1) <= sparaminput(bx);
/memblock.vhd
140,8 → 140,8
 
begin
 
dpfifo : scfifo
generic map ("OFF","Cyclone III","RAM_BLOCK_TYPE=M9K",9,"OFF","SCFIFO",64,4,"OFF","OFF","ON")
dpfifo : scfifo --! Debe ir registrada la salida.
generic map ("ON","Cyclone III","RAM_BLOCK_TYPE=M9K",15,"OFF","SCFIFO",64,4,"OFF","OFF","ON")
port map (dpfifo_rd,dpfifo_flush,dpfifo_empty,clk,dpfifo_q,dpfifo_wr,dpfifo_d,dpfifo_full);
normfifo : scfifo
generic map ("OFF","Cyclone III","RAM_BLOCK_TYPE=M9K",26,"OFF","SCFIFO",96,5,"OFF","OFF","ON")

powered by: WebSVN 2.1.0

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