FIFO モードは、FIFO_MODE_<0-5> 属性で指定して NIBBLESLICE 単位で制御できます。
書き込みポインターと読み出しポインターが等しくなると、FIFO_EMPTY がアサートされます。これが、次に示す ASYNC のレイテンシ波形の開始点となります。読み出しポインターが特定の位置 (FIFO_RDEN がディアサートされた位置など) でロックされ、書き込みポインターがまだインクリメントしている場合、FIFO_WR_CLK の 8 サイクル後に書き込みポインターは読み出しポインターの位置までラップアラウンドします。これにより、新しいデータが Q<0-5> ピンに現れ、FIFO_EMPTY が再びアサートされます。
次の表に、FIFO 関連の属性を簡単にまとめます。詳細は、属性 を参照してください。
属性 | 説明 |
---|---|
FIFO_MODE_<0-5> | RX データパス内の FIFO のクロッキング トポロジを決定します。 |
RX_DATA_WIDTH | RX データパスのデシリアライズを決定します。これにより、DATAIN と Qx のマップが変化します。 |
次の表に、DATAIN と Qx のマップを示します。DATAIN[x] は NIBBLESLICE[x] に対応します。P0、N0、…、P3、N3 の内容は、次に示すレイテンシの波形を参照してください。
デシリアライズ (RX_DATA_WIDTH) | DATAIN[x] | |||||||
---|---|---|---|---|---|---|---|---|
N3 | P3 | N2 | P2 | N1 | P1 | N0 | P0 | |
1:8 | Qx[3] | Qx[7] | Qx[2] | Qx[6] | Qx[1] | Qx[5] | Qx[0] | Qx[4] |
1:4 | – | – | – | – | Qx[3] | Qx[7] | Qx[2] | Qx[6] |
1:2 | – | – | – | – | – | – | Qx[3] | Qx[7] |
FIFO_MODE_x = ASYNC の場合:
- FIFO_EMPTY の値の変化には 2 ~ 3 サイクルかかります。
- 2 ~ 3 サイクルのレイテンシによって、書き込みポインターが常に読み出しポインターの 2 ~ 3 サイクル先に動作するようになっています。
- FIFO_RD_CLK と FIFO_WR_CLK は同じ周波数にする必要がありますが、位相は独立しています。
- FIFO_EMPTY と Qx は FIFO_RD_CLK ドメインに属します。
次に示す図の DATAIN と Q は、同じ NIBBLESLICE のものを表します。DATAIN[x] は、Qx 出力の 1 つにマップします。この波形は NIBBLESLICE[2] のものですが、すべての NIBBLESLICE に共通です。
- XPLL スキュー調整回路と組み合わせて使用する場合、FIFO_EMPTY の値が変化するには 1 サイクルが必要です。
- スキュー調整回路が正しくロックするように、継続的な受信データ クロックが必要です。
- また、最適な性能を得るには、クロック出力を FIFO_WR_CLK に揃えるために XPLL のスキュー調整回路が必要です。
- FIFO_EMPTY と Qx は FIFO_RD_CLK ドメインに属します。
- FIFO_WR_CLK は、キャプチャ クロックによって駆動されます。
- TXRX_LOOPBACK_0 = TRUE の場合、DATAIN[0] に create_clock 制約を適用する必要があります。ループバックの詳細は、TX から RX へのループバックの制御 を参照してください。
FIFO_RD_CLK を FIFO_WR_CLK に揃えるには、次の図に示すように FIFO_WR_CLK を XPLL に接続してスキュー調整回路を使用します。この結果、FIFO_RD_CLK は FIFO_WR_CLK に対して固定された位相アライメントとなります。
FIFO_MODE_x = BYPASS の場合、XPHY データは FIFO_WR_CLK ドメインから送信されます。タイミング クロージャを達成し、安定したクロック配線とするには、図 7 に示すように FIFO_WR_CLK をスキュー調整回路に接続してクロック バッファーの位相を揃えてください。