摘要:在DDR SDRAM控制器的设计中,数据通道的设计是提高数据传输率的关键。本文按照JESD79E标准,讨论了DDR SDRAM控制器结构,分析了DDR SDRAM的读写过程,给出了控制器的读写时序方程,利用此方程设计出了一种高速数据通道。对设计高速数据通道用EDA工具进行了综合、仿真。仿真结果显示设计出的电路可以实现参数化配置并具有良好的性能。
1 引 言
目前业界在使用存储器控制器时,通常采用 IP 核供应商提供的针对具体型号存储器IP 核[1]。这种IP 核的使用虽然可以实现快速设计的目的,但是控制器占用资源较大,不能根 据应用而改变,只能通过命令来实现灵活使用,当大量使用时需要支付高昂的IP 核使用费。 随着DDR SDRAM 的使用的日益广泛,设计专用的存储器控制器电路成为了必然。实现高 速存储器控制器的设计的关键就是存储器数据通道的设计。本文首先对存储器控制器电路进 行了功能划分,建立了读写时序模型,对高速数字电路设计中应该注意的问题进行了阐述, 根据读写时序模型设计设一种高速的存储器数据通道,对结果进行了分析。
2 DDR SDRAM 控制器的整体结构
存储器控制器的功能是监督控制数据从存储器输入/输出数据,并对数据的完整性进行 分析检测。控制器由六个模块构成:即命令接口模块、命令生成模块、刷新控制模块、初始 化模块、控制模块、数据通道。其中控制模块包含一个状态机,用于控制系统的命令发送、 数据传递等操作;数据通道为DDR 与主机之间提供数据接口,在读写命令发出后处理数据。 读写操作不同之处在于写操作时DDR 控制器需要产生数据选通信号DQS。在写操作时, DQS 在数据的中间变化,并且存储器发送和接收数据速率是其他部分的两倍,这就要求数 据通道中有异步电路的存在,所以速数据通道决定了整个存储系统的运行效率。
3 DDR 读写时序建模
存储器操作主要包括预充电、刷新、行激活、读写等,各个操作之间相互配合使用。直 接使用数据通道的操作是读写操作。下面利用时序逻辑方程[2]来对读写时序进行分析。
3.1 时序逻辑方程的概念
数据通道是一个时序电路,而一般的逻辑方程无法表示时序的关系,可以借用数字信号处理离散时间信号的表示方法来建模。系统使用统一的时钟,时序方程用CK(n)表达式如下:
k 表示时钟的上升沿,相应的k+0.5 就表示时钟的下降沿;CK(n)表示一个从0 开始的 值为单位1 地阶跃信号。CK(n-1)表示时钟推后一个时钟周期,CK(n-n0)-CK(n-n1)表示从第 n0 个时钟上升沿开始到第n1 个时钟上升沿结束的一个矩形信号。
3.2 读写时序建模
读写时序建模就是对读写命令与数据流动之间关系建立时序模型。DQ 是存储器与控制 器之间的双向数据总线。
(1) 读时序建模
DDR SDRAM 控制器进行读操作时,主机对存储器控制器发出读命令;控制器采样到 该命令后按照时序分别给存储器行激活、读(列)命令,按照初始化时设置的延迟时间等待 数据输出;等待指定时间以后,数据出现在DQ 总线上;再经过特定的传输路径,数据通过 DATAOUT 输出。读操作过程的时序方程如下(BL:突发长度,可选2、4、8;tRCD:行选 到列选延迟;tCAS:读数据命令到数据有效延迟):
由于在DDR 数据通道内部要进行时钟域的转换,并且根据CL(CAS Latency)的不同,需要将数据的输出调整到时钟的上升沿对齐,因此数据的输出存在延迟。设这个延迟为DL。
(2) 写时序建模
DDR SDRAM 控制器进行写操作时,主机对存储器控制器发出写命令,同时输出数据 和地址;控制器采样到该命令和数据,按照时序分别给存储器行激活、写(列)命令;再经 过一个特定的周期,数据出现在DQ 总线上。写过程的时序方程如下:
有效的写入数据是在控制器写命令发出后1±0.25 个系统时钟的时刻后出现在DQ 端。
4 高速数据通道模块设计
数据通道模块为 DDR SDRAM 和主机之间提供了数据接口。DATAOUT 为数据通道向主机发送数据端口,DATAIN 为主机向数据通道写入数据端口。
4.1 高速数据通道电路设计中应注意的问题
(1) 亚稳态特性
数据通道是个多时钟系统,这就要求数据正确地从一个时钟域传输到另一个时钟域。不 同时钟域信号传输首先遇到的是亚稳态产生同步失败问题。当数据和时钟边沿非常接近时, 由于触发器都会有建立和保持时间的要求,在这个时间窗口内,任何输入信号的变化都可能 导致输出的亚稳态。解决办法是将两个(或多个)触发器串联,用同一个时钟驱动。N 个触 发器发生错误的概率是PN,其中P 是一个触发器发生亚稳态错误的概率,标准的方法是采 用至少两个触发器(有时是三个)进行同步串联。
(2) 门延迟
对一个具有M 级的逻辑链,近似可以得到通过整个链的总延时:
公式(11)中,ti 表示每部分的延时,取决于门的类型(即非门,与非门,等等)和它 的尺寸,以及在链中到下一个门的链路上的延迟。整个链的总延迟的大小决定了电路能够运 行的速率,在设计高速数字电路时,要尽量减少两寄存器中间组合逻辑的大小。
(3) 级数的优化
当设计中出现长线时,由于线上寄生电容的存在,电路中的建立、保持时间增加,导致 总的逻辑路径延迟过大。在设计时可以增加路径传输级数,通过插入反相器来得到较小的路 径延迟,但要注意,由于添加的反相器使电路的寄生延迟增加反而会抵消一些性能。
(4) 分支情况
当一个逻辑门驱动两个或更多的门时,数据路径出现分支,要驱动多个负载,仅使用一 个驱动能力大的门不能解决问题,通常采用驱动树的结构是将连线分成几段较短的长度,并 且提供尺寸合理的缓冲器。时序电路里,可以采用多个寄存器构成一个驱动器树的方法,但 要注意,信号的时序关系非常重要。
4.2 读数据通道设计
系统时钟经过数字 PLL 倍频生成局部时钟CLKX2。存储器按照经过的局部时钟CLKX2 发出数据,数据经过读数据通道传递到DATAIN 端,主机按照系统时钟CLK 接收数据,数 据的发送频率降为原来的一半,位宽提高一倍。由于CL 的不同,存储器可能从时钟的下降 沿输出数据,这就需要根据具体的CL 值调整数据的相位,使数据都是在时钟延的上升沿输 出。由读时序方程,数据通道需要根据tCAS 调整电路结构,从而使DL 取到合适的值。
在 DDR SDRAM 中,根据不同器件,不同的频率,CL 有2.0、2.5、3.0 三种不同的取 值,这就涉及到数据通道中要进行数据相位调整。表1 是对SC_CL 的设置,SC_CL 是对控 制器内部的一个标志寄存器。用SC_CL[0]来控制通道内部的相位转换。
数据通道的接收端各需要两个触发器来消除亚稳态,触发器工作在频率为2f0,要占用 一个系统时钟。由于内部有一个转换电路,发送端同样也要两个触发器来输出数据,此时触 发器工作频率为f0,这又需要占用两个系统时钟。中间的转换电路在一个时钟内完成相位调 整和数据拼接。根据SC_CL[0]的值来对输出数据的相位进行调整。如图1 为读数据通道原 理图。数据经过数据通道后延迟为CL+DL,分别为6、6、7,这正好与SC_CL[1]的值对应 起来,主机可以通过SC_CL[1]的取值来确定接收数据的时间。
4.3 写数据通道设计
控制器按照系统时钟接在 DATAOUT 端接收数据,经过数据通道,按照局部时钟CLKX2 发送数据到DQ,数据的发送频率升为原来的一倍,位宽降为原来的一半。数据和数据掩模 DM 也必须同时给出,DM 的流入流出过程与数据的过程类似,可参考类似数据流通过程的 设计。存储器接收数据是参考数据选通信号DQS,DQS 与输入存储器的数据有90°的相位差,选用T 触发器进行设计。DQM 与DQS 的设计类似。
控制器收到主机的命令后,需要发出一个 OE 使能信号,此信号用来产生恰当的DQS, 并将数据总线DQ 导通。由于OE 要驱动多个负载,采用驱动器树的结构进行设计,这需要 对OE 的发出时间进行相应的配置。例如主机在n 时刻发出写命令,tRCD=3,则n+1 时刻发 出激活命令,激活一个行,n+2 时刻发出OE 使能,n+3 时刻发出写命令给DDR SDRAM, n±4.25 时刻在数据出现在数据线DQ 上,而DQS 的上升沿跳变出现在个数据的稳 定值期间,然后从此开始以2f0 的速率变化。
与读数据通道类似,数据在进入写数据通道的前后,两边各需要两个触发器来消除亚稳 态问题,并且要尽量减少组合逻辑。图2 是写数据通道的RTL 电路原理图。
5 结果分析
本设计采用 ModelSim6.1F 仿真工具进行了功能仿真;用QuartusⅡ7.1 软件进行综合、 时序分析、布局布线;用ModelSim 进行后仿真,仿真结果正确。选用Cyclone III FPGA Starter Kit 开发板对本文提出的电路进行调试。调试结果显示,本文提出的电路可以稳定工作,设 计满足JESD79E 标准的要求,可以用于实际应用中。
Altera 公司在文献[3]中提供了一个数据通道的参考设计,并将此参考设计与本文提出的 电路用QuartusⅡ软件进行综合。选用CYCLONE III 系列的EP3C25F324C6 器件作为应用器 件。表2 给出了综合表,其中Altera Data-path 为Altera 公司的参考设计电路,My Data-path 为本文提出的电路。从表2 可以看出,本文提出的电路比Altera 公司给出的参考设计电路在 面积上不占优势,但在速度方面优势明显。
6 结束语
本文根据 JESD79E 标准的描述,对存储器控制器进行了模块划分,找出与控制器数据 通道相关的操作,然后以时钟为坐标,建立信号的时序模型,列出读写时序方程,按照 时序和电路特性的要求设计出了读写数据通道电路。从结果分析可以看出,设计出的电路有着很高的性能,而且可以参数化配置,可以作为一个IP 用于DDR SDRAM 控制器的设计当 中。下一步将以此为基础,联系项目组正在研究的环网NoC 结构,开发出应用于此结构的 DDR SDRAM 存储器控制IP 核。
本文作者创新点:根据 DDR SDRAM 数据存取的特点,提出了一种新的高速数据通道 电路,在读数据时中可实现参数化配置。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。