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

Subversion Repositories mblite

[/] [mblite/] [trunk/] [hw/] [core/] [decode.vhd] - Diff between revs 2 and 6

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

Rev 2 Rev 6
Line 33... Line 33...
PORT
PORT
(
(
    decode_o : OUT decode_out_type;
    decode_o : OUT decode_out_type;
    gprf_o   : OUT gprf_out_type;
    gprf_o   : OUT gprf_out_type;
    decode_i : IN decode_in_type;
    decode_i : IN decode_in_type;
    ena_i    : IN std_ulogic;
    ena_i    : IN std_logic;
    rst_i    : IN std_ulogic;
    rst_i    : IN std_logic;
    clk_i    : IN std_ulogic
    clk_i    : IN std_logic
);
);
END decode;
END decode;
 
 
ARCHITECTURE arch OF decode IS
ARCHITECTURE arch OF decode IS
 
 
    TYPE decode_reg_type IS RECORD
    TYPE decode_reg_type IS RECORD
        instruction     : std_ulogic_vector(CFG_IMEM_WIDTH - 1 DOWNTO 0);
        instruction     : std_logic_vector(CFG_IMEM_WIDTH - 1 DOWNTO 0);
        program_counter : std_ulogic_vector(CFG_IMEM_SIZE - 1 DOWNTO 0);
        program_counter : std_logic_vector(CFG_IMEM_SIZE - 1 DOWNTO 0);
        immediate       : std_ulogic_vector(15 DOWNTO 0);
        immediate       : std_logic_vector(15 DOWNTO 0);
        is_immediate    : std_ulogic;
        is_immediate    : std_logic;
        msr_interrupt_enable : std_ulogic;
        msr_interrupt_enable : std_logic;
        interrupt       : std_ulogic;
        interrupt       : std_logic;
        delay_interrupt : std_ulogic;
        delay_interrupt : std_logic;
    END RECORD;
    END RECORD;
 
 
    SIGNAL r, rin : decode_out_type;
    SIGNAL r, rin : decode_out_type;
    SIGNAL reg, regin : decode_reg_type;
    SIGNAL reg, regin : decode_reg_type;
 
 
    SIGNAL wb_dat_d : std_ulogic_vector(CFG_DMEM_WIDTH - 1 DOWNTO 0);
    SIGNAL wb_dat_d : std_logic_vector(CFG_DMEM_WIDTH - 1 DOWNTO 0);
 
 
BEGIN
BEGIN
 
 
    decode_o.imm <= r.imm;
    decode_o.imm <= r.imm;
 
 
Line 81... Line 81...
                         r.ctrl_mem.transfer_size,r.ctrl_wb,
                         r.ctrl_mem.transfer_size,r.ctrl_wb,
                         r.fwd_dec,reg)
                         r.fwd_dec,reg)
 
 
        VARIABLE v : decode_out_type;
        VARIABLE v : decode_out_type;
        VARIABLE v_reg : decode_reg_type;
        VARIABLE v_reg : decode_reg_type;
        VARIABLE opcode : std_ulogic_vector(5 DOWNTO 0);
        VARIABLE opcode : std_logic_vector(5 DOWNTO 0);
        VARIABLE instruction : std_ulogic_vector(CFG_IMEM_WIDTH - 1 DOWNTO 0);
        VARIABLE instruction : std_logic_vector(CFG_IMEM_WIDTH - 1 DOWNTO 0);
        VARIABLE program_counter : std_ulogic_vector(CFG_IMEM_SIZE - 1 DOWNTO 0);
        VARIABLE program_counter : std_logic_vector(CFG_IMEM_SIZE - 1 DOWNTO 0);
        VARIABLE mem_result : std_ulogic_vector(CFG_DMEM_WIDTH - 1 DOWNTO 0);
        VARIABLE mem_result : std_logic_vector(CFG_DMEM_WIDTH - 1 DOWNTO 0);
 
 
    BEGIN
    BEGIN
        v := r;
        v := r;
        v_reg := reg;
        v_reg := reg;
 
 

powered by: WebSVN 2.1.0

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