ddr传输 pl ps_PS/PL之间的数据交互办法

本文介绍了Xilinx MPSoC平台中PS(处理系统)与PL(可编程逻辑)之间的数据交互,重点讨论了通过DDR传输的方式以及简单外设、DMA外设和AXIStream外设的设计。PS/PL间的主要数据通路为AXI Memory接口,通过PS-DDR控制器进行大块数据交互。在设计简单外设时,可以使用Vivado的Create and Package IP工具创建AXI Lite接口的IP,并实现寄存器读写逻辑。对于大量数据和高速传输,推荐使用DMA外设,结合AXI-DMA实现高效内存搬移。此外,文中还提到了中断接口、EMIO接口的使用以及AXI Firewall在提升系统可靠性方面的作用。
摘要由CSDN通过智能技术生成

01概述

MPSoC是Xilinx基于16nm工艺推出的异构计算平台,由于灵活、稳定,在业界得到了广泛的使用。异构计算是一个比较新的领域,需要协调硬件设计、逻辑设计、软件设计,对工程师的要求很高。实际设计过程中,很多工程师对实现PS/PL之间的数据交互感到头疼。

本文将介绍主要的PS/PL之间的数据交互办法。

02MPSoCPS/PL之间的数据通路

在开始之前,首先简要介绍PS/PL之间的数据通路,请参考《UG1085ZynqUltraScale+MPSoCTechnicalReferenceManual》的Figure1-1:AXIInterconnect。

PS/PL之间的数据通路主要是通用的AXIMemory接口,其中PS作为主设备的接口有128-bit位宽的HPM0/HPM1,64-bit位宽的LPD_PL;PL作为主设备的接口有ACP/ACE/HPC0/HPC1/HP0/HP1/HP2/HP3。所有AXIMemory接口的位宽最高都可以支持到128-bit。

PS/PL之间主要通过PS-DDR交互大块数据。从Figure1-1可以看到,PS-DDR控制器有六个AXISlave接口,与PL直接相关的是S3、S4、S5。HPC0/HPC1都连接到了CCIInterconnect。DP和HP0连接到了S3。HP1和HP2连接到了S4。HP3和FPDMA连接到了S5。如果需要提高带宽,要充分利用PS-DDR控制器的AXISlave接口。如果可能,HP1和HP2最好不要同时用,因为HP1和HP2都连接到了S4,最后会彼此竞争带宽。

UG1085的Figure1-1提供了最详细的信息, 也有点复杂。为了简单,也可以参考下面来自于《ZynqUltraScale+MPSoCTechnicalOverview》的简化示意图。

在Vivado的IP里,使能相关接口后,接口如下。

03MPSoCPS/PL之间的简单数据通路和简单外设设计

很多时候,PS/PL之间只需要简单的数据通路。PS只需要下发有限的参数给PL,PL只需要向PS反馈有限的状态数据。串口、SPI设备、IIC等低速接口,就属于这种设备。这种情况下,PL内部只需要实现AXISlave接口和一些寄存器就可以,PS通过AXI接口去访问寄存器,既向PL提供参数,也可以读回PL的状态。

客户可以自己设计AXI接口和寄存器,也可以使用Vivado里的工具CreateandPackageIP。

04使用Vivado里的工具CreateandPackageIP创建IP

如果使用Vivado里的工具CreateandPackageIP创建IP,可以参照下列步骤。

1)调用Vivado的CreateandPackageIP模板

2)CreateandPackageIP模板介绍

3)新建IP

这一步选择"CreateanewAXI4peripheral"。

4)IP命名和目录

根据自己需要,指定IP的名称和目录。

5)IP接口选择

可以看到,只为新的IP选择了AXILite接口,并实现了16个寄存器。工程师可以根据需要选择寄存器个数,最小4个,最多512个。对于AXILite接口,数据位宽是32-bit。

6)完成IP创建

选择“AddIPtotherepository”,点击"Finish",完成IP创建。

<
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值