ZCU106 XRT Vivado工程分析【Xilinx Vitis】

1 前言

在上一篇ZCU106 XRT環境搭建【Xilinx Vitis】中,我參考了XRT中其它平臺(ZCU102,ZCU104)的Vivado TCL腳本,同時參考了官方的VCU相關工程,編寫了ZCU106 XRT的腳本:
https://github.com/vacajk/XRT/blob/2019.2/src/platform/zcu106vcu_base/zcu106vcu_base_xsa.tcl
在這篇文章中將對該工程進行一下分析。

2 Block Design

運行 zcu106vcu_base_xsa.tcl 腳本後,會自動生成Vivado工程。打開Vivado後可以查看block design的結構,如下圖:
在這裏插入圖片描述該工程中除了VCU IP是我添加的,其它基本沒有什麼複雜的IP。都是一些Vitis開發需要的必備結構。

2.1 VCU

VCU即ZCU*EV系列芯片特有的視頻編解碼器IP模塊。可以實現H264,H265的編解碼功能。
VCU的官方文檔:pg252vcu

VCU的配置如下,該配置參考的是Xilinx官方的VCU TRD內的IP配置參數。
在這裏插入圖片描述將來我會開發VCU的相關功能,所以現在先加進來,以後再來使用。VCU的開發本來就是需要基於PetaLinux的,XRT亦是基於PetaLinux的。所以在上一篇博客中的PetaLinux rootfs中同時添加了gstreamer相關的組件。

2.2 Clock

XRT類似與之前的SDSOC,SDACCEL的開發類似,需要預留時鐘單元、復位單元等。
爲了適配不同的數據處理帶寬需求,使用MMCM例化了一組時鐘輸出,如下圖所示。
在這裏插入圖片描述以上時鐘都是參考XRT內的ZCU102和ZCU104的配置,並進行了一些修改。
後續我們常用的時鐘一般會選擇:150,300,100,200。其它的幾個不會太常用,先留在這裏。

2.3 ZYNQ PS

使用了較新的Xilinx ZCU106開發板,上面的DDR4-SODIMM是1RX16類型的(16bit顆粒),所以要修改一下PS的DDR Controller配置,配置如下:(很早時候crazybingo大神告知的,真的省了很多事)
在這裏插入圖片描述

3 編譯

在XRT腳本的自動化生成過程中,並未對該工程進行綜合和實現,而是直接在創建好block design後直接生成xsa來使用的。所以我們也不需要進行編譯了,後面在Vitis的硬件加速編譯過程中會自動添加相關加速RTL,以及進行Vivado工程綜合的。

4 其它

預留位置,後續有其它RTL更新後我會回過頭來更新這篇文章的內容。目前來看,添加了VCU IP後,基本是夠用了。

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