FPGA ターゲットで使用可能な DMA FIFO の数はいくつでしょうか



ハードウェア: CompactRIO

問題:
Direct Memory Access (DMA) を使用して FPGA ターゲットと ホスト 間で データ 転送を行いたいのですが、CompactRIO (cRIO) や R シリーズプラットフォームで使用可能なチャンネルはいくつあるのでしょうか。

解決策:
現在すべてのNational Instrumentsの cRIO と R シリーズ FPGA プラットフォームは3つの DMA データ転送用の DMA チャンネルがあります。この制限はすなわち FPGA プロジェクトの各ターゲットにつき3つまで DMA FIFO 使えるということです。DMA チャンネルの選択は LabVIEW 8.6 FPGA Module 以降自動的に行われます。

プロジェクトエクスプローラ上で4つ以上の DMA FIFO を作成することはできますが、4つ以上 DMA FIFO が配置されている FPGA VI をコンパイルしようとすると以下のようなエラーが表示されます。

There are insufficient DMA channels available on the current target. Too many DMA channels have been requested or some channel requests are conflicting. The current target has 3 DMA channels. Review the list of requested channels and remove one or more to free up resources.



一つ注意しなければいけないのが、各 DMA FIFO は一つの方向にしかデータ転送をできないということです(ターゲットからホスト、またはホストからターゲット)。データを FPGA からホストへ、そしてホストから FPGA へと両方向にデータを転送する場合は少なくとも2つのDMA FIFOが必要です。

メモ:FPGA ターゲットでスキャンモードを使用する場合は DMA チャンネルを2つ使用しますので、FPGA ターゲットをハイブリッドモード (FPGA モードとスキャンモードの両方)で使用する場合は DMA FIFO は一つしか追加することができません。



関連リンク:
LabVIEW 8.6 FPGA Module Help: Creating FPGA FIFOs (FPGA Module)
LabVIEW FPGA Module Release and Upgrade Notes Version 8.6
KnowledgeBase 4767OILX: Allocating DMA Memory on cRIO Controllers with 128 MB DRAM Can Cause the Controller to Crash

添付:





報告日時: 05/18/2009
最終更新日: 08/20/2009
ドキュメントID: 4XHBCJYP