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

Subversion Repositories gecko3

[/] [gecko3/] [trunk/] [GECKO3COM/] [gecko3com-ip/] [core/] [gpif_com_fsm.vhd] - Diff between revs 28 and 29

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 28 Rev 29
Line 198... Line 198...
        if i_WRU = '1' and i_RDYU = '1' then
        if i_WRU = '1' and i_RDYU = '1' then
          nx_state <= rst;
          nx_state <= rst;
        elsif i_WRU = '1' and i_RDYU = '0' then
        elsif i_WRU = '1' and i_RDYU = '0' then
          nx_state <= inRQ;
          nx_state <= inRQ;
        elsif i_WRU = '0' and
        elsif i_WRU = '0' and
          (i_X2U_FULL_IFCLK = '1' or i_EOM = '1') and i_X2U_EMPTY = '0' then
          --(i_X2U_FULL_IFCLK = '1' or i_EOM = '1') and i_X2U_EMPTY = '0' then
 
          i_X2U_EMPTY = '0' then
          nx_state <= outRQ;
          nx_state <= outRQ;
        else
        else
          nx_state <= idle;
          nx_state <= idle;
        end if;
        end if;
 
 
Line 379... Line 380...
        -- state decisions
        -- state decisions
        if i_WRU = '1' and i_RDYU = '1' then
        if i_WRU = '1' and i_RDYU = '1' then
          nx_state <= rst;
          nx_state <= rst;
        elsif i_WRU = '0' and i_RDYU = '1' then
        elsif i_WRU = '0' and i_RDYU = '1' then
          nx_state <= outTrans;
          nx_state <= outTrans;
 
          s_X2U_RD_EN <= '1';
        else
        else
          nx_state <= outACKwait;
          nx_state <= outACKwait;
        end if;
        end if;
 
 
      when outTrans =>
      when outTrans =>
Line 402... Line 404...
          nx_state <= outFIFOwait;
          nx_state <= outFIFOwait;
        elsif i_WRU = '0' and i_RDYU = '1' then
        elsif i_WRU = '0' and i_RDYU = '1' then
          nx_state <= outTrans;
          nx_state <= outTrans;
        else
        else
          nx_state <= outUSBwait;
          nx_state <= outUSBwait;
 
          s_X2U_RD_EN <= '0';
        end if;
        end if;
 
 
      when outUSBwait =>
      when outUSBwait =>
        -- output signal values:
        -- output signal values:
        s_WRX       <= '1';
        s_WRX       <= '1';
Line 426... Line 429...
        end if;
        end if;
 
 
      when outUSBwaitEnd =>
      when outUSBwaitEnd =>
        -- output signal values:
        -- output signal values:
        s_WRX       <= '1';
        s_WRX       <= '1';
        s_RDYX      <= '1';
        s_RDYX      <= '0';
        s_X2U_RD_EN <= '0';
        s_X2U_RD_EN <= '1';
        o_TX        <= '1';
        o_TX        <= '1';
        s_bus_trans_dir <= writeToGPIF;
        s_bus_trans_dir <= writeToGPIF;
 
 
        -- state decisions
        -- state decisions
        nx_state <= outTrans;
        nx_state <= outTrans;
Line 449... Line 452...
          nx_state <= rst;
          nx_state <= rst;
        elsif i_X2U_EMPTY = '1' and i_EOM = '1' then
        elsif i_X2U_EMPTY = '1' and i_EOM = '1' then
          nx_state <= endOutTrans;
          nx_state <= endOutTrans;
        elsif i_X2U_EMPTY = '0' then
        elsif i_X2U_EMPTY = '0' then
          nx_state <= outTrans;
          nx_state <= outTrans;
 
          s_X2U_RD_EN <= '1';
        else
        else
          nx_state <= outFIFOwait;
          nx_state <= outFIFOwait;
        end if;
        end if;
 
 
      when endOutTrans =>
      when endOutTrans =>

powered by: WebSVN 2.1.0

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