axi ps读写pl_【干货分享】Xilinx MPSoC PS/PL之间的数据交互和外设设计

本文详细介绍了Xilinx MPSoC平台中PS(Processing System)与PL(Programmable Logic)之间的数据交互,重点讨论了通过AXI Memory接口进行数据交互的方法,包括简单的AXI Lite接口实现、使用DMA进行高速数据传输以及集成AXI Stream接口。此外,还提及了中断支持、EMIO接口的使用以及如何确保系统可靠性,例如通过AXI Firewall防止异常导致的PS死机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 1 概述

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

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

0 2 MPSoC PS/PL之间的数据通路

在开始之前,首先简要介绍PS/PL之间的数据通路,请参考 《UG1085 Zynq UltraScale+ MPSoC Technical Reference Manual》的Figure 1-1: AXI Interconnect。

75398748540e8c70534e3e075b0dbb75.png

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-DDR控制器有六个AXI Slave接口,与PL直接相关的是S3、S4、S5。HPC0/HPC1都连接到了CCI Interconnect。DP和HP0连接到了S3。HP1和HP2连接到了S4。HP3和FP DMA连接到了S5。如果需要提高带宽,要充分利用PS-DDR控制器的AXI Slave接口。如果可能,HP1和HP2最好不要同时用,因为HP1和HP2都连接到了S4,最后会彼此竞争带宽。

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

41c8e30d31d2c04e6f79f1423203ead2.png

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

fae5fad5e1e4c051442fcbb29d14e83f.png
0 3 MPSoC PS/PL之间的简单数据通路和简单外设设计

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

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

0 4 使用Vivado里的工具Create and Package IP创建IP

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

1) 调用Vivado的Create and Package IP 模板

d85b32846254cd49e2c25207d11746db.png

2) Create and Package IP 模板介绍

352630723aa204335122f3269d9acb0d.png

3)新建IP
这一步选择"Create a new AXI4 peripheral"。

127b9456c114e0f660be66fb404c9365.png

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

39d0d01c069aef56538ed2cd3930b4da.png

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

e2c7eb60b564f61606bc0ce1e20c49e0.png

6) 完成IP创建
选择“Add IP to the repository”, 点击"Finish", 完成IP创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值