ZCU102

Vitis_ZCU102_3_Vitis 实现多核工作

具体方法与 SDK 的多核工作实现方法基本一致,详细操作可以参考 zcu102 系列文档。本文的代码工程继承 vitis_zcu102_1 文档。

Vitis_ZCU102_2_Vitis 实现 Bare-Metal 工程

建立基于 zcu102 开发板的 Vivado 工程。建立 Block Design,添加 Zynq UltraScale+ MPSoc 的 IP。点击 Run Block Automation,自动配置 IP 模块。双击打开配置窗口查看 UART 0 和 UART 1 已按照 zcu102 开发板的硬件连接设置完成。

Vitis_ZCU102_1_Hello Vitis

作者:bt_
原文链接: https://blog.csdn.net/botao_li/article/details/103901856
* 本文由作者授权转发,如需转载请联系作者本人

主要参考:ug1400

安装串口调试软件

安装串口软件 tinyserial

本人使用 Qt 5.12.6 编译后使用(deb 安装后无法运行)。

建立 Platform Project

zcu102(10)Standalone读写SD卡文件

建立zcu102的Vivado工程,新建Block Design,并且添加zynq模块;运行Run Block Automation,双击打开zynq模块配置查看SD接口配置。

zcu102(9)hello_petalinux

由于本人习惯在Windows环境下做FPGA开发,因此将PetaLinux安装在Linux虚拟机中,开发环境如下:Windows 10;Vivado 2018.2.1;VMware Workstation 14 Pro;Ubuntu 16.04.5 desktop amd64;Petalinux 2018.2。

zcu102(8)AXI_STREAM实现AXI_DMA

AXI_STREAM的时序:AXI_STREAM接口一般用于大规模持续的无地址映射关系的流数据传输......

zcu102(7)AXI_LITE实验

从本文档开始将介绍PS和PL之间通过AXI总线互联。三种AXI总线协议为① AXI_LITE:性能较低的地址映射传输,一次只能传输4字节;② AXI_STREAM:高速流数据传输,无地址映射,不能直接与PS连接;③ AXI(又称AXI_FULL):性能较高的地址映射传输。

zcu102(6)AXI_TIMER精确计时

axi_timer模块即为PS可以访问的PL计数器,通过计数值以及接入axi_timer的计数时钟周期,可以在PS内取得比较精确的计时。axi_timer有2种使用方式,一种是作为计数器使用,另一种是作为定时器使用。

ZCU102(6)——AXI_TIMER精确计时

axi_timer模块即为PS可以访问的PL计数器,通过计数值以及接入axi_timer的计数时钟周期,可以在PS内取得比较精确的计时。axi_timer有2种使用方式,一种是作为计数器使用,另一种是作为定时器使用

ZCU102(5)——AXI_BRAM实现PL与PS数据互联

PS模块通过axi_bram模块,可以使用AXI接口读写PL内的Block RAM,实现PS与PL之间的数据互联。axi_bram需要与Block Memory Generator模块共同使用,axi_bram将PS的AXI操作转化为bram的控制接口时序。建立Vivado工程,并且添加Zynq模块,AXI BRAM Controller模块,Block Memory Generator模块,Utility Vector Logic模块和ILA模块。