PL端使用過后,來到了ZYNQ核心的部分:PS端,現在用Vivado軟件對ZYNQ-7000開發板的PS端進行第一個程序設計:Hello World。
一、新建Vivado工程
1.打開Vivado,新建一個工程,Next
2.設置工程名稱和工程所在目錄,Next
3.選擇第一項:RTL Project,Next
4.添加資源,可以直接Next
5.添加約束,可以直接Next
6.芯片型號選擇xc7z020clg400-1,Next
7.總結頁面,Finish
8.進入Vivado工程頁面,左邊是導航欄,可以直接點擊Generate Bitstream,上面的選項也會按順序被執行。Open Hardware Manager則是硬件管理,用於下載、調試等。
9.如果連接好了板卡,那么點擊Open Hardware Manager --- Open Target則可以看到板卡信息。
二、ZYNQ IP核設置
1.點擊導航欄的 IP INTEGRATOR --- Create Block Design,彈出工程名稱和工程位置,填寫后點OK
2.點擊中間的 + 號添加IP,然后在彈出的小窗口中選擇ZYNQ,雙擊該IP核
3.此時看到ZYNQ的接口界面,有幾個引腳,我們只需要最簡單的系統,雙擊ZYNQ進行參數設置
4.進入到ZYNQ內部資源區域,此處可以看到內部有哪些資源可以使用。
Zynq Block Design 主頁面 PS-PL Configuration PS到PL的相關接口配置信息以及PS部分的一些配置信息 Peripheral I/O Pins 通用外設接口的配置 MIO Configruation 對MIO以及EMIO的分配控制 Clock Configruation PS端時鍾資源的配置和管理 DDR Configration DDR控制器的一些參數配置 Interrupts 中斷的配置管理
5.點擊左側的PS-PL Configuration, 取消勾選這兩項。
6.點擊左側的MIO Configuration,電壓設置成LVCMOS 1.8V,用到了SD和UART,因此勾選它們並且設置引腳編號。
7.選擇Clock Configuration,本實驗沒有用到FPGA板卡時鍾,因此取消勾選。
8.點擊左側DDR Configuration,勾選Enable DDR,點擊展開,對DDR進行一些參數設置,之后點擊OK
9.回歸到ZYNQ主頁面,可以看到比之前更簡潔了。上面綠色橫條處點擊Run Block Automation
10.點擊OK
11.ZYNQ變成了如下的結構圖。
12.點擊 Source 欄的工程,鼠標右鍵選擇 Generae Output Products
13.彈出一個小窗口,第一項為全局模式,更慢但保險,第二項為OOC模式,更快但有邏輯問題時會編譯不通過,我們選第一項,下面線程根據自己電腦配置選擇最大的即可。
14.設置讓Vivado管理我們的文件,點擊Sources,右鍵選擇Create HDL Wrapper,彈出的小頁面點擊OK
15.完成后的界面如圖所示
三、使用SDK進行軟件開發
1.本次實驗只有 PS 部分的管腳,沒有 PL 部分的管腳,而且 PS 部分的管腳都是固定的,所以我們不需要添加管腳約束文件。另外因為沒有使用 PL 部分的資源,我們也不需要在 Vivado 下編譯和生成 bit 文件了。直接將文件導出到SDK開發目錄,點擊 File --- Export --- Export Hardware
2.未用到bit流文件,不用勾選 Include bitstream ,直接點 OK
3.啟動SDK,點擊File Launch SDK,彈出的小窗口直接點OK就行
4.直接點 OK
5.如圖所示便是SDK軟件開發界面了。
6.新建一個軟件的APP,用於后面的C語言編程。點擊File --- New --- Application Project
7.填寫項目名稱,點擊Next
8.選擇Hello World,點擊Finish
9.此時軟件自動開始編譯,也可點擊 Build Project手動編譯,編譯完成后出現Hello World 的程序,如果編譯出錯,可以點擊 Clean Project 重新編譯。
10.本實驗需要用到Uart串口,我們打開我的電腦 --- 設備管理器 --- 端口,檢查是否已經連接好串口
11.回到SDK界面,看到界面下方有一個SDK Terminal,點擊該選項,並且點擊那個+號,設置其自帶的串口工具的參數。
12.點擊如下選項
13.如果跳出如下界面,點擊No
14.點擊右上角的按鈕可以進行界面切換
15.點擊如下圖標可以進行FPGA配置,點擊Program將程序燒錄進板卡,這時跳出小窗口就要選擇yes了。
16.當然,你也可以點擊這個選項進行FPGA配置,這時跳出小窗口就要選擇yes了。
17.頁面出現如下的文件目錄,表示成功。
18.界面上方有幾個調試選項:
Resume:運行到斷點為止
Step into:進到函數內部
Step over:單步調試
Step return:跳出函數內部
這里選擇單步調試即可,可以看到界面下方的SDK Terminal中顯示出:Hello World
19.當然,也可以使用電腦里的窗口助手軟件進行接收,先在SDK Terminal界面中點擊X關閉該功能,然后打開電腦里的串口助手,助手需要打開處於可以工作狀態,接收設置成ASCII模式。重新回到SDK界面運行程序,可以看到串口助手同樣顯示出:Hello World
四、補充:C語言界面設置
默認的C語言界面沒有行號,而且字體非常小,下面說下怎么調整。
1.點擊頂層導航欄的Window---Preferences,點擊General---Editors---Text Editors,將下面的Show line numbers勾選上即可顯示行號了。
2.然后點擊右側的藍字'Colors and Fonts',右側頁面變換后選擇C/C++---Editor---C/C++ Editor Text Font,點擊右側Edit...即可調整字體和字號,建議字號為14。
參考資料:
[1]V3學院FPGA教程
[2]何賓, 張艷輝. Xilinx Zynq-7000嵌入式系統設計與實現[M]. 電子工業出版社, 2016.