反向学习DDR3控制器

一、DDR3的原理

1:为什么要使用 DDR3
    容量的需求
    速度的需求

    1080p 视频图像采集
    1080p 的图像、显示在 HDMI 显示器上
    1920*1080*24        5MB*30

2:常用的存储器:
    SRAM 容量小
    SDRAM 容量大(256Mbit)8GB166Hz
    DDR   SDRAM    DDR采用双沿触发
    DDR2 SDRAM
    DDR3 SDRAM

3:DDR3 能跑多少 M?
DDR3 芯片接口时钟400MHz
双沿等效时钟 800MHz-DDR3(说的好听一点)
芯片内核工作时钟 200MHZ

        SRAM存储器阵列的内部读写时钟是不会变的,而且很慢。为了加快这一速度,采用的DDR3结构可以进行预读取。

        假如内部读写时钟为100M,为了实现200M的传输速率,则采用DDR结构,对内部存储阵列进行2bit的预读取。注意:1bit有16位,也就是进行32位反对预读取;
        为了实现400M的传输速率,则采用DDR2结构,对内部存储阵列进行4bit的预读取,也就是64位的预读取;
        为了实现800M的传输速率,则采用DDR3结构,对内部存储阵列进行8bit的预读取,也就是1128位的预读取;

二、DDR3控制器的MIJ配置与使用

4:1 模式;接口时钟频率为 400MHZ,那么读写的数据到用户逻辑侧,工作时钟就是 100MHz
DDR3 芯片数据位宽为16 位,既等效单沿 32.
2:1 模式:接口时钟频率为 300MHZ,那么读写的数据到用户逻辑侧,工作时钟就是150MHZ

知道引脚连接,选用固定模式;如果不知道,就采用第一个选项

三、DDR3的测试例程

(一)测试原理讲解

DDR3控制器的使用非常简单,主要分为命令操作、读操作、写操作。最关键的是这3操作之间几乎相对独立

命令操作和写操作稍微有点时序要求,就是写操作不能落后命令操作两个时钟周期以上,超前多少无所谓。命令操作和读操作可以分开执行,谁先谁后无所谓

这个是命令操作,当使能信号app_en和准备信号app_rdy信号同时为高时,写地址就能确定;写地址确定之后,下面就能控制写数据的执行

读操作就非常的简单,当命令操作把读地址确定之后,就可以通过读有效信号app_rd_data_valid的电平拉高进行读取操作。

(二)测试操作

DDR3控制器在读写操作之前会自动进行校准操作。

DDR3的仿真主要看3类信号:控制(地址)、读(数据)、写(数据)。

命令控制

写操作时序

读操作时序

 

留言

您的邮箱地址不会被公开。 必填项已用 * 标注