1 DDR2的介绍
DDR2/DDR IISDRAM是由JEDEC进行开发的新生代内存技术标准,它与上一代DDR内存技术标准的不同就是,虽然同是采用了在时钟的上升/下降延同时进行数据传输的基本方式,但DDR2内存却拥有两倍于上一代DDR内存预读取能力。换句话说,DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。
由于DDR2标准规定所有DDR2内存均采用FBGA封装形式,而不同于目前广泛应用的TSOP/TSOP-II封装形式,FBGA封装可以提供了更为良好的电气性能与散热性,为DDR2内存的稳定工作与未来频率的发展提供了坚实的基础。回想起DDR的发展历程,从代应用到个人电脑的DDR200经过DDR266、DDR333到今天的双通道DDR400技术,代DDR的发展也走到了技术的极限,已经很难通过常规办法提高内存的工作速度;随着Intel处理器技术的发展,前端总线对内存带宽的要求是越来越高,拥有更高更稳定运行频率的DDR2内存将是大势所趋。
基于FPGA的SDRAM控制器,以高可靠性、强可移植性、易于集成的特点,逐渐取代以往的专用控制器而成为主流解决方案。本文采用Xilinx公司的Spartan-3A系列FPGA和Hynix公司的DDR2 SDRAM器件HY5PS121621实现DDR2控制器的设计。
2 FPGA与DDR2存储器接口
图1所示为DDR2与FPGA的外围接口连接图,DDR2的信号线分为:时钟信号线CK/CK ;数据信号线Data/DQS/DM;地址信号线Address/BA1/BA0;命令信号线RAS/CAS/WE;控制信号线CS/CKE/ODT。FPGA除与DDR2的所有信号线相连外,还引出外部环回信号线(图中虚线所示),此信号输出送至输入输出模块,以补偿FPGA与存储器之间的IOB、器件和迹线的延迟。
差分时钟线CK/CK为DDR2数据传输提供时钟,在CK的上升沿和下降沿均有数据被触发;双向差分线DQS/DQS看作数据的同步信号,写入时由控制器发出,读取时由DDR2产生DQS向控制器发送,它与读数据边沿对齐而与写数据中心对齐。DN为数据信号屏蔽位在突发写传输时屏蔽不存储的数据;RAS/CAS/WE作为命令信号线向DDR2发出读取、写人、刷新或预充电命令;片内终结信号线ODT控制是否需要DDR2进行片内终结。
3 DDR2控制器的设计原理
基于FPGA的DDR2控制器设计是由时钟生成模块、存储控制模块和读写数据接口模块组成如图2所示。
控制器中所有模块时钟均来自于时钟生成模块,它由数字时钟管理器控制,输出90°、180°和270°时钟。该模块还包含延迟校准监视器,用于校准读取数据对读取数据选通脉冲的延迟,以便读取数据选通脉冲边沿能够正确对齐DQ有效窗口的中间位置。
读写数据接口模块是整个控制器设计的关键,它负责将用户写入的数据DQ和DOS按照DDR2 SDRAM时序要求发送给DDR2,DDR2在DQS的每一个时钟沿采集写数据。在读取数据时,DDR2 SDRAM将DQS和相关数据发送到与DQ对齐边沿的FPGA。FPGA将接收到的DQS信号经过延迟校准,作为内部存储读数据的FIFO的写时钟。FPGA为DDR2的每个数据位配置一对读写异步的FIFO,每个数据位都输入到上升沿和下降沿的FIFO中,实现原理如图3所示。
存储控制模块用于产生DDR2所需的地址和命令信号。DDR2在正常的读写操作前要初始化,因此需向DDR2发送初始化命令,待初始化完成后才能发送读写命令。对DDR2 SDRAM的读写访问为突发模式。突发写操作需向DDR2提供写命令、写数据和写地址信号,在一个写地址发送突发操作完成信号,并保持2个时钟周期有效下终止写操作,突发写时序如图4所示。突发读操作需向DDR2提供读命令和读地址,在一读地址发送突发完成信号,并保持2个周期有效下终止读操作,突发读时序如图5所示
4 DDR2控制器的设计及应用
为了缩短开发周期,采用Xilinx的MIG软件工具直接生成DDR2控制器设计模块,包括HDL代码和约束文件。用户可在MIG的GUI图形界面选择对应模板、总线宽度和速度级别,并设置CAS延迟、突发长度、引脚分配等关键参数。如果设计者所选器件与MIG所列模板不相符,可在代码生成后灵活修改代码,达到系统要求。代码添加到工程前需硬件验证,采用MIG自动生成的测试模块进行验证。该模块向存储器发出一系列的写入命令和读取命令,并对写入数据和读回数据进行比较,通过比较信号验证控制器的正确与否。用ChipScope抓取的读数据和相关控制信号时序分别如图6和图7所示,读写比较信号在检测到读写数据相等时输出‘0’电平。
在硬件验证通过后,把控制器代码导入到系统工程中,设计者只需输入相应命令,控制器模块将自动产生命令和控制信号并按照DDR2的时序要求送至DDR2,命令发送完毕提供给用户一个命令应答信号,设计者根据这一信号判断是否可以发送下一个命令。至于自动刷新、激活和预充电命令则由控制器自动完成,无需用户干涉。
5 结束语
通过MIG工具辅助设计,实现500 M/s带宽的DDR2接口数据采集,占用FPGA资源分别为15%IOB资源,17%逻辑Slice资源和2个DCM。在FPGA中实现DDR2控制器,节省功耗和空间,并缩短系统开发周期,满足大多数低成本系统设计要求。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。