AR# 72084

UltraScale/UltraScale+: FIFO_EMPTY 動作の詳細

説明

FIFO_EMPTY は、FIFO_WR_CLK が次のようにスタート アップシーケンスの終わりに開始するタイミングを示すために使用されます。



スタートアップ シーケンスの終わりに FIFO_RD_EN がアサートされない場合、FIFO_EMPTY が FIFO_WR_CLK の 8 サイクルごとに 1 回駆動されるはずです (図を参照)。

ただし、必ずしもこのような動作になるわけではありません。この問題は、ファブリックを介して配線される FIFO_WR_CLK と FIFO_RD_CLK の相対位相に左右されます。

たとえば一部のデザインは、FIFO_EMPTY の最初の立ち下がりエッジを使用してスタートアップ シーケンスの終わりに FIFO_RD_EN をアサートするのではなく、後続の FIFO_EMPTY パルスの 1 つを用いてアサートします。

この場合、FIFO_RD_EN はアサートされない可能性があり、その結果 FIFO からデータが読み出されなくなります。




対象となるデザイン:

  • UltraScale の 1G BASE-X IP (バージョン 16.1 rev 5)
  • UltraScale+ の 1G BASE-X IP と SGMII IP (バージョン 16.1 rev 5)

ソリューション

この動作は、すべての UltraScaleおよび UltraScale+ デバイスの RX_BITSLICE、RXTX_BITSLICE、および ISERDESE3 に適用されます。

解決策として、リセット後 FIFO_EMPTY の最初のディアサートを使用して FIFO_RD_EN をアサートします。

FIFO_RD_EN 回路では、次のように、FIFO_EMPTY の最初のディアサートが使用されるはずです。

ストローブから一番離れている BITSLICE からの FIFO_EMPTY が通常は使用されます。


複数の FIFO_EMPTY 信号が使用されている場合は、すべての BITSLICE に対して FIFO_WR_CLK が開始した後に FIFO_RD_EN がアサートされるよう、すべての FIFO_EMPTY を NOR にします。

この修正は、次のバージョンの IP に含まれています。

  • UltraScale の 1G BASE-X IP (バージョン 16.1 rev 6)
  • UltraScale+ の 1G BASE-X および SGMII (バージョン 16.1 rev 6)
AR# 72084
日付 05/29/2019
ステータス アクティブ
種類 一般
デバイス 詳細 概略