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_sgdma
    from Rev 196 to Rev 198
    Reverse comparison

Rev 196 → Rev 198

/dpc.vhd
170,62 → 170,38
--! Decodificación del Datapath.
datapathproc:process(s,d,c,sparaminput,sinv32blk,sprd32blk,sadd32blk,sdpfifo_q,q1xyz_32x19_q,ssync_chain,sqr32blko)
begin
sfactor(f4) <= sparaminput(az);
if d='1' then
--P0 P1 y P2
sfactor(f0) <= sparaminput(ax);
sfactor(f2) <= sparaminput(ay);
sfactor(f4) <= sparaminput(az);
if c='0' then
sfactor(f1) <= sparaminput(bx) ;
sfactor(f3) <= sparaminput(by) ;
sfactor(f5) <= sparaminput(bz) ;
else
sfactor(f1) <= sparaminput(ax);
sfactor(f3) <= sparaminput(ay);
sfactor(f5) <= sparaminput(az);
end if;
sfactor(f1) <= sparaminput(bx) ;
sfactor(f3) <= sparaminput(by) ;
sfactor(f5) <= sparaminput(bz) ;
--P3 P4 y P5
if s='0' then
sfactor(f6) <= sinv32blk;
sfactor(f7) <= q1xyz_32x19_q(ax);
sfactor(f8) <= sinv32blk;
sfactor(f9) <= q1xyz_32x19_q(ay);
 
sfactor(f10) <= sinv32blk;
sfactor(f11) <= q1xyz_32x19_q(az);
else
sfactor(f6) <= sparaminput(ax);
sfactor(f6) <= sparaminput(az);
sfactor(f7) <= sparaminput(bx);
sfactor(f8) <= sparaminput(ay);
sfactor(f8) <= sparaminput(az);
sfactor(f9) <= sparaminput(bx);
 
sfactor(f10) <= sparaminput(az);
sfactor(f11) <= sparaminput(bx);
end if;
-- S0
ssumando(s0) <= sprd32blk(p0);
ssumando(s1) <= sprd32blk(p1);
--S1
ssumando(s2) <= sadd32blk(a0);
ssumando(s3) <= sdpfifo_q;
--RES0,1,2
if c='0' then
sresult(0) <= sadd32blk(a1);
else
sresult(0) <= sprd32blk(p3);
end if;
sresult(0) <= sprd32blk(p3);
sresult(1) <= sprd32blk(p4);
sresult(2) <= sprd32blk(p5);
234,12 → 210,9
elsif c='1' then
sres(2 downto 0) <= ssync_chain(25)&ssync_chain(25)&ssync_chain(25);
else
sres(2 downto 0) <= ssync_chain(19)&ssync_chain(19)&ssync_chain(19);
sres(2 downto 0) <= (others => '0');
end if;
else
 
--P0 P1 y P2
249,7 → 222,6
sfactor(f2) <= sparaminput(az);
sfactor(f3) <= sparaminput(by);
sfactor(f4) <= sparaminput(az);
sfactor(f5) <= sparaminput(bx);
 
--P3 P4 y P5
285,10 → 257,13
sresult(1) <= sadd32blk(a1);
sresult(2) <= sadd32blk(a2);
 
if c='1' then
 
if c='1' and s='1' then
sres(2 downto 0) <= ssync_chain(12)&ssync_chain(12)&ssync_chain(12);
elsif c='0' then
sres(2 downto 0) <= ssync_chain(8)&ssync_chain(8)&ssync_chain(8);
else
sres(2 downto 0) <= ssync_chain(8)&ssync_chain(8)&ssync_chain(8);
sres(2 downto 0) <= (others => '0');
end if;
end if;
303,10 → 278,16
end if;
--RES3
sresult(3) <= sqr32blko;
if c='1' then
sresult(3) <= sqr32blko;
sres(3) <= ssync_chain(20) and d and not(s);
else
sresult(3) <= sadd32blk(a1);
sres(3) <= ssync_chain(19) and d and not(s);
end if;
sres(3) <= ssync_chain(19);
end process;

powered by: WebSVN 2.1.0

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