Main Content

HDL FIFO

入力サンプルのシーケンスを先入れ先出し (FIFO) レジスタに格納

  • HDL FIFO block

ライブラリ:
HDL Coder / HDL RAMs

説明

HDL FIFO ブロックは、入力サンプルのシーケンスを先入れ先出し (FIFO) レジスタに格納します。FIFO レジスタに最初に書き込まれたデータが最初に読み出されます。このブロック実装は、ハードウェア プラットフォームの FIFO ユニットに機能や動作が似ています。

HDL FIFO ブロックでは、内部で Simple Dual Port RAM ブロックを使用しています。HDL FIFO ブロックを使用して、ほとんどの FPGA で RAM にマッピングされる HDL コードを生成できます。

端子

入力

すべて展開する

FIFO ブロックへのデータ入力信号。FIFO にデータを書き込むと、最も新しいデータが FIFO レジスタの末尾にプッシュされます。ブロックは、このエントリの後に後続のデータ エントリをプッシュしていきます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
複素数のサポート: あり

この端子が値 1 を受信すると、ブロックは In 端子の入力を FIFO レジスタの末尾にプッシュします。

データ型: Boolean

この端子が値 1 を受信すると、ブロックは FIFO レジスタから最初の要素をポップし、その値の Out 端子を保持します。

データ型: Boolean

メモ

2 つ以上の制御入力端子が同じタイム ステップでトリガーされた場合、ポップ操作が先に実行され、続いてプッシュ操作が実行されます。

リセット端子が値 1 を受信すると、HDL FIFO ブロックの Empty、Full、および Num の出力がリセットされます。

依存関係

この端子を有効にするには、ブロック パラメーター [ローカル リセット端子] を選択します。

データ型: Boolean

出力

すべて展開する

FIFO ブロックからのデータ出力信号。FIFO からデータを読み取ると、FIFO レジスタに最初に書き込んだデータが FIFO から読み出され、そのデータが出力で保持されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
複素数のサポート: あり

FIFO からの制御信号出力。FIFO レジスタが空でデータ エントリが格納されていない場合に 1 になります。

依存関係

この端子を有効にするには、[空のレジスタのインジケーター端子 (Empty) を表示] を選択する必要があります。

データ型: Boolean

FIFO からの制御信号出力。FIFO レジスタがいっぱいで追加のデータ エントリを受け入れられない場合に 1 になります。

依存関係

この端子を有効にするには、[フル レジスタのインジケーター端子 (Full) を表示] を選択する必要があります。

データ型: Boolean

FIFO レジスタ内に現在格納されているデータ エントリの数。FIFO にデータを書き込むたびに [Num]1 ずつインクリメントされます。FIFO からデータを読み取るたびに [Num]1 ずつデクリメントされます。

依存関係

この端子を有効にするには、[レジスタ エントリ数の端子 (Num) を表示] を選択する必要があります。

データ型: double

パラメーター

すべて展開する

FIFO レジスタで保持できるエントリの数を指定します。[レジスタ サイズ] の既定値は 10 です。[レジスタ サイズ] の最小値は 4 です。

プログラムでの使用

ブロック パラメーター: fifo_size
型: 文字ベクトル
値: 4 以上の整数
既定の設定: '10'

FIFOの操作モードを指定します。既定では、[モード]Classic に設定されています。この場合、ブロック アイコンに Classic FIFO と表示されます。[モード]FWFT に変更できます。[モード] を変更すると、ブロック アイコンに FWFT FIFO と表示されます。FWFT モードを使用すると、FIFO レジスタに書き込まれた最初の語を読み取り要求なしで先読みして確認できます。FWFT モードは、AXI4-Stream インターフェイスでバックプレッシャーを適用する場合に特に便利です。

プログラムでの使用

ブロック パラメーター: mode
型: 文字ベクトル
値: 'Classic' | 'FWFT' |
既定の設定: 'Classic'

出力サンプル時間と入力サンプル時間の比率を指定します。既定の比率は 1 で、入力 In および Push と出力 Out および Pop が同じサンプル レートで実行されることを意味します。入力と出力を異なるサンプル時間で実行できます。正の整数、または N を正の整数とする 1/N を使用します。たとえば、「1/2」と入力すると、出力サンプル時間が入力サンプル時間の半分になり、出力の方が実行が速くなります。FullEmpty、および Num の信号が速いレートで実行されます。

プログラムでの使用

ブロック パラメーター: ratio
型: 文字ベクトル
値: 1 以上の整数
既定の設定: '1'

いっぱいの状態の FIFO に書き込んだときのブロックの応答を指定します。既定の設定は Warning です。

プログラムでの使用

ブロック パラメーター: push_msg
型: 文字ベクトル
値: 'Warning' | 'Ignore' | 'Error'
既定の設定: 'Warning'

空の状態の FIFO から読み取ったときのブロックの応答を指定します。既定の設定は Warning です。

プログラムでの使用

ブロック パラメーター: pop_msg
型: 文字ベクトル
値: 'Warning' | 'Ignore' | 'Error'
既定の設定: 'Warning'

Empty 出力端子を有効にするかどうかを指定します。この端子は、FIFO レジスタが空である場合に 1 を出力し、FIFO に 1 つ以上のデータ エントリが格納されていれば 0 を出力します。

プログラムでの使用

ブロック パラメーター: show_empty
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

Full 出力端子を有効にするかどうかを指定します。この端子は、FIFO レジスタがいっぱいである場合に 1 を出力します。

プログラムでの使用

ブロック パラメーター: show_full
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

Num 出力端子を有効にするかどうかを指定します。この端子は、FIFO キューに現在格納されている使用可能なデータ エントリの数を出力します。

プログラムでの使用

ブロック パラメーター: show_num
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

追加の rst 入力端子を挿入するかどうかを指定します。

プログラムでの使用

ブロック パラメーター: rst_port
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

アルゴリズム

すべて展開する

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2014a で導入