無(wú)線工程師經(jīng)常希望使用無(wú)線信號(hào)實(shí)現(xiàn)從概念到原型。諸如USRP(通用軟件無(wú)線電外設(shè))設(shè)備的軟件無(wú)線電(SDR)提供了滿足該需求的靈活解決方案。由于當(dāng)今的應(yīng)用需要更高的帶寬和更短的延遲,因此需要在SDR的FPGA上實(shí)現(xiàn)更多的信號(hào)處理。但編程FPGA的無(wú)線工程師經(jīng)常面臨下列挑戰(zhàn):
1. FPGA與輸入/輸出(如RF信號(hào)或主機(jī)CPU)之間的接口困難2. 不熟悉用于算法實(shí)現(xiàn)的編程樣式,及3. 編譯時(shí)間長(zhǎng)
在本系列適用于無(wú)線工程師的FPGA原型設(shè)計(jì)中,了解LabVIEW Communications System Design Suite (LabVIEW Communications)和NI SDR硬件如何幫助您克服關(guān)鍵性挑戰(zhàn),并快速創(chuàng)建無(wú)需FPGA知識(shí)的實(shí)時(shí)、無(wú)線測(cè)試平臺(tái)。
第1部分. 立即連接FPGA算法至I/O
FPGA設(shè)計(jì)通常需要多個(gè)VHDL代碼組件以用于模數(shù)轉(zhuǎn)換器(ADC)、數(shù)模轉(zhuǎn)換器(DAC)、PCI Express總線、存儲(chǔ)器、時(shí)鐘等接口(圖1A)。其中的每一部分通常來(lái)自于:從零開(kāi)發(fā)、重用現(xiàn)有的設(shè)計(jì)或從Xilinx或其他IP供應(yīng)商處獲得的IP。這意味著必須完成重要的集成工作以連接上述各部分,該集成工作通常比算法實(shí)現(xiàn)本身工作量更大。
盡管這些硬件接口實(shí)現(xiàn)起來(lái)很難,但定制它們的意義不大。例如,通過(guò)ADC接口關(guān)閉靜態(tài)定時(shí)和計(jì)算同步可能較難實(shí)現(xiàn),但它在不同項(xiàng)目中的模數(shù)轉(zhuǎn)換功能基本相同。為了消除此瓶頸,LabVIEW Communications提供了SDR印刷電路板上所有硬件的接口。例如,ADC數(shù)據(jù)作為已被正確采樣且已轉(zhuǎn)換為正確的數(shù)據(jù)類型的采樣提供給FPGA程序框圖,用戶僅需在程序框圖上放置讀取I/O節(jié)點(diǎn)即可訪問(wèn)這些數(shù)據(jù)。同樣,如要將數(shù)據(jù)以數(shù)據(jù)流方式從FPGA傳輸至CPU,僅需使用寫(xiě)入FIFO節(jié)點(diǎn)而無(wú)需考慮實(shí)際的數(shù)據(jù)流實(shí)現(xiàn)方式。
在無(wú)線工程師適用的FPGA原型的第一部分,我們將介紹如何利用LabVIEW Communications快速在FPGA上傳輸數(shù)據(jù),即讓用戶專注于算法的實(shí)現(xiàn)。
圖1.(A)在帶有I/O的典型自定義FPGA設(shè)計(jì)中,設(shè)計(jì)團(tuán)隊(duì)通常在集成I/O接口上花費(fèi)的時(shí)間要高于實(shí)現(xiàn)算法或IP。(B)在LabVIEW Communications中已經(jīng)實(shí)現(xiàn)了這些接口,因此設(shè)計(jì)團(tuán)隊(duì)可以專注于實(shí)現(xiàn)信號(hào)處理而不是系統(tǒng)集成。
第1步. 放置I/O節(jié)點(diǎn)
如要將FPGA算法與連接到RF前端的ADC和DAC、主機(jī)CPU或內(nèi)存等資源建立連接,僅需為該資源放置一個(gè)讀取或?qū)懭牍?jié)點(diǎn)。關(guān)于節(jié)點(diǎn)的范例見(jiàn)圖2。
圖2.使用這些塊與實(shí)際I/O及與主機(jī)CPU、USRP RIO設(shè)備上的DRAM或寄存器交互數(shù)據(jù)的FIFO通信。
第2步. 配置I/O節(jié)點(diǎn)
可使用資源文件配置FPGA I/O資源,如圖3所示。配置資源別名、數(shù)據(jù)類型、方向(FPGA到主機(jī)、主機(jī)到FPGA、FPGA到FPGA、本地)或緩沖深度等屬性。
圖3.使用資源文件來(lái)創(chuàng)建和配置FIFO、內(nèi)存、時(shí)鐘和其他資源。
第3步. 連接算法至I/O節(jié)點(diǎn)
創(chuàng)建并配置了所需的資源后,就可以將它們連接至在FPGA上實(shí)現(xiàn)的算法。例如,圖4框圖是在LabVIEW Communications中的FPGA上實(shí)現(xiàn)的(見(jiàn)圖5)。在該設(shè)計(jì)中,來(lái)自USRP RIO設(shè)備接收端口的數(shù)據(jù)以數(shù)據(jù)流方式傳遞至FPGA上的“My Algorithm”,這與同步、解調(diào)或?yàn)V波塊類似。然后,該輸出以數(shù)據(jù)流方式傳輸至內(nèi)存和FPGA至CPU FIFO。
圖4.該范例設(shè)計(jì)的框圖顯示了如何從RF前端接收數(shù)據(jù),然后經(jīng)由名為“My Algorithm”的用戶創(chuàng)建塊處理,最后以數(shù)據(jù)流方式傳輸至內(nèi)存和主機(jī)CPU?!癕y Algorithm”可以是任意算法(如解調(diào)、濾波或快速傅里葉變換)。
圖5.在LabVIEW Communications中FPGA代碼的理論程序框圖的實(shí)現(xiàn)中,從RF前端讀取原始I和Q數(shù)據(jù),然后經(jīng)由“My Algorithm”處理,最后以數(shù)據(jù)流方式傳輸至內(nèi)存和主機(jī)CPU。
第4步. 下一步
如要在FPGA上編寫(xiě)類似“My Algorithm”這樣的自定義實(shí)時(shí)塊,使用LabVIEW Communications免除了具備VHDL經(jīng)驗(yàn)的要求。如要了解如何創(chuàng)建類似20 MHz正交頻分復(fù)用(OFDM)調(diào)制器的算法,請(qǐng)繼續(xù)閱讀本技巧和竅門系列的下一部分:在不具備HDL專門知識(shí)的情況下從概念到FPGA代碼。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601234 -
cpu
+關(guān)注
關(guān)注
68文章
10804瀏覽量
210829 -
接口
+關(guān)注
關(guān)注
33文章
8447瀏覽量
150720
原文標(biāo)題:無(wú)線工程師適用的FPGA系列:立即連接FPGA算法至I/O
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開(kāi)發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論