基于Stratix III的DDR3 SDRAM控制器设计
扫描二维码
随时随地手机看文章
1 引言
DDR3 SDRAM是由JEDEC(电子设备工程联合委员会)制定的全新下一代内存技术标准,具有 速度更快、功耗更低、效能更高以及信号质量更好等优点,对于解决高速系统(例如某些高速图 像处理系统)设计中由于存储器的处理速度和带宽所产生的瓶颈,改善和提高系统性能提供了更 好的解决方案。
本文在分析DDR3 SDRAM的特点和基本控制方式的基础上,给出了采用Altera公司最新的 ALTMEMPHY高速存储器接口方案设计的DDR3 SDRAM控制器,并在Altera公司的StratixIII系列 FPGA上完成了验证和实现。目前,使用该控制器的DDR3 SDRAM已经在某真三维立体显示器项目 中作为高速图像缓存得到了实际应用。
2 DDR3 SDRAM的特点
与上一代器件相比,DDR3内存技术仍然采用了在时钟的上升沿和下降沿同时进行数据传输 的基本方式,工作原理与控制方式基本相同,但又有着一些不同的新特点:拥有两倍于DDR2的 8bit预取(prefetch)能力;突发长度(Burst Length,BL)固定为8,且增加了突发突变(Burst Chop)模式;新增了重置(Reset)功能,可以使DDR3达到功耗最小的状态等[1]。
与其它SDRAM一样,DDR3 SDRAM的操作指令主要通过RAS(行地址选择)、CAS(列地址选择)、 WE(写使能信号)、CS(片选信号)以及CKE(时钟使能信号)的高低电平组合来实现。但基于 其自身特点,DDR3指令集内不但对原有的指令做了很多改动,同时也增加了一些新的指令,时 序方面也有一定的差别。
在读写操作方面,与DDR2一样,读操作时由内存给出一个与数据同步的DQS信号,它的边沿 与读数据一致;写操作时,控制器同样给出一个与数据同步的数据滤波信号DQS,它的边沿处于写数据当中.DDR3具有on-the-fly突发模式,允许用户在此模式下选择4或8的突发长度。图1 给出了DDR3内存典型的读/写操作时序图[2]。
3 DDR3 SDRAM控制器的设计
DDR3 SDRAM控制器的设计方法采用了Altera推荐的ALTMEMPHY+用户自定义控制器的结构。 与传统SDRAM控制器相比,此结构加入了ALTMEMPHY接口部分。ALTMEMPHY宏功能是Altera开发的 能够动态自校准的数据通路,允许用户在Stratix III等器件中快速建立物理层接口(physical layer interface),连接FPGA内部控制逻辑和外部存储器。使用ALTMEMPHY的的突出优点是可 以通过训练模式和校准功能来消除FPGA和存储器在制造工艺中的偏差。在工作过程中,它利用 跟踪机制来跟踪并补偿FPGA内部的电压或者温度变化,而且不会中断数据传输。DDR3 SDRAM控 制器的逻辑框图如图2所示,主要包括ALTMEMPHY和用户自定义控制器两部分。
为了简化内部逻辑设计,提高系统性能,控制器设计采用半速率方案。所谓半速率方案, 就是将双倍数据速率(DDR)转换为时钟频率减半,并且只在时钟上升沿进行数据采集的半数据 速率(HDR)。采用半速率方案后,内部逻辑频率为外部存储器接口频率的一半,但是内部数据 总线的宽度是外部数据总线宽度的4倍。在内部频率受限,外部引脚数给定时,半速率方案比全 速率方案支持的带宽加倍。
3.1 ALTMEMPHY设计
ALTMEMPHY是可配置参数的宏功能,用户可根据设计需要配置相应参数[3]。ALTMEMPHY主要 包括时钟与复位管理、地址与指令通路、读数据通路、写数据通路、自校准等组成模块。
时钟与复位管理模块主要负责时钟信号的产生与移相,以及时钟网络类型的控制;地址与 指令通路负责接收控制器输出的地址和指令信号,并将其从半速率时钟转换为全速率时钟;读 数据通路是采集从存储器读出的数据,并将其再同步到系统时钟域;写数据通路将控制器输出 的半速率数据转换为双倍速率(DDR)信号,以写入DDR3器件;自校准模块用于系统上电时自动 校准DDR3器件的过程变量,以获得最大的时序余量,消除来自读数据通路的不确定因素,提高 系统高频工作下的稳定性。图3所为Stratix III器件中读数据通路的结构框图,由图中可以看 出DDR与HDR转换的过程中数据总线宽度及时钟频率的变化。
3.2 自定义控制器设计
用户自定义控制器部分主要由以下模块组成:主控模块、地址与指令译码、数据缓冲、时 钟同步、初始化与刷新请求等[4]。 主控模块主要由有限状态机实现,完成系统从上电开始所有状态间的转换、任务调度、总 线仲裁、时序同步等,并对其他模块产生相应的控制信号,协调各模块工作;地址与指令译码 模块在主控模块的控制下,完成对系统各种访问指令和访问地址的解码与匹配;数据缓冲负责 在与ALTMEMPHY进行数据传输过程中对数据进行FIFO缓冲和同步;时钟同步模块采用了PLL锁相 环电路设计,为ALTMEMPHY提供参考时钟,同时接收ALTMEMPHY输出的同步时钟phy_clk作为系统 时钟,完成各模块之间的同步;初始化与刷新请求模块完成SDRAM器件的初始化及自刷新操作。
3.3 设计注意事项
本系统工作频率高,任何微小的时序错误都可能导致系统不能正确工作。虽然ALTMEMPHY 结构可以在一定程度上减小时序错误,但在设计过程中仍要做好代码的优化,尽量采用同步电 路设计方法,消除竞争冒险现象,保证数据接口的同步等。
另外,在设计中要遵照Altera提供的设计规范进行设计,如时钟信号要从片上PLL专用的全 局时钟引脚输入以减小时钟倾斜;各种时钟分别配置于各自独立的时钟局域网络内以避免相位 搅动;对周期、建立、保持时间等关键参数添加相应的约束等等,以提高设计的工作频率,增 强系统的稳定性。
4 DDR3 SDRAM控制器的实现
设计采用的FPGA为Stratix III系列中的EP3SL150F1152-C2。Stratix III是Altera公司刚刚面市高端FPGA系列,也是目前少数支持DDR3接口的FPGA之一。Stratix III系列提供读写均衡、 DQ去斜移I/O延时、动态片内匹配等功能,并且使用可配置锁相环(PLL)来补偿电压和温度变化, 以充分发挥DDR3存储器的优势。Stratix III器件支持最大时钟速率400 MHz、最大数据速率800 Mbps的DDR3[5]。软件设计在Altera公司的Quartus II 7.2平台上,运用自顶向下的设计思想, 采用VHDL语言加电路图混合设计的方法完成。测试读写仿真时序如图4所示。
本设计采用Samsung公司的1Gb容量DDR3 SDRAM芯片K4B1G0846C-ZCF7予以实现。该芯片组织 结构为16Mbit x 8 I/Os x 8banks,速率为800Mbps。通过仿真和工作实测,系统稳定工作频率 达到400MHz,8位数据总线带宽最大传输率达到800MB/s[6]。 从设计的仿真及实现结果可以看出,这种结构的控制器具有很高的传输速度和稳定的性能 表现,可以作为下一代存储设备广泛运用于各种高速高性能系统设计中。同时,该设计为相关 控制器的开发和研制提供了实例,具有良好的参考和应用价值。
本文作者创新点:提出了一种基于Stratix III的DDR3 SDRAM控制器的设计方法,采用 ALTMEMPHY宏功能结合自定义控制器的结构,即保证了系统在高速运行时的稳定性,又可以根据 用户需要灵活改变参数设置,可广泛应用于各种相关高速数字系统。