FPGA基础知识(十)DMA与AXI4总线

背景:FPGA的系统搭建中必定出现DMA和AXI总线的相关内容。

目的:介绍DMA与AXI总线的相关知识,以便理解与应用。

相关内容:

FPGA基础知识(一)UG998中FPGA相关的硬件知识与基本结构

FPGA基础知识(四)UG902 RTL仿真与输出

FPGA基础知识(六)UG586 Mermoy Interface Solutions内存接口的生成与使用

FPGA基础知识(七)片上单片机

vivado HLS硬件化指令(一)HLS针对循环的硬件优化

vivado HLS硬件化指令(二)HLS针对数组的硬件优化

vivado HLS硬件化指令(三)HLS增大运算吞吐量的硬件优化

 

目录

一、三种类型的AXI总线

 二、不同类型的DMA

2.1 GPIO

2.2 PL general purpose AXI

2.3 GP AXI utlilizing PS DMAC

 2.4 High performance w/DMA

 2.5 ACP w/DMA

2.6 几种DMA的总结

三、DMA基础知识

3.1 DMAC为DMA控制器,

3.2 PL based DMA

3.3 PS与PL之间的AXI HP接口

四、AXI总线知识

(一)AXI总线是什么?

    (二)AXI4的优势

    (三)AXI4的工作模式

    1.握手机制

2.axi的工作模式:

    A.读操作:

    B.写操作:

    3.axis工作模式


一、三种类型的AXI总线

 二、不同类型的DMA

2.1 GPIO

2.2 PL general purpose AXI

2.3 GP AXI utlilizing PS DMAC

 2.4 High performance w/DMA

 2.5 ACP w/DMA

2.6 几种DMA的总结

 

三、DMA基础知识

搭建系统中有一个重要的因素是DMA:(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。

 

  • AXI4:主要面向高性能地址映射通信的需求;
  • AXI4-Lite:是一个简单地吞吐量地址映射性通信总线;
  • AXI4-Stream:面向高速流数据传输;
  • AXI4总线分为主、从两端,两者间可以连续的进行通信。
  • GP master interface与GP slave interface之间有什么区别?主与从的区别,一个发起一个接收。

3.1 DMAC为DMA控制器,

3.2 PL based DMA

可以将数据传到DDR和OCM

3.3 PS与PL之间的AXI HP接口

可以直接将data传输到memory

四、AXI总线知识

以下内容转自:https://www.cnblogs.com/lifan3a/articles/4682464.html

(一)AXI总线是什么?

    AXI是ARM 1996年提出的微控制器总线家族AMBA中的一部分。AXI的第一个版本出现在AMBA3.0,发布于2003年。当前的最新的版本发布于2010年。

    AXI4:主要面向高性能地址映射通信的需求;

    AXI4-Lite:是一个简单地吞吐量地址映射性通信总线;

    AXI4-Stream:面向高速流数据传输;

    AXI4总线分为主、从两端,两者间可以连续的进行通信。

    ISE从12.3版本,Virtex6,Spartan6芯片开始对AXI4总线提供支持,并且随着Xilinx与ARM的合作面逐渐展开而得到大力推广。

    (二)AXI4的优势

    1.通过统一的AXI接口,开发者为开发ip core只需要学习一种协议即可;

    2.AXI4是面向地址映射的接口,允许最大256轮的数据突发传输;

    3.AXI4-Lite是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元;

    4.AXI4-Stream去掉了地址项,允许无限制的数据突发传输规模;

    NetFPGA10G采用了AXI4系列总线架构,而Xilinx从Virtex6,Spartan6才开始支持AXI4。因此斯坦福的开发人员对在Virtex6上编译出的带有AXI4总线的ngc文件进行了修改加载到NetFPGA10G的ipcore中,使之骗过ISE,继续网表映射流程。

    NetFPGA10G主要使用了其中的轻量级AXI4-lite(后文简写为axi)以及AXI4-stream(后文简写为axis)两者。前者用于CPU与ip core之间的通信;后者用于各ip core之间进行高速数据传输。如果将整个构架分为控制层面与数据层面,则axi主要负责控制层面,axis主要负责数据层面。

     本文后续内容主要对轻量级axi以及axis总线进行介绍,如需AXI4整体总线通信模式,请参看ARM AXI4 Specification,  Xilinx UG761 AXI Reference Guide.

    (三)AXI4的工作模式

    1.握手机制

     AXI4所采用的是一种READY,VALID握手通信机制,即主从模块进行数据通信前,新根据操作对各所用到的数据、地址通道进行握手。主要操作包括传输发送者A等到传输接受者B的READY信号后,A将数据与VALID信号同时发送给B。如下图所示:

2.axi的工作模式:

    axi总线分为五个通道:

  • 读地址通道,包含ARVALID, ARADDR, ARREADY信号;
  • 写地址通道,包含AWVALID,AWADDR, AWREADY信号;
  • 读数据通道,包含RVALID, RDATA, RREADY, RRESP信号;
  • 写数据通道,包含WVALID, WDATA,WSTRB, WREADY信号;
  • 写应答通道,包含BVALID, BRESP, BREADY信号;
  • 系统通道,包含:ACLK,ARESETN信号;

    其中ACLK为axi总线时钟,ARESETN是axi总线复位信号,低电平有效;读写数据与读写地址类信号宽度都为32bit;READY与VALID是对应的通道握手信号;WSTRB信号为1的bit对应WDATA有效数据字节,WSTRB宽度是32bit/8=4bit;BRESP与RRESP分别为写回应信号,读回应信号,宽度都为2bit,‘h0代表成功,其他为错误。

    A.读操作:

    顺序为主与从进行读地址通道握手并传输地址内容,然后在读数据通道握手并传输所读内容以及读取操作的回应,时钟上升沿有效。如图所示:

 

    B.写操作:

    顺序为主与从进行写地址通道握手并传输地址内容,然后在写数据通道握手并传输所读内容,最后再写回应通道握手,并传输写回应数据,时钟上升沿有效。如图所示:

    3.axis工作模式

    axis分为:

  • tready信号:从告诉主做好传输准备;
  • tvalid信号:主告诉从数据传输有效;
  • tlast信号:主告诉从该次传输为突发传输结尾;
  • tdata信号:数据,可选宽度32,64,128,256bit
  • tstrb信号:为1的bit为对应tdata有效字节,宽度为tdata/8
  • tuser信号  :用户定义信号,宽度为128bit
  • aclk信号:总线时钟,上升沿有效;
  • aresetn信号:总线复位,低电平有效;

    通信时序如图所示:

    axi与axis是AXI4总线中通信复杂度较低的两条总线,最大开发难度存在于axi的控制平面向axis的数据平面下发参数时,由于axi与axis时钟频率不同而产生的跨时钟域数据传输问题。

AXI-Lite具有轻量级,结构简单的特点,适合小批量数据、简单控制场合。不支持批量传输,读写时一次只能读写一个字(32bit)。

AXI4接口和AXI-Lite差不多,只是增加了一项功能就是批量传输,可以连续对一片地址进行一次性读写。

相关论文

深鉴科技FPGA2017最佳论文ESE Efficient speech recognition engine with sparse LSTM on FPGA论文详解

PipeCNN论文详解:用OpenCL实现FPGA上的大型卷积网络加速

韩松EIE:Efficient Inference Engine on Compressed Deep Neural Network论文详解

韩松博士毕业论文Efficient methods and hardware for deep learning论文详解

   FPGA基础知识

FPGA基础知识(一)UG998相关硬件知识

FPGA基础知识(二)HLS相关知识

FPGA基础知识(三)UG902 接口综合

FPGA基础知识(四)UG902 RTL simulation and export

FPGA基础知识(五)系统集成知识

FPGA基础知识(六)UG586 Mermoy Interface Solutions

FPGA基础知识(七)片上单片机

FPGA基础知识(八)vivado设计流程中的知识

FPGA基础知识(九)SDK相关知识

FPGA基础知识(十)DMA与AXI4总线

尝试用IPcore调用DDR3及相关知识

   vivado HLS硬件化指令

vivado HLS硬件化指令(一)HLS针对循环的硬件优化

vivado HLS硬件化指令(二)HLS针对数组的硬件优化

vivado HLS硬件化指令(三)HLS增大运算吞吐量的硬件优化

vivado HLS硬件化指令(四)卷积相关的指令优化

卷积操作的HLS优化

   FPGA实践教程

FPGA实践教程(一)用HLS将c程序生成IPcore

FPGA实践教程(二)连接片上ARM

FPGA实践教程(三)系统搭建与烧录

FPGA实践教程(四)片上ARM运行程序

FPGA实践教程(五)PS用MIG调用DDR

FPGA实践教程(六)AXI-Lite实现PS与PL通信

FPGA实践教程(八)PS与PL共享DDR

FPGA vivado系统集成操作

DMA在linux下PS端c语言相关内容

数据流输入输出IPcore时c语言相关内容

调通DMA系统集成中遇到的问题

ARM用MIG调用DDR3的c程序解析

MIZ7035上的AXI接口的MIG测试

MIZ7035交叉编译单片机程序运行

  • 35
    点赞
  • 217
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祥瑞Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值