3 use IEEE.std_logic_1164.all;
4 use IEEE.numeric_std.all;
6 use work.common_pkg.all;
10 component fetch_stage is
13 RESET_VALUE : std_logic;
24 jump_result : in instruction_addr_t;
25 prediction_result : in instruction_addr_t;
26 branch_prediction_bit : in std_logic;
27 alu_jump_bit : in std_logic;
30 instruction : out instruction_word_t
33 end component fetch_stage;
37 component decode_stage is
40 RESET_VALUE : std_logic;
51 instruction : in instruction_word_t;
52 reg_w_addr : in std_logic_vector(REG_ADDR_WIDTH-1 downto 0);
53 reg_wr_data : in gp_register_t;
54 reg_we : in std_logic;
57 -- reg1_rd_data : out gp_register_t;
58 -- reg2_rd_data : out gp_register_t;
59 branch_prediction_res : out instruction_word_t;
60 branch_prediction_bit : out std_logic;
61 to_next_stage : out dec_op
63 end component decode_stage;
69 instruction : in instruction_word_t;
70 instr_spl : out instruction_rec
74 end component decoder;
76 component execute_stage is
79 RESET_VALUE : std_logic;
89 end component execute_stage;
93 component writeback_stage is
96 RESET_VALUE : std_logic;
106 result : in gp_register_t; --reg (alu result or jumpaddr)
107 result_addr : in gp_addr_t; --reg
108 address : in word_t; --ureg
109 ram_data : in word_t; --ureg
110 alu_jmp : in std_logic; --reg
111 br_pred : in std_logic; --reg
112 write_en : in std_logic; --reg (register file)
113 dmem_en : in std_logic; --ureg (jump addr in mem or in address)
114 dmem_write_en : in std_logic; --ureg
115 hword : in std_logic; --ureg
116 byte_s : in std_logic; --ureg
118 regfile_val : out gp_register_t;
119 reg_we : out std_logic;
120 reg_addr : out gp_addr_t;
121 jump_addr : out instruction_addr_t;
124 end component writeback_stage;
128 end package core_pkg;