基于FPGA的DDR3控制器设计
摘要 介绍了DDR3 SDRAM的技术特点、工作原理,以及控制器的构成。利用Xilinx公司的MIG软件工具在Virtex-6系列FPGA芯片上,实现了控制器的设计方法,并给出了ISim仿真验证结果,验证了该设计方案的可行性。
DDR3 SDRAM是第三代双倍数据速率动态同步随机存储器的简称。是SDRAM内存产品家族中的一员。DDR3内存模组是采用多颗DDR3 SDRAM,并根据JEDEC的相关内存模组设计标准而制作。DDR3SDRAM有如下技术特点:(1)DDR3新增了重置(RESET)功能,并为此新功能设置了管脚,当RESET命令有效时,DDR3将终止所有操作,此时处于活动量最少的状态,以降低功耗。(2)DDR3新增ZQ校准功能,ZQ也是一个新的管脚,这个引脚通过一个命令集及片上校准引擎(On—Die Calihration Engine,ODCE)自动校验数据输出驱动器导通电阻与ODT的终结电阻值。(3)在DDR3系统中,将参考电压分成两个:一个是为地址和控制总线提供服务的VREFC,另一个是为数据总线提供服务的VREFDQ,两个不同的参考电压为DDR3提供更好的抗噪能力。(4)在DDR3系统中,控制器和存储器是一一对应的,由此便可大幅减轻地址、控制、数据信号的总线负担,提供了信号的完整性。这是DDR3和DDR2的一个关键区别。对单个Rank的模组,控制器和内存是点对点(Point to Point)的连接关系,对双Rank的模组,控制器和内存是点对双点(Point to 2Points)的连接关系。(5)DDR3存储器模块的地址、命令、控制信号和时钟采用了“Fly—by”的拓扑结构,大幅减轻了地址、命令、控制和数据总线的负载,提高了信号的完整性。
1 DDR3 SDRAM工作原理
系统上电后,在DDR3 SDRAM进行正常读写操作前,必须按照规定步骤完成初始化操作,然后才能进入空闲的状态,等待控制器的访问。初始化操作过程中主要完成对模式寄存器的配置工作,DDR3芯片上有4个模式寄存器,通过模式寄存器的配置,可完成比如突发长度、读取突发种类、CAS长度、测试模式、DLL复位、输出驱动能力等的设置。
DDR3 SDRAM的工作状态转换是通过指令来实现的,主要通过CS#(片选信号)、RAS#(行选通信号)、CAS#(列选通信号)、WE#(读写控制信号)之间的组合状态实现,DDR3 SDRAM支持的命令主要有:
(1)预充电命令。作用是关闭特定Bank中打开的行或者所有Bank中打开的行,SDRAM寻址具有较强的独占性。对于第一次的读写,只需用激活命令打开此行即可,而对于当前行仍处于打开状态,要对新一行进行读写,此时就要关闭当前行,此命令就是预充电命令。
(2)刷新命令。SDRAM单元有个缺点就是用电容存储数据。但由于漏电流的存在,数据不能长时间存在存储单元中,需要周期性的刷新来保持数据,所以在SDRAM进行存储工作时,必须进行刷新操作。刷新间隔和存储芯片的温度有关,刷新方式分为自刷新(SREF)和自动刷新(AREF)。自刷新用于正常模式下,而自动刷新用于低功耗情况下。
(3)激活命令。用于激活所要进行读或者写操作的Bank、行和列。在读或者写命令到达DDR3 SDRAM的行之前,要先对要读或写操作的行用激活命令进行激活。与激活命令一起发送的地址位用于寻找进行操作的Bank和行,与读或写命令一起发送的地址位用于寻找进行操作的起始列单元。
(4)读命令。用于对一个已激活的行进行读操作。在读操作完成之后,被访问的行依然处于打开状态,直到被预充电命令关闭。BA0~BA2用来选择Bank的地址,A0~Ai提供的输入地址用于选择开始列地址,读命令操作如图1所示。
![](../img/eep/emb/emb-49367whdhzwvzbiy.jpg)
(5)写命令。用于启动一个突发的存储器写操作,由FPGA向DDR3 SDRAM中写入数据。BA0~BA2用于选择Bank的地址,A0~Ai提供的输入地址用于选择开始列地址由FPGA将数据写入DDR3 SDRAM中。写命令操作如图2所示。
![](../img/eep/emb/emb-49368wualiqve5ao.jpg)
DDR3芯片内部控制器中有8个Bank处于开放的状态,Bank开放的顺序由控制器发出的命令决定。若8个Bank均处于开放状态,但还有数据要进入Bank,则最后开放的Bank将被关闭,以打开一个新的Bank。在自刷新时,所有Bank都会被关闭,一旦有预充电命令,Bank就会开放。
2 DDR3 SDRAM控制器设计方案
设计采用Xilinx公司提供的DDR3 SDRAM控制器IP核。采用此方案的好处是缩短开发周期、简化系统设计。设计者只需在Xilinx公司提供的MIG3.92软件工具界面上选择FPGA及DDR3 SDRAM芯片型号、总线宽度、速度级别,设置突发长度、CAS延迟、引脚分配等参数,即可生成DDR3 SDRAM控制器。FPGA芯片采用Xilinx公司的Virtex-6系列XC6VLX240T-1FFG1759C型号,DDR3 SDRAM芯片采用镁光公司的MT8JSF25664HZ-1C4D1,该内存芯片行地址宽度为15位。列地址宽度为10位
FPGA DDR3 SDRAM控制器 MIG ISim 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)