UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 3791

4.1i CORE Generator - XC4000 の同期 FIFO LogicCORE 出力はリード イネーブルが有効な場合にのみ有効である

説明

キーワード : CORE Generator, COREGen, IFO, full, read enable, READ Enable, RE, single, dual, port, リード イネーブル, 信号, デュアル, ポート

重要度 : 標準

概要 :
リード イネーブル (RE) が非アクティブで、FIFO がフルの場合、XC4000 の同期 FIFO データ出力は予想どうりに動作しません。 出力が有効になるのは、RE が有効な場合のみです。

FIFO のメモリがすべてフルになり、フル状態の出力が High になった後でも、次のクロック サイクルで WE がアサートされる場合、RE 入力がアサートされなくても、FIFO は最初のメモリ位置で書き込まれる値を出力します。

ソリューション

1

FIFO のメモリがすべてフルになり、フル状態の出力が High になった後でも、次のクロック サイクルで WE がアサートされる場合、FIFO は最初のメモリ位置で書き込まれる値を出力します。これは、RE 入力のアサートには関係ありません。

さらに、RE のアサートが解除されると、FIFO 出力は保持されません。 FIFO から読み出した最後の出力値を 2 クロック サイクル以上保持する場合、FIFO 出力にレジスタを付け、RE 信号を使用してこのレジスタの CE を制御します。

2

FIFO のビヘイビアで予測できない点は、RE がアクティブのときにのみ FIFO 出力が有効になるということです。 RE が無効になると、読み込みをしていなくても、出力はランダムに変更する場合があります。

RAM を使用した FIFO は、有効なデータをバッファに書き込んだり、バッファから読み出したりするのに必要となるクロック サイクル数を低減するために設計されています。 内部には、バッファ内の次に書き込みできるアドレスを示す書き込みカウンタと、次に読み出すアドレスを示す読み出しカウンタがあります。

シングル ポート RAM を使用した FIFO の場合、マルチプレクサがカウンタを選択し、メモリにアドレスを割り当てます。 RE 入力は、マルチプレクサ セレクト制御信号として動作します。 書き込みカウンタは、常に、次に書き込まれるメモリ位置を指すため、高速での書き込みが可能になります。

最後の FIFO メモリ位置にデータが書き込まれたら、FIFO はフルになり、書き込みカウンタは最初のメモリ位置に戻ります。 RE がアサートされなくても、この位置に保存された値は FIFO から出力されます。これは、書き込みカウンタがメモリにアドレスを割り当てるためです。

次のクロック サイクルでも WE が有効のままだと、次の位置の値が FIFO から出力されます。 もちろん、FIFO がフルになっているため、この位置のデータは上書きされません。

RE がアサートされていないため、この時点で FIFO 出力は問題になりません。 次に RE をアサートしても、同じ値が出力されます。 RE がアクティブになった後で読み出し出力を保持する必要がある場合、FIFO 出力に出力レジスタを追加し、レジスタのクロック イネーブルを RE に接続する必要があります。

デュアル ポート RAM を使用した FIFO の場合、カウンタを選択するマルチプレクサはありません。 FIFO からは、常に読み出しカウンタの出力のアドレスの値を出力します。 ただし、RE がアクティブのときに FIFO 出力が有効になるという原則は変わりません。
AR# 3791
作成日 04/16/1998
最終更新日 10/09/2003
ステータス アーカイブ
タイプ 一般