基于FPGA的AXI_MIG IP核的DDR3读写验证上篇

1DDR3

1.1DDR3的基本概念

DDR3 SDRAM 英 文 全 称 “ Double-Data-Rate Three Synchronous Dynamic Random Access Memory”, 译为“第三代双倍速率同步动态随机存取内存”或“同步动态随机存储
器”,是动态随机存储器(Dynamic Random Access Memory,简称 DRAM)家族的一份子。
同步、动态、随机是其性能特点的外在说明,也是其区别其他存储器的特色标签。这三个
概念性的标签,我们要好好理解掌握。
双倍速率(Double-Data-Rate):DDR3 SDRAM 存储器与 SDRAM 有一个很大的不同,DDR3 SDRAM 或者说带 DDR 开头的。包括 DDR1、DDR2、DDR3、DDR4、DDR4,他们都有一个很大的相似点,就是双边沿输出输入数据,通俗来讲就是在一个周期内输出 2 次
数据,上升沿输出一次数据,下降沿输出一次数据。而 SDRAM 则是在一个周期内的上升
沿输出一次数据,下降沿不输出,所以同频率的 DDR3 SDRAM 与 SDRAM 相比速度快一
倍。
同步(Synchronous):与通常的异步 DRAM 不同,DDR3 SDRAM 存在一个同步接口,
其工作时钟的时钟频率与对应控制器(CPU/FPGA)的时钟频率相同,并且 SDRAM 内部的命
令发送与数据传输均以此时钟为基准,实现指令或数据的同步操作;
动态(Dynamic):DDR3 SDRAM 需要不断的刷新来保证存储阵列内数据不丢失;
随机(Random):数据在 DDR3 SDRAM 中并不是按照线性依次存储,而是可以自由指定地址进行数据的读写。

DDR的电压的变化
第一代 SDR SDRAM 采用单端时钟信号,SDRAM 只在时钟的上升沿进行数据采样;
而后面的四代 SDRAM 由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟,双沿采样,速度更快,且功耗更低。同时技术的不断发展、制造工艺的不断提高,使得五代 SDRAM 的更新过程中,集成度越来越高、内核电压越来越低(SDR:3.3V、DDR:2.5V、DDR2:1.8V、DDR3:1.5V、DDR4:1.2V),这也是 SDRAM 速度提高、功耗降低的重要原因。

1.2DDR3的引脚说明

在这里插入图片描述

2AXI协议

2.1AXI协议概述

     AXI 的英文全称是 Advancede Xtensible Interface,即高级可扩展接口,它是 ARM 公司

所提出的 AMBA(Advanced Microcontroller Bus Architecture)协议的一部分。之所以要采
用 AXI4 接口对 ddr 进行读写是因为 Xilinx 的 mig ddr Ip 核,无论是 6 系列还是 7 系列还是
最新的 FPGA,都集成了 AXI4 接口,为了采用 AXI4 接口进行读写,后续可以兼容 xilinx
的其他 fpga,可复用性更强

2.2AXI协议特点

    AXI 协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:

1、总线的地址/控制和数据通道是分离的;
2、支持不对齐的数据传输;
3、支持突发传输,突发传输过程中只需要首地址;
4、具有分离的读/写数据通道;
5、支持显著传输访问和乱序访问;
6、更加容易进行时序收敛。

2.3AXI协议种类

AXI4 协议支持以下三种类型的接口:
1、AXI4:高性能存储映射接口。
2、AXI4-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信。
3、AXI4-Stream:用于高速数据流传输,非存储映射接口

2.3AXI接口介绍

由五个独立的通道构成:
1、读地址
2、读数据
3、写地址
4、写数据
5、写响应

2.4AXI接口信号介绍

在这里插入图片描述
在这里插入图片描述

2.5AXI突发写时序

AXI4 突发写可以分为 7 个状态,写空闲,写通道写地址等待,写通道写地址,写数据等待,写数据循环,接受写应答,写结束这 7 种状态。之所以划分为 7 个状态是为了后续
写程序的状态机做准备。
1写空闲:等待触发突发信号。
2写通道写地址等待:准备好写地址 AWADDR,然后拉高 AWVALID。
3写通道写地址:从机接受到 AWVALID,发出 AWREADY。
4写数据等待:准备好数据 WDATA,拉高 WVALID。
5写数据循环:从机接受 WVALID ,确认数据 WDATA 有 效 并 且接 受 , 发 出WREADY,AXI 是突发传输:循环该操作到接受到 WLAST 最后一个数据标志位。
6接受写应答:接受到从机发出的 BVALID,主机发出 BREADY。
7写结束:拉低未拉低的信号,进入写空闲。
在这里插入图片描述

2.6AXI突发读时序

突发读时序:AXI4 突发读可以分为 6 个状态,读空闲,读通道写地址等待,读通道写地址,读数据
等待,读数据循环,读结束这 6 种状态。之所以划分为 6 个状态是为了后续写程序的状态
机做准备。
1读空闲:等待触发突发信号。
2读通道写地址等待:准备好写地址 ARADDR,然后拉高 ARVALID。
3读通道写地址:从机接受到 ARVALID,发出 ARREADY。
4读数据等待:从机器准备好数据 WDATA,从机拉高 RVALID。
5读数据循环:主机接受 RVALID,确认数据 RDATA 有效并且接受,发出 RREADY 给从机,AXI 是突发传输:循环该操作到接受到 RLAST 最后一个数据标志位。
6读结束:拉低未拉低的信号,进入读空闲
在这里插入图片描述

2.7AXI握手信号

AXI 总线中的每个通道都包含了一组信息信号,还有一个 VALID 和一个 READY 信
号。由上面的读写时序图与时序分析,可知 AXI 接口的读写在于握手信号 VALID 与
READY
写地址通道:当主机驱动有效的地址和控制信号时,主机可以断言 AWVALID,一旦
断言,需要保持 AWVALID 的断言状态,直到时钟上升沿采样到从机的 AWREADY。
AWREADY 默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用
来断言 AWVALID,一个用来断言 AWREADY);当 AWREADY 为高时,从机必须能够
接受提供给它的有效地址。
写数据通道:在写突发传输过程中,主机只能在它提供有效的写数据时断言
WVALID,一旦断言,需要保持断言状态,知道时钟上升沿采样到从机的 WREADY。
WREADY 默认值可以为高,这要求从机总能够在单个周期内接受写数据。主机在驱动最
后一次写突发传输是需要断言 WLAST 信号。
写响应通道:从机只能它在驱动有效的写响应时断言 BVALID,一旦断言需要保持,
直到时钟上升沿采样到主机的 BREADY 信号。当主机总能在一个周期内接受写响应信号
时,可以将 BREADY 的默认值设为高。
读地址通道:当主机驱动有效的地址和控制信号时,主机可以断言 ARVALID,一旦
断言,需要保持 ARVALID 的断言状态,直到时钟上升沿采样到从机的 ARREADY。
ARREADY 默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用
来断言 ARVALID,一个用来断言 ARREADY);当 ARREADY 为高时,从机必须能够接
受提供给它的有效地址。
读数据通道:只有当从机驱动有效的读数据时从机才可以断言 RVALID,一旦断言需
要保持直到时钟上升沿采样到主机的 BREADY。BREADY 默认值可以为高,此时需要主
机任何时候一旦开始读传输就能立马接受读数据。当最后一次突发读传输时,从机需要断
言 RLAST。

2.8地址通道的控制信号与地址描述

  1. 地址 ID
    AWID[3:0]与 ARID[3:0]:对于只有一个主机从机设备,改值可设置为任意值。
  2. 地址结构
    AWADDR[31:0]与 ARADDR[31:0]:AXI 协议是基于 burst 的,主机只给出突发传输的
    第一个字节的地址,从机必须计算突发传输后续的地址。突发传输不能跨 4KB 边界(防止
    突发跨越两个从机的边界,也限制了从机所需支持的地址自增数)。
  3. 突发长度
    AWLEN[7:0]与 ARLEN[7:0]:ARLEN[7:0]决定读传输的突发长度,AWLEN[7:0]决定
    写传输的突发长度。AXI4 扩展突发长度支持 INCR 突发类型为 1~256 次传输,对于其他的
    传输类型依然保持 1~16 次突发传输(Burst_Length=AxLEN[7:0]+1)。
    burst 传输具有如下规则:wrapingburst,burst 长度必须是 2,4,8,16
    burst 不能跨 4KB 边界
    不支持提前终止 burst 传输
    所有的组件都不能提前终止一次突发传输。然而,主机可以通过解断言所有的写的
    strobes 来使非所有的写字节来减少写传输的数量。读 burst 中,主机可以忽略后续的读数据
    来减少读个数。也就是说,不管怎样,都必须完成所有的 burst 传输。
  4. 突发大小
    ARSIZE[2:0],读突发传输;AWSIZE[2:0],写突发传输。如果是 16 位的数据宽度,16 位等于 2 字节,那么 AxSIZE 将为 3’b001;如果是 32 位
    宽度,就是 4 字节,AxSIZE 为 3’b010;如果是 64 位数据宽度,AxSIZE 为 3’b011;对于
    AXI 接口,比较常用的是 32,64,128 位数据宽度。
  5. 突发类型
    AWBURST[1:0]与 ARBURST[1:0]:
    FIXED:突发传输过程中地址固定,用于 FIFO 访问
    INCR:增量突发,传输过程中,地址递增。增加量取决 AxSIZE 的值。
    WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回
    环突发的长度只能是 2,4,8,16 次传输,传输首地址和每次传输的大小对齐。最低的地址整
    个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN)。应用中常使用的是 INCR 增
    量突发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值