在 FPGA Target 上有多少 DMA FIFOs 可以使用?



硬體: CompactRIO

問題: 我想要使用直接記憶體存取(Direct Memory Access, DMA) 在我的 FPGA targert 與 host 之間傳輸資料,在 CompactRIO(cRIO) 或是 R系列平台上有多少通道可以使用呢?

解答: 目前所有 National Instruments 之 CompactRIO 以及 R系列的 FPGA 平台上有三個 DMA 通道可以使用,除了 NI PCI-5640R 和 PXIe-5641R IF-RIO 裝置則有四個 DMA FIFOs。這表示你只能在每個 FPGA target 上最多使用三個或是四個 DMA FIFOs。而在 LabVIEW FPGA Module 8.6 或以上的版本會自動去配置 DMA 通道的選擇。

你可以在 Project 當中定義超過三個或四個的 DMA FIFOs,但由於你所定義的數目超出實際可以使用的數量,會發生圖一的錯誤訊息:


圖一:在 FPGA target 上建立了超出實際可用之 DMA 通道數量所發生的編輯錯誤訊息


請注意每個 DMA FIFO 只能做單向的傳輸:target-to-host 或是 host-to-target。假如你需要同時在 FPGA target 與 host 之間互相傳輸資料,則至少需要用到兩個 DMA FIFOs。


注意:若在含有三個 DMA 通道的 FPGA target 上使用 Scan Mode,會耗費兩個 DMA 通道,因此若你使用混合模式(hybrid mode = FPGA Mode + Scan Mode)來操作 FPGA target,則你只能運用一個 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
Products and Services: NI PCI-5640R Software Defined Radio IF Transceiver
Products and Services: NI PXIe-5641R RIO IF Transceiver

附加檔案:





報告日期: 05/18/2009
最後更新: 11/26/2009
文件偏號: 4XHBCJYP