本文将聚焦于使用使用Xilinx ZYNQ Ultrascale+ MPSoC的PS与PL交互。PS-PL的主要交互手段包括EMIO输出与AXI总线双向交互。本文的实现结果是使用PS端访问位于PL端的AXI4 BRAM,并且额外实现了一个简单的由EMIO控制的PL端BRAM覆写器。 基本介绍 作为一片SoC,ZYNQ提供了主要两种手段以实现单bit信号和小批量数据交互。 第...
PS/PL之间的数据通路主要是通用的AXI Memory接口,其中PS作为主设备的接口有128-bit位宽的HPM0/HPM1, 64-bit位宽的LPD_PL; PL作为主设备的接口有ACP/ACE/HPC0/HPC1/HP0/HP1/HP2/HP3。所有AXI Memory接口的位宽最高都可以支持到128-bit。 PS/PL之间主要通过PS-DDR交互大块数据。从Figure 1-1可以看到,PS-...
那么本节就开始进行PS-PL通过BRAM交互实验,分为两个部分: PS写入BRAM数据,PL读出BRAM数据;PL写入BRAM数据,PS读出BRAM数据 1. PS写入BRAM数据,PL读出BRAM数据 第一步:PL部分 我们只需要点击对应的VIO进行读即可 第二步:PS部分 上电后自动执行psWriteBram函数,便可完成PS写入BRAM前8个32位数据 voidpsWriteBram()...
市场上有特别多的ZYNQ资料,但是这些资料都有一些弊端,比如 ① 听着听着就听不懂了,重点放在PS上。 ② 没有如何调试、如何debug程序等等,调试能力对于工程师是非常非常重要的。 ③ PS和PL交互讲的不够深入。 所以小白这里想做一份可以让新手小白轻松听懂的教程,重点讲两
基于ZCU104的PS和PL数据交互例程(二):vivado中封装现有工程成IP 设计DUT功能 正常创建一个vivado工程,添加一个dut.v的文件 功能:读入100个输入数据,每个数据依次加0,1,2,...,然后输出。比如输入是0到99,则输出是0,2,4,到198,如下图所示。 状态机: ...
如果PS与PL端进行数据交互,可以直接设计PL端为从机,PS端向PL端的reg写入数据即可,但是对于图像处理等大数据量的数据交互来说,PL端的BRAM毕竟容量有限,很难用BRAM作为两者间的数据缓存器。对于这样的应用来说,利用DDR3作为PS端与PL端之间交互的数据缓存器是最合适不过的。
ZYNQ中的计算资源通常分为PS端(ARM处理器及其外设)部分和PL(FPGA)部分。有时需要二者进行数据交互,本系列实验,我们用PL中的BRAM资源作为媒介进行PS-PL的交互。 本次实验分为三节( 1)PS端对BRAM读写( 2)PL端对BRAM读写( 3)PS读PL写,PS写PL读
Xilinx MPSoC PS/PL之间的数据交互和外设设计 1. 作者 付汉杰hankf@xilinx.com2020-09-10 2. 概述 MPSoC是Xilinx基于16nm工艺推出的异构计算平台,由于灵活、稳定,在业界得到了广泛的使用。异构计算是一个比较新的领域,需要协调硬件设计、逻辑设计、软件设计,对工程师的要求很高。实际设计过程中,很多工程师对实现PS...
在Zynq架构中,PS与PL之间的数据交互主要通过AXI(Advanced Extensible Interface)总线进行。AXI总线是一种面向突发的协议,旨在提供高带宽同时提供低延迟。它支持多种传输类型,如AXI4 Burst transfers、AXI4-Lite for simple control interfaces和AXI4-Streaming for unidirectional data transfers等。通过AXI总线,PS可以高效...
Zynq PS 和 PL 通过以下接口互连: 两个32 位主 AXI 端口(PS 主) 两个32 位从 AXI 端口(PL 主) 四个32/64 位从机高性能端口(PL 主机) 1个 64 位从加速器一致性端口 (ACP)(PL 主控) 从PS 到 PL 的四个时钟 PS 到 PL 中断 PL 到 PS 中断 ...