摘要:在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 表示每部分的延时,取决于门的类型(即非门,与非门,等等)和它 的尺寸,以及在链中到下一个门的链路上的延迟。整个链的总延迟的大小决定了电路能够运 行的速率,在设计高速数字电路时,要尽量减少两寄存器中间组合逻辑的大小。
来源:维库开发网