基于DSPVXI总线动态存储器设计_第1页
基于DSPVXI总线动态存储器设计_第2页
基于DSPVXI总线动态存储器设计_第3页
基于DSPVXI总线动态存储器设计_第4页
基于DSPVXI总线动态存储器设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于DSP的VXI总线动态存储器设计张可立1 , 陈后金1, 马恩云2(1. 北方交通大学 电信学院,北京 100044; 2.北京航天测控公司,北京 100830) 摘要:本文主要解决在VXI总线模块上实现大容量动态存储器的技术难题,介绍了利用可编程逻辑器件实现数字信号处理器(DSP)与同步动态存储器(SDRAM)之间的数据读取逻辑的设计、编程思想,以及必要的硬件连接,编程方法等。 关键词:VIX总线;DSP;动态存储器;接口 随着测控技术的不断发展,将先进的计算机技术、通信技术和电子仪器技术融为一体的VXI总线系统,越来越被广泛的应用于国防、电子、航空航天等各个领域,而为了准确、即时的处理

2、VXI系统采集的数据,就需要在系统中设计大容量的存储区,而通常的静态存储器由于价格等方面的原因,很难被大规模的应用。动态存储器SDRAM可以很好的解决这方面的矛盾,但是由于其自身的特点,对它的访问需要有专门的控制逻辑来实现特殊的读写时序,并且由于SDRAM需要定时刷新,所以刷新电路的设计也是必须的。本文就此讨论一下如何利用可编程器件设计DSP与SDRAM的接口问题。1 SDRAM的特点介绍1.1 概述SDRAM(SYNCHRONOUS DYNAMIC RANDOM ACCESS MEMONY),同步动态存储器,它是一个具有高速同步接口的DRAM存储器,因为其I/O口与输入时钟同步,对于设计者而

3、言,比较起DRAM,它可以建立起很高的传输带宽和更加简单的时序。其特点如下:l 同步控制:所有输入、输出都与输入时钟同步。l 分段输入、输出:只需给出一个地址就可以并行的(或连续的)读出或写入地址空间。l 可编程的分段宽度:分段宽度的可编程能力允许设计者在不同的系统中使用同一块SDRAM,其分段宽度可以允许在普通操作中被改变。l 双簇(多簇)结构:SDRAM允许同时打开两个(或多个)DRAM的行地址以对其进行操作,这样一个无缝隙的100MHZ的数据传输速率可以读写整个的存储器,具有双簇结构就可以实现对一个簇进行读的同时对另外一个簇进行充电操作。l 自动刷新和自刷新:由于DRAM(SDRAM)是

4、利用电容来存贮数据的,每隔一端时间电容就会放电,其存储的数据就会丢失。因此SDRAM就要定时的给电容充电,以保持其数据不被丢失,这个过程就叫刷新。刷新分为两种,自动刷新和自刷新,自动刷新指CAS在RAS之前进行刷新。自刷新允许SDRAM自己产生刷新必须的控制信号来刷新。在设计中一般采用自动刷新的方式,设计一个定时器,每隔一定时间就对SDRAM发出一个刷新请求信号,当SDRAM处于空闲状态时,就会自动进行存储器的刷新操作。1.2 SDRAM的复合地址 为了减少引脚数目,通常SDRAM都采用复合地址的设计方法。SDRAM每一个存储单元的地址由三个参数唯一确定:簇数(BANKn)行数(row),列数

5、(column),如要对一个地址单元进行操作,先选定所在的簇,在选定所在行和列,这样一个存储单元就被确定了。以下列出4M64bit的SDRAM的地址线复用表。 表1 Sdram AddressRow AddressColumn AddressSD_A0A8A0SD_A1A9A1SD_A2A10A2SD_A3A11A3SD_A4A12A4SD_A5A13A5SD_A6A14A6SD_A7A15A7SD_A8A16SD_A9A17SD_A10A18SD_A11A19BANK0A20A20BANK1A21A21 如表1所示,BANK0,BANK1为SDRAM的簇选择信号,共有4簇,ROW为行选择,C

6、OLUMN为列选择。当地址有效时,SDRAM控制器先将A8-A19放到SD_A0到SD_A11上,并且BA0、BA1有效,SDRAM读取的是行地址,经过一定时间的延迟,控制器再将A0-A7放到SDRAM的地址线上,这时其读取的是列地址,再加上BANK地址,这样一个存储单元的地址就确定了。SDRAM的地址复用和其他类型存储器有很大分别,也是SDRAM控制设计的一个难点,必须有严格的时序要求,否则将会引起存储的混乱。1.3 SDRAM的命令函数表2描述了SDRAM一些常用的命令,下面就其完成的功能结合设计做一简单的介绍。表2CommandCSRASCASWEDQMADDA10/APBAMode R

7、egister Set0000OP CODENo Operation10111Bank Active0011RAVRead/Read withAutoprecharge0101CA0/1VWrite/Writewith Autoprecharge0100CA0/1VPrecharge All Bank00101PrechargeSelected Bank00100VAuto Refresh0001l Mode Register Set:模式寄存器设置,是指对SDRAM的工作方式做一定义,对寄存器的设置,可以在每次系统启动时,也可以在每次存取之间进行,当SDRAM掉电时,系统重新启动后必须重写模

8、式寄存器。其空间安排如下:表3寄存器空间Bit数功能描述M2-M03Burst LengthM31Burst TypeM6-M43CAS LatencyM7-M82Operation ModeM91Write Burst ModeM10,M112ReservedBurst Length 决定当接受到一个读写信号时可以读取的最大的列数目,对于连续读取模式,其值可以为1,2,4,8或整页(full page),当为隔行读取模式是,其值为1,2,4,8。Burst Type 决定读取模式为连续方式还是隔行方式。CAS Latency 决定当一个读信号有效到第一个数值在数据线上有效时之间的间隔延迟时间

9、,延迟时间可以设定为1,2或3个时钟周期。例如:如果延迟时间为m,读信号在n时刻有效,那么数据将在第m+n个时钟信号有效,如果相应的读取时间适合的话,而在m+n-1时刻数据线传送数据。Write Burst Mode 当M9=0时,有M0-M2决定的Burst Length适合于读和写两种操作。而当M9=1时,Write只能读取单一的单元,而不能支持块操作。l Bank Active 选择SDRAM某个块中的某一行,读写命令只能在此命令之后对已经选择了的块进行操作,由命令真值表可以知道,此命令将存储单元的块地址(BANK ADD)和行地址(ROW ADD)进行了设置。l Read and Re

10、ad with Auto Precharge 此命令是在Band Active命令之后,开始进行数据的读操作,从真值表中可以知道,在此命令中,设置了存储单元的列地址(COLUMN ADD),这样一个存储单元的地址就由这两个命令唯一的确定了下来,而SDRAM的地址线A10由来表明是READ还是READAP(Read with Autoprecharge)命令。l Write and Write with Auto Precharge 此命令同上一条命令相似,表明开始进行数据的写操作,唯一不同是WE信号为低。2 SDRAM与DSP的接口设计一般SDRAM和DSP的接口采用FPGA或CPLD等可编程

11、逻辑器件来完成其功能。接口器件主要的任务是: (1)接受DSP的命令信号和地址,因为DSP的数据地址为24位,包含了分行和列地址,SDRAM无法直接读取其地址,所以接口逻辑必须将地址分为行地址和列地址分别送给SDRAM,以确定所要进行操作的具体地址。(2)传送SDRAM的应答信号给DSP控制器,同时控制DSP与SDRAM之间的等待周期。(3)负责产生刷新信号,当检测到SDRAM处于空闲状态时,刷新SDRAM。 A0-A23SDRAM控制器TMS320VC33 STRB R/W RDY CSSDRAMFIFO RAS C AS D0-D63 WE BA0/BA1DA0-DA11 图1 Pre-c

12、hargeSet ModeRegisterAuto RefreshIdleBank ActiveWriteRead 图1为DSP与SDRAM的接口逻辑框图,FPGA负责DSP与SDRAM的接口逻辑,而DSP负责FIFO与SDRAM之间的数据传送控制。实际上,控制器可以用一个状态机来描述,当SDRAM上电以后,必须先对其进行初始化,即先对每一个存储单元进行充电,之后SD-RAM自动进入空闲状态(IDLE),此后SDRAM可进入存取操作或进入自动刷新状态。一旦刷新被执行,控制程序将写模式寄存器,将读/写模式参数写入寄存器。而一旦进入读写操作,控制器发出ACTI-VEROW 命令,同时写入行地址。当

13、BANK有效后,通过执行REA-D/WRITE 或者EADAP/ WRITEAP命令, 并根据模式寄存器中的参数进行存储器的存取操作,当操作完成后,自动进入空闲状态。图2描述了SDRAM的状态转移情况。 由输入命令驱动的循环 由SDRAM自动产生的循环3 接口电路的模块设计 如图3所示,接口模块可细分为4个子模块,每个子模块完成其特定的功能,其中U1为片选控制模块,地址线的最高两位A23,A22作为接口的片选信号,STRB为DSP的外部选通脉冲信号,当此三个信号同使接口芯片 图2 开时有效时,U1产生MATCH信号,STRBMATCHA23-A22 FROM DSPRST CSCLK RASA

14、21-A0 CSA WE BA0COMM2,0 BA1 DA0-DA11 U1 RST REFCLK RST COMM2,0CLKMATCH DQMREF WE RDY U4 U2 U3 图3 始工作。U2为自动刷新计数器模块,每隔一定时间产生一个刷新请求脉冲,注意SDRAM的刷新周期为64ms,但是计数脉冲不能每64ms才产生一次,因为有可能其产生的刷新请求得不到响应,所以应该设计使计数周期短些,才可以保证SDRAM被刷新。U3为控制模块主要功能是根据不同的输入命令来产生对SDRAM的命令信号COMMAND2.0,如表4表4CommandNopMode Set AutoRefreshPrec

15、hargeBank ActiveWriteReadNum000001010011100101110 所示。同时对输入命令的优先级进行判断,防止相互之间的冲突,例如,当正在读写时, 就不能同时产生刷新命令, 而当正在刷新时,读写命令就要加入几个等待周期后在进行操作。U4为模块与SDRAM的接口,主要任务是根据命令COMMAND2.0对SDRAM进行控制,同时在数据读写时,对地址线上来的DSP数据读写地址进行分解,分别读出BANK0/1,ROW,COLUMN地址,并将其保存在片内寄存器中,再根据命令分别送入SDRAM的地址线。4 结束语此接口控制器设计的难点在于对于命令和时序的控制,比如由于DSP与SDRAM的频率不同,当DSP对SDRAM进行访问时,必须加入等待周期,而如果SDRAM正在刷新时,则需要假如更多的等待周期,因此,要解决的最重要的问题就是把DSP总线的访问时序和SDRAM的访问时序正确的同步起来,以实现正确的数据存储操作。参考文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论