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 分钟前
Java学习---Arrays类
java·开发语言·学习
代码游侠13 分钟前
学习笔记——GDB调试工具
linux·开发语言·笔记·学习
行走的夜16 分钟前
高质量测试用例设计:金字塔模型+系统化工作流+方法体系+改进机制
学习·测试用例
思成不止于此19 分钟前
MySQL 约束详解:保证数据完整性的核心机制
数据库·笔记·学习·mysql
九千七52620 分钟前
sklearn学习(5)线性回归和逻辑回归
人工智能·学习·机器学习·逻辑回归·线性回归·sklearn
职业码农NO.121 分钟前
架构模型:企业架构、技术架构、C4模型、TOGAF、互联网模型优缺点分析与学习
学习·架构·系统架构·软件工程
走在路上的菜鸟24 分钟前
Android学Dart学习笔记第九节 Patterns
android·笔记·学习·flutter
嵌入式-老费37 分钟前
ISP基本原理和实现(代码流程)
fpga开发·接口隔离原则
代码游侠1 小时前
学习笔记——栈
开发语言·数据结构·笔记·学习·算法
qq_7391753691 小时前
开源基于STC8的智能浇花与温湿度报警系统
c语言·stm32·单片机·嵌入式硬件