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

Subversion Repositories raytrac

[/] [raytrac/] [branches/] [fp/] [sm.vhd] - Diff between revs 147 and 150

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

Rev 147 Rev 150
Line 48... Line 48...
 
 
 
 
                full_r:         in std_logic;   --! Indica que la cola de resultados no puede aceptar mas de 32 elementos.
                full_r:         in std_logic;   --! Indica que la cola de resultados no puede aceptar mas de 32 elementos.
 
 
 
 
 
                --! End Of Instruction Event
 
                eoi     : out std_logic;
 
 
                --! DataPath Control uca code.
                --! DataPath Control uca code.
                dpc_uca : out std_logic_vector (2 downto 0)
                dpc_uca : out std_logic_vector (2 downto 0)
 
 
 
 
Line 185... Line 186...
                if rst=rstMasterValue then
                if rst=rstMasterValue then
 
 
                        state <= LOAD_INSTRUCTION;
                        state <= LOAD_INSTRUCTION;
                        s_set_dly <= '1';
                        s_set_dly <= '1';
                        sync_chain_0 <= '0';
                        sync_chain_0 <= '0';
 
                        eoi<='0';
                        s_dpc_uca <= (others => '0');
                        s_dpc_uca <= (others => '0');
 
 
 
 
                elsif clk='1' and clk'event then
                elsif clk='1' and clk'event then
 
 
                        case state is
                        case state is
 
 
                                --! Cargar la siguiente instrucción. 
                                --! Cargar la siguiente instrucción. 
                                when LOAD_INSTRUCTION =>
                                when LOAD_INSTRUCTION =>
 
 
 
                                        eoi <= '0';
 
 
                                        if instrQ_empty='0' and full_r='0' then
                                        if instrQ_empty='0' and full_r='0' then
 
 
                                                --! Siguiente estado: Ejecutar la instrucción.  
                                                --! Siguiente estado: Ejecutar la instrucción.  
                                                state <= EXECUTE_INSTRUCTION;
                                                state <= EXECUTE_INSTRUCTION;
 
 
Line 219... Line 223...
                                when EXECUTE_INSTRUCTION =>
                                when EXECUTE_INSTRUCTION =>
 
 
 
 
                                        if s_eb_b='1'and s_eq_b='1' and s_eb_a='1' and s_eq_a='1' then  --! Revisar si es el fin de la instruccion
                                        if s_eb_b='1'and s_eq_b='1' and s_eb_a='1' and s_eq_a='1' then  --! Revisar si es el fin de la instruccion
 
 
 
 
                                                --!Ya no ingresaran mas datos al pipeline aritmético, invalidar.
                                                --!Ya no ingresaran mas datos al pipeline aritmético, invalidar.
                                                sync_chain_0 <= '0';
                                                sync_chain_0 <= '0';
 
 
                                                if s_zeroFlag_delay='1' then
                                                if s_zeroFlag_delay='1' then
 
 
 
                                                        --! Notificar fin de procesamiento de la instruccion (End Of Instruction)
 
                                                        eoi <= '1';
                                                        state <= LOAD_INSTRUCTION;
                                                        state <= LOAD_INSTRUCTION;
                                                        s_set_dly <= '1';
                                                        s_set_dly <= '1';
 
 
 
 
                                                else
                                                else
Line 248... Line 255...
                                --! Ejecución de la instrucción               
                                --! Ejecución de la instrucción               
                                when FLUSH_ARITH_PIPELINE =>
                                when FLUSH_ARITH_PIPELINE =>
                                        --! Este estado permanece así hasta que, haya una instrucción 
                                        --! Este estado permanece así hasta que, haya una instrucción 
                                        if s_zeroFlag_delay='1' then
                                        if s_zeroFlag_delay='1' then
 
 
 
                                                --! Notificar fin de procesamiento de la instruccion (End Of Instruction)
 
                                                eoi <= '1';
                                                state <= LOAD_INSTRUCTION;
                                                state <= LOAD_INSTRUCTION;
                                                s_set_dly <= '1';
                                                s_set_dly <= '1';
 
 
 
 
                                        end if;
                                        end if;
 
 
                                when others => null;
                                when others => null;
 
 
                        end case;
                        end case;

powered by: WebSVN 2.1.0

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