Calendar
Placard
Category
Latest Entries
Latest Comments
Last Messages
User Login
Links
Information
Search
Other


Welcome to my blog!
  基于FPGA的sdram控制器Verilog设计(1)
 

  曹华,邓彬

(电子科技大学 电子工程学院 四川 成都 610054

摘要SDRAM的容量大、速度快,许多系统的大容量存储器都采用SDRAM来实现,可是SDRAM控制逻辑较复杂,使用不方便。文中简单介绍了SDRAM的特点和工作原理,重点提出一种基于FPGA的通用型SDRAM控制器的设计方法来解决SDRAM操作控制复杂、使用不便的问题,并用Verilog给予实现,给出了仿真结果,仿真结果表明使用该方法设计实现的控制器能够使系统方便、可靠的对SDRAM进行操作。

关键词SDRAMVerilog;状态机

The   design  of  SDRAM controller  based  on FPGA

CAO Hua, DENG Bin

( College of Engineering ,UESTC,Chengdu,610054,china)

Abstract: Because of huge capacity and high speed, SDRAM is used in many systems to store a large amount of data. But it is complicated to control SDRAM. So, after simply introduces the characteristics and working principle of the SDRAM, this paper presents a design methods based on FPGA that concern the SDRAM' s controller which will conveniently control the SDRAM. The simulation result identifies that FPGA system will control the SDRAM in a easy and dependable way, using the SDRAM controller.

Keywords: SDRAM; Verilog; State Machine

引言在基于FPGA的图象采集显示系统中,常常需要用到大容量、高速度的存储器。而在各种随机存储器件中,SDRAM的价格低、体积小、速度快、容量大,是比较理想的器件。SDRAM的控制逻辑较复杂,对时序要求也十分严格,使用很不方便,这就要求有一个专门的控制器,使系统用户能很方便的操作SDRAM。为此,本文提出了一种基于FPGASDRAM控制器的设计方法,并用 Verilog给于实现,仿真结果表明通过该方法设计实现的控制器可以在FPGA芯片内组成如图1所示的SDRAM接口,从而使得系统用户对SDRAM的操作非常方便。

1   SDRAM简介

1.1  SDRAM器件的管脚分类:

(1)控制信号:包括片选,时钟,时钟使能,行列地址选择,读写选择,数据有效。

(2)地址:时分复用管脚,根据行列地址选择管脚,控制输入的地址为行地址或列地址,而在初始化时用于传送数据给SDRAM内的模式寄存器。

(3)数据: 双向管脚。

1.2  SDRAM的工作特性

通常一个SDRAM中包含几个BANK,每个BANK的存储单元是按行和列寻址的。由于这种特殊的存储结构, SDRAM有以下几个工作特性:

1.2.1  SDRAM的初始化

SDRAM在上电100us-200us后,必须由一个初始化过程来配置SDRAM的模式寄存器,模式寄存器的值决定着SDRAM的工作模式。

1.2.2  SDRAM存储单元访问

为减少I/O引脚数量,SDRAM复用地址线,所以在读写SDRAM时,先ACTIVE命令激活要读写BANK,并锁存行地址,然后在读写指令有效时锁存列地址。一旦BANK被激活后只有执行一次预充命令后才能再次激活同一BANK

1.2.3  SDRAM刷新和预充

SDRAM的存储单元可以理解为一个电容,总是倾向于放电,因此必须有定时的刷新周期以避免数据丢失.刷新周期可由(最小刷新周期 ÷时钟周期)计算获得。预充,对BANK预充电或者关闭已激活的BANK,可预充特定BANK也可同时作用于所有BANKA10BA0BA1用于选择BANK

1.2.4  SDRAM 的操作控制

SDRAM的具体控制命令由一些专用控制引脚和地址线辅助完成。CS/RAS/CAS/WR在时钟上升沿的状态决定具体操作动作,地址线和BANK选择控制线在部分操作动作中作为辅助参数输入。由于特殊的存储结构,SDRAM操作指令比较多,不像SRAM一样只有简单的读写,其主要的指令字见表2

2 sdram控制器的设计实现

2.1  总体设计框图和外部接口信号说明
     SDRAM控制器的结构组成及各模块接口信号如图2所示,包括系统控制接口模块、CMD命令解析模块、命令响应模块、数据通路模块共四个模块。系统控制接口模块用于接收系统的控制信号,进而产生不同的CMD命令组合,CMD命令解析模块用于接收CMD命令并解码成操作指令,命令响应模块用于接收操作指令并产生SDRAM的操作动作,数据通路模块则用于控制数据的有效输入输出。

SDRAM控制器与外部的接口示意由图1给出,控制器右端接口信号均为直接与SDRAM对应管脚相连的信号,此处不做介绍。控制器左端的接口信号为与FPGA相连的系统控制接口信号。说明如下: CLK133为系统时钟信号,RESET_N为复位信号,ADDR为系统给出的SDRAM地址信号,DAIN是系统用于写入SDRAM的数据信号, FPGA_RDFPGA_WR为系统读、写请求信号(1有效,0无效),SDRAM_FREESDRAM的空闲状态标示信号(0空闲,1忙碌);FDATA_ENABLE是控制器给系统的数据收发指示信号(0时无法对SDRAM进行数据收发,为1时,若是系统读操作,则系统此时可从DAOUT接收SDRAM的数据,若是写操作,则系统此时可以通过DAIN发送数据给SDRAM);

  SDRAM控制器设计的状态机实现原理如图3所示,包含了9个状态,其中从prechargeMode setSDRAM上电后的初始化过程。其余状态为SDRAM的正常读写及刷新操作过程。

[ 阅读全文 | 回复(2) | 引用通告 | 编辑

  Post  by  jearome 发表于 2006-7-3 8:37:00
  父母
  父母
是我们今生最大的债主
这辈子
都无法偿还



[ 个人主页 | 引用 | 返回 | 删除 | 回复

  Post  by  tianniaoboy发表评论于2007-6-3 4:50:00
  Re:基于FPGA的sdram控制器Verilog设计(1)
 

有关框图在altera 的SDR SDRAM Controller White Paper上

[ 个人主页 | 引用 | 返回 | 删除 | 回复

  Post  by  jearome发表评论于2006-7-3 8:44:00

发表评论:

    大名:
    密码:
    主页:
    标题:
Powered by Oblog.