TEL:086-227-0113
info@gopher-tec.jp
TOP page 製品情報 FPGAサンプルコードリポジトリ FIFO_32x16
FIFO_32x16

汎用のDPRAMとリード・ライトポインタで構成したFIFOモジュールです。
リードクロックとライトクロックは互いに非同期に動作可能で、ポインタや各種フラグを同期化する
コードを全て含んでいるため、特殊フラグの追加やワード数の変更等といったカスタマイズが非常に
容易です。
FPGAベンダやASICベンダから提供されるFIFO-IP を使用する場合と比べて、重要なポインタ・カウンタ
類の全てを、ユーザが参照可能であるという点が本モジュールの最大のメリット。これらを元にした
カスタマイズによって、自分の使いやすいFIFOを構成し、使用するベンダによらず、そのFIFOを
使い続けるといったことも可能です。ソースでは32ビット幅16段という小ぶりなFIFOを構成して
いますが、コードを読み進めれば、データ幅や深さを変更するのも容易であると理解されるはず。
ベンダ毎に微妙に異なるFIFO仕様になじめない方や、デュアルクロックFIFOの構成方法に興味が
ある方にもおすすめです。

Port I/O  Description 
RESET in 非同期リセット入力です。
パワーオン時、またはシステムリセット時にアサートして下さい。
WR_CLK in FIFOのライトポートの信号(WR_で始まる信号)の同期クロックです。
WR_EN in FIFOへのライトイネーブル信号です。
WR_DATA[31:0] in FIFO へのライトデータです。
WR_EMPTY out ライトポートで使用するFIFOエンプティフラグです。
WR_HALF out ライトポートで使用するFIFOハーフフルフラグです。
WR_FULL out ライトポートで使用するFIFOフルフラグです。
WR_ERR out FIFOフルの状態でFIFOにライトしようとするとアサートされます。ライトは実行
されません。
RD_CLK in FIFOのリードポートの信号(RD_で始まる信号)の同期クロックです。
RD_EN in FIFOへのリードイネーブル信号で、リードポインタのカウントアップイネーブル信号と
して動作します。
RD_CLK in FIFOのリードポートの信号(RD_で始まる信号)の同期クロックです。
RD_DATA[31:0] out FIFOからのリードデータです。FIFOに最初にライトしたデータは自動的にRD_DATAに
現れ、以降、RD_ENをアサートする毎に次のライトデータに切り替わります
(First Word Fall Through)。
RD_EMPTY out リードポートで使用するFIFOエンプティフラグです。
RD_HALF out リードポートで使用するFIFOハーフフルフラグです。
RD_FULL out リードポートで使用するFIFOフルフラグです。
RD_ERR out FIFOエンプティの状態でFIFOをリードしようとするとアサートされます。
※特に注記のない限り、信号は全て正論理です。
本ソースコードはVerilog版のみとなっております。
詳細は下記の資料ダウンロードをクリックください。

FIFO_32x16
資料ダウンロード