NI矢量信號收發(fā)器的FPGA編程
另外,這些庫在默認情況下處于鎖定狀態(tài),用戶在修改內容之前,需要先通過會話框將VI解鎖。下文所述是使用這些儀器設計庫的詳細信息,適用于任何更改。
在給定儀器設計庫的主機與FPGA之間交換數據可采用多種機制。所有采用LabVIEW RIO架構和LabVIEW FPGA的NI產品均使用NI-RIO驅動,此驅動提供了單點方式的、存儲器映射、基于寄存器的主機至FPGA以及FPGA至主機通信,還有從主機至 FPGA以及FPGA至主機的多點連續(xù)DMA FIFO。這些都是功能強大的數據交換機制,實現主機與FPGA之間的有效通信不需要了解或者只要些許了解底層總線架構。
儀器設計庫的一個常見要求是:主機代碼需要將大量的設置下載到設備中,例如要對與FPGA相連接的芯片寄存器進行編程,或者更新設置組,例 如FPGA上的濾波器抽頭。由于一些儀器設計庫要求采用此策略,并且設備的DMA通道數目有限,所以這些庫可能需要共享一個FIFO,從而需要在主機端和 FPGA端增加額外的邏輯來實現。另外,對于大數據集來說,此類通信一般為單向,但是可能也需要提供從FPGA至主機的某種單點確認,例如確認所有設置均 已成功應用等等。所有這些概念組成為一個單獨概念,稱為寄存器總線,并為一些儀器設計庫所采用。
寄存器總線使用一個主機到FPGA端的 DMA FIFO來下載設置,以及一些寄存器/NI-RIO控制器和指示器,用于握手,將單點數據返回主機,或者發(fā)出信號,確認已下載設置中的指令已經應用。
圖 2. 寄存器總線是基于NI-RIO DMA、控制器和指示器構建的輕質協(xié)議,實現了大量設置組至FPGA的高效下載,這是給定儀器設計庫的主機與FPGA側之間的常見要求。
為了完成仲裁,每個儀器設計庫均有一個獨一無二的子系統(tǒng)ID,從而使得多個庫能夠共享一條寄存器總線。為了更好地總結VST儀器設計庫的通信策略,表2說明了每個庫所采用的策略。
控制器和指示器 | DMA FIFOs | 寄存器總線 | |
DSP | X | – | – |
RF In | – | – | X |
RF Out | – | – | X |
Basecard | – | – | X |
多記錄采集 | – | X | X |
波形序列器 | – | X | X |
觸發(fā)同步 | X | – | – |
嵌入式配置 | – | – | X |
表 2. NI PXIe-5644R儀器設計庫的主機與FPGA數據交換機制。
另外,通過與嵌入式配置儀器設計庫配合使用,寄存器總線還可以在不牽涉主機的情況下完成FPGA觸發(fā)的重新配置。
評論