【LabVIEW FPGA圖形化】 ngc、edf網(wǎng)表文件的編寫:LED流水燈
前言
FPGA圖形化可以提高FPGA的開發(fā)效率,為產(chǎn)品迭代、功能機(jī)驗(yàn)證,產(chǎn)品參數(shù)調(diào)試提供的便捷的編程方式。LabVIEW作為一款圖形化開發(fā)軟件可以為FPGA提供零代碼開發(fā),圖形化界面可以非常直觀的展示出FPGA的并行結(jié)構(gòu)。LabVIEW的開發(fā)思路是頂層調(diào)用,其自身有豐富的函數(shù)和濾波器,同時(shí)支持在線前面板調(diào)試,對(duì)于PID調(diào)參等工業(yè)實(shí)踐具有很大的幫助。但FPGA圖形化編程的過(guò)程中,如果僅僅利用LabVIEW自身的資源,脫離底層Verliog就會(huì)缺乏靈活性,例如需要對(duì)新的傳感器進(jìn)行開發(fā)時(shí),沒(méi)有可以依賴的IP集成節(jié)點(diǎn)或Socket,程序框圖就會(huì)比較復(fù)雜,F(xiàn)PGA圖形化開發(fā)既要具有圖形化編程的簡(jiǎn)潔性,又需要Verliog語(yǔ)言的靈活性,兩者相輔相成使得LabVIEW FPGA大大節(jié)約了工程師的時(shí)間。
一、什么是FPGA圖形化設(shè)計(jì)
隨著FPGA的發(fā)展,國(guó)內(nèi)外在數(shù)字電路相關(guān)的課程學(xué)習(xí)中都開始學(xué)習(xí)HDL(硬件描述語(yǔ)言)進(jìn)行電路的設(shè)計(jì),但是在HDL語(yǔ)言上由于它是用來(lái)描述底層的硬件,底層的語(yǔ)言學(xué)習(xí)過(guò)程花費(fèi)的學(xué)習(xí)成本相對(duì)較高,例如VHDL,這種語(yǔ)言并不直觀,而這會(huì)大大增加硬件設(shè)計(jì)的門檻。
因此,F(xiàn)PGA圖形化設(shè)計(jì)為降低編程學(xué)習(xí)的門檻提供了新的思路,利用LabVIEW圖形化程序編譯平臺(tái),以框圖的形式編寫程序,通過(guò)LabVIEW開發(fā)環(huán)境設(shè)計(jì)、編譯程序后下載至微處理器或FPGA芯片,最終達(dá)到獨(dú)立運(yùn)行的功能。
二、為什么要學(xué)習(xí)FPGA圖形化開發(fā)?
FPGA圖形化開發(fā)對(duì)于剛?cè)肟拥腇PGA的小白來(lái)說(shuō)比較友好,以圖形化的界面呈現(xiàn)出了FPGA設(shè)計(jì)中的要素,而傳統(tǒng)Verilog界面面向代碼,語(yǔ)言描述硬件較為抽象,同時(shí)在LabVIEW中,它的時(shí)鐘、FIFO、IO、LED、與或非門、條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、順序結(jié)構(gòu)等都是以圖形化的方式呈現(xiàn),理解代碼邏輯能有一個(gè)直觀的印象。
FPGA有兩條蔡氏定律:
1、FPGA不僅僅是FPGA。
2、FPGA的最終目的是做出可用的電路。
在產(chǎn)品級(jí)的FPGA開發(fā)上,應(yīng)用工程師不關(guān)心FPGA內(nèi)核是用什么語(yǔ)言去開發(fā),更希望產(chǎn)品功能可以盡快實(shí)現(xiàn),因此FPGA工程師不能僅僅專注于FPGA本身,更要去關(guān)注FPGA的硬件電路,不關(guān)注硬件電路的FPGA在實(shí)現(xiàn)功能上是有欠缺的,就比如USB通信,在STM32上由于集成的硬件的USB控制器,在驅(qū)動(dòng)USB相對(duì)簡(jiǎn)單,但是對(duì)于FPGA來(lái)說(shuō)就是一張白紙,如果從協(xié)議開始寫會(huì)大大的提高FPGA的開發(fā)難度,于是采用USB芯片,F(xiàn)PGA只需要處理數(shù)據(jù)就行了,對(duì)于不同的芯片,控制方法不盡相同,但最終的目的都是一樣的——做出可用的電路,實(shí)現(xiàn)產(chǎn)品功能。
兩個(gè)界面的代碼給人的感覺(jué)是不一樣的。
三、Xilinx Spartan-6 系列網(wǎng)表文件封裝的注意事項(xiàng)
由于Spartan6系列屬于舊版本,不被新的編程軟件Vivado支持,只能用ise進(jìn)行下載編程,而ISE14.7生成網(wǎng)表文件格式為ngc,Vivado軟件生成的網(wǎng)表文件為edf,在ISE環(huán)境下調(diào)用edf文件會(huì)提示black box,認(rèn)為edf文件不被Spartan6支持,但是若使用LabVIEW封裝成IP集成節(jié)點(diǎn),可以跳過(guò)這個(gè)警告,從而可以在Spartan6系列中調(diào)用edf文件。
edf—>ISE14.7–×—>Spartan6 不支持
edf—>LabVIEW---->Spartan6 支持
要是現(xiàn)有edf文件運(yùn)行很穩(wěn)定,可以考慮用LabVIEW封裝成IP集成節(jié)點(diǎn)進(jìn)行調(diào)用。
四、傳統(tǒng)HDL語(yǔ)言流水燈邏輯
我們希望實(shí)現(xiàn)功能是實(shí)現(xiàn)任意時(shí)間間隔的LED燈流水,因此我們的輸入接口留出了Count,在輸出接口留4位的LED變量,以實(shí)現(xiàn)流水功能。
它的代碼實(shí)現(xiàn)
module flow_led(
input clk,
input reset,
input wire [31:0] Count,
output reg [3:0] led
);
reg [31:0] counter;
reg [1:0] State;
always@(posedge clk or posedge reset) begin
if(reset)
counter<=24'd0;
else if(counter<Count)
counter<=counter+1'b1;
else
counter<=24'd0;
end
always@(posedge clk or posedge reset) begin
if(reset)
State<=2'b00;
else if(counter==Count)
State<=State+1'b1;
else
State<=State;
end
always @(posedge clk or posedge reset)begin
if(reset)
led[3:0]<=4'b0001;
else if(State==2'b00)
led[3:0]<=4'b0001;
else if(State==2'b01)
led[3:0]<=4'b0010;
else if(State==2'b10)
led[3:0]<=4'b0100;
else
led[3:0]<=4'b1000;
end
endmodule
注意,傳統(tǒng)HDL語(yǔ)言編寫好邏輯后,需要在綜合設(shè)置中取消插入IO buffer,否則在調(diào)用的時(shí)候編譯不通過(guò)。
設(shè)置好后綜合,檢查語(yǔ)法,并導(dǎo)出生成好的ngc文件,若讀者采用Vivado可嘗試同樣方式生成網(wǎng)表,本文不再贅述。
五、Labview調(diào)用網(wǎng)表文件
-
新建FPGA工程,添加需要的vi和IO,將ngc網(wǎng)表復(fù)制到工程目錄下
-
將ngc網(wǎng)表復(fù)制到工程目錄下
- -
在程序框圖中添加IP集成節(jié)點(diǎn),添加網(wǎng)表文件,將仿真行為設(shè)置成綜合后模型,生成支持文件,并調(diào)整好接線端。
-
添加好節(jié)點(diǎn)后編寫好程序:
六、實(shí)驗(yàn)驗(yàn)證
經(jīng)過(guò)編譯后,下載至FPGA驗(yàn)證流水燈時(shí)序,在在線前面板可以觀察到LED燈不斷地進(jìn)行流水。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-426861.html
總結(jié)
通過(guò)以上網(wǎng)表文件,我們實(shí)現(xiàn)了Verliog語(yǔ)言與FPGA圖形化的交互,打通了底層硬件語(yǔ)言在高級(jí)語(yǔ)言中調(diào)用的困難,對(duì)FPGA圖形化編程的推廣大有裨益。以上的代碼資源和LabVIEW程序均開源在我的創(chuàng)作中心,歡迎下載交流。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-426861.html
到了這里,關(guān)于【LabVIEW FPGA圖形化】 ngc、edf網(wǎng)表文件的編寫:LED流水燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!