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

相关推荐
华清远见成都中心2 小时前
分享一个驱动开发工程师学习路线图
驱动开发·学习
im_AMBER2 小时前
React 18
前端·javascript·笔记·学习·react.js·前端框架
ACP广源盛139246256734 小时前
GSV1016/ACP#HDMI2.0 HDCP1.4 发射器(TTL/LVDS 输入 + 音频插入)技术解析
单片机·嵌入式硬件·音视频
d111111111d4 小时前
STM32中为什么会有APB1和APB2两个外设有什么区别
笔记·stm32·单片机·嵌入式硬件·学习
ACP广源盛139246256735 小时前
GSV6505F---1 In to 4 Out HDMI 2.1 Splitter with Embedded MCU
单片机·嵌入式硬件·音视频
ThreeYear_s5 小时前
【FPGA+DSP系列】——CCS联合proteus仿真DSP工程,以TMS320f28027芯片为例,LED闪烁仿真。
单片机·fpga开发·proteus
2501_925317135 小时前
【底层奥秘与性能艺术】让 RTOS 在 48 MHz MCU 上跑出 0.5 µs 上下文切换——一场从零开始的嵌入式“时间革命”
单片机·嵌入式硬件·#嵌入式·#嵌入式开发·#rtos
化作星辰5 小时前
深度学习_神经网络中最常用的学习率优化算法
深度学习·神经网络·学习
71-35 小时前
C语言练习题——判断水仙花数(0-100000)
c语言·笔记·学习