write_cr_mask => (others => '0'),
write_cr_data => (others => '0'));
- type XicsToExecute1Type is record
- irq : std_ulogic;
- end record;
-
end common;
package body common is
dmi_wr : in std_ulogic;
dmi_ack : out std_ulogic;
- xics_in : in XicsToExecute1Type;
+ ext_irq : in std_ulogic;
terminated_out : out std_logic
);
flush_out => flush,
stall_out => ex1_stall_out,
e_in => decode2_to_execute1,
- i_in => xics_in,
l_in => loadstore1_to_execute1,
+ ext_irq_in => ext_irq,
l_out => execute1_to_loadstore1,
f_out => execute1_to_fetch1,
e_out => execute1_to_writeback,
e_in : in Decode2ToExecute1Type;
l_in : in Loadstore1ToExecute1Type;
- i_in : in XicsToExecute1Type;
+ ext_irq_in : std_ulogic;
-- asynchronous
l_out : out Execute1ToLoadstore1Type;
ctrl_tmp.irq_nia <= std_logic_vector(to_unsigned(16#900#, 64));
report "IRQ valid: DEC";
irq_valid := '1';
- elsif i_in.irq = '1' then
+ elsif ext_irq_in = '1' then
ctrl_tmp.irq_nia <= std_logic_vector(to_unsigned(16#500#, 64));
report "IRQ valid: External";
irq_valid := '1';
signal wb_xics0_out : wb_io_slave_out;
signal int_level_in : std_ulogic_vector(15 downto 0);
- signal xics_to_execute1 : XicsToExecute1Type;
+ signal core_ext_irq : std_ulogic;
-- Main memory signals:
signal wb_bram_in : wishbone_master_out;
dmi_wr => dmi_wr,
dmi_ack => dmi_core_ack,
dmi_req => dmi_core_req,
- xics_in => xics_to_execute1
+ ext_irq => core_ext_irq
);
-- Wishbone bus master arbiter & mux
wb_in => wb_xics0_in,
wb_out => wb_xics0_out,
int_level_in => int_level_in,
- e_out => xics_to_execute1
+ core_irq_out => core_ext_irq
);
-- BRAM Memory slave
int_level_in : in std_ulogic_vector(LEVEL_NUM - 1 downto 0);
- e_out : out XicsToExecute1Type
+ core_irq_out : out std_ulogic
);
end xics;
wb_out.dat <= r.wb_rd_data;
wb_out.ack <= r.wb_ack;
wb_out.stall <= '0'; -- never stall wishbone
- e_out.irq <= r.irq;
+ core_irq_out <= r.irq;
comb : process(all)
variable v : reg_internal_t;