《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 多路读写的SDRAM接口设计

多路读写的SDRAM接口设计

2008-12-05
作者:赵丕凤 徐元欣 赵 亮 李式巨

  摘  要: 介绍SDRAM的主要控制信号" title="控制信号">控制信号和基本命令时序,提出一种应用于解复用" title="复用">复用的支持多路读写的SDRAM接口设计,为需要大容量存储器的电路设计提供了新思路。 

  关键词: SDRAM  解复用  接口 

 

  存储器是大容量数据处理电路的重要组成部分。随着数据处理技术的进一步发展,对于存储器的容量和性能提出了越来越高的要求。同步动态随机存储器SDRAM(Synchronous Dynamic Random Access Memory)因其容量大、读写速度快、支持突发式读写及相对低廉的价格而得到了广泛的应用。SDRAM的控制比较复杂,其接口电路" title="接口电路">接口电路设计是关键。 

  本文首先介绍SDRAM的主要控制信号和基本命令;然后介绍接口电路对SDRAM的主要操作路径及操作过程,应用于解复用的SDRAM接口电路的设计方法;最后给出了实现结果。 

1 SDRAM的主要控制信号和基本命令 

  SDRAM的主要控制信号为: 

   

  SDRAM的基本命令及主要控制信号见表1。 

 

 

  所有的操作控制信号、输入输出数据都与外部时钟同步。 

2 接口电路对SDRAM的主要操作路径及操作过程 

  一个完备的SDRAM接口很复杂。由于本文的SDRAM接口应用于解复用,处理的事件相对来说比较简单,因而可以简化设计而不影响性能。接口电路对SDRAM的主要操作可分为:初始化操作、读操作、写操作、自动刷新操作。 

  (1)初始化操作 

  SDRAM上电一段时间后,经过初始化操作才可以进入正常工作过程。初始化主要完成预充电、自动刷新和模式寄存器的配置。操作过程如图1所示。 

  (2)读写操作" title="读写操作">读写操作 

  读写操作主要完成与SDRAM的数据交换。读操作过程如图2所示,写操作过程如图3所示。 

  (3)刷新操作 

  动态存储器(Dynamic RAM)都存在刷新问题。这里主要采用自动刷新方式,每隔一段时间向SDRAM发一条刷新命令。刷新过程如图4所示。 

 

 

3 接口电路的设计 

  (1)解复用电路 

  本解复用电路主要完成将1路高速数据流解复用为4路数据流,其结构框图如图5所示。1路数据流进入解复用器后,经过SDRAM缓冲,解复用为4路数据流。 

 

 

  由于要解复用为4路数据流,为了充分利用时隙,满足高速的要求,采用4个bank的SDRAM,各路数据缓冲对应不同的bank。为简化设计,数据流1的缓冲区定为bank0,数据流2的缓冲区定为bank1,数据流3的缓冲区定为bank2,数据流4的缓冲区定为bank3。对于每路数据实际上是以高速率集中写入,然后以低速率均匀读出。 

  由于进行的是解复用,因此写入的数据只有1路,但是有可能4路数据同时都要读出。所以对于4路数据流,其读写地址和读写使能信号是分开的。 

  (2) SDRAM接口电路的时序控制 

  高速数据流的速率为3M字节/秒,采用的系统时钟为20倍的字节时钟。送入SDRAM的时钟为60MHz系统时钟。在一个字节时钟内对SDRAM的操作最多有5次(1次读,4次写),而且为了满足刷新的要求,每个字节时钟进行一次刷新操作。根据SDRAM的时序要求,这样的操作是难以实现的。因而要通过多bank操作,尽量做到时分复用来实现。图6给出了在一个字节时钟周期" title="时钟周期">时钟周期内数据流1进行读写操作,其它3路数据进行读操作的命令排序时序图。可以看出通过多bank操作,时分复用,在20个系统时钟节拍内所需的读写操作命令刚好很紧凑地排开。 

 

 

  一个字节时钟内对SDRAM读写操作是随机的,这与数据流的复用比例有关。为了满足时序,根据上面的说明,需要把一个字节时钟周期内对SDRAM的命令合理排序,然后按照排好的顺序执行命令。这样就需要把一个字节时钟周期内对SDRAM的操作进行缓存,然后在下一个字节时钟周期内进行排序、与SDRAM命令相对应、将命令译码产生相应的控制信号线,完成操作。缓存排序过程如图7所示。 

 

 

  注:命令排序的结果如图6。 

  (3)SDRAM接口电路 

  SDRAM接口电路中需要专门操作缓冲区存储一个字节时钟周期内的操作,以备下一字节时钟的排序。为了方便处理,对每路数据的缓冲操作内容(或读或写)放在一个缓冲区。由于数据流的连续性,排序的同时仍然会有操作要求,因此每路的操作内容缓冲区分为两块。对一块缓冲区写入时,读出另一块缓冲区中的操作内容,进行排序、译码、执行。根据字节时钟切换对缓冲区的读写,从而避免冲突。对于从SDRAM读出的数据,每路数据写入相应的读出数据缓冲区。同样每路的读出数据缓冲区也分为两块,根据字节时钟切换读写。 

  由于一个字节时钟周期内,每路所需的操作最多有2次,每路的操作内容缓冲区只需两个单元(每个单元存储了此次的读写使能信号、写入数据、地址)即可。对于读出数据缓冲区,由于一个字节时钟每路数据最多执行一次读操作,所以读出数据缓冲区只需要一个字节。这两类缓冲区容量都小,因此全部用寄存器来实现,控制简单。 

  整个接口电路的结构框图如图8所示。 

 

 

4 SDRAM接口的实现结果 

  针对MT48LC8M8A2的SDRAM,采用同步设计方法,用Verilog HDL硬件描述语言建立模型,接口电路已经调试通过,规模为2100门(NAND)。整个解复用电路也已经调试通过。 

参考文献 

1 MICRON. SDRAM Data Sheets. http://www.micron.com/ 

2 Tomasz Szymanski. SDRAM controller for real time digital image processing systems. CADSM 2001 proceeding 

3 孙 玉. 数字复接技术(修订本).北京:人民邮电出版社,1991
本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。