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

Subversion Repositories lxp32

[/] [lxp32/] [trunk/] [rtl/] [lxp32_cpu.vhd] - Diff between revs 2 and 6

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

Rev 2 Rev 6
Line 12... Line 12...
entity lxp32_cpu is
entity lxp32_cpu is
        generic(
        generic(
                DBUS_RMW: boolean;
                DBUS_RMW: boolean;
                DIVIDER_EN: boolean;
                DIVIDER_EN: boolean;
                MUL_ARCH: string;
                MUL_ARCH: string;
                START_ADDR: std_logic_vector(29 downto 0)
                START_ADDR: std_logic_vector(31 downto 0)
        );
        );
        port(
        port(
                clk_i: in std_logic;
                clk_i: in std_logic;
                rst_i: in std_logic;
                rst_i: in std_logic;
 
 
Line 40... Line 40...
 
 
architecture rtl of lxp32_cpu is
architecture rtl of lxp32_cpu is
 
 
signal fetch_word: std_logic_vector(31 downto 0);
signal fetch_word: std_logic_vector(31 downto 0);
signal fetch_next_ip: std_logic_vector(29 downto 0);
signal fetch_next_ip: std_logic_vector(29 downto 0);
 
signal fetch_current_ip: std_logic_vector(29 downto 0);
signal fetch_valid: std_logic;
signal fetch_valid: std_logic;
signal fetch_jump_ready: std_logic;
signal fetch_jump_ready: std_logic;
 
 
signal decode_ready: std_logic;
signal decode_ready: std_logic;
signal decode_valid: std_logic;
signal decode_valid: std_logic;
Line 59... Line 60...
signal decode_cmd_div_mod: std_logic;
signal decode_cmd_div_mod: std_logic;
signal decode_cmd_cmp: std_logic;
signal decode_cmd_cmp: std_logic;
signal decode_cmd_jump: std_logic;
signal decode_cmd_jump: std_logic;
signal decode_cmd_negate_op2: std_logic;
signal decode_cmd_negate_op2: std_logic;
signal decode_cmd_and: std_logic;
signal decode_cmd_and: std_logic;
signal decode_cmd_or: std_logic;
 
signal decode_cmd_xor: std_logic;
signal decode_cmd_xor: std_logic;
signal decode_cmd_shift: std_logic;
signal decode_cmd_shift: std_logic;
signal decode_cmd_shift_right: std_logic;
signal decode_cmd_shift_right: std_logic;
 
 
signal decode_jump_type: std_logic_vector(3 downto 0);
signal decode_jump_type: std_logic_vector(3 downto 0);
Line 87... Line 87...
 
 
signal interrupt_valid: std_logic;
signal interrupt_valid: std_logic;
signal interrupt_vector: std_logic_vector(2 downto 0);
signal interrupt_vector: std_logic_vector(2 downto 0);
signal interrupt_ready: std_logic;
signal interrupt_ready: std_logic;
signal interrupt_return: std_logic;
signal interrupt_return: std_logic;
signal interrupts_enabled: std_logic_vector(7 downto 0);
 
signal interrupts_blocked: std_logic_vector(7 downto 0);
 
 
 
begin
begin
 
 
fetch_inst: entity work.lxp32_fetch(rtl)
fetch_inst: entity work.lxp32_fetch(rtl)
        generic map(
        generic map(
Line 107... Line 105...
                lli_dat_i=>lli_dat_i,
                lli_dat_i=>lli_dat_i,
                lli_busy_i=>lli_busy_i,
                lli_busy_i=>lli_busy_i,
 
 
                word_o=>fetch_word,
                word_o=>fetch_word,
                next_ip_o=>fetch_next_ip,
                next_ip_o=>fetch_next_ip,
 
                current_ip_o=>fetch_current_ip,
                valid_o=>fetch_valid,
                valid_o=>fetch_valid,
                ready_i=>decode_ready,
                ready_i=>decode_ready,
 
 
                jump_valid_i=>execute_jump_valid,
                jump_valid_i=>execute_jump_valid,
                jump_dst_i=>execute_jump_dst,
                jump_dst_i=>execute_jump_dst,
Line 122... Line 121...
                clk_i=>clk_i,
                clk_i=>clk_i,
                rst_i=>rst_i,
                rst_i=>rst_i,
 
 
                word_i=>fetch_word,
                word_i=>fetch_word,
                next_ip_i=>fetch_next_ip,
                next_ip_i=>fetch_next_ip,
 
                current_ip_i=>fetch_current_ip,
                valid_i=>fetch_valid,
                valid_i=>fetch_valid,
                jump_valid_i=>execute_jump_valid,
                jump_valid_i=>execute_jump_valid,
                ready_o=>decode_ready,
                ready_o=>decode_ready,
 
 
                interrupt_valid_i=>interrupt_valid,
                interrupt_valid_i=>interrupt_valid,
Line 151... Line 151...
                cmd_div_mod_o=>decode_cmd_div_mod,
                cmd_div_mod_o=>decode_cmd_div_mod,
                cmd_cmp_o=>decode_cmd_cmp,
                cmd_cmp_o=>decode_cmd_cmp,
                cmd_jump_o=>decode_cmd_jump,
                cmd_jump_o=>decode_cmd_jump,
                cmd_negate_op2_o=>decode_cmd_negate_op2,
                cmd_negate_op2_o=>decode_cmd_negate_op2,
                cmd_and_o=>decode_cmd_and,
                cmd_and_o=>decode_cmd_and,
                cmd_or_o=>decode_cmd_or,
 
                cmd_xor_o=>decode_cmd_xor,
                cmd_xor_o=>decode_cmd_xor,
                cmd_shift_o=>decode_cmd_shift,
                cmd_shift_o=>decode_cmd_shift,
                cmd_shift_right_o=>decode_cmd_shift_right,
                cmd_shift_right_o=>decode_cmd_shift_right,
 
 
                jump_type_o=>decode_jump_type,
                jump_type_o=>decode_jump_type,
Line 187... Line 186...
                cmd_div_mod_i=>decode_cmd_div_mod,
                cmd_div_mod_i=>decode_cmd_div_mod,
                cmd_cmp_i=>decode_cmd_cmp,
                cmd_cmp_i=>decode_cmd_cmp,
                cmd_jump_i=>decode_cmd_jump,
                cmd_jump_i=>decode_cmd_jump,
                cmd_negate_op2_i=>decode_cmd_negate_op2,
                cmd_negate_op2_i=>decode_cmd_negate_op2,
                cmd_and_i=>decode_cmd_and,
                cmd_and_i=>decode_cmd_and,
                cmd_or_i=>decode_cmd_or,
 
                cmd_xor_i=>decode_cmd_xor,
                cmd_xor_i=>decode_cmd_xor,
                cmd_shift_i=>decode_cmd_shift,
                cmd_shift_i=>decode_cmd_shift,
                cmd_shift_right_i=>decode_cmd_shift_right,
                cmd_shift_right_i=>decode_cmd_shift_right,
 
 
                jump_type_i=>decode_jump_type,
                jump_type_i=>decode_jump_type,
Line 219... Line 217...
 
 
                jump_valid_o=>execute_jump_valid,
                jump_valid_o=>execute_jump_valid,
                jump_dst_o=>execute_jump_dst,
                jump_dst_o=>execute_jump_dst,
                jump_ready_i=>fetch_jump_ready,
                jump_ready_i=>fetch_jump_ready,
 
 
                interrupt_return_o=>interrupt_return,
                interrupt_return_o=>interrupt_return
                interrupts_enabled_o=>interrupts_enabled,
 
                interrupts_blocked_o=>interrupts_blocked
 
        );
        );
 
 
scratchpad_inst: entity work.lxp32_scratchpad(rtl)
scratchpad_inst: entity work.lxp32_scratchpad(rtl)
        port map(
        port map(
                clk_i=>clk_i,
                clk_i=>clk_i,
Line 245... Line 241...
                clk_i=>clk_i,
                clk_i=>clk_i,
                rst_i=>rst_i,
                rst_i=>rst_i,
 
 
                irq_i=>irq_i,
                irq_i=>irq_i,
 
 
                interrupts_enabled_i=>interrupts_enabled,
 
                interrupts_blocked_i=>interrupts_blocked,
 
 
 
                interrupt_valid_o=>interrupt_valid,
                interrupt_valid_o=>interrupt_valid,
                interrupt_vector_o=>interrupt_vector,
                interrupt_vector_o=>interrupt_vector,
                interrupt_ready_i=>interrupt_ready,
                interrupt_ready_i=>interrupt_ready,
                interrupt_return_i=>interrupt_return
                interrupt_return_i=>interrupt_return,
 
 
 
                sp_waddr_i=>sp_waddr,
 
                sp_we_i=>sp_we,
 
                sp_wdata_i=>sp_wdata
        );
        );
 
 
end architecture;
end architecture;
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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