| Line 75... |
Line 75... |
data_o : out std_ulogic_vector(31 downto 0); -- data out
|
data_o : out std_ulogic_vector(31 downto 0); -- data out
|
lock_i : in std_ulogic; -- exclusive access request
|
lock_i : in std_ulogic; -- exclusive access request
|
ack_o : out std_ulogic; -- transfer acknowledge
|
ack_o : out std_ulogic; -- transfer acknowledge
|
err_o : out std_ulogic; -- transfer error
|
err_o : out std_ulogic; -- transfer error
|
tmo_o : out std_ulogic; -- transfer timeout
|
tmo_o : out std_ulogic; -- transfer timeout
|
priv_i : in std_ulogic_vector(01 downto 0); -- current CPU privilege level
|
priv_i : in std_ulogic; -- current CPU privilege level
|
ext_o : out std_ulogic; -- active external access
|
ext_o : out std_ulogic; -- active external access
|
-- xip configuration --
|
-- xip configuration --
|
xip_en_i : in std_ulogic; -- XIP module enabled
|
xip_en_i : in std_ulogic; -- XIP module enabled
|
xip_page_i : in std_ulogic_vector(03 downto 0); -- XIP memory page
|
xip_page_i : in std_ulogic_vector(03 downto 0); -- XIP memory page
|
-- wishbone interface --
|
-- wishbone interface --
|
| Line 123... |
Line 123... |
err : std_ulogic;
|
err : std_ulogic;
|
tmo : std_ulogic;
|
tmo : std_ulogic;
|
timeout : std_ulogic_vector(index_size_f(BUS_TIMEOUT) downto 0);
|
timeout : std_ulogic_vector(index_size_f(BUS_TIMEOUT) downto 0);
|
src : std_ulogic;
|
src : std_ulogic;
|
lock : std_ulogic;
|
lock : std_ulogic;
|
priv : std_ulogic_vector(01 downto 0);
|
priv : std_ulogic;
|
end record;
|
end record;
|
signal ctrl : ctrl_t;
|
signal ctrl : ctrl_t;
|
signal stb_int : std_ulogic;
|
signal stb_int : std_ulogic;
|
signal cyc_int : std_ulogic;
|
signal cyc_int : std_ulogic;
|
signal rdata : std_ulogic_vector(31 downto 0);
|
signal rdata : std_ulogic_vector(31 downto 0);
|
| Line 186... |
Line 186... |
ctrl.ack <= def_rst_val_c;
|
ctrl.ack <= def_rst_val_c;
|
ctrl.err <= def_rst_val_c;
|
ctrl.err <= def_rst_val_c;
|
ctrl.tmo <= def_rst_val_c;
|
ctrl.tmo <= def_rst_val_c;
|
ctrl.src <= def_rst_val_c;
|
ctrl.src <= def_rst_val_c;
|
ctrl.lock <= def_rst_val_c;
|
ctrl.lock <= def_rst_val_c;
|
ctrl.priv <= (others => def_rst_val_c);
|
ctrl.priv <= def_rst_val_c;
|
elsif rising_edge(clk_i) then
|
elsif rising_edge(clk_i) then
|
-- defaults --
|
-- defaults --
|
ctrl.state_ff <= ctrl.state;
|
ctrl.state_ff <= ctrl.state;
|
ctrl.rdat <= (others => '0'); -- required for internal output gating
|
ctrl.rdat <= (others => '0'); -- required for internal output gating
|
ctrl.ack <= '0';
|
ctrl.ack <= '0';
|