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没有反应这时候可能是在字节 突发的等等不对。

相关推荐
你怎么知道我是队长11 分钟前
经典蓝牙(Bluetooth Classic / BR/EDR)学习计划
学习
论迹复利17 分钟前
蓝牙 OTA 升级断连、升级失败底层链路问题定位
嵌入式硬件·安全·bt
极地野狼 音乐哔哔27 分钟前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
学习·microsoft
ALINX技术博客1 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统定制
linux·运维·fpga开发
振南的单片机世界1 小时前
3.5T静默分帧,CRC16校验:Modbus-RTU帧结构解析
arm开发·stm32·单片机·嵌入式硬件
LingzhiPi1 小时前
零知派ESP32--AS5600磁吸旋钮音量控制器
c++·单片机·嵌入式硬件
尼喃1 小时前
42V热拔插认证过压保护芯片:70V耐压+响应<1μs+可调OVP+SOT23-6
嵌入式硬件
0x3F(小茶)2 小时前
STM32 SPI的5种方向模式
c语言·stm32·单片机·嵌入式硬件
oier_Asad.Chen2 小时前
【洛谷题解/AcWing题解】洛谷P4011 孤岛营救问题/AcWing1131拯救大兵瑞恩
数据结构·笔记·学习·算法·动态规划·图论·宽度优先
xxwl5853 小时前
Git 完整学习笔记:从入门到团队协作
笔记·git·学习