**alon_MM DMA Interface for PCIe使用详解
在所从事的项目中需要用到PCIE和DMA,经过再三研究,反复查看相关资料,终于弄懂了**alon_MM DMA Interface for PCIe的使用方法。
PCIE在fpga和上位机之间起着中间桥梁的作用,具有双向传输数据的功能。以下是**alon_MM DMA Interface for PCIe结构图,后面再分别详细介绍。
该ip可以使用Internal Descriptor Controller和External Descriptor Controller,下文所做介绍以Internal Descriptor Controller为基础。
接口介绍:
Read DMA **alon-MM Master Port:主要完成两方面的工作:1、该模块发送读请求从host memory中取descriptor table,并将descriptor table通过**alon-MM Master 写入Descriptor Controller FIFO
2、从source address读取诗句之后,将数据写入**alon-MM 地址映射的外部DDR中。
Write DMA **alon-MM Master Port:该模块向**alon-MM 地址映射的外部DDR发送读请求,将读取的数据写入系统内存中。
RX Master Module:将从pcie接收到的读和写信号发送给**alon-MM ,request给连接在internnect的component.当Descriptor Controller在内部建立时,BAR0在内部使用,不能用作外部使用。上位机通过RXM给Descriptor Controller的寄存器进行编程,包括descriptor table的地址和大小。
descriptor controller 指示Read Data Mover 取descriptor table,并存在fifo中,controller取table并指导DMA在**alon-MM 和 PCIe之间传输数据。
TX Sl**e Module:将**alon-MM Master的读和写请求发送给PCI Express TLPs;当DMA完成时,descriptor controller利用此接口向上位机中的descriptor data写DMA status,并发送MSIinterrupts.
DMA Descriptor Controller Registers
上位机通过bar0来配置DMA Descriptor Controller Registers,read controller的地址偏置为0x0000,write controller的地址偏置为0x1000
DMA Descriptor Controller Registers for Read DMAs
RD_RC_LOW_SRC_ADDR = 0x0000 (The base address for the read descriptor table in the Root Port
RD_RC_HIGH_SRC_ADDR = 0x0004
WR_TABLE_SIZE=0x0014
该寄存器表示一共有多少个descriptor table
WR_CONTROL =0x0018
该寄存器[0]表示done ,当dma完成时,向descriptor table中的status写done bit。
DMA Descriptor Controller Registers for Write DMAs
0x00,0x04:源地址
0x08,0x0c:目的地址
0x10:[24:18],对应descriptor的ID号,[17:0],DMA发送的数据量。
完成一次DMA操作的步骤
1、计算需要分配的内存大小:描述一个descriptor 的status需要的内存为32bit,即4bytes,描述一个descriptor table需要的内存32bytes。一共最多有128个descriptor,存放status需要的内存为512bytes,存放descriptor table 需要32bytes*128 (针对 read DMA,write DMA同样),分配内存起始地址base_address。
2、给存放数据分配内存,
3、descriptor table存在descriptor status之后,存放第一个descriptor table的起始地址为base_address+0x200
4、创建descriptor table,按照Descriptor Table Format的格式
5、通过编程配置DMA Descriptor Controller register,配置status and descriptor table地址的寄存器,0x0,0x4
6、配置存放status and descriptor table的on_chip fifo address,对应的是**alon-MM address,internal on-chip FIFO是Descriptor Controller的一部分,就是RX Master看到的大小。
7、编程配置RD_DMA_LAST_PTR register,用来触发DMA。
如果只需要得到所有的descriptor 都完成后得到done的信号,只需要写最后一个descriptor id给0x10;
如果每一个descriptor完成后都返回done,需要对每一个descriptor都配置0x10。
8、软件可以监测到done信号。
转载自:http://www.eefocus.com/zh880813/blog/16-06/385376_89d9c.html
**alon_MM DMA Interface for PCIe使用详解相关推荐
- PCIe TLP详解
PCIe TLP详解 事务层数据包格式: TLP前缀 TLP包头 数据负载 TLP摘要 0, 1, 2,3,- H+1, H+2,- J, J+1,J+2,- K,K+1,K+2,- 前缀,这是一个可 ...
- linux 串口 dma,STM32 USART串口DMA 接收和发送流程详解
1.dma发送流程 1.配置DMA发送中断 - NVIC_Init 2.配置串口中断 - NVIC_Init 3.GPIO配置 - GPIO_Init 4.DMA发送配置 -DMA_Init DMA ...
- PCIE传输速率详解、Gbps和GB的区分
PCIE通道数 1.PCIe规范,它又称为PCI-Express规范 2.PCIe吞吐量(可用带宽)计算方法:吞吐量 = 传输速率 * 编码方案,现行的PCIe 3.0规范,信号速率为8GT/s,编 ...
- STM32 H7系列ADC DMA模式过采样设置详解 cubeMX
最近做项目需要用H743的ADC采样,发现和M3及M4的差别还是蛮多的,MPU的配置对DMA读取数据的影响.过采样机制等,其中H7的硬件过采样是个很实用的东西,硬汉大佬也进行了测试: STM32H7的 ...
- PCIE接口详解及应用模式
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔 ...
- golang 面试题(十三)interface内部结构和nil详解
1.以下代码打印出来什么内容,说出为什么. package mainimport ("fmt" )type People interface {Show() }type Stude ...
- [SSD科普1] PCIE接口详解及应用模式
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔 ...
- RK3568平台开发系列讲解(调试篇)PCIe调试详解
- DMA RDMA 技术详解
DMA 技术是一个 直接内存访问技术. 在传统的linux 内存读写操作都必须经过cpu,读写寻址都是有cpu 完成的, 现在有一中技术 让数据读写完全由网卡自己完成. 这样就必须有硬件支持,及系统必 ...
- 串行总线的详解XAUI/XLAUI SFP+ PCIE SATA QPI
主要介绍一下工作常用到的串行总线: FPGA DMA控制器: DMA:direct memory access;包括一条地址总线,一条控制总线,和控制寄存器. 1.XAUI和xlaui https:/ ...
最新文章
- Nat. Commun. | AI语言工具揭示分子运动
- 程序员买买买,纸书半价,电子书55折,抢券叠加使用更划算
- 19倍超音速“大炮”轰出可控核聚变!成本仅为传统方法0.1%,腾讯已投资
- 2018牛客网暑期ACM多校训练营第二场 D - money(贪心)
- 全球及中国太阳能光热发电市场重点项目规划及发展格局展望报告2021-2027年
- hadoop yarn 获取日志_在 YARN 中简化用户日志的管理和使用
- Xtreme ToolkitPro 初使用
- 网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?
- Lombok开发指南
- flutter向上动画弹出菜单效果
- SilverLight:基础控件使用(5)-TreeView控件-基本使用
- linux显卡驱动卸载和安装,Linux下Nvidia显卡驱动卸载和卸载后的问题
- python输出文档内容_python输出文件
- 【 Logistic Regression 】林轩田机器学习基石
- IAST 初探:博采众长、精准定位、DevOps友好
- 抓取B站所有用户信息(11/29更新数据)
- java-使用keytool信任自签证书,需要重启
- mixamo进不去_酷站推荐!3D人物动画工具
- 爬虫技术原来可以做这么多牛逼哄哄的事情!
- maya正交视图锁定与解锁