XILINX PCIE DMA/Bridge Subsystem for PCI Express (XDMA)

Descriptor描述符

作用:指定DMA传输中,source,destination 和传输长度。
由driver产生且存储在host memory中,格式:

0x1c
(PG195-Page25)
The DMA has Bit_width * 512 deep FIFO to hold all descriptors in the descriptor engine. This
descriptor FIFO is shared with all selected channels.
例如:gen3x16 4H2C 4C2H, AXI data width 512bits,
fifo depth = 512bit512 = 64Byte512=32KBytes 8个DMA engine公用该FIFO。



在这里插入图片描述
RQ/RC interface
RQ:requester request
user app发送请求 -------------> pcie core
RC:requester completion
pcie core返回user app请求对应的完成包

CQ/CC interface
CQ:completer requester
pcie core发送请求 --------------> user app
CC:completer completion
user app 返回pcie core请求对应的完成包

独立的 DMA engines ,能够通过AXI4-S或者AXI4-MM映射到user app
AXI4-S直接传数据*(什么格式的数据???)*
AXI4-MM则需要addr+data

H2C:
生成对PCIe的读请求(我觉得是host 写请求);传输数据给USER APP;对USER APP发送写请求
主要负责 根据最大读请求大小和内部可用资源(Data FIFO) 来拆分读请求

C2H:
生成对PCIe的写请求(with data)(我觉得应该是Host发出读请求);

在这里插入图片描述
注意:H2C/C2H通道和host DMA Bypass通道的区别

Bridge接收来自host 的(读)请求,基于BAR,请求通过AXI4-Lite master或CQ Bypass端口定向到内部目标用户。User app通过AXI4-Lite master或CQ bypass的读数据/读地址通道返回求情响应。Bridge打包这些数据,生成一个(读)CplD TLP,通过CC通道发给PCIe接口。
example design中
xdma_0有一个CQ bypass接口(IP core生成时设置的bypass模式)与user_app模块相连。

注:AXI4-Lite Slave不能够访问PCIe core中的寄存器,只能用于host对DMA internal register读写

IRQ module:
接收来自user logic的可配置数量的中断线;
接收一根来自每个DMA channel的中断线;
产生PCIe中断,MSI-X MSI legacy

DMA操作:
the host sets up buffer space in system memory and creates descriptors that the DMA engine use to move the data.
C2H transfer 有一个AXI源地址和一个PCIe地址作为目的地地址;H2C则反之。

在这里插入图片描述
example中,初始化H2C时,在DATA_STORE中写入了160*8bits数据 DATA_STORE[1024]开始
弄明白EP中 user RAM的作用

  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值