如何实现FPGA到DDR3 SDRAM存储器的连接
扫描二维码
随时随地手机看文章
采用90nm工艺制造的DDR3 SDRAM存储器架构支持总线速率为600 Mbps-1.6 Gbps (300-800 MHz)的高带宽,工作电压低至1.5V,因此功耗小,存储密度更可高达2Gbits。该架构无疑速度更快,容量更大,单位比特的功耗更低,但问题是如何实现DDR3 SDRAM DIMM与FPGA的接口呢?
关键词——均衡!
如果没有将均衡功能直接设计到FPGA I/O架构中,那么任何设备连接到DDR3 SDRAM DIMM都将是复杂的,而且成本还高,需要大量的外部元器件,包括延时线和相关的控制。
什么是均衡?为什么如此重要?
为了在支持更高频率时提高信号完整性,JEDEC委员会定义了一个fly-by(飞越式)端接方案,该方案采用了时钟和命令/地址总线信号来改善信号完整性以支持更高的性能。当时钟和地址/命令通过DIMM时,fly-by拓扑结构通过故意引起每个DRAM上的时钟和数据/选通之间的飞行时间偏移(flight-time skew)来减小并发开关噪声(SNN),如图1所示。
飞行时间偏移可能高达0.8 tCK,当该偏移被扩展得足够宽时,将不知道数据在两个时钟周期中的哪个内返回。因此,均衡功能可以使控制器通过调节每个字节通道内的时序来补偿这一偏移。最新的FPGA能够为各种应用提供与双倍数据率SDRAM存储器接口的许多功能。但是,要与最新的DDR3 SDRAM一道使用,还需要更鲁棒的均衡方案。
FPGA I/O结构
像Altera Stratix III系列高性能FPGA提供的I/O速度高达400 MHz (800 Mbps),还具有很高的灵活性,能够支持现有的和新兴的外部存储器标准,如DDR3。
图1:DDR3 SDRAM DIMM:飞行时间偏移降低了SSN,数据必须被控制器调高到两个时钟周期。
读均衡
在读取操作中,存储器控制器必须补偿由飞越存储器拓扑引起的、影响读取周期的延时。均衡可以被视作为出现在数据通道上的比I/O本身延时还要大的延时。每个DQS都要求一个同步时钟位置的独立相移(经过了工艺、电压和温度(PVT)补偿)。图2显示出同一读取命令下从DIMM返回的两个DQS组。
图2:I/O单元中的1T、下降沿和均衡寄存器。
一开始,每个分开的DQS被移相90度,从而捕获与该组相关的DQ数据。然后用一个自由运行的再同步时钟(频率和相位与DQS相同)将数据从捕获域转移到图2所示用粉红色和橙色连线表示的均衡电路中。在这个阶段,每个DQS组都有一个独立的再同步时钟。
接着DQ数据被送到1T寄存器。图2中给出了一个1T寄存器实例,在上层通道中需要用这个1T寄存器对特定DQS组中的DQ数据位进行延时。注意在该例中,下层通道不需要1T寄存器。通过该过程开始对齐上层和下层通道。任何一个指定的通道是否需要1T寄存器是自动确定的,这是免费物理层IP内核中校准方案的一部分功能。
随后两个DQS组被传送到下降沿寄存器。如果需要的话,还可以在启动时通过自动校准过程把可选寄存器切换进来或切换出去。最后是将上层和下层通道对齐到同一再同步时钟上,这样就形成了一个将完全对齐的或经过均衡的单倍数据率(SDR)数据传递到FPGA结构的源同步接口。
写均衡
与读均衡类似,不过方向相反,DQS组在不同的时刻发出信号,以便与到达DIMM上的器件的时钟一致,并且必须满足tDQSS参数要求的+/- 0.25 tCK。控制器必须通过创建反馈环路来调整DQS与CK的关系,在此过程中,控制器会将数据写入DRAM,再通过顺序相位进行扫描读回,直到发现写入窗的终点。为了更好的建立和保持余量,数据应该在好窗口的中间点发出。
其他的FPGA I/O功能创新
高性能的Stratix III FPGA还具有许多创新性的其他I/O功能,可以实现到各种存储器接口的简单且鲁棒性连接,这种功能包括了动态片上端接(OCT)、可变的I/O延时以及半数据率(HDR)等。
动态OCT
并行和串行OCT为读写总线提供合适的线路端接和阻抗匹配,因此FPGA周边不需要外接电阻,从而减少了外接元件成本,节约了电路板面积,而且降低了布线复杂度。另外,它还大大降低了功耗,因为并联端接在写操作时可以有效地被旁路掉。
用于DQ去偏移(deskew)的可变延时
采用可变的输入和输出延时来跟踪长度失配和电气去偏移。精细的输入和输出延时分辨率(即50皮秒步进)被用于更精细的DQS间去偏移(独立于均衡功能),这种偏移是由电路板长度失配或FPGA和存储器件上I/O缓存的变化所引起的,如表1所示。最终,这增加了每个DQS组的捕获余量。
表1:分辨率和绝对值待定特性。
为了将DDR3自动去偏移算法成为启动校准过程的一部分,需要从运行时的FPGA结构实现延时单元。也可以利用输出延时在输出通道中插入少量偏移来有意地减少同时开关的I/O数量。
可靠的捕获
DQS信号用作输入选通信号,它必须移位到一个最佳位置才能捕获读取事务。移相电路可以将输入的DQS信号移相0°, 22.5°, 30°, 36°, 45°, 60°, 67.5°, 72°, 90°, 108°, 120°, 135°, 144°或 180°,具体取决于DLL的频率模式。移相后的DQS信号随后被用作I/O单元各个输入寄存器的时钟。
延时锁定环路(DLL)在整个PVT范围内将相位保持在一个固定位置。DLL模块的相位比较器用于将两个输入之间的相位差保持在零。实现的方法是均匀地修正DLL模块中的特定延时(10-16)。用于更新DLL中某个延时模块的控制信号还被发送到DQS输入路径中的时延模块。例如,可以利用DLL中的全部16个延时单元和DQS相移输入路径中的第4个延时抽头来实现90°的相移:
或者选择DLL中的10个延时单元和DQS相移输入路径中的抽头4来实现36°的相移:
或120°:
该DLL采用频率基准为每个DQS引脚中的延时链动态产生控制信号,并允许它补偿PVT的变化。在Stratix III FPGA中有4个DLL,它们都位于器件的边角,目的是使每个DLL能够覆盖器件的两侧,从而可以在器件的各个边上支持多种DDR3 SDRAM存储器接口。
跨越高速数据率域和设计简化
DDR捕获寄存器和HDR寄存器支持数据从双倍数据率域(数据在时钟的两个边沿)安全传送到SDR域(数据位于频率相同的时钟的上升沿,但数据宽度加倍),再到HDR域(数据位于时钟的上升沿,数据宽度仍是加倍,但时钟频率仅是SDR域的一半),这样使得内部设计时序更容易实现。
裸片、封装和数字信号完整性改进
FPGA裸片和封装的设计必须为高性能的存储器接口提供更好的信号完整性(即用户I/O与地和电源的比例为8:1:1,并具有最佳的信号返回路径,如图3所示)。此外,FPGA应该提供动态OCT和可变的偏移率,以便能够控制信号的上升和下降时间以及可编程驱动能力,从而满足所用标准(即SSTL 1.5 Class II)的要求。
图3:连接到每个电源和地的8个用户I/O。
本文小结
高性能Stratix III FPGA可以通过提供高存储器带宽、改进的时序余量以及系统设计中的灵活性来弥补高性能DDR3 SDRAM DIMM的不足。由于DDR3在实际使用中将很快超过DDR2,故提供更低成本、更高性能、更高密度和优异的信号完整性的高端FPGA必须提供与JEDEC兼容的读写均衡功能,以便与高性能的DDR3 SDRAM DIMM相接。FPGA与DDR3 SDRAM的有机整合将能够满足目前和下一代通信、网络以及数字信号处理系统的要求。