一种简易SDRAM 控制器的设计方法

时间:2022-08-22 07:46:23

一种简易SDRAM 控制器的设计方法

摘 要:针对SDRAM操作繁琐的问题,在对SDRAM存储器和全页突发式操作进行研究的基础上,提出一种简易SDRAM控制器的设计方法。该设计方法充分利用全页式高效率存取的优点,对SDRAM进行配置、全页突发式读写时,操作方便。在实现SDRAM的快速批量存储方面,具有良好的应用价值。

关键词:SDRAM;全页突发式操作;状态机;FPGA

中图分类号:TP274 文献标识码:B 文章编号:1004373X(2008)1601803

Elegant Design Approach of SDRAM Controller

LIN Zhihuang,XIE Mei

(School of Electronic Engineering,University of Electronic Science and Technology of China,Chengdu,610054,China)

Abstract:An elegant approach to SDRAM controller design is presented in this paper.Based on the deep research into SDRAM memory and full page burst operation,this novel technique addresses the problem caused by the complicated manipulations for SDRAM.By means of making full use of the advantage of full page burst operation in highefficiency access,simplified manipulations for SDRAM configuration and full page burst access are obtained.The design ideas discussed in this paper are well applicable to implementing high speed,highcolumn SDRAM access.

Keywords:SDRAM;full page burst operation;finite state machine;FPGA

在基于FPGA的系统中,因FPGA 本身内部的RAM空间有限,常需要与外部较大容量的高速存储器配合使用。而在各种随机存储器件中,SDRAM的价格低廉、密度高、数据读写速度快的优点,是比较理想的选择。但由于SDRAM的控制逻辑比较复杂、时序要求高等特点,使用很不方便,这就要求设计一种简单易操作的软核,以方便开发者对SDRAM操作控制。为此,本文提出一种基于FPGA的SDRAM控制器的软核设计方法,实现全页突发式读写,从而使对SDRAM的快速存取操作变得非常方便。

1 SDRAM简介

1.1 SDRAM的特点

SDRAM器件的管脚分为控制信号、地址和数据3类。一般情况下SDRAM中包含2~4个BANK,每个BANK的存储单元是按行和列寻址的。SDRAM相对于其他存储器件有以下几个工作特性:

(1) 需要配置SDRAM的模式寄存器以决定着SDRAM的工作模式,该工作模式规定了突发长度、突发传输方式、CAS延迟时间、运行模式等;

(2) SDRAM地址线复用,由行地址和列地址共同组成一个完整的访问地址;

(3) 需要有定时的刷新周期以避免数据丢失;

(4) 对SDRAM的具体控制命令由一些专用控制引脚完成。CS,RAS,CAS和WR在时钟上升沿时的状态决定具体操作动作。

1.2 全页突发式操作

要充分利用SDRAM的性能,提高读写SDRAM的速度,在进行大量的数据存储与读取时,全页突发式操作是个良好的选择。所谓的突发动作是指从内存中连续的地址读写有限的数据,在一个SDRAM设备的频率周期中,可以读写与时钟个数近似等量的数据。

操作时BANK 激活后可以进行存储器访问。存储器读写命令锁存列地址,写操作可以单周期完成,读操作的数据在延迟CL(CAS Latency)个周期后才输出到总线。随机读单个数据所需周期数至少为1+CL。因此,随机读操作会大大降低系统效率。虽然单指令多输出的突发读数据输出仍要延迟CL个周期,但由于一次突发最多可以到连续的整页存储空间。对于列宽度为9的SDRAM存储器,整页输出的总周期数为512+CL。平均单个数据所需周期 (512+CL)/512.1对系统效率的降低几乎可以忽略。整页访问需要较大容量高速缓存和复杂的控制逻辑以保持较高随机访问命中率,设计过程中有严格的时序要求。

2 系统总体设计框图和状态转移图

2.1 系统模块的设计

SDRAM控制器与外部FPGA主控制器及SDRAM器件的接口示意图由图1给出,控制器左右端接口信号分别为与FPGA主控制器和SDRAM 器件对应管脚相连的信号,右端信号为SDRAM器件的常用信号,此处不做多余介绍。控制器左端的接口信号为与FPGA 主控制器相连的系统控制接口信号,其中,CS为模块使能信号;CLK为系统时钟信号;RESETN为复位信号;READN为读信号;WRITEN为写信号;CONFIGN为配置信号;ACK为系统反馈信号;ADDR为系统给出的SDRAM 地址总线信号;LENGTH为突发读写的数据长度;DATAIN 是系统用于写入SDRAM的数据总线信号;DATAOUT 是系统用于读出SDRAM的数据信号;DM为数据掩模信号。

在FPGA平台上设计的SDRAM控制器主要由3个模块组成,包括系统控制模块、刷新模块、数据通路模块。

(1) 系统控制模块检测FPGA主控制器产生的控制信号,对配置请求、刷新请求和读写请求进行仲裁,产生配置响应、刷新响应和读写响应,进而产生不同的接口控制接口命令和存储器访问地址等,以对SDRAM器件进行相应的操作;

(2) 刷新控制模块产生周期性的刷新命令请求。该模块计数器的值根据所用的SDRAM器件参数进行设定,根据不同的SDRAM固化的不同的值。当计数器减至0时,会产生一个刷新请求信号REFREQ,当系统控制模块接收对该信号做出响应并执行刷新操作后,该模块会接收到一个反馈信号ACK以启动计数器重新开始计数;

(3) 数据通路模块则用于控制数据的以恰当的时序进行有效输入输出。 该模块为FPGA主控制器和SDRAM器件之间提供了数据通道。当突发式写操作状态时,数据由DATAIN总线进入模块;当突发式读操作状态时,由DATAOUT总线输出。

2.2 系统状态转移图

SDRAM控制器设计的状态机比较复杂,这里将状态机简化为5个主要的状态如图2所示:空闲状态、配置状态、自我刷新状态、突发式读操作状态和突发式写操作状态。系统上电后,进入空闲状态。通常情况下,在具体操作SDRAM时,首先进行初始化配置,即写模式寄存器,以便确定SDRAM的CAS潜伏期、突发传输模式、突发长度等工作模式。系统检测到CONFIGN信号拉低时,进入配置状态,当配置完成时,以ACK信号的形式反馈配置完成信息CfgEnd,FPGA主控制器接收到ACK信号后,拉高CONFIGN信号,停止对SDRAM的配置。

2.3 系统突发式读写操作时序设计

系统对SDRAM器件的突发式读写操作方面,先讨论突发式读操作,当系统控制模块检测到读命令rCmd时,即检测到READN信号为低电平时,系统状态开始进入突发式读状态,先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址和行地址。等待大于tRCD(RAS到CAS的延迟值)时钟后,发出读命令。tCL(CAS延迟值)时钟周期后,读出数据依次出现在数据总线上。在读操作的最后,又等待tRP个时钟周期,向SDRAM发出预充电(PRECHARGE)命令以关闭已经激活的页。系统突发式读操作的状态转移图如图3所示。

突发式写操作要稍微简单些,系统控制模块检测到写命令wCmd时,即检测到WRITEN信号为低电平时,系统状态开始进入突发式写状态,先发出BANK激活命令,同时驱动写地址到总线上。等待大于tRCD个时钟周期后,发出写命令,同时驱动第一个写数据到数据总线DQ上。写操作完以后,等待tRP个时钟周期,向SDRAM发出预充电命令以关闭已经激活的页。系统突发式写操作的状态转移图如图4所示。

在全页式突发式读写模式下,一般采用预充电结束一次突发式读写操作,而且可以通过系统控制模块产生的使能信号OE控制数据路径模块的数据的输入/输出。同时,在设计的状态转移的过程中,必须仔细考虑控制信号、数据总线和地址总线等的时序问题。

3 实现及应用

该设计方法采用VerilogHDL 语言实现代码,已通过ModelSim进行了功能仿真,并在Altera公司的FPGA Cyclone EP1C6Q240C8和HINIX公司的HY57V561620C SDRAM存储芯片上得到应用,在硬件电路上工作良好,能够使用SDRAM作为FPGA的扩展存储空间。在Quartus Ⅱ环境下编译综合,仅占用241个逻辑单元。

4 结 语

硬件开发语言由于其灵活性和可移植性强等特点,很大程度上减少了集成电路的设计风险,同时也缩短了开发周期。VerilogHDL由于其简单、直观并富有效率,成为数字系统设计者的首选语言。本文介绍的SDRAM控制器,基本思想是将SDRAM繁琐的操作简单化,实现SDRAM的快速读写操作,很大程度上方便了SDRAM存储器件的使用。

参 考 文 献

[1]Altera Inc.SDR SDRAM Controller While Paper[Z].Altera Company,2003.

[2]Michael Ciletti D.Verilog HDL高级数字设计[M].张雅绮,李锵,译.北京:电子工业出版社,2005.

[3]沙燕萍,曾烈光.SDRAM接口的VHDL设计[J].计算机应用,2000(6):2324.

[4]郭芳,熊余.DDR SDRAM在高速数据采集系统中的应用\.现代电子技术,2007,30(24):4748,54.

作者简介 林志煌 男,1983年出生,福建莆田人,电子科技大学硕士研究生。研究方向为FPGA和DSP的开发和应用。

解 梅 女,1955年出生,四川成都人,电子科技大学博士生导师。研究方向为图像处理。

上一篇:ATS(自动测试系统)中系统不确定度的处理 下一篇:基于信息钮扣的智能公交投币箱的设计