五,基于FPGA的DDR控制器设计及MIG控制器使用

1,DDR简述

      SDRAM:称为动态随机访问存储器,通过电容保存信息。

      SDR : 单速率,单端,LVCMOS标准;

      DDR : 双速率,差分电路,SSTL标准;

五,基于FPGA的DDR控制器设计及MIG控制器使用_第1张图片

2,SDRAM控制器设计

      (1)上电初始化;

      (2) 预充电;

      (3) 读写

   操作命令如下,

五,基于FPGA的DDR控制器设计及MIG控制器使用_第2张图片

初始化配置行参数说明如下:

五,基于FPGA的DDR控制器设计及MIG控制器使用_第3张图片

上电初始化顺序:

五,基于FPGA的DDR控制器设计及MIG控制器使用_第4张图片

    预充电: SDRAM为电容模式,如果不进行预充电,随着时间,他内部数据就会丢失,因此每间隔时段时间对DDR芯片就要进行充电造成.该操作通过命令完成。

    读写时序:读写时序需要主要的是潜伏期;设计SDRAM控制器时,速率不是很高,只有100M因此,在初始化时配置潜伏期为2.数据完成数据读写

3,MIG控制器(以XC7K325T-FFG900为例)

    DDR3因为速率较高突发长度为固定的8.

    MIG为XILINX的DDR控制器,如图为ds182中对控制器DDR速率说明:

五,基于FPGA的DDR控制器设计及MIG控制器使用_第5张图片

 MIG控制器配置流程及说明:

 (1)打开控制器,可以选择控制器数量最大为8个,用户端口可选择使用axi4或普通的地址数据,命令端口控制;具体如图

五,基于FPGA的DDR控制器设计及MIG控制器使用_第6张图片

   (2)选择FPGA芯片,选择DDR控制器类型(DDR3,DDR2)

   (3)选择DDR芯片型号,配置速率,数据位宽,电平标准,Bank个数;

五,基于FPGA的DDR控制器设计及MIG控制器使用_第7张图片

      4:1说明:  时钟800M,4:1 关系下用户时钟为200M;DDR数据位宽为64bit,用户数据为宽为8:1关系,因为DDR双所以在4:1关系上x2.用户数据位宽为64*4*2=512bit

    (4)根据4:1关系,下图用户数据位宽应为512bit

五,基于FPGA的DDR控制器设计及MIG控制器使用_第8张图片

    (5)如下图该处配置MIG输入时钟,(根据配置的DDR速率,会有可选的时钟输入,选择合适的输入时钟),

五,基于FPGA的DDR控制器设计及MIG控制器使用_第9张图片

(6)配置系统时钟和参考时钟,系统复位,如果系统时钟输入为为199M到201M时,参考时钟可用系统时钟,此处可看ug586第396页.

五,基于FPGA的DDR控制器设计及MIG控制器使用_第10张图片

(7)配置DDR管脚,如果已有原理图,可导出UCF文件,通过第二种配置方式选择导入文件,配置管脚.如没有原理图,可选择第一种新的设计来完成自动配置DDR管脚

五,基于FPGA的DDR控制器设计及MIG控制器使用_第11张图片

(8)完成后,一直下一步,到最后.完成MIG配置。

4,MIG控制器用户接口控制实现

(1)使用普通用户端口控制,

          写命令时序如下:

五,基于FPGA的DDR控制器设计及MIG控制器使用_第12张图片

    写数据时序如下:

五,基于FPGA的DDR控制器设计及MIG控制器使用_第13张图片

         读数据时序如下:

 

五,基于FPGA的DDR控制器设计及MIG控制器使用_第14张图片

        (2)通过AXI端口做用户数据端口,端口完全匹配AXI协议。 

献上一份AXI接口控制MIG设计,链接:https://download.csdn.net/download/weixin_41838250/12883455

你可能感兴趣的:(FPGA,ddr,fpga)