NI矢量信號收發(fā)器的FPGA編程
1. 介紹
NI VST FPGA軟件包含多層代碼,提供了從底層控制到高層抽取的一切,擁有RF信號分析儀和RF信號發(fā)生器的功能。底層組件實現(xiàn)了具體硬件的標(biāo)準(zhǔn)功能,包括信號校準(zhǔn)、前端控制,以及基于記錄的采集和生成,被稱為儀器設(shè)計庫。這些庫提供了互相匹配的主機(jī)和FPGA代碼對,并且可以聚集以構(gòu)建完整的硬件設(shè)計。LabVIEW項目樣例包含了基于儀器設(shè)計庫的相關(guān)主機(jī)和FPGA代碼,提供了開發(fā)各種應(yīng)用所需要的模板。另外,NI-RFSA和NI-RFSG儀器驅(qū)動還支持VST儀器驅(qū)動FPGA擴(kuò)展,使VST FPGA源代碼完美適合具體應(yīng)用。
2. 儀器設(shè)計庫
NI提供矢量信號收發(fā)器所用的多種儀器設(shè)計庫。如上文所述,這些儀器設(shè)計庫存在于用戶和生產(chǎn)廠商的關(guān)于主機(jī)端和FPGA的代碼中,,實現(xiàn)了儀器的常見功能。表2列出了一些頂層儀器設(shè)計庫及其功能。
表1. NI VST所用頂層儀器設(shè)計庫。
ni.com/vst/getting-started/zhs/所列軟件安裝了這些儀器設(shè)計庫,在硬盤的c:\Program Files\National Instruments\LabVIEW [version]\instr.lb\位置。這些庫具有顏色和諧的粗邊框,與其他VI明顯有別。
圖1:儀器設(shè)計庫具有顏色和諧的粗邊框,此獨特圖標(biāo)使其與其他VI相區(qū)別
另外,這些庫在默認(rèn)情況下處于鎖定狀態(tài),用戶在修改內(nèi)容之前,需要先通過會話框?qū)I解鎖。下文所述是使用這些儀器設(shè)計庫的詳細(xì)信息,適用于任何更改。
在給定儀器設(shè)計庫的主機(jī)與FPGA之間交換數(shù)據(jù)可采用多種機(jī)制。所有采用LabVIEW RIO架構(gòu)和LabVIEW FPGA的NI產(chǎn)品均使用NI-RIO驅(qū)動,此驅(qū)動提供了單點方式的、存儲器映射、基于寄存器的主機(jī)至FPGA以及FPGA至主機(jī)通信,還有從主機(jī)至FPGA以及FPGA至主機(jī)的多點連續(xù)DMA FIFO。這些都是功能強(qiáng)大的數(shù)據(jù)交換機(jī)制,實現(xiàn)主機(jī)與FPGA之間的有效通信不需要了解或者只要些許了解底層總線架構(gòu)。
儀器設(shè)計庫的一個常見要求是:主機(jī)代碼需要將大量的設(shè)置下載到設(shè)備中,例如要對與FPGA相連接的芯片寄存器進(jìn)行編程,或者更新設(shè)置組,例如FPGA上的濾波器抽頭。由于一些儀器設(shè)計庫要求采用此策略,并且設(shè)備的DMA通道數(shù)目有限,所以這些庫可能需要共享一個FIFO,從而需要在主機(jī)端和FPGA端增加額外的邏輯來實現(xiàn)。另外,對于大數(shù)據(jù)集來說,此類通信一般為單向,但是可能也需要提供從FPGA至主機(jī)的某種單點確認(rèn),例如確認(rèn)所有設(shè)置均已成功應(yīng)用等等。所有這些概念組成為一個單獨概念,稱為寄存器總線,并為一些儀器設(shè)計庫所采用。
寄存器總線使用一個主機(jī)到FPGA端的DMA FIFO來下載設(shè)置,以及一些寄存器/NI-RIO控制器和指示器,用于握手,將單點數(shù)據(jù)返回主機(jī),或者發(fā)出信號,確認(rèn)已下載設(shè)置中的指令已經(jīng)應(yīng)用。
圖2. 寄存器總線是基于NI-RIO DMA、控制器和指示器構(gòu)建的輕質(zhì)協(xié)議,實現(xiàn)了大量設(shè)置組至FPGA的高效下載,這是給定儀器設(shè)計庫的主機(jī)與FPGA側(cè)之間的常見要求。