當(dāng)前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]為了解決基于LabVIEWFPGA模塊的DMAFIFO深度設(shè)定不當(dāng)帶來的數(shù)據(jù)不連續(xù)問題,結(jié)合LabVIEWFPGA的編程特點和DMA FIFO的工作原理,提出了一種設(shè)定FIFO深度的方法。對FIFO不同深度的實驗表明,采用該方法設(shè)定的FIFO深度能夠

為了解決基于LabVIEWFPGA模塊的DMAFIFO深度設(shè)定不當(dāng)帶來的數(shù)據(jù)不連續(xù)問題,結(jié)合LabVIEWFPGA的編程特點和DMA FIFO的工作原理,提出了一種設(shè)定FIFO深度的方法。對FIFO不同深度的實驗表明,采用該方法設(shè)定的FIFO深度能夠比較好地滿足系統(tǒng)對數(shù)據(jù)連續(xù)傳輸?shù)囊蟆Q芯拷Y(jié)果對深入展開研究和工程設(shè)計具有一定的指導(dǎo)意義。

  引言

  數(shù)據(jù)進(jìn)入FPGA的速率高于傳出的速率,持續(xù)的傳輸會造成數(shù)據(jù)的溢出,斷續(xù)的傳輸可能會造成數(shù)據(jù)不連續(xù)。使用基于LabVIEW FPGA的DMA FIFO作為主控計算機和FPGA之間的緩存,若DMAFIFO深度設(shè)置的合適,F(xiàn)IFO不會溢出和讀空,那么就能實現(xiàn)數(shù)據(jù)輸出FPGA是連續(xù)的。

  本文在介紹了LabVIEW FPGA模塊程序設(shè)計特點的基礎(chǔ)上,結(jié)合DMA FIFO的工作原理,提出了一種設(shè)定FIFO深度的方法,解決了FIFO溢出、讀空的問題,實現(xiàn)了數(shù)據(jù)的連續(xù)傳輸。實驗結(jié)果表明該方法正確、可行,程序設(shè)計滿足系統(tǒng)對數(shù)據(jù)傳輸連續(xù)性的要求。

  1 LabVIEW FPGA模塊

  LabVIEW FPGA是LabVIEW的一個子模塊,使用該模塊可以通過圖形化的編程對NI公司RIO(Reconfigurable I/O)設(shè)備上的FPGA進(jìn)行配置。圖形化的程序直接在硬件上實現(xiàn),通過對RIO設(shè)備上的I/O接口的控制,可以靈活地對I/O信號進(jìn)行分析和處理,表現(xiàn)出比固定I/O硬件更加優(yōu)異的特性。使用LabVIEWFPGA模塊開發(fā)出來的系統(tǒng)具有開發(fā)周期短、結(jié)構(gòu)模塊化、升級方便等優(yōu)點。例如,圖1表示了一個用LabVIEW FPGA模塊設(shè)計的程序,在FPGA上實現(xiàn)方波發(fā)生器。該方波發(fā)生器通過數(shù)字接口DIO_1輸出方波,其占空比和周期可調(diào)。LabVIEW FPGA模塊在程序的設(shè)計與實現(xiàn)上都展現(xiàn)出了極大的靈活性。

  

 

  1.1 LabVIEW FPGA程序開發(fā)流程

  

 

  使用LabVIEW FPGA模塊開發(fā)應(yīng)用程序的流程如圖2所示。首先創(chuàng)建FPGA vi,之后用FPGA設(shè)備仿真器在主控計算機上運行程序,反復(fù)地調(diào)試、修改,直至程序正確無誤。然后編譯FPGA vi,并把程序下載到FPGA上。FPGA部分的程序完成后,再根據(jù)需要在主控計算機上創(chuàng)建用戶界面程序Host vi,最終就完成整個系統(tǒng)的設(shè)計。

  FPGA設(shè)備仿真器的打開方法是:首先在“項目瀏覽器”窗口中的打開“我的電腦”子菜單,右擊子菜單中的“FPGA Target”并在快捷菜單中選擇“Execute vion”下一級子菜單中的“Development Computer with Simulated I/O”。然后再在FPGA vi中點擊“Run”按鈕,這時程序在FPGA的設(shè)備仿真器上運行。

  1.2 開發(fā)FPGA vi

  發(fā)應(yīng)用程序的第一步是創(chuàng)建用于配置PXIe-5641R板載FPGA的程序。在FPGA vi中可以實現(xiàn)算法邏輯,包括信號同步,定制數(shù)字通信協(xié)議,板載控制和預(yù)警處理判決機制等功能。通過LabVIEW FPGA模塊,可使用LabVIEW開發(fā)環(huán)境和許多類似的功能。但是由于FPGA不支持浮點操作,所以LabVIEW FPGA模塊較之LabVIEW完整Windows版開發(fā)軟件缺少了一些操作符和分析函數(shù)。另外,由于PXIe-5641R板卡沒有硬盤和操作系統(tǒng),因此不支持文件I/O和ActiveX功能。LabVIEW FPGA模塊的函數(shù)面板如圖3所示。

  

 

  硬件對象不管是FPGA設(shè)備還是FPGA仿真器,都可以訪問LabVIEW FPGA函數(shù)。仿真器使用RIO設(shè)備的I/O接口,可在主機處理器上執(zhí)行邏輯算法。檢驗vi設(shè)計中的一些簡單性錯誤,避免不必要的反復(fù)編譯,尤其是在程序比較大的時候可節(jié)省大量的時間,提高編程效率。也可使用仿真器驗證vi的執(zhí)行流程,但無法驗證硬件的確定性,若需要驗證硬件性能的確定性,必須對FPGA vi進(jìn)行編譯。與其他FPGA開發(fā)工具一樣,根據(jù)應(yīng)用程序的復(fù)雜程度和計算機資源的不同,編譯步驟可能要花上幾分鐘到幾個小時的時間。1.3 開發(fā)Host vi

 

  在FPGA vi完成調(diào)試、編譯、下載到板卡之后,就需要在主控計算機上創(chuàng)建一個用戶界面程序Host vi。在用戶界面應(yīng)用程序中可以完成一些實時性要求不高的操作,例如配置系統(tǒng)參數(shù),管理數(shù)據(jù)等。Host vi通過FPGA接口函數(shù)與FPGA vi進(jìn)行通信,以及處理中斷。FPGA接口函數(shù)面板會在安裝LabVIEW FPGA模塊之后,自動添加到LabVIEW的函數(shù)面板中。LabVIEW函數(shù)面板中的FPGA接口函數(shù)面板如圖4所示。

  

 

  2 不同時鐘域的數(shù)據(jù)連續(xù)傳輸

  本文中的中頻信號生成系統(tǒng)是將主控計算機模擬生成的數(shù)據(jù)通過FPGA送到AD9857發(fā)送出去。數(shù)據(jù)進(jìn)入FPGA的速率為52 MB/s,由于計算機的非實時性呈現(xiàn)斷續(xù)的形式,其實際的速率要低一些;數(shù)據(jù)傳出FPGA時,其數(shù)據(jù)位寬為16 b,輸出頻率為10 MHz,固其持續(xù)傳輸速率為20 MB/s。數(shù)據(jù)進(jìn)入FPGA的速率高于出FPGA的速率,這就造成數(shù)據(jù)在不同時鐘域之間傳輸?shù)膯栴}。為了避免數(shù)據(jù)的溢出和保證數(shù)據(jù)連續(xù)性,本文使用DMA FIFO作為主控計算機與FPGA之間的緩存。它的存儲空間包括兩部分:一是主控計算機部分,主控計算機開辟一塊內(nèi)存作為FIFO緩存;二是FPGA部分,F(xiàn)IFO占用部分Block Memory資源作為緩存。二者共同組成一個完整的FIFO,通過PXIe總線傳遞數(shù)據(jù)。FIFO的傳輸機制是:主控計算機首先把一個數(shù)組的數(shù)據(jù)存入作為FIFO緩存的內(nèi)存中;DMA控制器會自動查詢FPGA上的FIFO剩余空間,當(dāng)滿足緩存剩余空間大于數(shù)據(jù)塊容量的條件時,控制器通過PXIe總線把整個數(shù)據(jù)塊一并送入FPGA上的FIFO中;FPGA FIFO再將數(shù)據(jù)順序送出。

  若在主控計算機向FIFO兩次寫入數(shù)據(jù)的間隔期間,F(xiàn)IFO中的數(shù)據(jù)保持不被讀空,就能保證輸出FPGA的數(shù)據(jù)是連續(xù)的。而合適的FIFO深度是FIFO不被讀空的基礎(chǔ),所以確定FIFO深度的設(shè)定方法是數(shù)據(jù)在不同時鐘域之間實現(xiàn)連續(xù)傳輸?shù)年P(guān)鍵。

  3 FIFO深度的設(shè)定方法

  3.1 FPGA FIFO深度的設(shè)定

  DMA控制器將數(shù)據(jù)從主控計算機內(nèi)存整塊的傳送到FPGA的FIFO緩存中,所以FIFO的深度要大于數(shù)據(jù)塊的大小。LabVIEW FPGA里塊存儲FIFO是以2 KB大小來應(yīng)用的。DMA FIFO使用RIO設(shè)備可獲取的內(nèi)置RAM來存儲數(shù)據(jù)信息,該存儲空間與內(nèi)存讀/寫是共享的。所以要留一部分RAM空間進(jìn)行內(nèi)存的讀/寫,F(xiàn)IFO的最大值為RAM容量減去16 KB。PXIe-5641R的RAM的容量是1 098 KB,所以,F(xiàn)PGAFIFO的深度設(shè)定范圍為2~1 082 KB。

  另一方面,實際上LabVIEW為了能使FPGA高效運行,對Block Memory方式FIFO的大小作了規(guī)定,其大小只能為2M-1(數(shù)據(jù)由FPGA傳向主控計算機)或2M+5(數(shù)據(jù)由主控計算機傳向FPGA),M為數(shù)據(jù)的地址寬度;當(dāng)設(shè)定值不是這些標(biāo)準(zhǔn)值時,LabVIEW會自動的放大到距其最近的一個標(biāo)準(zhǔn)值。這樣就確定了FPGAFIFO的深度,但是還不能保證數(shù)據(jù)能夠連續(xù)輸出。

  3.2 主控計算機FIFO深度的設(shè)定

  由于對主控計算機內(nèi)存部分FIFO的讀/寫是以數(shù)組形式斷續(xù)進(jìn)行的。所以,數(shù)組的長度和兩次寫入的間隔時間是能否保證數(shù)據(jù)連續(xù)性的重要參數(shù),同時考慮到數(shù)據(jù)輸出FPGA是連續(xù)且頻率固定的。根據(jù)FIFO不讀空的原則推測:當(dāng)寫入內(nèi)存的數(shù)組的長度N與數(shù)據(jù)寫入內(nèi)存的時間T和數(shù)據(jù)輸出FPGA的頻率F之間滿足如下的關(guān)系時,就能做到數(shù)據(jù)的連續(xù)傳輸:

  N/T>F (1)

  鑒于主控計算機操作系統(tǒng)的非實時性,需要將主控計算機FIFO深度D的大小設(shè)定為N的若干倍;通過大量實驗并與NI工程師討論,確定當(dāng)FIFO的深度D的大小為N的3~5倍時,可完全滿足數(shù)據(jù)連續(xù)傳輸?shù)囊蟆?/p>

  3.3 實驗驗證

  

 

  數(shù)據(jù)寫入內(nèi)存的時間與主控計算機運行速度以及數(shù)組的大小有關(guān)。表1所示的是數(shù)組長度和寫入內(nèi)存的時間與輸出數(shù)據(jù)連續(xù)性之間關(guān)系的實驗結(jié)果。其中,平均寫入內(nèi)存時間指的是同一個數(shù)組循環(huán)執(zhí)行寫入操作10萬次得到的平均結(jié)果。輸出FPGA的速率為10 MHz。

  當(dāng)數(shù)組長度較小時,單位時間內(nèi)寫入到內(nèi)存中的數(shù)據(jù)較少,內(nèi)存里的數(shù)據(jù)不能滿足FPGA FIFO讀取數(shù)據(jù)的需求,在下一組數(shù)據(jù)到達(dá)之前內(nèi)存里的數(shù)據(jù)已經(jīng)讀空,故輸出的數(shù)據(jù)不能連續(xù)。當(dāng)數(shù)組長度增大之后,單位時間寫入到內(nèi)存的數(shù)據(jù)量也隨之增大,內(nèi)存里的數(shù)據(jù)能夠滿足FP-GA FIFO讀取數(shù)據(jù)的需求,在內(nèi)存讀空之前把下一組數(shù)據(jù)送入了內(nèi)存,所以輸出的數(shù)據(jù)能夠保持連續(xù)性。實驗結(jié)果驗證了上述推測公式的正確性。

4 數(shù)據(jù)連續(xù)傳輸?shù)腖abVIEW實現(xiàn)

 

  在本文中系統(tǒng)軟件包括兩部分:Host vi和FPGAvi,二者是獨立而又有聯(lián)系的兩個部分。Host vi運行于主控計算機上,F(xiàn)PGA vi運行于FPGA上,二者通過FIFO來傳輸數(shù)據(jù)。

  4.1 FPGA程序設(shè)計

  使用圖形化的編程環(huán)境LabVIEW FPGA模塊來定義FPGA邏輯,除了具有上述的優(yōu)點以外,LabVIEW作為一種并行結(jié)構(gòu)的編程語言,非常適用于FPGA的并行結(jié)構(gòu),能夠十分方便地實現(xiàn)多線程并行任務(wù)。

  

 

  當(dāng)FPGA vi開始運行時,從Host vi讀取數(shù)據(jù)的FIFO需要一定的初始化時間,時間長度與FIFO的深度成正比。在初始化期間FIFO輸出一系列的無效默認(rèn)值。為了不讓無效值進(jìn)入到下一級的運算中,在DMA方式的FIFO之前加了一個FIFO函數(shù)——Get Number of Element to Read,該函數(shù)用于獲得FIFO內(nèi)有效數(shù)據(jù)的數(shù)量。當(dāng)有效數(shù)據(jù)的數(shù)量大于0時,再開始進(jìn)行下一級運算??紤]到FPGA有限的硬件資源和FPGA FIFO最小值的限制,將數(shù)據(jù)的地址寬度設(shè)為M=11,根據(jù)上文分析DMA FIFO的深度設(shè)為2M+5=2 053 KB。

  4.2 主控計算機程序設(shè)計

  Host vi是系統(tǒng)程序的另一部分部分,它具有建立硬件對象(FPGA)、與硬件通信和圖形顯示等功能。主控計算機程序圖如圖6所示,首先要建立與之進(jìn)行通信的硬件對象,即FPGA;其次配置系統(tǒng)時鐘、輸出模式;再次創(chuàng)建FIFO,設(shè)置其在主控計算機部分的FIFO深度;然后從電子表格讀取數(shù)據(jù),并循環(huán)查詢FIFO剩余空間的大小,當(dāng)剩余空間大于數(shù)組長度時,數(shù)據(jù)寫入FIFO當(dāng)沒有足夠的空間時,數(shù)據(jù)保留到下一個循環(huán),滿足條件后再寫入FIFO;最后關(guān)閉FIFO應(yīng)用,處理錯誤。

  

 

  當(dāng)輸入數(shù)組長度分別為300和1 000,形狀如圖7所示的波形時,輸出數(shù)據(jù)的波形如圖8所示。由于AD9857上變頻的原因,使得輸出波形在輸入的矩形包絡(luò)中帶有載波,載波頻率為60 MHz。根據(jù)表1中的數(shù)據(jù)可以得出結(jié)論:此處的編程和上述實驗的結(jié)果是一致的,即FPGA輸出頻率為10 MHz,數(shù)組長度大于500時,系統(tǒng)數(shù)據(jù)的輸出是連續(xù)。同時此結(jié)果也表明本文中的LabVIEW程序?qū)崿F(xiàn)了數(shù)據(jù)的連續(xù)傳輸。

  5 結(jié)語

  通過設(shè)定合適的FIFO深度,實現(xiàn)了數(shù)據(jù)的連續(xù)傳輸,為后續(xù)的工程設(shè)計奠定了基礎(chǔ)。該設(shè)定FIFO深度的方法也對其他使用LabVIEW FPGA模塊的工程設(shè)計具有一定的參考價值。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉