OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.