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

Subversion Repositories raytrac

[/] [raytrac/] [branches/] [fp_sgdma/] [ap_n_dpc.vhd] - Diff between revs 125 and 126

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 125 Rev 126
Line 106... Line 106...
                snormfifo_d(qx) <= (hblock and ((cdblock and sparaminput(dx))or(not(cdblock) and sparaminput(cx)))) or (not(hblock) and ((abblock and sparaminput(bx))or(not(abblock) and sparaminput(ax))));
                snormfifo_d(qx) <= (hblock and ((cdblock and sparaminput(dx))or(not(cdblock) and sparaminput(cx)))) or (not(hblock) and ((abblock and sparaminput(bx))or(not(abblock) and sparaminput(ax))));
                snormfifo_d(qy) <= (hblock and ((cdblock and sparaminput(dy))or(not(cdblock) and sparaminput(cy)))) or (not(hblock) and ((abblock and sparaminput(by))or(not(abblock) and sparaminput(ay))));
                snormfifo_d(qy) <= (hblock and ((cdblock and sparaminput(dy))or(not(cdblock) and sparaminput(cy)))) or (not(hblock) and ((abblock and sparaminput(by))or(not(abblock) and sparaminput(ay))));
                snormfifo_d(qz) <= (hblock and ((cdblock and sparaminput(dz))or(not(cdblock) and sparaminput(cz)))) or (not(hblock) and ((abblock and sparaminput(bz))or(not(abblock) and sparaminput(az))));
                snormfifo_d(qz) <= (hblock and ((cdblock and sparaminput(dz))or(not(cdblock) and sparaminput(cz)))) or (not(hblock) and ((abblock and sparaminput(bz))or(not(abblock) and sparaminput(az))));
 
 
                --! Combinatorio para decidir que operaciones realizan los sumadores / restadores.
                --! Combinatorio para decidir que operaciones realizan los sumadores / restadores.
                add32blks <= instr3(0) xor (instr3(1) xor instr3(0)) ;
                add32blks <= (instr3(0) xor (instr3(1) xor instr3(0)))&(instr3(0) xor (instr3(1) xor instr3(0))) ;
 
 
                --! Por defecto conectar los sumandos en producto punto/cruz
                --! Por defecto conectar los sumandos en producto punto/cruz
                ssumando(s0) <= sprd32blk(p0);ssumando(s1) <= sprd32blk(p1);
                ssumando(s0) <= sprd32blk(p0);ssumando(s1) <= sprd32blk(p1);
                ssumando(s6) <= sadd32blk(a0);ssumando(s7) <= sdpfifo_q(dpfifoab);
                ssumando(s6) <= sadd32blk(a0);ssumando(s7) <= sdpfifo_q(dpfifoab);
                ssumando(s10) <= sdpfifo_q(dpfifocd);ssumando(s11) <= sadd32blk(a2);
                ssumando(s10) <= sdpfifo_q(dpfifocd);ssumando(s11) <= sadd32blk(a2);
Line 126... Line 126...
                sfactor(f4) <= sparaminput(az);sfactor(f5) <= sparaminput(bz);
                sfactor(f4) <= sparaminput(az);sfactor(f5) <= sparaminput(bz);
                sfactor(f6) <= sparaminput(bx);sfactor(f7) <= sparaminput(dx);
                sfactor(f6) <= sparaminput(bx);sfactor(f7) <= sparaminput(dx);
                sfactor(f8) <= sparaminput(by);sfactor(f9) <= sparaminput(dy);
                sfactor(f8) <= sparaminput(by);sfactor(f9) <= sparaminput(dy);
                sfactor(f10) <= sparaminput(bz);sfactor(f11) <= sparaminput(dz);
                sfactor(f10) <= sparaminput(bz);sfactor(f11) <= sparaminput(dz);
 
 
                --!El  
                --!Los resultados por defecto se acomodan al producto punto y parcialmente a los productos simple y escalar.
 
                sresult(ax) <= sadd32blk(aa);
 
                sresult(ay) <= sprd32blk(p1);
 
                sresult(az) <= sprd32blk(p2);
 
                sresult(bx) <= sadd32blk(ac);
 
                sresult(by) <= sprd32blk(p4);
 
                sresult(bz) <= sprd32blk(p5);
 
 
 
                if (instr3(2 downto 1)="11" or instr3="100") then
 
                        sresult(ax) <= sprd32blk(p0);
 
                        sresult(cx) <= sprd32blk(p3);
 
                elsif instr3(0)='1' then
 
                        sresult(ax) <= sprd32blk(a0);
 
                        sresult(ay) <= sprd32blk(a1);
 
                        sresult(az) <= sprd32blk(a2);
 
                        sresult(bx) <= sadd32blk(aa);
 
                        sresult(by) <= sprd32blk(ab);
 
                        sresult(bz) <= sadd32blk(ac);
 
                end if;
 
 
 
 
                if instr3(0)='1' then    --! Producto Cruz, suma, resta, multiplicacion simple
                if instr3(0)='1' then    --! Producto Cruz, suma, resta, multiplicacion simple
 
 
                        if (instr3(2) or instr3(1))='1' then --! Suma, Resta, Multiplicacion simple
                        if (instr3(2) or instr3(1))='1' then --! Suma, Resta, Multiplicacion simple
 
 
Line 139... Line 158...
                                ssumando(s2) <= sparaminput(ay);ssumando(s3) <= sparaminput(by);
                                ssumando(s2) <= sparaminput(ay);ssumando(s3) <= sparaminput(by);
                                ssumando(s4) <= sparaminput(az);ssumando(s5) <= sparaminput(bz);
                                ssumando(s4) <= sparaminput(az);ssumando(s5) <= sparaminput(bz);
                                ssumando(s6) <= sparaminput(cx);ssumando(s7) <= sparaminput(dx);
                                ssumando(s6) <= sparaminput(cx);ssumando(s7) <= sparaminput(dx);
                                ssumando(s10) <= sparaminput(cz);ssumando(s11) <= sparaminput(dz);
                                ssumando(s10) <= sparaminput(cz);ssumando(s11) <= sparaminput(dz);
 
 
 
 
 
 
                        else --! Producto Cruz!
                        else --! Producto Cruz!
 
 
                                if hblock='1' then      --! Producto crux CxD 
                                if hblock='1' then      --! Producto crux CxD 
                                        --!Multiplicadores: 
                                        --!Multiplicadores: 
                                        sfactor(f0) <= sparaminput(cy);sfactor(f1) <= sparaminput(dz);sfactor(f2) <= sparaminput(cz);sfactor(f3) <= sparaminput(dy);
                                        sfactor(f0) <= sparaminput(cy);sfactor(f1) <= sparaminput(dz);sfactor(f2) <= sparaminput(cz);sfactor(f3) <= sparaminput(dy);

powered by: WebSVN 2.1.0

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