--System inputs
clk : in std_logic;
reset : in std_logic;
+
+ --Data inputs
+ instruction : in instruction_word_t;
+ reg_w_addr : in std_logic_vector(REG_ADDR_WIDTH-1 downto 0);
+ reg_wr_data : in gp_register_t;
+ reg_we : in std_logic;
+
+ --Data outputs
+ reg1_rd_data : gp_register_t;
+ reg2_rd_data : gp_register_t;
+ branch_prediction_res : instruction_word_t;
+ branch_prediction_bit : std_logic
);
end component decode_stage;
end component writeback_stage;
+ type instruction_rec is record
+
+ predicates : std_logic_vector(3 downto 0);
+
+ opcode : opcode_t;
+
+ reg_dest_addr : std_logic_vector(REG_ADDR_WIDTH-1 downto 0);
+ reg_src1_addr : std_logic_vector(REG_ADDR_WIDTH-1 downto 0);
+ reg_src2_addr : std_logic_vector(REG_ADDR_WIDTH-1 downto 0);
+
+ immediate : std_logic_vector(WORD_WIDTH-1 downto 0);
+ displacement : std_logic_vector(DISPL_WIDTH-1 downto 0);
+
+ jmptype : std_logic_vector(1 downto 0);
+
+ carry, sreg_update, high_low, fill, signext, bp, arith, left_right : std_logic;
+
+ end record;
+
+
+ type read_through_write_rec is record
+
+ rtw_reg : gp_register_t;
+ rtw_reg1 : std_logic;
+ rtw_reg2 : std_logic;
+
+ end record;
+
end package core_pkg;