提出一种便于用户 *** 作并能快速运用到产品的DDR2控制器IP核的FPGA实现,使用户不需要了解DDR2的原理和 *** 作方式的情况下,依然可以通过IP核控制DDR2。简单介绍了DDR2的特点和 *** 作原理,并对DDR2控制器的IP核进行了模块化的划分,分析了每个模块的功能。强调了用户接口功能的完善,并介绍了IP核的 *** 作流程,使每个用户都能轻松的使用该IP核。
1 引言DDR2作为主流的内存具有存取速度快、存储量大、成本较低等特点,因此被广泛地运用到计算机、汽车导航系统、高清数字电视、数码相机等电子行业的各大领域当中。随着科技的发展,FPGA的技术也在不断进步,FPGA的性能、稳定性、容量等指标已经有了很大的提高。鉴于FPGA的发展和DDR2高性能的表现,越来越多的研发人员会通过FPGA直接对DDR2进行控制,这时他们必须对DDR2的工作原理有深入的了解,但这样就很可能加大了研发周期,直接影响了公司的经济效益。因此设计一款开发人员完全不需要了解DDR2工作原理的DDR2控制器IP核是非常具有实际意义的。
本文提出了一款方便用户使用的DDR2控制器方案。用户不需要了解DDR2的工作原理,只用控制有限的几个用户接口就可以对DDR2进行 *** 作,在产品开发时可以大大缩短开发周期。
2 DDR2的特点DDR2是基于JEDEC(Joint Electronic Device Engineering Council)标准的外部存储设备,并且DDR2还有着低功耗,高密度和高频率等特点。与DDR相比DDR2具有如下特点:
1)相同的核心的频率的情况下,DDR2的工作频率是DDR的两倍。
2)ODT(on.Die TerminaTIon)片内终结器:为了防止信号反射问题,DDR2中集成了ODT。ODT能够吸收线路终端的信号的影响,而且能使得信号质量更高和数据传输更快。
3)OCD(Off-Chip Driver)离线驱动调整:通过调整输出驱动的上拉/下拉电阻值,使得充、放电动作的电压误差减到最小,调整DQS和DQS#的波形交叉点,平衡参考时钟的上升沿和下降沿波形,从而保证内部输出驱动的稳定。
4)前置CAS(Posted Column Address Strobe)前置列地址选通:通过将CAS信号插到RAS(Row Address Strobe)信号的后一个时钟周期,避免命令和CAS信号的冲突,提高命令总线和数据总线的速度。
3 DDR2的 *** 作原理
对DDR2的 *** 作是一个复杂又繁琐的过程,它的主要 *** 作如下:
1)初始化:DDR2的工作方式是由内部和外部寄存器所控制的,因此在上电时先需要对DDR2的寄存器进行配置,即初始化。通过初始化可以对DLL,Burst Length(突发长度),Burst type(突发类型),CAS Latency(CAS延时),CL latency(CL延时),ODT,OCD,等的配置。
2)行激活和列选址:在DDR2内部存储就好是被分成几个表格一样,L-BANK表示有几张表格,而在每一张表格中首先确定它的行,再确定列来选取所存放的地方。根据DDR2的特征,对DDR2的地址选择分为两步:第一步行激活:片选CS#拉低,通过BAO、BA1(BA2)来选择L-BANK,把行选通RAS#拉低,通过地址线输入行地址。第二步列选通:在行激活的下个周期,列选通CAS#拉低,通过地址线输入列地址。如果是在同一行进行 *** 作时,就可以省略行激活。
3)读/写指令的发布:当列选址完成后,经过AL的延时就可以发出读/写命令对DDR2进行 *** 作了,再经过CL个周期(从读 *** 作的命令发出到第一个数据的延时)的延时第一
个读数据输出或者是经过CL-1个周期(写 *** 作命令的延时比读 *** 作命令的延时少一个周期)的延时输入第一个数据。
4)预充电(Precharge):DDR2为动态储存体,它的储存体上的电容电压会因为时间或干扰的情况下使电压值变化,从而使数据产生变化。在对另一行进行 *** 作时必须关闭原来的行,重新发送行/列地址,这时会对DDR2产生干扰,因此在重新换行时要对其电容进行有选择的充电 *** 作即进行预充电。
5)刷新(refresh):DDR2的储存体是体积极小的电容,由于漏电的存在,电容中的电量会不断的减小,而储存体是根据电容电量的多少来判断数据是1或者是0的,为了保证数据的可靠性,就需要定时对存储体上的电容进行有选择的充电,即刷新。
4 DDR2控制器IP核的架构思想一方面DDR2具有动态存储的特点,它需要在一定的时间和特殊的情况下进行充电,因此在数据传输的时候不能进行不间断传输,而要对传输的数据量进行有效的实时控制。另一方面DDR2又具有高速的特点,在DDR2数据传输方面频率很高,而在FPGA内部的控制方面又不需要达到这么高的频率,因此在FPGA的内部就形成一个跨频域的 *** 作形式。基于上述两方面的原因,在DDR2控制器的IP核上采用控制模块和数据模块分离的方式,再用时钟模块为两个模块输入时钟,最后加了用户接口使用户可以快速和方便的使用IP核。
5 DDR2控制器IP核中各模块的功能DDR2控制器是有四个模块组成:时钟模块,控制模块,数据链路模块,用户接口模块。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)