FPGA--zynq学习 PS与PL交互(二) HP接口

该工程实现了PL通过HP接口(8个字节)下使用AXI协议往DDR中写数据。PS读取处理 。

这种就是不断地读那块资源。CPU资源浪费下节是DMA

当前简单的传输1.PS并不知道什么时候传输数据,需要PL给一个中断,然后PS读取中断以后,在进行读取。2PL端口要告诉PS从哪个地址写入的数据,都需要PL告诉PS 端口

GP接口是PS和PL 少量数据的接口。

但是要大数据交互需要用到高性能总线 HP接口 把数据送给DDR

还有一种速度较快的ACP接口 外部数据通过ACP接口通过CACHE送给CPU进行操作。 但是不好操作DMA,一般用HP接口。

1设置HP接口

设置时钟和复位

可以看到HP接口是axifulll协议

存入多少数据等等呢个

创建一个AXI主机接口添加到工程

MASTER的Drive 需要互联模块。在添加复位模块

连接完成后

分配地址。

在rtl中的PARAMETER可以在 ps中进行设计

根据HP接口的位宽 设置自己写的模块

2.启动SDK

建立工程

上一次工程是读BRAM的内存 DDR也是一个内存 是一样的逻辑

将头文件添加进去

这里需要禁用cache 不知道什么时候刷新cache所以禁用 ,如果刷新了但是PL的DDR中没有数据,就会取数据错误。

在读数据的时候HP接口是64位的数据,所以用到IN64函数 ,送入的地址,可以在ps端口进行看到分配的内存,还可以,在bBsP 参数中找到参数

AXIHP从机模块的基址

因为一次写入的是64个bit 也就是8个字节 (这里需要看下PL测写入的是一次地址是8个地址)下一次取的地址就需要加8

PL(可编程逻辑)侧完成一次64字节的数据传输后,下一次写入的起始地址通常是当前基地址加上64(即十六进制的0x40)

为了让你快速把握全局,下表详细列出了在不同传输场景下,下一次写入地址的计算方式:

传输场景 本次写入起始地址 本次写入数据量 下一次写入起始地址 核心原理说明
单次突发(Burst)传输 0x0000 64字节 0x0040 (0x0000 + 64) AXI协议基于字节寻址。每次突发传输结束后,主设备(PL)需要重新发起一次新的传输,并手动设置新的起始地址
连续突发传输(自动递增) 0x0000 64字节 由AXI控制器自动计算 在配置为突发模式时,AXI IP核(如Datamover)的内部逻辑会在一次事务中自动根据突发长度(Burst Length)递增地址,但整个突发事务本身只使用一个起始地址。事务结束后,若需再次传输,地址仍需手动设置为0x0040

AXI 设置一次突发的多少个字节HP接口是8个字节 直接送到DDR是32个字节

数组中的数据

3.开发经验

在axi传输中 PS一侧的从机HP接口,如果主机给Valid拉高但是从机的ready没有反应这时候可能是在字节 突发的等等不对。

相关推荐
卿卿的产品经理日记7 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
keyipatience7 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
_Ningye8 小时前
STM32 — 11.5 硬件SPI读写W25Q64
stm32·单片机·嵌入式硬件
lazy H8 小时前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络
inrichtt8 小时前
第九课时:STM32 SPI实战:按键消抖与FLASH断电保护
stm32·单片机·嵌入式硬件
我命由我123458 小时前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
优信电子9 小时前
STM32 驱动 SHT35 温湿度传感器:从 I²C 通信到 CRC 校验的完整实战
单片机·嵌入式
kkkkkkkkkk_Z10 小时前
新手自学嵌入式 | 学习日记:I2C总线协议、时序分析、读写流程与代码实现
学习
1560820721910 小时前
关于AGC性能测试
fpga开发
尼喃10 小时前
两节两串锂电池保护板原理图+充电电路二合一电路图
嵌入式硬件