最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

4:歷史性突破Xilinx A7、K7、V7、ZYNQ、KU等FPGA芯片的LabVIEW在線前面板交互式運行

2022-03-07 01:59 作者:神電測控  | 我要投稿

副標題:重大更新4:上位機直接通過VI/規(guī)范/lvbitx等FPGA引用方式來訪問下位機FPGA VI前面板上的控件(高級功能,至于超高速的PCIe/PXIe DMA FIFO功能請參考本書第7、8章相關(guān)內(nèi)容)

我們始終在想一個問題:就是這幾十年市面上已有的海量的FPGA芯片、板子、板卡,起碼也有幾千萬個了,如何在不破壞板子、不飛線的情況下,還能以零成本的方式實現(xiàn)LabVIEW FPGA在線前面板交互式運行和上位機FPGA引用讀寫訪問控件的功能?我們做到了!

1、重大突破:歷時半年,終于突破了Xilinx 7系列(Artix7、Kintex7、Virtex7)、U系列(KU、KU+、VU、VU+)以及ZYNQ等家族FPGA芯片的LabVIEW在線前面板交互式運行和調(diào)試;當(dāng)然,還有以前就支持的Virtex5/Spartan3E/Spartan6等傳統(tǒng)的5系列、6系列FPGA芯片。

2、重大更新:我們是真正對市面上已有的、海量的、任何廠家的Xilinx FPGA板子或板卡,在不做任何改動,不做任何飛線、不破壞板子的情況下,借助大家所熟知的0成本的Xilinx JTAG下載器或者我們研發(fā)的SDMC FPGA Downloader以太網(wǎng)下載器,實現(xiàn)了真正意義上的FPGA VI在線前面板交互式運行和調(diào)試功能,這是我們與其他封閉式友商最大的不同!

3、重要理念:我們的LabVIEW My FPGA圖形化軟件工具包和RIO開發(fā)方案具有普適性,只有這樣,才能讓廣大用戶自由選擇市面上已有的、海量的FPGA芯片、板子、板卡或者用戶自己自由設(shè)計硬件,而不是被其他友商固定的硬件而綁架了。

4、始終秉持:“為所有想用又不敢用、正在使用和將要使用FPGA的廣大用戶,提供一套通用的國產(chǎn)化、圖形化、開源化RIO解決方案”;讓所有FPGA芯片、板子、板卡都能享受到圖形化編程的樂趣,真正擺脫友商限制,讓用戶的FPGA產(chǎn)品低成本量產(chǎn)成為可能性,并且牢牢抓住FPGA的靈魂程序!

部分摘錄:

?????? ?前面5.5節(jié)和5.6節(jié)重點向大家展示了如何借助傳統(tǒng)的Xilinx JTAG下載器以及我們自研的SDMC FPGA Downloader以太網(wǎng)下載器實現(xiàn)FPGA VI程序的LabVIEW在線前面板交互式運行和調(diào)試。

?????? ?相當(dāng)于我們只需要通過LabVIEW編寫一個下位機FPGA VI,就可以將其下載到FPGA芯片里面運行,同時前面板還活了。這個前面板既是下位機FPGA的UI,又可以看成是一個簡易的上位機調(diào)試界面;最大的優(yōu)勢是不需要再單獨編寫一個上位機程序,節(jié)約了開發(fā)和調(diào)試時間;因為單獨編寫上位機程序來配合下位機FPGA一起調(diào)試的話,往往二者之間的通信協(xié)議要設(shè)計的很完善,不然有可能會帶來一些額外的bug,最后可能都不確定是下位機FPGA程序問題還是二者之間的通信協(xié)議問題還是數(shù)據(jù)解析問題。

?????? ?本節(jié)要跟大家介紹的是LabVIEW FPGA工具包的高級功能,就是上位機LabVIEW應(yīng)用程序可以直接通過調(diào)用FPGA VI或者程序生成規(guī)范或者編譯出來的lvbitx文件,實現(xiàn)對下位機FPGA VI前面板上控件的實時訪問和控制。

?????? ?這樣就不需要用戶單獨去設(shè)計上位機跟下位機FPGA之間的通信協(xié)議了,而是由LabVIEW FPGA工具包在底層自動完成數(shù)據(jù)傳輸和協(xié)議解析,相當(dāng)于一個透明的黑匣子。無論物理上FPGA走的是PCIe/PXIe還是以太網(wǎng)通信,LabVIEW FPGA工具包都可以實現(xiàn)底層屏蔽,用戶不需要去了解底層的傳輸協(xié)議,而是上位機直接通過調(diào)用 “l(fā)vbitx/VI/程序生成規(guī)范”就可以將數(shù)據(jù)拿到以及完成對控件的讀寫。

?????? ?這種方式有利有弊,好的地方在于可以簡化上位機編程,不需要用戶自己設(shè)計傳輸協(xié)議;不好的地方在于底層LabVIEW FPGA封裝的層次太多,犧牲了一些PCIe/PXIe或者以太網(wǎng)的傳輸帶寬。

?????? ?所以,我們在設(shè)計LabVIEW My FPGA軟件工具包和編寫寶典的時候,取其長處,摒除缺點,保留了LabVIEW FPGA在線前面板交互式運行以及上位機通過“l(fā)vbitx/VI/程序生成規(guī)范”訪問下位機FPGA VI前面板上的控件功能。當(dāng)然,這些功能的實現(xiàn)離不開NI提供的上位機FPGA Interface函數(shù)選板里面的VI,如圖5-292所示。

? ? ? ? ? ? ? ? ? ? ?

圖5-292:上位機LabVIEW函數(shù)選板里面的FPGA interface接口函數(shù)

????????而對那些需要實現(xiàn)連續(xù)數(shù)據(jù)流讀寫的DMA FIFO應(yīng)用來說,我們單獨開發(fā)了一套機制,優(yōu)先保留了PCIe/PXIe總線的高速傳輸帶寬(6.4Gbit/s),這樣用戶才能基于FPGA實現(xiàn)真正意義上的高速采集。關(guān)于這部分內(nèi)容請參考寶典的第7和第8章。這里不再贅述!

?????? ?接下來,我們向大家介紹并演示一下上位機LabVIEW程序是如何通過打開“FPGA VI或者FPGA程序生成規(guī)范或者lvbitx文件”引用的方式實現(xiàn)對下位機FPGA前面板上的控件讀寫。

?????? ?為了驗證基于傳統(tǒng)的Xilinx JTAG下載器和基于我們自研的SDMC FPGA Downloader以太網(wǎng)下載器,二者都可以實現(xiàn)上位機LabVIEW通過“FPGA VI引用”的方式訪問下位機FPGA前面板上的控件,下面分成兩個實驗給大家展示一下過程。

?? ?5.7.1:基于傳統(tǒng)的Xilinx JTAG下載器實現(xiàn)上位機FPGA引用的方式訪問下位機FPGA VI

?????? ?5.7.1.1:實驗平臺:Xilinx JTAG下載器+黑金AX7103 FPGA開發(fā)板(Artix7-100T)

?????? ?為了驗證基于Xilinx JTAG下載器也能通過上位機LabVIEW以FPGA VI引用的方式來控制和訪問下位機FPGA程序,我們選取本書配套的黑金AX7103 FPGA開發(fā)板來做測試,圖5-293顯示的是AX7103 FPGA開發(fā)板與Xilinx JTAG下載器互聯(lián)實物圖。

圖5-293:Xilinx JTAG下載器+黑金AX7103開發(fā)板(Artix7-100T)實物圖


?????? ?5.7.1.2:上位機LabVIEW程序編寫(調(diào)用FPGA VI引用方式)

?????? ?1)首先,新建一個空白的上位機LabVIEW VI程序,保存一下,命名為“實驗0-通過FPGA VI引用訪問下位機FPGA控件-基于傳統(tǒng)的Xilinx JTAG下載器.vi”,如圖5-294所示。

圖5-294:新建一個空白的上位機LabVIEW程序

? ? ? ??2)從“FPGA接口”函數(shù)選板里面,將第一個函數(shù)“打開FPGA VI引用”拖拽到程序框圖里面,如圖5-295所示。

圖5-295:將“打開FPGA VI引用”函數(shù)拖拽到程序框圖里面

? ? ? ??3)雙擊這個空白圖標,在彈出來的對話框里面,選擇“比特位文件”,然后點擊右側(cè)的“瀏覽”按鈕找到先前我們編譯好的AX7103 FPGA lvbitx文件,如圖5-296所示。除了可以通過lvbitx位文件打開下位機FPGA程序,還可以選擇上面的“程序生成規(guī)范”或者“VI”,一般情況下,都是建議通過打開lvbitx位文件最簡單,最方便。

?????? ?另外,對話框下方還有個“運行FPGA VI”復(fù)選框,默認是勾選的,我們也可以不勾選,直接在程序框圖里面通過調(diào)用FPGA VI屬性方法里面的“運行”來啟動FPGA bit文件,如圖5-297所示。

圖5-296:雙擊打開FPGA VI引用選擇對話框
圖5-297:通過FPGA屬性里面的“運行”方法來啟動FPGA bit文件

? ? ? ??4)接著放置一個while循環(huán),在循環(huán)里面通過調(diào)用“讀取/寫入控件”函數(shù)將下位機FPGA前面板上感興趣的控件全部引出來,如圖5-298所示。這樣上位機程序就可以實時觀察或者控制下位機FPGA VI前面板上的控件狀態(tài)或者數(shù)值了。

圖5-298:利用上位機FPGA接口選板里的“讀取/寫入控件”方法訪問下位機FPGA VI

? ? ? ??5)最后,在上位機程序關(guān)閉退出之前,需要將下位機FPGA bit文件停止運行,關(guān)掉FPGA引用釋放資源,防止出現(xiàn)內(nèi)存泄漏,如圖5-299所示。

圖5-299:退出上位機程序之前中止下位機FPGA程序運行并關(guān)閉FPGA引用

? ? ? ??6)為了更形象的展示上位機可以通過FPGA VI引用的方式控制下位機FPGA前面板,我們將引出來的控件放在上位機界面上,如圖5-300所示。

圖5-300:上位機LabVIEW應(yīng)用程序前面板(通過FPGA VI引用方式控制下位機FPGA)

? ? ? ??注意:這個界面是上位機LabVIEW應(yīng)用程序前面板UI,不是下位機FPGA VI前面板,因為本節(jié)實驗里面我們不需要下位機FPGA VI,只需要調(diào)用編譯好的下位機FPGA lvbitx位文件即可。

?????? ?5.7.1.3:實驗現(xiàn)象(基于傳統(tǒng)的Xilinx JTAG下載器實現(xiàn)的)

?????? ?將黑金AX7103 FPGA開發(fā)板跟傳統(tǒng)的Xilinx JTAG下載器連接好之后,上電,然后運行剛剛寫好的上位機LabVIEW程序。此時,奇跡發(fā)生了,F(xiàn)PGA開發(fā)板上的4個LED閃爍了,閃爍頻率5Hz,亮滅持續(xù)時間各100ms,如圖5-301所示。

圖5-301:黑金AX7103 FPGA開發(fā)板上的4顆LED燈同步閃爍

? ? ? ? 如果,我們在上位機程序前面板上將“Count(mSec)”控件里面的數(shù)值改成1000,F(xiàn)PGA開發(fā)板上的LED閃爍變慢了許多,只有0.5Hz頻率閃爍,同時前面板上的“Running_FPGA”和“儀表”里面遞增的速度也明顯變慢了,如圖5-302所示。說明上位機通過FPGA VI引用的方式成功的控制了下位機FPGA前面板上的控件。

圖5-302:更新上位機前面板上的控件值可以實時寫入下位機FPGA前面板并立即生效

? ? ? ? 如果我們按住黑金AX7103開發(fā)板上的KEY2按鍵,如圖5-303所示。那么上位機程序前面板上的KEY2指示燈會熄滅,如圖5-304所示,說明上位機通過FPGA VI引用的方式捕捉到了下位機FPGA前面板上的指示燈控件狀態(tài)。

圖5-303:按住黑金AX7103 FPGA開發(fā)板上的KEY2按鍵
圖5-304:上位機LabVIEW程序前面板上的KEY2指示燈相應(yīng)的發(fā)生了變化

? ? ? ? 至此,基于傳統(tǒng)的Xilinx JTAG下載器驗證了LabVIEW FPGA工具包里面重要的功能之一,通過FPGA VI引用的方式直接訪問和控制下位機FPGA VI前面板上的控件,完全OK。

?????? ?重大更新:需要提醒大家的是:我們是直接基于0成本的傳統(tǒng)的Xilinx JTAG下載器實現(xiàn)這個功能的,沒有對市面上的第三方FPGA板子做任何的改造,這個是我們與其他友商最大的不同!

?????? ?因為,我們始終秉持“提供國產(chǎn)化、通用化、開源化的RIO解決方案”給廣大用戶,讓這幾十年里,市面上已有的海量的任意FPGA板子都能享受到圖形化編程的樂趣,真正擺脫NI及其他友商限制,讓自己的FPGA產(chǎn)品低成本量產(chǎn)成為可能性,并且牢牢抓緊FPGA里面的靈魂程序!

?? ?5.7.2:基于我們自研的以太網(wǎng)下載器實現(xiàn)上位機FPGA引用的方式訪問下位機FPGA VI

?????? ?5.7.2.1:實驗平臺:以太網(wǎng)下載器+Digilent BASYS3 FPGA開發(fā)板(Artix7-35T)

?????? ?為了驗證基于我們自研的SDMC FPGA Downloader以太網(wǎng)下載器也能通過上位機LabVIEW打開FPGA VI引用的方式來控制和訪問下位機FPGA前面板上的控件,我們選取國外Digilent公司的BASYS3開發(fā)板來做測試,說明我們這套方案國內(nèi)外通吃。

?????? ?圖5-305顯示的是Digilent BASYS3 FPGA開發(fā)板與SDMC FPGA Downloader以太網(wǎng)下載器連接實物圖。

圖5-305:以太網(wǎng)下載器+Digilent BASYS3 FPGA開發(fā)板(Artix7-35T)實物圖


?????? ?5.7.2.2:上位機LabVIEW程序編寫(調(diào)用FPGA VI引用方式)

?????? ?1)首先,新建一個空白的上位機LabVIEW VI程序,保存一下,命名為“實驗0-通過FPGA VI引用訪問下位機FPGA控件-基于SDMC以太網(wǎng)下載器.vi”,如圖5-306所示。

圖5-306:新建一個空白的上位機LabVIEW程序

? ? ? ? 2)從“FPGA接口”函數(shù)選板里面,將第一個函數(shù)“打開FPGA VI引用”拖拽到程序框圖里面,如圖5-307所示。

圖5-307:將“打開FPGA VI引用”函數(shù)拖拽到程序框圖里面

? ? ? ? 3)雙擊這個空白圖標,在彈出來的對話框里面,選擇“比特位文件”,然后點擊右側(cè)的“瀏覽”按鈕找到先前我們編譯好的BASYS3 FPGA lvbitx文件,如圖5-308所示。除了可以通過lvbitx位文件打開FPGA程序,還可以選擇上面的“程序生成規(guī)范”或者“VI”,一般情況下,都是建議通過打開lvbitx位文件最簡單,最方便。

?????? ?另外,對話框下方還有個“運行FPGA VI”復(fù)選框,默認是勾選的,我們也可以不勾選,直接在程序框圖里面通過調(diào)用FPGA VI屬性方法里面的“運行”來啟動FPGA bit文件,如圖5-309所示。

圖5-308:雙擊打開FPGA VI引用選擇對話框
圖5-309:通過FPGA屬性里面的“運行”方法來啟動FPGA bit文件

? ? ? ? 4)接著放置一個while循環(huán),在循環(huán)里面通過調(diào)用“讀取/寫入控件”函數(shù)將下位機FPGA前面板上的感興趣的控件全部引出來,如圖5-310所示。這樣上位機程序就可以實時觀察或者控制下位機FPGA前面板上的控件狀態(tài)或者數(shù)值了。

圖5-310:利用上位機FPGA接口選板里的“讀取/寫入控件”方法訪問下位機FPGA VI

? ? ? ? 5)最后,當(dāng)上位機程序關(guān)閉退出之前,需要將下位機FPGA bit程序停止運行,關(guān)掉FPGA引用釋放資源,防止出現(xiàn)內(nèi)存泄漏,如圖5-311所示。

圖5-311:退出上位機程序之前停止下位機FPGA程序運行并關(guān)閉FPGA引用

? ? ? ? 6)為了更形象的展示上位機可以通過FPGA VI引用的方式控制下位機FPGA前面板,我們將引出來的控件放在上位機界面上,如圖5-312所示。

圖5-312:上位機LabVIEW應(yīng)用程序前面板(通過FPGA VI引用方式控制下位機FPGA)

? ? ? ??注意:這個界面是上位機LabVIEW應(yīng)用程序前面板UI,不是下位機FPGA VI前面板,因為本節(jié)實驗里面我們不需要下位機FPGA VI,只需要調(diào)用編譯好的下位機FPGA lvbitx位文件即可。

?????? ?5.7.2.3:實驗現(xiàn)象(基于我們自研的SDMC以太網(wǎng)下載器實現(xiàn)的)

?????? ?將Digilent BASYS3 FPGA開發(fā)板跟SDMC以太網(wǎng)下載器連接好之后,上電,然后運行剛剛寫好的上位機LabVIEW程序。此時,奇跡發(fā)生了,F(xiàn)PGA開發(fā)板上的16個LED閃爍了,閃爍頻1Hz,亮滅持續(xù)時間各500ms,如圖5-313所示。

圖5-313:Digilent BASYS3 FPGA開發(fā)板上的16顆LED燈同步閃爍

? ? ? ? 如果,我們在上位機程序前面板上將“Count(mSec)”控件里面的數(shù)值改成100,F(xiàn)PGA開發(fā)板上的LED燈閃爍頻率明顯變快了許多,按照5Hz進行閃爍;同時前面板上的“Running_FPGA”和“儀表”里面遞增的速度也同樣變快了,如圖5-314所示。說明上位機通過FPGA VI引用的方式成功的控制了下位機FPGA前面板上的控件。

圖5-314:更新上位機前面板上的控件值可以實時寫入下位機FPGA VI前面板并立即生效

? ? ? ? 如果我們將Digilent BASYS3 FPGA開發(fā)板上的Switch撥碼開關(guān)里面的前8個sw0~sw7撥上去,如圖5-315所示。那么上位機程序前面板上的第一行8個指示燈全部點亮,如圖5-316所示,說明上位機通過FPGA VI引用的方式捕捉到了下位機FPGA前面板上的指示燈控件狀態(tài)。

圖5-315:將Digilent BASYS3 FPGA開發(fā)板上的前8個撥碼開關(guān)撥上去
圖5-316:上位機LabVIEW程序前面板上的前8個LED指示燈點亮了

? ? ? ? ?至此,基于以太網(wǎng)下載器驗證了LabVIEW FPGA工具包里面重要的功能之一,通過FPGA VI引用的方式直接訪問和控制下位機FPGA VI前面板上的控件,完全OK。?

?????? ?需要提醒大家的是:這里我們提供的第二種方法,那就是直接基于我們自研的SDMC FPGA Downloader以太網(wǎng)下載器實現(xiàn)這個功能的,并沒有對市面上的第三方FPGA板子做任何的改造,這個也是我們與其他友商最大的不同!

?????? ?因為,我們始終秉持“提供國產(chǎn)化、通用化、開源化的RIO解決方案”給廣大用戶,讓這幾十年里,市面上已有的海量的任意FPGA板子都能享受到圖形化編程的樂趣,真正擺脫NI及其他友商限制,讓自己的FPGA產(chǎn)品低成本量產(chǎn)成為可能性,并且將FPGA芯片里面的靈魂程序掌握在自己手里!

4:歷史性突破Xilinx A7、K7、V7、ZYNQ、KU等FPGA芯片的LabVIEW在線前面板交互式運行的評論 (共 條)

分享到微博請遵守國家法律
无极县| 开化县| 湾仔区| 康乐县| 三门峡市| 会东县| 灵台县| 山阴县| 乌拉特中旗| 沙坪坝区| 武穴市| 尚义县| 文昌市| 永春县| 南安市| 章丘市| 横山县| 洪雅县| 合水县| 乐亭县| 玉屏| 三原县| 奇台县| 许昌县| 江川县| 三明市| 香格里拉县| 耿马| 府谷县| 营口市| 大安市| 镶黄旗| 澄城县| 金阳县| 黎平县| 通许县| 盐山县| 开封县| 仪陇县| 定日县| 金阳县|