使用VIVADO中的MIG控制DDR3(AXI接口)一——AXI简介

这篇具有很好参考价值的文章主要介绍了使用VIVADO中的MIG控制DDR3(AXI接口)一——AXI简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        最近,因为需要,学习了AXI总线协议和DDR3相关的知识,花了很多的时间去找各种相关的资料,深刻明白查资料的不容易,这里将所学到的东西做一个总结,同时给需要的人提供一些便利,有问题的欢迎一起讨论学习、共同进步。 

1 AXI总线

        首先来说一下有关AXI总线的知识,刚开始听到AXI的时候,因为不太了解的原因,觉得它非常复杂,其实我想告诉大家的是,等我们去了解它的时候,会发现它并没有想象中的那么复杂,和其他的总线很类似,只是用了不同的协议而已。

1.1  AXI总线的特点

   AXI总线支持高性能、高频率系统设计,具有以下一些特点:(1)它适合高带宽的低延时设计,满足大部分器件的接口,适合高初始延时的存储控制器,提供互联结构的灵活性与独立性,向下兼容AHB/APB这些已有的接口。(2)它具有分离的地址/控制、数据相位。(3)使用字节选通,支持非对齐的数据传输。(4)基于(BURST)突发传输,只需传输首地址。(5)读、写数据通道分离,能提供低功耗DMA。(6)支持多种寻址方式、支持乱序传输、易于添加寄存器级进行时序收敛,AXI的设计目标可以在高时钟频率下运行,并在延迟时间长的状况下仍可以达到最高数据吞吐率。AXI总线将读/写结果相分离,将数据写入和数据读出的信号相分离,可同时进行写入和读出操作。其实主要就是讲,AXI是一种高性能的总线,它的速度很快。突发传输是指,给出一个首地址之后,剩下的数据会依次传输,传输对应的地址是根据数据位宽来自增的,比如32bit的数据,突发长度为16(突发长度指的是每次突发传输所需传输数据的次数),那么它每次传输一个数据对应4BYTE,地址增加4,那么一次突发传输的地址就会增加64。

1.2 AXI总线的互联

         如图所示,AXI协议提供单一的接口定义,能用在下述三种接口之间:master/interconnect、slave/interconnect、master/slave。此外,它可以使用以下几种典型的系统拓扑架构:(1)共享地址与数据总线;(2)共享地址总线,多数据总线;(3)multilayer多层,多地址总线,多数据总线。

        一般情况下,我们对数据位宽要求比较高,而对地址总线的要求较低一些,因此可以采用共享地址总线、多数据总线的结构。

2 AXI的信号描述

2.1 全局信号

        全局信号有时钟信号和复位信号。

2.1.1 时钟(ACLK)

        每个AXI interface都要求有一个全局时钟信号ACLK,数据的传输都是基于这个ACLK来实现的。在主机和从机接口上,输入信号与输出信号之间不能存在组合逻辑路径。

2.1.2 复位(ARESETn)

        ARESETn信号是一个全局复位信号,低有效。对于它的描述是这样的:

        在复位期间:(1)主机接口必须将ARVALID,AWVALID,WVALID拉低;(2)从机接口必须将RVALID,BVALID拉低;(3)其他的信号可以是任意值。容易理解的是,VALID信号为高的最早时刻是ARESETn信号拉高后的第一个ACLK的上升沿。

2.2 其他信号

        AXI有五个通道,每个通道都有各自对应的信号,但是有很多平时都不太能用到,这里只说一些比较常用的信号。

2.2.1 写地址通道信号

        AWADDR是写地址,一次突发写的首地址。AWLEN是突发长度,突发写传输数据的个数。

AWSIZE是突发大小,每次突发传输的字节数。AWBURST是突发类型,有FIXED,INCR,WRAP三种类型。AWVALID表明此通道的地址控制信号有效。AWREADY表明从设备已经准备好接受地址和控制信息。

2.2.2 写数据通道信号

        WDATA是写主机向从机发送的数据。WSTRB是写数据有效的字节线,用来表明哪8bits数据是有效的,它类似于一个频闪信号,可以将写入数据的某些位设为无效。WVALID表示主机已经准备好向从机发送的数据。WREADY表明从机可以接收主机发送的数据。

2.2.3 写响应通道信号

        BRESP是写响应信号,表明写事务的状态,有OKAY,EXOKAY,SLVERR,DECERR四种状态。BVALID表示从机已经将写响应信号准备好。BREADY表示能够接收写响应信号。

2.2.4 读地址通道信号

        ARADDR是读地址,代表一次突发读的首地址。ARLEN是突发长度,突发读传输数据的个数。ARSIZE是突发大小,每次突发传输的字节数。ARBURST突发类型,分别是FIXED,INCR,WRAP。ARVALID表示此通道的地址控制信息有效。ARREADY表示从机已经准备好接收地址和控制信息。

2.2.5 读数据通道信号

        RDATA是主机从从机中读取的数据。RRESP是读响应信号,表示读事务的状态。RLAST是突发读传输的最后一个数据。RVALID表明从机已经将要读取的数据准备好。RREADY表明主机能够读取从机的数据。

3 AXI的五个通道

        前面提到过,AXI将读写通道分离,可以同时进行读/写操作。其实,如下图所示,AXI具有5个双向流量控制的通道(通过VALID/READY握手协议,传输双方都可以控制传输速率)。这里借用他人的图片进行说明。

使用VIVADO中的MIG控制DDR3(AXI接口)一——AXI简介

         AXI协议是基于VALID/READY的握手机制进行传输的。VALID信号为高表示的是发送方的数据已经准备好,可以进行发送;READY信号为高则表示接收方可以进行数据的接收,只有当VALID信号和READY信号同时为高时,数据才能进行传输。

        这里有一个握手依赖关系需要说明,简单理解就是,VALID和READY信号之间没有任何依赖,谁前谁后都可以,只有在双发同时为高时,才表示握手成功。

        解释了VALID/READY握手机制,再理解AXI的五个通道就容易多了。AXI具有写地址通道、写数据通道、写响应通道、读地址通道以及读数据通道这五个通道,在传输时互不干扰。以写时序为例,当主机需要发送数据给从机时,首先在写地址通道握手成功后,向从机写入数据的写入地址,然后在写数据通道成功握手之后,向从机写入需要发送的数据,WLAST信号代表发送到最后一个数据,最后,在写入成功后,从机通过写响应通道,向主机返回响应信号(同时需要握手成功才能传输)。读时序与之类似,不过需要注意的是,读传输也有一个响应信号,它是在读数据通道中进行传输的。

4 AXI的突发传输机制

        AXI总线是基于BURST传输的,所谓突发传输的概念在上面已经提到了,就是给定一个突发长度LEN,一次传输就可以传输LEN个数据,地址会根据数据位宽自加。

4.1 传输流程

(1)起始地址(AxADDR)->突发传输长度(AxLEN)->数据宽度(AxSIZE)->突发类型(AxBURST)。

(2)从机在接到起始地址后,一次接收写数据或将数据读取给主机。

 4.2 突发传输类型

(1)FIXED:突发传输中所有数据使用的起始地址。

(2)INCR:后序的数据的地址在起始地址的基础上递增,递增幅度与传输宽度相同。(最常用的传输类型,假设传输数据位宽为32位,即突发大小为4个字节,则每次地址自增4;数据的位宽可以是8,16,32,64,128,256,512,1024bits)。

(3)WRAP:首先会根据起始地址计算得到绕回的边界的地址,在到达这个地址后会重新回到起始地址,在其他情况下与第二种类型一样。地质边界可通过下式计算:

Wrap_Boundary=(INT(Start_Address / (Number_Bytes x Burst_Length))) x (Number_Bytes x Burst_Length)

4.3 突发传输限制

(1)WRAP模式下,突发传输长度只能是2,4,8,16,而在INCR模式下,AXI4接口可以达到1~256的突发长度。

(2)在一次突发传输中,地址不能跨越4KB地址边界(4KB=4096BYTE)。

(3)一次突发传输,必须完成所有的数据传输,不能提前结束(可以通过WSTRB信号将一些不想要的信号设置为无效)。
 

        以上就是对AXI一些常用知识的介绍,更多的内容可以参考以下两个博客,我觉得他们写的特别好,有很多东西都是看了他们的文章才明白的。https://blog.csdn.net/ivy_reny/article/details/56274238

https://blog.csdn.net/meng1506789/article/details/111565579

另外可以找一下正点原子ZYNQ系列中AXI的讲解,讲的比较比较详细。文章来源地址https://www.toymoban.com/news/detail-481655.html

到了这里,关于使用VIVADO中的MIG控制DDR3(AXI接口)一——AXI简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超详细的FPGA使用MIG调用SODIMM DDR3内存条接口教程

    SODIMM 接口DDR3适配额外的内存条才能满足数据缓存的需求,这种需求一般用于高端项目,DDR3 SDRAM 常简称 DDR3, 是当今较为常见的一种储存器, 在计算机及嵌入式产品中得到广泛应用,特别是应用在涉及到大量数据交互的场合。 本文以XC7K325T-FFG900-2L为例,记录MIG的配置过程,

    2024年02月02日
    浏览(49)
  • 到中流击水—XILINX (MIG) DDR3 UI接口

    1.DDR3内核时钟:DDR3内部逻辑部分使用的时钟,用户侧无需关心,跟DDR3芯片内核性能相关。 2.DDR3接口时钟:DDR3与外界通信实际使用的时钟(实际时钟),跟DDR3芯片接口性能相关。 3.DDR3等效时钟:DDR3与外界通信实际的有效时钟(双倍速率)。 1.FPGA参考时钟:FPGA用于MIG IP数据

    2024年02月06日
    浏览(56)
  • AXI三种接口及DMA DDR XDMA介绍(应用于vivado中的ip调用)

    参考资源: 【SDK篇_58~62_AXI接口简介【Xilinx】+【Vivado】+【AXI4总线】+【FPGA】-哔哩哔哩】 关于AXI握手过程都讲解的很细致 ug1037(三种AXI的介绍,相关AXI IP的介绍) IHI0022D(握手过程的详细介绍) FPGA_HP:AXI4的学习与使用1——基础知识积累 这个博主写的其他内容也不错 从零学

    2024年01月24日
    浏览(45)
  • DDR3(AXI接口例程)知识点笔记

    本文以7035开发板中的DDR3master例程对DDR3中所涉及的知识点梳理下笔记。 ① DDR支持的突发长度是2,4,8 。即如果芯片的数据位宽是16bit的话那么接口数据位宽是32bit,64bit以及128bit。因为 L-Bank一次就存取两倍于芯片位宽的数据,所以芯片至少也要进行两次传输才可以。我认为芯片

    2024年02月13日
    浏览(48)
  • FPGA-基于AXI4接口的DDR3读写顶层模块

    AXI4(Advancede Xtensible Interface 4)是一种高性能、高带宽的总线接口协议,用于在系统级芯片设计中连接不同的IP核(Intellectual Property)或模块。它是由ARM公司开发的,被广泛应用于各种SoC(System-on-Chip)设计中。 AXI4接口协议定义了一组规范,用于描述数据传输、地址传输、控

    2024年04月15日
    浏览(58)
  • 使用MIG IP 核实现DDR3读写测试学习

    1、简介         DDR3 SDRAM(Double-Data-Rate Three Synchronous Dynamic Random Access Memory)是 DDR SDRAM 的第三代产品,相较于 DDR2,DDR3 有更高的运行性能与更低的电压。DDR SDRAM 是在 SDRAM 技术的基础上发展改进而来的,同 SDRAM 相比,DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和

    2024年01月16日
    浏览(48)
  • 【FPGA】MIG DDR3读写逻辑测试

            笔者在之前通过microblaze软核的方式实现了DDR3芯片的读写测试,当时对于Xilinx MIG DDR控制器的理解还比较肤浅。还是想通过控制用户接口时序的方式来读写DDR,扩展和加深自己对DDR的理解。 MIG IP核配置请看我的前一篇文章 【FPGA测试】Microblaze测试DDR读写_microblaze

    2024年01月22日
    浏览(43)
  • FPGA入门 —— DDR3(MIG IP 核) 入门

    DDR 简介 DDR=Double Data Rate双倍速率同步动态随机存储器。严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。而DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。 SDRAM在一个时

    2024年01月16日
    浏览(56)
  • 【Xilinx FPGA】DDR3 MIG IP 仿真

    Memory Interface Generator (MIG 7 Series)是 Xilinx 为 7 系列器件提供的 Memory 控制器 IP,使用该 IP 可以很方便地进行 DDR3 的读写操作。本文主要记录 Xilinx DDR3 MIG IP 的仿真过程,包括 IP 配置和 DDR3 读写仿真两部分内容。 目录 1 MIG IP 配置 2 DDR3 读写仿真         在 Vivado 开发平台 IP C

    2024年02月09日
    浏览(53)
  • 紫光FPGA DDR3 IP使用和注意事项(axi4协议)

    紫光DDR3 IP使用 对于紫光ddr3 IP核的使用需要注意事情。 阅读ddr ip手册: 1、注意:对于写地址通道,axi_awvalid要一直拉高,axi_awready才会拉高。使用的芯片型号时PG2L100H-6FBG676,不同的型号IP核接口和axi的握手协议也不一样(一定要注意),这点要注意,这也给我挖了一个很大的

    2024年04月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包