URL
https://opencores.org/ocsvn/neorv32/neorv32/trunk
[/] [neorv32/] [trunk/] [rtl/] [core/] [neorv32_wishbone.vhd] - Diff between revs 53 and 56
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 53 |
Rev 56 |
Line 191... |
Line 191... |
when IDLE => -- waiting for host request
|
when IDLE => -- waiting for host request
|
-- ------------------------------------------------------------
|
-- ------------------------------------------------------------
|
ctrl.rd_req <= '0';
|
ctrl.rd_req <= '0';
|
ctrl.wr_req <= '0';
|
ctrl.wr_req <= '0';
|
-- buffer all outgoing signals --
|
-- buffer all outgoing signals --
|
ctrl.we <= wren_i;
|
ctrl.we <= wren_i or ctrl.wr_req;
|
ctrl.adr <= addr_i;
|
ctrl.adr <= addr_i;
|
if (xbus_big_endian_c = true) then -- endianness conversion
|
if (xbus_big_endian_c = true) then -- endianness conversion
|
ctrl.wdat <= data_i;
|
ctrl.wdat <= data_i;
|
ctrl.sel <= ben_i;
|
ctrl.sel <= ben_i;
|
else
|
else
|
Line 204... |
Line 204... |
end if;
|
end if;
|
ctrl.src <= src_i;
|
ctrl.src <= src_i;
|
ctrl.excl <= excl_i;
|
ctrl.excl <= excl_i;
|
ctrl.priv <= priv_i;
|
ctrl.priv <= priv_i;
|
-- valid new or buffered read/write request --
|
-- valid new or buffered read/write request --
|
if ((xbus_access and (wren_i or ctrl.wr_req or rden_i or ctrl.rd_req)) = '1') then
|
if ((xbus_access and (wren_i or ctrl.wr_req or rden_i or ctrl.rd_req) and (not cancel_i)) = '1') then
|
ctrl.state <= BUSY;
|
ctrl.state <= BUSY;
|
end if;
|
end if;
|
|
|
when BUSY => -- transfer in progress
|
when BUSY => -- transfer in progress
|
-- ------------------------------------------------------------
|
-- ------------------------------------------------------------
|
Line 235... |
Line 235... |
ctrl.state <= RESYNC;
|
ctrl.state <= RESYNC;
|
end if;
|
end if;
|
|
|
when RESYNC => -- make sure transfer is done!
|
when RESYNC => -- make sure transfer is done!
|
-- ------------------------------------------------------------
|
-- ------------------------------------------------------------
|
|
ctrl.wr_req <= ctrl.wr_req or wren_i; -- buffer new request
|
|
ctrl.rd_req <= ctrl.rd_req or rden_i; -- buffer new request
|
if (wb_ack_i = '0') then
|
if (wb_ack_i = '0') then
|
ctrl.state <= IDLE;
|
ctrl.state <= IDLE;
|
end if;
|
end if;
|
|
|
when others => -- undefined
|
when others => -- undefined
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.