PS/PL Interfaces
Zynq在PS和PL之间有9个AXI接口。 在PL方面,有4x AXI Master HP(高性能)端口,2x AXI GP(通用)端口,2x AXI Slave GP端口和1x AXI Master ACP端口。 PS中还有连接到PL的GPIO控制器。
有四个pynq类用于管理Zynq PS(包括PS DRAM)和PL接口之间的数据移动。
1.GPIO - 通用输入/输出
2.MMIO - 内存映射IO
3.Xlnk - 内存分配
4.DMA - 直接内存访问
使用的类取决于IP连接的Zynq PS接口以及IP的接口。
在PYNQ上运行的Python代码可以使IP通过AXI Slave访问连接到GP端口。 MMIO可用于执行此操作。
连接到AXI Master端口的IP不受PS的直接控制。 AXI Master端口允许IP直接访问DRAM。在执行此操作之前,应分配内存以供IP使用。 Xlnk类可用于执行此操作。对于PS DRAM和IP之间的更高性能数据传输,可以使用DMA。 PYNQ提供DMA类。
在设计自己的 overlay时,您需要考虑所需的IP类型以及它如何连接到PS。然后,您应该能够确定使用IP所需的类。
PS GPIO
从Zynq PS到PL有64个GPIO(线路)。
来自PS的PS GPIO线可以作为非常简单的方式用来进行PS和PL之间通信。 例如,GPIO可用作复位或中断的控制信号。
IP连接到GPIO,不必映射到系统存储器映射。
有关使用PS GPIO的更多信息,请参阅PS GPIO部分。
MMIO
连接到AXI Slave GP端口的任何IP都将映射到系统存储器映射中。 MMIO可用于读/写内存映射位置。 MMIO读或写命令是将32位数据传输到存储器位置或从存储器位置传输32位数据的单个事务。 由于不支持突发指令,MMIO最适合从IP连接到AXI Slave GP端口读取和写入少量数据。
有关使用MMIO的更多信息,请参阅MMIO部分。
Xlnk
必须先分配内存,然后才能通过IP访问内存。 Xlnk允许分配内存缓冲区。 Xlnk分配一个连续的内存缓冲区,允许在PS和PL之间有效地传输数据。 Python或其他代码运行在PS端的Linux上,可以直接访问内存缓冲区。
当PYNQ运行Linux时,缓冲区将存在于Linux虚拟内存中。 Zynq AXI Slave端口允许overlay中的 AXI-master IP访问物理内存。 Xlnk还可以提供指向缓冲区的物理内存指针,该指针可以发送到overlay中的IP。 物理地址存储在分配的内存缓冲区实例的physical_address属性中。 然后,overlay中的IP可以使用物理地址访问同一缓冲区。
有关使用Xlnk的更多信息,请参阅Xlnk部分。
DMA
AXI stream接口通常用于高性能流应用。 AXI stream可以通过DMA与Zynq AXI HP端口一起使用。
pynq DMA类支持AXI直接内存访问IP。 这允许数据从DRAM读取,并发送到AXI stream,或从stream接收并写入DRAM。
有关使用DMA的更多信息,请参见DMA部分。
Interrupt
有一些专用中断与python环境中的asyncio事件相关联。 要集成到PYNQ框架中,必须将专用中断连接到AXI中断控制器,该控制器又连接到PS的第一个中断线。 如果需要超过32个中断,则可以级联AXI中断控制器。 对于不受PYNQ直接控制的IP,例如SDSoC加速器,这种安排使其他中断空闲。
中断由Interrupt类管理,实现基于asyncio构建,asyncio是Python标准库的一部分。
-
接口
+关注
关注
33文章
8745浏览量
152161 -
Xilinx
+关注
关注
71文章
2172浏览量
122411
原文标题:泵的基础知识与选型原则、经验
文章出处:【微信号:gongkongworld,微信公众号:工控资料窝】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
PYNQ项目——Pynq开发板启动实验
PYNQ案例(一):ZYNQ的PL与PS开发
如何为自己的ZYNQ板卡创建Pynq镜像

【PYNQ-Z2申请】基于PYNQ的神经网络自动驾驶小车
【PYNQ-Z2试用体验】玩转PYNQ系列:一、板卡简介与资源整理
【PYNQ-Z2试用体验】PYNQ-Z2开箱上手以及基本的功能验证(年底比较忙,今天才传的报告)
【PYNQ-Z2试用体验】玩转PYNQ系列:三、PYNQ数字图像处理之图像采集
请问USB接口的四个引脚到底分别是什么?
PYNQ开源方案
【KV260视觉入门套件试用体验】Zynq超强辅助-PYNQ配置,并使用XVC(Xilinx Virtual Cable)调试FPGA逻辑
有四个驱动器/四个接收器的多协议收发器LTC®1544

如何运行UltraScale PCI Express解决方案的四个主要数据接口
示波器经常说“四个部分”是哪四个部分?

评论