基于LabVIEW FPGA模塊的FIFO深度設(shè)定實(shí)現(xiàn)
為了解決基于LabVIEWFPGA模塊的DMAFIFO深度設(shè)定不當(dāng)帶來(lái)的數(shù)據(jù)不連續(xù)問(wèn)題,結(jié)合LabVIEWFPGA的編程特點(diǎn)和DMA FIFO的工作原理,提出了一種設(shè)定FIFO深度的方法。對(duì)FIFO不同深度的實(shí)驗(yàn)表明,采用該方法設(shè)定的FIFO深度能夠比較好地滿足系統(tǒng)對(duì)數(shù)據(jù)連續(xù)傳輸?shù)囊蟆Q芯拷Y(jié)果對(duì)深入展開研究和工程設(shè)計(jì)具有一定的指導(dǎo)意義。
本文引用地址:http://m.butianyuan.cn/article/193548.htm引言
數(shù)據(jù)進(jìn)入FPGA的速率高于傳出的速率,持續(xù)的傳輸會(huì)造成數(shù)據(jù)的溢出,斷續(xù)的傳輸可能會(huì)造成數(shù)據(jù)不連續(xù)。使用基于LabVIEW FPGA的DMA FIFO作為主控計(jì)算機(jī)和FPGA之間的緩存,若DMAFIFO深度設(shè)置的合適,F(xiàn)IFO不會(huì)溢出和讀空,那么就能實(shí)現(xiàn)數(shù)據(jù)輸出FPGA是連續(xù)的。
本文在介紹了LabVIEW FPGA模塊程序設(shè)計(jì)特點(diǎn)的基礎(chǔ)上,結(jié)合DMA FIFO的工作原理,提出了一種設(shè)定FIFO深度的方法,解決了FIFO溢出、讀空的問(wèn)題,實(shí)現(xiàn)了數(shù)據(jù)的連續(xù)傳輸。實(shí)驗(yàn)結(jié)果表明該方法正確、可行,程序設(shè)計(jì)滿足系統(tǒng)對(duì)數(shù)據(jù)傳輸連續(xù)性的要求。
1 LabVIEW FPGA模塊
LabVIEW FPGA是LabVIEW的一個(gè)子模塊,使用該模塊可以通過(guò)圖形化的編程對(duì)NI公司RIO(Reconfigurable I/O)設(shè)備上的FPGA進(jìn)行配置。圖形化的程序直接在硬件上實(shí)現(xiàn),通過(guò)對(duì)RIO設(shè)備上的I/O接口的控制,可以靈活地對(duì)I/O信號(hào)進(jìn)行分析和處理,表現(xiàn)出比固定I/O硬件更加優(yōu)異的特性。使用LabVIEWFPGA模塊開發(fā)出來(lái)的系統(tǒng)具有開發(fā)周期短、結(jié)構(gòu)模塊化、升級(jí)方便等優(yōu)點(diǎn)。例如,圖1表示了一個(gè)用LabVIEW FPGA模塊設(shè)計(jì)的程序,在FPGA上實(shí)現(xiàn)方波發(fā)生器。該方波發(fā)生器通過(guò)數(shù)字接口DIO_1輸出方波,其占空比和周期可調(diào)。LabVIEW FPGA模塊在程序的設(shè)計(jì)與實(shí)現(xiàn)上都展現(xiàn)出了極大的靈活性。
1.1 LabVIEW FPGA程序開發(fā)流程
使用LabVIEW FPGA模塊開發(fā)應(yīng)用程序的流程如圖2所示。首先創(chuàng)建FPGA vi,之后用FPGA設(shè)備仿真器在主控計(jì)算機(jī)上運(yùn)行程序,反復(fù)地調(diào)試、修改,直至程序正確無(wú)誤。然后編譯FPGA vi,并把程序下載到FPGA上。FPGA部分的程序完成后,再根據(jù)需要在主控計(jì)算機(jī)上創(chuàng)建用戶界面程序Host vi,最終就完成整個(gè)系統(tǒng)的設(shè)計(jì)。
FPGA設(shè)備仿真器的打開方法是:首先在“項(xiàng)目瀏覽器”窗口中的打開“我的電腦”子菜單,右擊子菜單中的“FPGA Target”并在快捷菜單中選擇“Execute vion”下一級(jí)子菜單中的“Development Computer with Simulated I/O”。然后再在FPGA vi中點(diǎn)擊“Run”按鈕,這時(shí)程序在FPGA的設(shè)備仿真器上運(yùn)行。
1.2 開發(fā)FPGA vi
發(fā)應(yīng)用程序的第一步是創(chuàng)建用于配置PXIe-5641R板載FPGA的程序。在FPGA vi中可以實(shí)現(xiàn)算法邏輯,包括信號(hào)同步,定制數(shù)字通信協(xié)議,板載控制和預(yù)警處理判決機(jī)制等功能。通過(guò)LabVIEW FPGA模塊,可使用LabVIEW開發(fā)環(huán)境和許多類似的功能。但是由于FPGA不支持浮點(diǎn)操作,所以LabVIEW FPGA模塊較之LabVIEW完整Windows版開發(fā)軟件缺少了一些操作符和分析函數(shù)。另外,由于PXIe-5641R板卡沒(méi)有硬盤和操作系統(tǒng),因此不支持文件I/O和ActiveX功能。LabVIEW FPGA模塊的函數(shù)面板如圖3所示。
硬件對(duì)象不管是FPGA設(shè)備還是FPGA仿真器,都可以訪問(wèn)LabVIEW FPGA函數(shù)。仿真器使用RIO設(shè)備的I/O接口,可在主機(jī)處理器上執(zhí)行邏輯算法。檢驗(yàn)vi設(shè)計(jì)中的一些簡(jiǎn)單性錯(cuò)誤,避免不必要的反復(fù)編譯,尤其是在程序比較大的時(shí)候可節(jié)省大量的時(shí)間,提高編程效率。也可使用仿真器驗(yàn)證vi的執(zhí)行流程,但無(wú)法驗(yàn)證硬件的確定性,若需要驗(yàn)證硬件性能的確定性,必須對(duì)FPGA vi進(jìn)行編譯。與其他FPGA開發(fā)工具一樣,根據(jù)應(yīng)用程序的復(fù)雜程度和計(jì)算機(jī)資源的不同,編譯步驟可能要花上幾分鐘到幾個(gè)小時(shí)的時(shí)間。
評(píng)論