オペレーター ImageFifo

Operator Library: Memory

このオペレーターを使用すると、FPGAベースのメモリ内で比較的少数のピクセルをバッファリングできます。 このオペレーターは、タイプが RAM の VisualApplets リソースを必要としません。 代わりに、オペレーターはFPGAの内部メモリを使用します。 これは、FPGA-internal block RAM、FPGA distributed RAM (LUT RAM)、または UltraRAM memory のいずれかになります(URAMは imaFlex CXP-12 Quad および imaFlex CXP-12 Penta プラットフォームでのみ使用可能です)。どちらを使用するかは、パラメータ ImplementationType で手動で設定するか、オペレーターの設定に応じて自動的に選択されます。

ImageFifo オペレーターは、同期の前にラインやピクセルをバッファリングするためによく使用されます。 FPGA内部メモリには制限があるため、利用可能なリソースを超えることなくフル解像度のフレームをバッファリングできる可能性は低いと言えます。

オペレーターのレイテンシについては、「表 46:Library Memory 内のオペレーターの個別のレイテンシ」を参照してください。

パラメータ EntitiesToStore および EntityType は、利用可能な最大バッファサイズを定義します。 このオペレーターは、先入れ先出しメモリ(FIFO)です。 入力されたデータはすぐに出力に転送されます。 ただし、後続のオペレーターが入力帯域幅を処理できないなどの理由で出力がブロックされている場合、オペレーターはデータを保存します。 したがって、メモリがデータを出力できない場合にのみ、メモリの Fill が行われます。

バッファの Fill レベルを測定するために、オペレーターにはパラメータ FillLevel が用意されています。 FillLevel は、Fifo の Fill レベルのパーセンテージを示します。

パラメータ InfiniteSource は、オペレーターがカメラに直接接続されているか、他のメモリオペレーターとシーケンス接続されているかを指定するために使用されます。 InfiniteSource が無効になっている場合、オペレーターがオーバーフロー状態になることはありません。 詳細については、'Infinite Sources / Connecting Cameras' を確認してください。

パラメータ ImplementationType を使用して、オペレーターが使用するハードウェアメモリを指定できます。

I/O Property

Property 値
オペレータータイプ M
Input Link I、画像データ入力
Output Link O, data output

サポートされているリンクフォーマット

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 as I
Arithmetic {unsigned, signed} as I
Parallelism any as I
Kernel Columns 1 as I
Kernel Rows 1 as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} as I
Color Format any as I
Color Flavor any as I
Max. Img Width any as I
Max. Img Height any as I

1

符号なし入力の場合、入力ビット幅の範囲は[1, 64]です。 符号付き入力の場合、範囲は[2, 64]です。 符号なしカラー入力の場合、範囲は[3, 63]であり、符号付きカラー入力の場合の範囲は[6, 63]です。

パラメーター

EntitiesToStore
タイプ static パラメータ
Default 1
範囲 any

このパラメータは、最大で何個のピクセル、ライン、またはフレームを保存する必要があるかを定義します。 エンティティタイプは、パラメータ EntityType を使用して定義されます。

EntityType
タイプ static パラメータ
Default FRAME
範囲 {FRAME, LINE, PIXEL}

このパラメータは、保存するエンティティのタイプを定義します。 このパラメータは、EntitiesToStore 単位の EntityType をバッファリングできます。

FRAME は、入力リンク画像プロトコルが VALT_IMAGE2D である場合にのみ選択できます。 LINE はプロトコル VALT_LINE2D および VALT_LINE1D で選択でき、PIXEL は常に有効です。

ImplementationType
タイプ static write parameter
Default AUTO
範囲 (AUTO、BRAM、LUTRAM、URAM)

パラメータ ImplementationType は、オペレーターの実装戦略、つまりオペレーターの実装にどのメモリ要素が使用されるかに影響を与えます。

以下の値から選択できます:

AUTO: 接続されたリンクのパラメータ化に基づいて、最適な実装戦略が自動的に選択されます。

BRAM: オペレーターは FPGA のブロック RAM を使用します。

LUTRAM: オペレーターは FPGA の LUT RAM を使用します。

URAM: オペレーターは FPGA の UltraRAM を使用します。

[注] URAM の可用性

ImplementationType パラメータの値 URAM は、imaFlex CXP-12 Quad および imaFlex CXP-12 Penta プラットフォームでのみ使用できます。

[注] 通常は AUTO を使用

通常、パラメータは AUTO に設定する必要があります。特別な場合、つまりデザイン内で特定の種類の FPGA リソースが不足している場合は、BRAM、LUTRAM、または URAM の値を使用して FPGA リソース管理に手動で影響を与えることができます(URAM は imaFlex CXP-12 Quad および imaFlex CXP-12 Penta プラットフォームでのみ利用可能です)。

AUTOはBRAMとLUTRAMの間でのみ選択を行います。

FillLevel
タイプ 動的リードパラメータ
Default 0
範囲 [0%, 100%]

このパラメータは、バッファの Fill レベルを提供します。 オペレーターはFPGAリソースを効率的に使用します。構成によっては、バッファに100%を超えるデータを保存できる場合があります。

InfiniteSource
タイプ static パラメータ
Default ENABLED
範囲 {ENABLED, DISABLED}

このパラメータは、Cameraオペレーターなどの無限ソースオペレーターのサポートを有効にします。 詳細については、'Infinite Sources / Connecting Cameras'を参照してください。

使用例

ImageFifo オペレーターの使用方法は、以下の例に示されています。