127.XIlinx fpga端的pcie(XDMA)与驱动是如何交换数据的

特性 DMA 写(主机到FPGA) DMA 读(FPGA到主机) 直接寄存器访问
数据流向 Host Memory → FPGA FPGA → Host Memory CPU寄存器 ↔ FPGA寄存器
PCIe事务 Mem Read (主机是 Completer) Mem Write (主机是 Completer) Mem Read/Write
AXI事务 AXI4 Write AXI4 Read AXI4-Lite Read/Write
驱动主要动作 准备源(主机)和目标(FPGA)描述符 准备源(FPGA)和目标(主机)描述符 ioremap, iowrite/read
性能 高带宽 高带宽 低延迟,低带宽
用途 传输大量数据(如图像、数据流) 读取大量结果数据 配置、控制、状态查询
特性 模式一:与存储器交互 模式二:与用户逻辑交互
连接方式 XDMA <-> AXI Interconnect <-> DDR控制器 XDMA <-> 你的自定义逻辑(AXI Slave)
FPGA逻辑角色 被动/旁观者 主动参与者
DMA写过程 数据自动写入DDR,逻辑无需关心 逻辑必须通过AXI-Stream接口实时接收数据,并管理背压
DMA读过程 数据自动从DDR读出,逻辑无需关心 逻辑必须通过AXI-Stream接口实时提供数据
优点 简单,易于实现,适合大数据块缓存 延迟低,适合流式处理,数据可直接送入处理单元
缺点 延迟较高(需要经过DDR) 逻辑设计复杂,需要正确处理AXI协议
相关推荐
wdfk_prog19 分钟前
[Linux]学习笔记系列 -- [kernel][time]timer
linux·笔记·学习
迎风打盹儿29 分钟前
一种无需IP核的FPGA RAM初始化方法:基于源码定义与赋值实现
fpga开发·verilog·vivado·ram·rom
Wilber的技术分享43 分钟前
【大模型实战笔记 6】Prompt Engineering 提示词工程
人工智能·笔记·llm·prompt·大语言模型·提示词工程
JJJJ_iii1 小时前
【机器学习16】连续状态空间、深度Q网络DQN、经验回放、探索与利用
人工智能·笔记·python·机器学习·强化学习
CtrlZ学习录2 小时前
笔记:现代操作系统:原理与实现(8)
linux·笔记·架构·开源
不会聊天真君6472 小时前
Linux命令-文件\文件夹、用户\用户组(Linux基础笔记第二期)
linux·笔记
领创工作室2 小时前
Linux基础指令-Linux学习笔记(1)
linux·笔记·学习
清钟沁桐2 小时前
mlir 编译器学习笔记之五 -- 开发避坑
笔记·学习·mlir
崎岖Qiu2 小时前
【OS笔记25】:页的共享和保护、页式虚拟存储管理
笔记·操作系统·os
咫尺的梦想0072 小时前
vue笔记(第一天)
前端·vue.js·笔记