天天看點

zynq 7000 的流水燈實驗

流水燈實驗是FPGA 的入門實驗。最簡單并且得到實在的體驗,我們就從這裡開始zynq 7000的體驗吧。

本實驗包括3部分:建立工程,添加和建立檔案,比特流産生和程式設計。

1:建立工程:打開Vivado,在如下界面裡選擇建立工程,Create Project。

由于不同的vivado的版本,可能界面不一,但都是找到Create Project。

zynq 7000 的流水燈實驗

出現create project 界面時,選擇Next。在如下界面輸入工程的名字,這裡是run_led,同時也要選擇工程的存放檔案夾。

zynq 7000 的流水燈實驗

到如下界面時,選擇RTL Project, 勾取Do not specify soources at this time。

zynq 7000 的流水燈實驗

到這個界面,選擇Part,太多了,不好選擇,可以指定一些條件,我們這裡選擇系列為Zynq-7000。

zynq 7000 的流水燈實驗

再選擇封裝為clg400,就看到了我的Part, 我的是:xc7z010clg400-1。不同的闆子這裡可能不同,你要查詢好你的Part 型号。

zynq 7000 的流水燈實驗

到這裡是個彙總,有不對的,可以傳回選擇。

zynq 7000 的流水燈實驗

工程建立完了,就是這個樣子。看看圖中2個紅箭,下面我們要添加2個檔案在這裡。

zynq 7000 的流水燈實驗

2:添加或建立檔案:

在工程管理界面裡,添加設計源碼檔案。先選擇Design Source,然後右鍵或下圖中+按鈕,Add Source。

zynq 7000 的流水燈實驗

這裡選擇添加檔案類型,這裡是 Add or create design sources。

zynq 7000 的流水燈實驗

選擇 Next 後到如下界面,可以添加或者建立檔案,這裡選擇Create File

zynq 7000 的流水燈實驗

出現對話框,這裡輸入檔案名led_top,還有檔案位置。

zynq 7000 的流水燈實驗

OK 之後,回到如下界面。檔案已在清單中。

zynq 7000 的流水燈實驗

選擇Finish 後,出現如下界面,OK就好了。

zynq 7000 的流水燈實驗

還有這一個對話框,Yes。

zynq 7000 的流水燈實驗

回到管理界面了。Design Sources 下有了檔案,點一下,右邊就會顯示出來,可以編輯修改。

zynq 7000 的流水燈實驗

在限制下還要添加檔案。點一下 Constraints, 與上面添加檔案一樣操作。右鍵或+按鈕, Add Source。

zynq 7000 的流水燈實驗

這裡檔案類型選擇是  Add or create constraints。

zynq 7000 的流水燈實驗

限制檔案取名run_led,點開可以右邊顯示。

zynq 7000 的流水燈實驗

看看我們建立的2個檔案都顯示在右邊。右上可以最大化。

zynq 7000 的流水燈實驗

檔案都建立好了,現在要修改檔案的内容了。

led_top.v檔案内容如下:

module led_top(

    input CLK_i,

input RSTn_i,

output reg [3:0]LED_o

);

reg [31:0]C0;

always @(posedge CLK_i)

if(!RSTn_i)

begin

LED_o <= 4'b1;

C0 <= 32'h0;

end

else

begin

if(C0 == 32'd50_000_000)

begin

C0 <= 32'h0;

if(LED_o == 4'b1000)

LED_o <= 4'b1;

else LED_o <= LED_o << 1;

end

else

begin

C0 <= C0 + 1'b1;

LED_o <= LED_o;

end

end

endmodule

你可以這裡複制,粘貼過去。顯示如下,多了一些注釋之類的。

zynq 7000 的流水燈實驗

run_led.xdc 的内容與硬體相關。在這裡要注意你的硬體管腳對應關系。我這裡是米聯 MZ7XA 的硬體定義。

CLK_i    H16

T19   RSTn_i

J16   LED_o[0]

K16   LED_o[1]

H15   LED_o[2]

G15   LED_o[3]

run_led.xdc 的内容如下,複制粘貼過去。如果管腳對應不一樣,修改這個内容。

create_clock -period 10.000 -name CLK_i [get_ports CLK_i]

set_property PACKAGE_PIN H16 [get_ports CLK_i]

set_property IOSTANDARD LVCMOS33 [get_ports CLK_i]

set_property PACKAGE_PIN T19 [get_ports RSTn_i]

set_property IOSTANDARD LVCMOS33 [get_ports RSTn_i]

set_property PACKAGE_PIN J16 [get_ports {LED_o[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[0]}]

set_property PACKAGE_PIN K16 [get_ports {LED_o[1]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[1]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[2]}]

set_property PACKAGE_PIN H15 [get_ports {LED_o[3]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[3]}]

set_property PACKAGE_PIN G15 [get_ports {LED_o[2]}]

檔案内容修改後,記得儲存。

3:比特流産生和程式設計運作

檔案内容都做好了,儲存檔案,然後點選Generate BitStream。

zynq 7000 的流水燈實驗

他會産生提示對話框,Yes就好。

zynq 7000 的流水燈實驗

還出現這個,OK

zynq 7000 的流水燈實驗

這個需要些時間,你可以看到右上在旋轉,表示在計算,看看日志在更新。

zynq 7000 的流水燈實驗

運作結束後會有如下完成對話框。這是告訴你結束了,下面怎麼做,可以Cancel, 也可以選擇一個下面的内容。這裡選擇紅箭訓示的 Open Hardware manager,完成了,我就打開硬體管理器。

zynq 7000 的流水燈實驗

如果你選擇了Cancel或者沒有選擇打開硬體管理,也可以如下圖打開硬體管理界面。Flow Navigator->Program and debug->Open Hardware Manager。還可以菜單Flow -> Open Hardware Manager。

zynq 7000 的流水燈實驗

硬體管理面闆如下。這裡說沒有連接配接硬體,你要連接配接好你的硬體,然後Open target

zynq 7000 的流水燈實驗

現在硬體連接配接上了,但還沒有程式設計裝置。按照紅箭的位置,點選 Program Devices。

zynq 7000 的流水燈實驗

選擇比特率檔案,如果沒有自動輸入,那你手動選擇,記得下圖檔案位置和名字。

zynq 7000 的流水燈實驗

點選Program , 程式就下載下傳并運作了。實驗也就結束了。

繼續閱讀