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

Subversion Repositories gecko3

[/] [gecko3/] [trunk/] [GECKO3COM/] [gecko3com-ip/] [core/] [gpif_com.vhd] - Diff between revs 20 and 22

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

Rev 20 Rev 22
Line 82... Line 82...
  signal s_FIFOrst, s_WRX, s_RDYX      : std_logic;
  signal s_FIFOrst, s_WRX, s_RDYX      : std_logic;
 
 
  signal s_ABORT_FSM, s_ABORT_TMP  : std_logic;
  signal s_ABORT_FSM, s_ABORT_TMP  : std_logic;
  signal s_RX_FSM, s_RX_TMP  : std_logic;
  signal s_RX_FSM, s_RX_TMP  : std_logic;
  signal s_TX_FSM, s_TX_TMP  : std_logic;
  signal s_TX_FSM, s_TX_TMP  : std_logic;
  signal s_EOM, s_EOM_TMP : std_logic;  -- End of message
  signal s_EOM, s_EOM_TMP, s_EOM_FF : std_logic;  -- End of message
  signal s_X2U_FULL_IFCLK, s_X2U_FULL_TMP : std_logic;
  signal s_X2U_FULL_IFCLK, s_X2U_FULL_TMP : std_logic;
 
 
  -- USB to Xilinx (U2X)
  -- USB to Xilinx (U2X)
  signal s_U2X_WR_EN,
  signal s_U2X_WR_EN,
    s_U2X_RD_EN,
    s_U2X_RD_EN,
Line 201... Line 201...
    port map (
    port map (
      i_nReset         => i_nReset,
      i_nReset         => i_nReset,
      i_IFCLK          => i_IFCLK,
      i_IFCLK          => i_IFCLK,
      i_WRU            => i_WRU,
      i_WRU            => i_WRU,
      i_RDYU           => i_RDYU,
      i_RDYU           => i_RDYU,
      i_EOM            => s_EOM,
      i_EOM            => s_EOM_FF,
      i_U2X_FULL       => s_U2X_FULL,
      i_U2X_FULL       => s_U2X_FULL,
      i_U2X_AM_FULL    => s_U2X_AM_FULL,
      i_U2X_AM_FULL    => s_U2X_AM_FULL,
      i_X2U_FULL_IFCLK => s_X2U_FULL_IFCLK,
      i_X2U_FULL_IFCLK => s_X2U_FULL_IFCLK,
      i_X2U_AM_EMPTY   => s_X2U_AM_EMPTY,
      i_X2U_AM_EMPTY   => s_X2U_AM_EMPTY,
      i_X2U_EMPTY      => s_X2U_EMPTY,
      i_X2U_EMPTY      => s_X2U_EMPTY,
Line 251... Line 251...
      o_RX        <= s_RX_TMP;
      o_RX        <= s_RX_TMP;
      s_RX_TMP    <= s_RX_FSM;
      s_RX_TMP    <= s_RX_FSM;
    end if;
    end if;
  end process double_buf_sig;
  end process double_buf_sig;
 
 
  -- Double buffer the ABORT, RX and TX signal to avoid metastability
  -- Double buffer the s_EOM and s_X2U_FULL_IFCLK signal to avoid metastability
  double_buf_ifclk : process (i_IFCLK, i_nReset)
  double_buf_ifclk : process (i_IFCLK, i_nReset)
  begin
  begin
    if i_nReset = '0' then
    if i_nReset = '0' then
      s_X2U_FULL_TMP <= '0';
      s_X2U_FULL_TMP <= '0';
      s_X2U_FULL_IFCLK <= '0';
      s_X2U_FULL_IFCLK <= '0';
Line 265... Line 265...
      s_X2U_FULL_IFCLK <= s_X2U_FULL_TMP;
      s_X2U_FULL_IFCLK <= s_X2U_FULL_TMP;
      s_X2U_FULL_TMP <= s_X2U_FULL;
      s_X2U_FULL_TMP <= s_X2U_FULL;
    end if;
    end if;
  end process double_buf_ifclk;
  end process double_buf_ifclk;
 
 
 
  -- purpose: EOM bit flip-flop
 
  -- type   : sequential
 
  -- inputs : i_IFCLK, i_nReset, s_EOM, s_X2U_EMPTY
 
  -- outputs: s_EOM_FF
 
  EOM_FF: process (i_IFCLK, i_nReset)
 
  begin  -- process EOM_FF
 
    if i_nReset = '0' then                -- asynchronous reset (active low)
 
      s_EOM_FF <= '0';
 
    elsif i_IFCLK'event and i_IFCLK = '1' then  -- rising clock edge
 
      if s_EOM = '1' then
 
        s_EOM_FF <= '1';
 
      end if;
 
      if s_X2U_EMPTY = '1' then
 
        s_EOM_FF <= '0';
 
      end if;
 
    end if;
 
  end process EOM_FF;
 
 
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
-- Data bus access
-- Data bus access
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
 
 

powered by: WebSVN 2.1.0

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