xilinx PYNQ PS与PL的接口说明

news/2024/12/22 18:55:45/

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标准库的一部分。

有关使用中断类的更多信息,请参见“中断”部分。

有关asyncio的更多详细信息,如何与PYNQ一起使用,请参阅PYNQ和Asyncio部分。


http://www.ppmy.cn/news/314961.html

相关文章

ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互 前言PS端AXI接口AXI4LITE slave模块的设计后记 前言 前面我们讲到使用AXI4LITE来作为总线接口来实现PS和PL的交互。同时我…

ZYNQ 应用笔记(2)PS/PL接口

相比传统的SOC 芯片,Xilinx 公司ZYNQ 的最大优势在于,除了内嵌的硬核ARM 处理器自带的IO接口之外,能够利用FPGA 自由地构建符合应用需求的IO外设和基于verilog/HDL的算法。这给嵌入式系统设计带来的巨大的灵活性。 ZYNQ 分成所谓的Processing…

面向对象——接口

接口:接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为,可以把它看成是实现一组类的模板。接口可有方法、属性、事件和索引器或这4种成员类型的任何组合构成,但不能包含字段。 类和结构可以像类继承基类一样…

PS4 eye camera v2 ROS测试

For the I-RC ps4 eye camera 是一款性价比很高的双目摄像头,之前已经有人设计完成了一代产品的ROS驱动程序,代码见GitHub[1],今天要测试的是去年发布的新款摄像头. 一代摄像头二代摄像头 ps4 camera 接口是USB3.0 的一个衍生版本,需要进…

PS2接口协议及代码分析

一.电气特性 1 DATA Key Data 2 n/c Not connected 3 GND Gnd 4 VCC Power , 5 VDC 5 CLK Clock 6 n/c Not connected 二.数据格式 1个起始位 总是逻辑0 8个数据位 (LSB)低位在前 1个奇偶校验位 奇校验 1个停止位 总…

jmeter接口测试

jmeter进行http接口测试的主要步骤(1.添加线程组 2.添加http请求 3.在http请求中写入接口的URL,路径,请求方式,参数 4.添加查看结果树 5.调用接口,查看返回值) 针对接口添加header在如下途径添加&#xff…

计算机ps2定义,PS2通信协议说明及接口定义(键盘及鼠标).doc

PS2键盘与鼠标的接口定义 针脚定义: 原理 PS/2鼠标接口采用一种双向同步串行协议?即每在时钟线上发一个脉冲,就在数据线上发送一位数据?在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送?方法是把时钟线一直拉低,鼠标就不能产生时钟信号和发送数据?在两…

交通物流模型 | Python实现基于张量分解的交通流量时空模式挖掘(出租车车载GPS数据、公交卡刷卡数据、POI的分布数据)

文章目录 效果一览文章概述研究内容源码设计参考资料效果一览 文章概述 一般出行行程通常都由某种明确目的驱使,例如上班、购物或娱乐,出行的起始区域因其承担功能的不同,通常能够反映出用户的出行目的,于此同时,从宏观来看,区域之间的交通流量在一天内的变化规律也能够反…