Vitis嚐鮮(二)

 上一篇安裝完相關程序後,這一篇就簡單運行一個“Hello Vitis”的程序。
 本例硬件平臺爲ZYNQ平臺,具體芯片爲XC7Z035。
 ZYNQ 芯片分爲 PL 和 PS, PS 端的 IO 分配相對是固定的,不能任意分配,而且不需要在 Vivado 軟件裏分配管腳,雖然本實驗僅僅使用了 PS,但是還要建立一個 Vivado 工程,用來配置 PS 管腳。雖然 PS 端的 ARM 是硬核,但是在 ZYNQ 當中也要將 ARM硬核添加到工程當中才能使用。

Vivado 工程建立

  1. 點擊桌面圖標Vivado2019.2

在這裏插入圖片描述

  1. file–>project–>new

在這裏插入圖片描述

  1. 不做選擇,NEXT

在這裏插入圖片描述

  1. 設置工程名字和路徑

設置工程名字:ps_hello
設置工程路徑

在這裏插入圖片描述

  1. 選擇工程類型

這裏選擇RTL Project,尤其注意勾選箭頭所示位置,現在不添加特殊的設計文件(我們還沒有設計文件)。

在這裏插入圖片描述

  1. 選擇本工程對應的目標器件

本實例目標器件是xc7z035ffg676-2
在這裏插入圖片描述

  1. 工程總結頁面

覈對之前的設置,如果沒問題點擊Finsh。
在這裏插入圖片描述

  1. 創建圖形化設計

點擊“Create Block Design”,創建一個 Block 設計,也就是圖形化設計

在這裏插入圖片描述

  1. 修改“Design name”

“Design name”這裏可以不做修改,保持默認“design_1”,這裏可以根據需要修改爲“zynq035”,不過名字要儘量簡短,否則在 Windows 下編譯會有問題。
在這裏插入圖片描述

  1. 點擊“Add IP”快捷圖標

在這裏插入圖片描述

  1. 添加“ZYNQ7 Processing System”

搜索“zynq”,在搜索結果列表中雙擊“ZYNQ7 Processing System”
在這裏插入圖片描述

  1. 配置相關參數

雙擊 Block 圖中的“processing_system7_0”,配置相關參數
在這裏插入圖片描述
圖中綠色部分是可配置模塊,可以點擊進入相應的編輯界面,當然也可以在左側的窗口進入編輯。 各個窗口的功能就不一一介紹了。有興趣可以去官網搜索“ug585”,裏面有對 ZYNQ 的詳細介紹。
在這裏插入圖片描述
主要的頁面是時鐘配置,因爲每個板子不相同,所以需要配置這個頁面。
在“Clock Configuration”選項卡中我們可以配置 PS 時鐘輸入時鐘頻率,這裏默認是33.333333,和板子上一致,不用修改, CPU 頻率默認 666.666666Mhz,這裏也不修改。同時 PS 還可以給 PL 端提供 4 路時鐘,頻率可以配置,這裏不需要,所以保持默認即可。還有 PS 端外設的時鐘等也可以進行配置,這裏保持默認。
在這裏插入圖片描述
另外DDR配置也很重要。
內存型號配置(PS: 開發板內存型號配置爲MT41K256M16 RE-125):
內存型號配置如下:
在這裏插入圖片描述

  1. 設置外擴接口,之後點擊OK。

在這裏插入圖片描述

  1. 點擊“Run Block Automation”, vivado 軟件會自動完成一些導出端口的工作

在這裏插入圖片描述
按照默認點擊“OK”
在這裏插入圖片描述

點擊“OK”以後我們可以看到 PS 端導出一些管腳,包括 DDR 還有 FIXED_IO, DDR 是DDR3 的接口信號, FIXED_IO 爲 PS 端固定的一些接口,比如輸入時鐘, PS 端復位信號,MIO 等。
在這裏插入圖片描述
連接 FCLK_CLK0 到 M_AXI_GP0_ACLK,按 Ctrl+S 保存設計
在這裏插入圖片描述
PS:DDR 和 FIXED_IO 是 PS 端引腳, PS_PORB 爲 PS 端上電覆位信號,不能用於 PL 端復位,不要將 PL 端的復位綁定到這個引腳號上在!

  1. 右擊 system.bd, 單擊Generate Output Products。

在這裏插入圖片描述
在這裏插入圖片描述
這一步操作會產生執行、仿真、綜合的文件,可以看出來最後的硬件設計步驟還是回到了我們前面的FPGA開發上來了。
在這裏插入圖片描述
17. 右擊 system.bd 選擇 Create HDL Wrapper 這步的作用是產生頂層的 HDL 文件

在這裏插入圖片描述
選擇 Leave Let Vivado manager wrapper and auto-update 然後單擊 OK
在這裏插入圖片描述
展開設計可以看到 PS 被當成一個普通 IP 來使用。
在這裏插入圖片描述
查看 system_wrapper.v 源碼可以看到頂層文件的源碼調用了 CPU 接口,所有外設的接口也都是通過頂層文件引出來的。

  1. 在菜單欄“File -> Export -> Export Hardware…”導出硬件信息,這裏就包含了 PS 端的配置信息。
    在這裏插入圖片描述
    在彈出的對話框中點擊“OK”,這裏注意下因爲實驗僅僅是使用了 PS 的串口,不需要 PL 參與,這裏就可以不勾選“Include bitstream”,如果你的工程裏有PL部分代碼,一定記得勾選箭頭位置。導出路徑可以自由選擇,本實驗保存在工程路徑下面新建文件夾 vitis, 這個文件夾可以根據自己的需要在合適的位置新建,不一定要放在 vivado工程下面, vivado 和 vitis 軟件是獨立的。
    在這裏插入圖片描述
    此時在新建的 vitis 文件夾下可以看到 xsa 文件,這個文件就是這個文件就包含了 Vivado 硬件設計的信息,供軟件開發人員使用。
    在這裏插入圖片描述
    在這裏插入圖片描述

Vitis 調試

接下來就是將Vivado做的相關文件導入Vitis中,這一步和以前的SDK是不同的,我們看下在Vivado中相關位置:
在這裏插入圖片描述
以前版本是有Launch SDK選項的,所以vitis調試第一步需要自己打開vitis軟件。
在這裏插入圖片描述

  1. 打開Vitis軟件

爲了方便相關人員調試,Vivado中也是可以直接打開Vitis軟件的, 通過Tools–>Launch Vitis 打開 Vitis 軟件
在這裏插入圖片描述
當然通過桌面圖標打開也是一樣的。
在這裏插入圖片描述
2. 選擇之前新建的“vitis”文件夾,點擊”Launch”

如果是以後經常使用一個文件夾作爲Vitis工程,可以勾選下圖位置。
在這裏插入圖片描述
3. Create Application Project

啓動 Vitis 之後界面如下,點擊file–>New–>Application Project或者“Create Application Project”,這個選項會生成 APP 工程以及Platfrom 工程, Platform 工程類似於以前版本的 hardware platform,包含了硬件支持的相關文件以及 BSP。

在這裏插入圖片描述

  1. 填寫項目名稱

在這裏插入圖片描述
5. Create a new platform hardware(XSA)

點擊“Create a new platform hardware(XSA),軟件已經提供了一些板卡的硬件平臺,但對於我們自己的硬件平臺,可以選擇”+”
在這裏插入圖片描述

選擇之前生成的 xsa,點擊打開
在這裏插入圖片描述
點擊 Next
在這裏插入圖片描述
CPU 默認選擇 ps7_cortexa9_0, OS 選擇 standalone,最下面的 Generate boot components選項,如果勾選上,軟件會自動生成 fsbl 工程,我們一般選擇默認勾選上。點擊 Next
在這裏插入圖片描述
6. 模板選擇 ,建立工程

模板選擇,根據自己的需要來,本例選擇 Hello World,點擊 Finish
在這裏插入圖片描述
完成之後可以看到生成了兩個工程,一個是硬件平臺工程,即之前所說的 Platfrom 工程,一個是 APP 工程。
在這裏插入圖片描述
展開 Platform 工程後可以看到裏面包含有 BSP 工程,以及 zynq_fsbl 工程(此工程即選擇Generate boot components 之後的結果) ,雙擊 platform.spr 即可看到 Platform 對應生成的BSP 工程,可以在這裏對 BSP 進行配置。 軟件開發人員比較清楚, BSP 也就是 BoardSupport Package 板級支持包的意思,裏面包含了開發所需要的驅動文件,用於應用程序開發。 可以看到 Platform 下有多個 BSP,這是跟以往的 Vitis 軟件不一樣的,其中 zynq_fsbl即是 fsbl 的 BSP, standalone on ps7_cortexa9_0 即是 APP 工程的 BSP。也可以在 Platform裏添加 BSP。
在這裏插入圖片描述
點開 BSP,即可看到工程帶有的外設驅動,其中 Documentation 是 xilinx 提供的驅動的說明文檔, Import Examples 是 xilinx 提供的 example 工程,加快學習。
在這裏插入圖片描述
先修改下,helloworld.c文件,在圖示位置,修改
在這裏插入圖片描述

  1. 編譯工程
    選中 APP 工程,右鍵 Build Project,或者點擊菜單欄的“錘子”按鍵,進行工程編譯
    在這裏插入圖片描述
    可以在 Console 看到編譯過程
    在這裏插入圖片描述

編譯結束,生成 elf 文件
在這裏插入圖片描述

硬件調試

  1. 連接 JTAG 線到開發板、 UART 的 USB 線到 PC
  2. 打開串口軟件,查看設備管理器中串口號

在這裏插入圖片描述
選用SecureCRT串口調試終端,波特率按照文件指示選擇115200。
在這裏插入圖片描述
在這裏插入圖片描述
PS:在上電之前最好將開發板的啓動模式設置到 JTAG 模式

  1. 運行程序

選擇“hello_ps”,右鍵,可以看到很多選項,本實驗要用到這裏的
“Run as”,就是把程序運行起來,“Run as”裏又有很對選項,選擇第一個“Launch on Hardware(Single Application Debug)”,使用系統調試,直接運行程序。
在這裏插入圖片描述
這個時候觀察串口軟件, 即可以看到輸出”Hello vitis”
在這裏插入圖片描述
爲了保證系統的可靠調試, 最好是右鍵“Run As -> Run Configuration…”

在這裏插入圖片描述
我們可以看一下里面的配置,其中 Reset entire system 是默認選中的,這是跟以前的 Vitis軟件不同的。 如果系統中還有 PL 設計,還必須選擇“Program FPGA”
在這裏插入圖片描述
除了“Run As”,還可以“Debug As”,這樣可以設置斷點,單步運行
在這裏插入圖片描述
進入 Debug 模式
在這裏插入圖片描述
和其他 C 語言開發 IDE 一樣,可以逐步運行、設置斷點等
在這裏插入圖片描述
右上角可以切換 IDE 模式
在這裏插入圖片描述

  嚐鮮就先到這裏,總結一下:1、和以前開發流程大差不差,中間有幾步稍微有點差別,但是走過一遍應該就能熟悉;2、整個vitis和以前的SDK界面稍有不同,但是功能基本一致;3、雖然變化不大,但是把軟件和硬件開發分得更細緻了,這樣更方便軟硬件進行協同工作。目前能想到的就這些,後面有什麼新發現會第一時間分享給大家,還是之前文章說的,如果你是vivado+SDK的用戶沒必要爲了嚐鮮去升級軟件,至少我目前是這麼認爲的。如果你對硬件加速方面有特殊需求的,推薦去嘗試一下。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章