没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
DMA/Bridge Subsystem for PCI Express v4.1 读书笔记 (中文) XDMA 参考文档:PG195, https://github.com/Xilinx/dma_ip_drivers, https://support.xilinx.com/s/article/65443?language=en_US XDMA IP核的中文学习笔记,包括文档全部内容。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![torrent](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![caj](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/release/download_crawler_static/84369369/bg1.jpg)
XDMA DMA/Bridge Subsystem for PCI Express v4.1
DMA/Bridge Subsystem for PCI Express v4.1
一、XDMA概述
1. XDMA构成
2. 描述符
3. 直接访问用户逻辑(非DMA)
4. 使用注意事项
5. MSI-X模式用户中断
二、XDMA subsystem 可配置功能
1. BARs配置
2. AXI4-Lite Master
3. AXI4-Lite Slave接口
三、中断概述
1. Legacy Interrupts
2. MSI和MSI-X中断
四、DMA操作
1. AXI MM接口的初始化setup流程:
2. AXI-MM接口的H2C传输流程
3. AXI-MM接口的C2H传输流程
4. Descriptor详解
5. 位宽和地址对齐
6. Length Granularity
7. 奇偶校验
五、端口定义
1. XDMA全局端口
2. PCIe接口
3. H2C AXI4-ST接口
4. C2H AXI4-ST接口
5. AXI4-MM读地址接口
6. AXI4-MM读数据接口
7. AXI4-MM写地址接口
8. AXI4-MM写数据接口
9. AXI4-MM写响应接口
10. AXI4-MM Master Bypass 接口
11. 配置AXI4-Lite Write Master 接口
12. 配置AXI4-Lite Read Master 接口
13. 配置AXI4-Lite Write Slaver 接口
13. 配置AXI4-Lite Read Slaver 接口
14. 中断接口
15. 通道channel的状态接口
16. 外部配置接口
17. 配置管理接口
18. Descriptor Bypass模式
六、寄存器空间
1. PCIe to DMA Address Format
2. H2C Channel Registers (target == 0x0)
3. C2H Channel Registers (target == 0x1)
4. IRQ Block Registers (target == 0x2)
5. Config Block Registers (0x3)
6. H2C SGDMA Registers (0x4)
7. C2H SGDMA Registers (0x5)
8. SGDMA Common Registers (0x6)
9. MSI-X Vector Table and PBA (0x8)
七、时钟和复位信号设计注意事项
1. 时钟
2. 复位
八、设计指南
1. 配置和生成XDMA
2. 约束设计
3. 仿真
a. AXI-MM模式
b. AXI-ST模式
九、Example设计
1. AXI4-MM默认的Example设计
2. AXI4-ST默认的Example设计
3. VIVADO Example设计流程
4. 自动生成Example设计
十、Test Bench
1. AXI4-MM接口仿真流程
2. AXI4-ST接口仿真流程
3. 仿真Update
![](https://csdnimg.cn/release/download_crawler_static/84369369/bg2.jpg)
1.
2.
1.
2.
4. Test case任务
十一、应用软件开发
1. Linux 设备驱动
2. 下载
3. 中断处理
4. 驱动Example H2C的流程
5. 驱动Example C2H的流程
DMA/Bridge Subsystem for PCI Express v4.1
XDMA IP核即DMA/Bridge Subsystem for PCI Express,其可以配置为高性能的DMA或者PCI Express和AXI memory spaces之间的PCI-Express桥。
作为DMA,IP可配置为AXI接口或者AXI-STREAM接口。其中AXI接口为单一的Master接口,而AXI-ST接口每个channel为单独的接口,AXI-ST
接口可用来直接连接RTL逻辑模块。两种接口都能够通过提供的字符驱动作为PCIe地址空间和AXI地址空间之间的高性能的数据DMA。除了基
本的DMA功能,IP还提供了多达4通道的upstream和downstream channels;此外还提供了bypass DMA engine (Host DMA Bypass)功能和
可选的描述符可从FPGA bypass管理描述符,可以获得最高的性能和最低的延时。
作为PCIe和AXI Memory桥设备(该功能只支持UltraScale+设备),可接受或发送PCIe包,并转换为AXI数据流。该功能提供了理想的AXI外
设与PCIe之间交互的方式。作为PCIE桥,其可既作为EndPint设备又可作为Root设备。对于非UltraScale+设备,有专门的IP核用来实现
PCIE桥。
一、XDMA概述
1. XDMA构成
PCIe RX --> PCIE IP --> RQ/RC (Requester Request/Requester Completion) --> H2C channel --> AXI Write接口(MM或ST接口) --
> User Logic
User Logic --> AXI Read接口(MM或ST接口) --> C2H channel --> RQ/RC --> PCIE IP --> PCIE TX
User Logic --> IRQ Module --> PCIE IP
Cfg Master (AXI4-Lite Master and Slaver) <--> Bridge <--> CQ/CC (Completer Request/Completer Completion) <--> PCIE IP
Host DMA Bypass (AXI MM Master) --> User Logic
2. 描述符
XDMA通过操作描述符来实现主机内存和XDMA之间的数据搬运。
其包括如下的信息:
源
目标
传输的数据量
描述符完成和错误时都会产生中断。
3. 直接访问用户逻辑(非DMA)
主机可以都过如下的两种方式直接访问用户逻辑,而并不需通过DMA数据搬运的方式。
Cfg Master端口,该端口为AXI4-Lite Master配置端口,为固定的32bit的端口,适用于对访问速率没有较高要求的用户的配置和状态寄存
器的访问。
AXI MM Master CQ Bypass端口,该端口的数据位宽与DMA channel的数据位宽,适用于高带宽的用户memory的访问,如peer-to-peer传
输。
4. 使用注意事项
所有配置不支持Example Design
只支持INCR burst类型(地址递增),其他的类型将导致Slave Illegal Burst中断。
5. MSI-X模式用户中断
用户需要在IRQ Block User Vector Number 寄存器中为每一个用户中断编程不同的矢量中断号来为所有的用户中断产生acks。所有的中断矢量号公
用一个acks信号,有且只有1个acks信号。
二、XDMA subsystem 可配置功能
XDMA内部可被配置为执行高达8路的独立的物理DMA引擎(4路H2C、4路C2H)。这些DMA引擎可以映射到独立的AXI4-ST接口,或者共享AXI4-MM接口。
![](https://csdnimg.cn/release/download_crawler_static/84369369/bg3.jpg)
1.
2.
3.
4.
5.
6.
7.
8.
9.
XDMA还支持主机到用户逻辑的访问,通过写请求到‘PCIe to DMA bypass Base Address Register (BAR)’,可以直接通过M_AXI_BYPASS接口将写
请求数据直接传递到用户逻辑。
此外对于速率要求不高的用户配置和状态寄存器的访问可以通过,XDMA提供了32bit固定位宽的AXI4-Lite接口访问功能。
1. BARs配置
对于32bits的BARs
默认: BAR0-DMA
使能了PCIe to AXI Lite Master:BAR0-PCIe to AXI4-Lite Master; BAR1-DMA;BAR2-PCIe to DMA Bypass
PCIe to DMA Bypass enabled:BAR0-DMA;BAR1-PCIe to DMA Bypass
对于64bits的BARs
默认: BAR0-DMA
使能了PCIe to AXI Lite Master:BAR0-PCIe to AXI4-Lite Master; BAR2-DMA;BAR4-PCIe to DMA Bypass
PCIe to DMA Bypass enabled:BAR0-DMA;BAR2-PCIe to DMA Bypass
2. AXI4-Lite Master
主机使用这个接口来实现对用户逻辑的读写请求。
3. AXI4-Lite Slave接口
用户逻辑使用这个接口来实现对DMA内部寄存器的读写。
三、中断概述
IRQ模块可配置接受用户逻辑的中断线;每路DMA通道对应一路中断。支持MSI-X、MSI和普通中断。
1. Legacy Interrupts
如果使能legacy interrupt,则Asserting 一个或多个Bits的usr_irq_req信号,将产生legacy interrupt。
usr_irq_req一旦Asserted必须保持到usr_irq_ack Asserted,它表示产生了一个中断到PCIE Block,此时要求主机处理中断服务,并清中断。
通常用户逻辑需要知道主机什么时候运行了中断处理程序,一般通过用户逻辑中的一个可被主机读写清零的寄存器来实现。
usr_irq_req在deasserted后不能立刻重新reasserted,而必须等待到usr_irq_ack第二次Asserted后,才能够重新Asserted。这是因为主机存在一
定的中断响应时间,第二次usr_irq_ack Asserted表示主机从中断处理中退出,可以再次接受新的中断。
2. MSI和MSI-X中断
如果使能了MSI或MSI-X中断功能,则usr_irq_req信号的Asserted将产生MSI/MSI-X中断。
不同于legacy interrupt,usr_irq_req在deasserted后不须等待usr_irq_ack第二次Asserted后,可Reasserted。
四、DMA操作
1. AXI MM接口的初始化setup流程:
Load driver
设置H2C channel中断使能mask寄存器 0x0090用来产生对应bits上的中断。
设置C2H channel中断使能mask寄存器 0x1090用来产生对应bits上的中断。
设置‘IRQ Block Channel Interrupt Enable Mask’ register 0x2010 使能所有的H2C和C2H channle来产生中断。
2. AXI-MM接口的H2C传输流程
应用程序:初始化H2C传输(传输的长度,buffer location)。
驱动:创建descriptor。
驱动:写first descriptor base address到地址0x4080和0x4084;如果是多次传输的话,则写接下来的descriptor的数量到0x4088。
驱动:写H2C引擎控制寄存器地址0x0004,启动H2C传输。
FPGA:DMA初始化Descriptor fetch请求。
FPGA:DMA接受一个Descriptor。
FPGA:DMA发送读请求到Descriptor指定的源地址。
FPGA:DMA从主机接受数据。
剩余15页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/be7cc9c937fc4c78a24b6428673e40b2_weixin_43354598.jpg!1)
weixin_43354598
- 粉丝: 219
- 资源: 9
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)