【第一季】CH07_FPGA_RunLED创建VIVADO工程实验
【第一季】CH07_FPGA_RunLED創建VIVADO工程實驗
7.1 硬件圖片
先來熟悉一下開發板的硬件:LED部分及按鈕部分
7.2 硬件原理圖
PIN腳定義(講解以MIZ702講解,MIZ701N只有4個LED 2個按鈕):
| GCLK:Y9(PL輸入時鐘) LD0:T22 LD1:T21 LD2:U22 LD3:U21 LD4:V22 LD5:W22 LD6:U19 LD7:U14 | BTNU:T18 BTNC:P16 BTNL:N15 BTNR:R18 BTND:R16 |
7.3新建VIVADO工程
Step1:創建工程
Step2:歡迎界面直接單擊NEXT
Step3:工程名字命名為Led,并且設置保存的路徑,單擊NEXT
Step4:新建一個RTL 工程,并且勾選不要添加源文件,單擊NEXT
Step5:由于MIZ702和ZEDBOARD是兼容的,因此直接選擇ZEDBOARD硬件開發包作為我們MIZ702的開發包。這樣可以省去很多麻煩,達到事半功倍的目的。單擊NEXT
Step6:最后單擊Finish 完成工程的創建
7.4創建工程文件
Step1:打開VIVADO軟件
Step2:單擊 Add Sources
Step4:選擇單擊Add or Create Design Sources 然后單擊NEXT
Step5:單擊Create File 來創建文件
Step6:創建一個Led的文件,并且文件類型選擇Verilog
Step7:添加完成后如下圖所示之后單擊finish完成文件的創建
Step8:繼續彈出的對話空中,可以設置一些端口,但是我們現在什么都不做。單擊OK
Step9:創建完成后可以看到Design Sources文件夾中有了Led.v這個文件
Step9:創建完成后可以看到Design Sources文件夾中有了Led.v這個文件,這個文件就是我們可以編寫verilog程序的文件。
7.5 Verilog FPGA流水燈實驗
Step1:雙擊Led.v打開流水程序源碼如下
| `timescale 1ns / 1ps // // Company: // Engineer: // Create Date: 2016/03/22 15:05:39 // Design Name: // Module Name: Led // Project Name: // Target Devices: // Tool Versions: // Description: // Dependencies: // Revision: // Revision 0.01 - File Created // Additional Comments: // module Led( ??? ); endmodule |
可以看出這是一個空的工程,我們現在要添加代碼同時也要添加工程信息。
Step2:編寫程序并且添加工程信息
| // Target Devices: XC7Z020-FGG484 // Tool versions:? VIVADO2015.4 // Description: water led // Revision:? V1.1 // Additional Comments: //1) _i PIN input?? //2) _o PIN output //3) _n PIN active low //4) _dg debug signal //5) _r? reg delay //6) _s state machine // module Led( ??? input CLK_i, ??? input RSTn_i, ??? output reg [7:0]LED_o ??? ); ??? reg [31:0]C0; ??? always @(posedge CLK_i) ?????? if(!RSTn_i) ?????? begin ?????????? LED_o <= 8'b0000_0001; ?????????? C0 <= 32'h0; ?????? end ?????? else ?????? begin ?????????? if(C0 == 32'd50_000_000)?? ?????????? begin ??????????????? C0 <= 32'h0;?? ??????????????? if(LED_o == 8'b1000_0000)?? ??????????????? LED_o <= 8'b0000_0001; ??????????????? else LED_o <= LED_o << 1; ?????????? end ?????????? else begin C0 <= C0 + 1'b1; LED_o <= LED_o; end ?????? end endmodule |
這樣我們就編寫好了代碼下面還要添加管腳約束文件。
7.6 添加管腳約束文件
Step1:單擊(和添加.v文件一樣)
Step2:選擇Add or create constraints 然后單擊NEXT
Step3:單擊Create File
Step4:命名為led_pin 后單擊OK
Step5:可以看到產生了名為led_pin.adc的文件然后單擊Finish
Step6:打開led_pin.adc文件添加如下約束
| create_clock -name clk100MHZ -period 10.0 [get_ports {CLK_i}] set_property PACKAGE_PIN Y9 [get_ports {CLK_i}] set_property IOSTANDARD LVCMOS33 [get_ports {CLK_i}] set_property PACKAGE_PIN N15 [get_ports {RSTn_i}] set_property IOSTANDARD LVCMOS18 [get_ports {RSTn_i}] set_property PACKAGE_PIN T22 [get_ports {LED_o[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[0]}] set_property PACKAGE_PIN T21 [get_ports {LED_o[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[1]}] set_property PACKAGE_PIN U22 [get_ports {LED_o[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[2]}] set_property PACKAGE_PIN U21 [get_ports {LED_o[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[3]}] set_property PACKAGE_PIN V22 [get_ports {LED_o[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[5]}] set_property PACKAGE_PIN W22 [get_ports {LED_o[5]}] set_property PACKAGE_PIN U19 [get_ports {LED_o[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[7]}] set_property PACKAGE_PIN U14 [get_ports {LED_o[7]}] |
7.7 編譯并且產生bit文件
Step1:單擊綜合
Step2:單擊執行
Step3:單擊產生bit
7.8下載程序
Step1:給開發板通電,并且連接下載器
Step2:單擊OpenTarget 然后單擊Auto Connect
Step3:連接成功后
Step4:單擊Program Device
Step5:單擊Program Device 然后選擇 XC7Z020_1
Step6:或者也可以從頂部單擊Program device
Step7:彈出的對話框中有我們要下載的Bit文件
Step7:下載過程
7.9實驗結果
下載過程下載完成后LED流水燈就運行起來了。
7.10本章小結
本章詳細講解了如何創建VIVADO工程以及在VIVADO工程環境下編寫純PL代碼的程序,并且講解了如何添加管腳約束,時鐘約束,編譯程序,下載程序。通過流水燈實現這個簡單的實驗拋磚引玉,讓大家掌握了VIVADO軟件的使用。
轉載于:https://www.cnblogs.com/milinker/p/6383669.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【第一季】CH07_FPGA_RunLED创建VIVADO工程实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate 一级缓存,二级缓存,
- 下一篇: ionic常见问题及解决方案