一、創(chuàng)建 Vivado 工程
1、啟動 Vivado
2、在 Vivado 開發(fā)環(huán)境里點擊“Create New Project”,創(chuàng)建一個新的工程
3、彈出一個建立新工程的向?qū)?,點擊“Next”
4、在彈出的對話框中輸入工程名和工程存放的目錄。需要注意工程路徑“Project location”不能有中文、空格,路徑名稱也不能太長。此處工程名取為project_1led。
5、在工程類型中選擇“RTL Project”
6、目標(biāo)語言“Target language”選擇“Verilog”,雖然選擇 Verilog,但 VHDL 也可以使用,支持多語言混合編程。
7、點擊“Next”,不添加任何文件
8、在“Default Part”選項中,器件家族“Family”選擇“Zynq-7000”,封裝類型“Package”選擇“clg400”,減少我們選擇范圍。AC7010 在下拉列表中選擇“xc7z010clg400-1”,AC7020在下拉列表中選擇“xc7z020clg400-2”,“-2”表示速率等級,數(shù)字越大,性能越好,速率高的芯片向下兼容速率低的芯片。
9、點擊“Finish”就可以完成以后名為“l(fā)ed”工程的創(chuàng)建。
二、創(chuàng)建Verilog HDL 文件點亮 LED
1、點擊 Project Manager 下的 Add Sources 圖標(biāo)(快捷鍵 Alt+A)
2、選擇添加或創(chuàng)建設(shè)計源文件“Add or create design sources”,點擊“Next”
3、選擇創(chuàng)建文件“Create File”
4、文件名“File name”設(shè)置為“l(fā)ed”,點擊“OK”
5、點擊“Finish”,完成“l(fā)ed.v”文件添加
6、在彈出的模塊定義“Define Module”,中可以指定“l(fā)ed.v”文件的模塊名稱“Module name”,這里默認不變?yōu)椤發(fā)ed”,還可以指定一些端口,此處暫時不指定,點擊“OK”。
7、在彈出的對話框中選擇“Yes”
8、雙擊“l(fā)ed.v”可以打開文件,然后編輯
9、編寫“l(fā)ed.v”,這里定義了一個 32 位的寄存器 timer, 用于循環(huán)計數(shù) 0~49999999(1 秒鐘), 計數(shù)到 49999999(1 秒)的時候, 寄存器 timer 變?yōu)?0,并翻轉(zhuǎn)四個 LED。這樣原來 LED 是滅的話,就會點亮,如果原來 LED 為亮的話,就會熄滅。代碼如下:
`timescale 1ns / 1ps
module led(
input sys_clk, output reg led
);
reg[31:0] timer_cnt;
always@(posedge sys_clk)
begin
if(timer_cnt >= 32'd49_999_999)
begin
led <= ~led;
timer_cnt <= 32'd0;
end
else
begin
led <= led;
timer_cnt <= timer_cnt + 32'd1;
end
end
endmodule
10、編寫好代碼后保存,點擊菜單“File -> Save All Files”
三、添加約束管腳
Vivado 使用的約束文件格式為 xdc 文件,xdc 文件里主要是完成管腳的約束,時鐘的約束, 以及組的約束。這里我們需要對 led.v 程序中的輸入輸出端口分配到 FPGA 的真實管腳上。
1、點擊“Open Elaborated Design”
2、點擊OK
3、在菜單中選擇“Window -> I/O Ports”
4、給 LED 和時鐘分配管腳、電平標(biāo)準,完成后點擊保存圖標(biāo)
5、彈出窗口,要求保存約束文件,文件名我們填寫“l(fā)ed”,文件類型默認“XDC”,點擊“OK”
6、打開剛才生成的“l(fā)ed.xdc”文件,我們可以看到是一個 TCL 腳本,如果我們了解這些語法,完全可以通過自己編寫 led.xdc 文件的方式來約束管腳
最基本的 XDC 編寫的語法,普通 IO 口只需約束引腳號和電壓,管腳約束如下:
set_property PACKAGE_PIN “引腳編號” [get_ports “端口名稱”]
電平信號的約束如下:
set_property IOSTANDARD “電平標(biāo)準” [get_ports “端口名稱”]
這里需要注意文字的大小寫,端口名稱是數(shù)組的話用{ }刮起來,端口名稱必須和源代碼中的名字一致,且端口名字不能和關(guān)鍵字一樣。
電平標(biāo)準中“LVCMOS33”后面的數(shù)字指 FPGA 的 BANK 電壓,LED 所在 BANK 電壓為 3.3 伏,所以電平標(biāo)準為“LVCMOS33”。Vivado 默認要求為所有 IO 分配正確的電平標(biāo)準和管腳編號。
四、添加時序約束
一個 FPGA 設(shè)計除了管腳分配以外,還有一個重要的約束,那就是時序約束,這里通過向?qū)Х绞窖菔救绻M行一個時序約束。
1、點擊“Run Synthesis”開始綜合
2、彈出對話框點擊“OK”
3、綜合完成以后點擊“Cancel”
4、點擊“Constraints Wizard”
5、在彈出的窗口中點擊“Next”
6、時序約束向?qū)Х治龀鲈O(shè)計中的時鐘,這里把“sys_clk”頻率設(shè)置為 50Mhz,然后點擊“Skipto Finish”結(jié)束時序約束向?qū)А?br>
7、彈出的窗口中點擊“OK”
8、點擊“Finish”,這個時候 led.xdc 文件已經(jīng)更新,重新加載文件即可。
五、生成 BIT 文件
1、編譯的過程可以細分為綜合、布局布線、生成 bit 文件等,這里我們直接點擊“Generate Bitstream”,直接生成 bit 文件。2、在彈出的對話框中可以選擇任務(wù)數(shù)量,這里和 CPU 核心數(shù)有關(guān),一般數(shù)字越大,編譯越快,點擊OK
3、這個時候開始編譯,可以看到右上角有個狀態(tài)信息,在編譯過程中可能會被殺毒軟件、電腦管家攔截運行,導(dǎo)致無法編譯或很長時間沒有編譯成功。
4、編譯中沒有任何錯誤,編譯完成,彈出一個對話框讓我們選擇后續(xù)操作,這里選項“Open Hardware Manger”,點擊“OK”,當(dāng)然,也可以選擇“Cancel”,然后在左邊導(dǎo)航欄選擇“Open Hardware Manger”
六、下載調(diào)試
1、連接好開發(fā)板的 JTAG 接口,給開發(fā)板上電文章來源:http://www.zghlxwxcb.cn/news/detail-830491.html
2、在“HARDWARE MANAGER”界面點擊“Auto Connect”,自動連接設(shè)備
3、可以看到 JTAG 掃描到 arm 和 FPGA 內(nèi)核(圖中為 xc7z015,AC7010 開發(fā)板實際為 xc7z010_1,AC7020 開發(fā)板實際為 xc7z020_1),還有一個 XADC,可以檢測系統(tǒng)電壓、溫度
4、選擇 xc7z010_1 或 xc7z020_1,右鍵“Program Device…”
5、點擊program,等待下載
6、下載完成以后,我們可以看到 4 顆 LED 開始每秒變化一次。到此為止 Vivado 簡單流程體驗完成。后面的章節(jié)會介紹如果把程序燒錄到 Flash,需要 PS 系統(tǒng)的配合才能完成,只有 PL的工程不能直接燒寫 Flash。文章來源地址http://www.zghlxwxcb.cn/news/detail-830491.html
到了這里,關(guān)于ZYNQ AC7020C的“點LED”實驗的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!