用中档FPGA实现高速DDR3存储器控制器
引言
DDR3存储器控制器的挑战
针对存储器控制器,DDR3器件面临一系列的挑战。DDR3的工作频率起始于DDR2的更高的工作频率,然后趋于更高的频率。 DDR3接口需要的时钟速度超过400 MHz。这是对FPGA架构的一个重大挑战。针对DDR3存储器控制器的架构,fly-by结构和读写调整变得更加复杂。
不同于DDR2的T型分支拓扑结构,DDR3采用了fly-by拓扑结构,以更高的速度提供更好的信号完整性。fly-by信号是命令、地址,控制和时钟信号。如图1所示,源于存储器控制器的这些信号以串行的方式连接到每个DRAM器件。通过减少分支的数量和分支的长度改进了信号完整性。然而,这引起了另一个问题,因为每一个存储器元件的延迟是不同的,取决于它处于时序的位置。通过按照DDR3规范的定义,采用读调整和写调整技术来补偿这种延迟的差异。fly-by拓扑结构在电源开启时校正存储器系统。这就要求在DDR3控制器中有额外的信息,允许校准工作在启动时自动完成。
图1 针对DDR3的Fly-by结构
读和写调整
在写调整期间,存储器控制器需要补偿额外的跨越时间偏移(对每个存储器器件,信号延迟是不同的),这是由于fly-by拓扑结构及选通和时钟引入的。如图2所示,源CK和DQS信号到达目的地有延迟。对于存储器模块的每个存储器元件,这种延迟是不同的,必须逐个芯片进行调整,如果芯片有多于一个字节的数据,甚至要根据字节来进行调整。该图说明了一个存储器元件。存储器控制器延迟了DQS,一次一步,直到检测到CK信号从0过渡到到1。这将再次对齐DQS和CK,以便DQ总线上的目标数据可以可靠地被捕获。由于这是由DDR3存储器控制器自动做的,电路板设计人员无须担心实施的细节。设计人员会从额外的裕度中得到好处,这是由DDR3存储器控制器中的写调整的特性所创建的。
图2 写调整的时序图
DDR3存储器时钟资源和接口模块
LatTIceECP3 FPGA的I/O有专门的电路支持高速存储器接口,包括DDR、DDR2和DDR3 SDRAM存储器接口。如图3所示,ECP3系列还有专用的时钟资源,以支持下一代DDR3高速存储器控制器。边缘时钟(ECLK1,ECLK2)是高速,低相偏的时钟,用于时钟控制数据高速地进出器件。在DQS的通道提供时钟输入(DQS)和与该时钟相关的多达10个输入数据位。DQSBUF服务于每个DQS通道,以控制时钟访问和延迟。DQSDLL支持DQS通道(每个器件的左侧和右侧都有一个)。DQSDLL是专门用于构建90度时钟延迟的DLL。
图3 LatTIceECP3 DDR存储器时钟资源
莱迪思的DQS电路包括一个自动时钟转换电路,简化了存储器接口设计,并确保了可靠的 *** 作。此外,DQS的延迟块提供了针对DDR存储器接口所需的时钟对齐。通过DQS的延迟单元至专用的DQS布线资源,向PAD提供DQS信号。温度,电压和工艺变化对专用DQS延迟块产生的差异由设置的校准信号来补偿(7位延迟控制),校准信号源于器件对边的两个DQSDLL。在器件的一半,每个DQSDLL弥补各自边的DQS延迟。通过系统时钟和专用反馈环路,对DLL环进行了补偿。
LatTIceECP3 FPGA的锁相环用于生成针对DDR3存储器接口时钟。例如,对于一个400 MHz的DDR3接口,通用锁相环用于生成三个时钟:400 MHz的时钟,有90 °相移的400 MHz时钟和200 MHz时钟。有90 °相移的400 MHz时钟用于生成DQ和DQS输出。没有相移的400 MHz时钟用于产生时钟(CLKP和CLKN)到DDR3存储器。200 MHz时钟用于生成地址和命令(ADDR/CMD)信号。该时钟的实现对客户是透明的,可用莱迪思的设计工具自动地实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)