FPGAハードウェアの概念 (FPGAモジュール)

各FPGAチップまたはFPGAは、プログラム可能な内部配線を持つ無数の定義済みリソースで構成されています。これらの内部接続は、LabVIEW FPGAモジュールで設計したデジタル回路を実装します。FPGA VIを作成することで、FPGA上の論理ブロックの配線を決定する回路図を設計します。このVIをコンパイルすると、コンパイルツールによってFPGA回路に変換されます。

メモ  このトピックでは、FPGAの下位レベルでの実装の概念について説明します。LabVIEW FPGAモジュールの使用を開始するのにこれらの概念についての知識は必要ありませんが、理解しているとより効率的にFPGA VIを構築することができます。

以下の図は、FPGA上の論理ブロック、I/Oブロック、およびプログラム可能な経路の関係を示します。

以下のFPGAの仕様は、FPGAアプリケーションを設計する上で重要です。

  • 構成可能な論理ブロックの数
  • 固定ファンクション論理ブロックの数 (乗算器など)
  • メモリリソースのサイズ (組込ブロックRAMなど)

FPGAの基本構成部分の詳細については、ni.comサポートドキュメントを参照してください。

フリップフロップ、LUT、スライス

FPGAリソースは、論理関数を実行可能なFPGAのリソースです。FPGAリソースは、構成可能な論理ブロックを作成するためにスライスにグループ分けされます。スライスには、決まった数のLUT、フリップフロップ、およびマルチプレクサが搭載されています。LUTは、FPGAに配線された一連の論理ゲートです。LUTは、すべての入力の組み合わせに対して事前定義された出力のリストを記憶し、論理操作の結果をすばやく出力します。フリップフロップは、2つの安定した状態を持つ回路で、1つのビットを表します。muxとも呼ばれるマルチプレクサは、2つ以上の入力から選択して、選択した入力に出力する回路です。

異なるFPGAシリーズでは、スライスとLUTの実装が異なります。たとえば、Virtex-II FPGAの1つのスライスにはLUTとフリップフロップが2つずつ搭載されていますが、Virtex-5 FPGAの1つのスライスにはLUTとフリップフロップが4つずつ搭載されています。 さらに、LUTの入力数は通常2~6個で、FPGAシリーズによって異なります。

レジスタ

レジスタは、ビットパターンを格納するフリップフロップのグループです。FPGAのレジスタには、クロック、入力データ、出力データ、および有効信号ポートがあります。各クロックサイクルで入力データはラッチされて内部で格納され、出力データは内部で格納されたデータと一致するように更新されます。FPGA VIは、以下の機能を実行するためにレジスタを使用します。

  • ループの反復間の状態を保持
  • I/O同期
  • クロック領域間のデータをハンドシェイク
  • パイプライン処理
  • ホストVIと通信

レジスタは、FPGA VIのタイミングを理解する上で重要な概念です。

ブロックRAM

ブロックRAM (ブロックメモリ) は、データ記憶用にFPGA全体に渡って配置されます。LabVIEWは、一般にメモリ&FIFO関数を合成する際にブロックRAMを使用します。 FIFOプロパティおよびメモリプロパティダイアログボックスを使用して、LabVIEWがFIFOとメモリ項目を実装する方法を指定できます。



この記事は役に立ちましたか。

役に立たなかった