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协议
相关推荐
jrlong13 小时前
DataWhale大模型基础与量化微调task5学习笔记(第 3 章:大模型训练与量化_Deepspeed 框架介绍)
笔记·学习
wdfk_prog13 小时前
[Linux]学习笔记系列 -- [drivers][clk]clk
linux·笔记·学习
ouliten14 小时前
C++笔记:现代C++封装内存池
笔记
m0_7360348514 小时前
1.27笔记
linux·服务器·笔记
日更嵌入式的打工仔14 小时前
(实用向)中断服务程序(ISR)的优化方向
笔记·单片机
离离茶15 小时前
【笔记1-11】Qt 关闭QToolbar的拓展菜单
开发语言·笔记·qt
了一梨16 小时前
SQLite3学习笔记6:UPDATE(改)+ DELETE(删)数据(C API)
笔记·学习·sqlite
霸王蟹16 小时前
Uni-app 跨端开发框架Unibest快速体验
前端·笔记·微信·uni-app·unibest
mango_mangojuice16 小时前
C++ 学习笔记(string类)
开发语言·c++·笔记·学习
hetao173383716 小时前
2026-01-27~28 hetao1733837 的刷题记录
c++·笔记·算法