entity memory_arbiter is
	port (
		clk   : in std_logic;
		reset : in std_logic;

		fetch_enable    : in std_logic;
		fetch_ready     : out std_logic;
		fetch_address   : in yarm_word;
		fetch_instr_out : out yarm_word;

		fetch_raise_exc : out std_logic;
		fetch_exc_data  : out exception_data_t;

		datamem_enable        : in std_logic;
		datamem_ready         : out std_logic;
		datamem_instr_info_in : in instruction_info_t;
		datamem_read_data     : out yarm_word;

		datamem_raise_exc : out std_logic;
		datamem_exc_data  : out exception_data_t;

		-- little-endian memory interface, 4 byte address alignment
		MEM_addr        : out yarm_word;
		MEM_read        : out std_logic;
		MEM_write       : out std_logic;
		MEM_ready       : in std_logic;
		MEM_byte_enable : out std_logic_vector(3 downto 0);
		MEM_data_read   : in yarm_word;
		MEM_data_write  : out yarm_word
	);
end memory_arbiter;