多路读写的SDRAM接口设计

发布者:数字舞者最新更新时间:2012-06-06 来源: 21ic 关键字:多路读写  SDRAM  数据处理 手机看文章 扫描二维码
随时随地手机看文章

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

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

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

SDRAM的主要控制信号为:

·CS:片选使能信号,低电平有效;

·RAS:行地址选通信号,低电平有效;

·CAS:列地址选通信号,低电平有效;

·WE:写使能信号,低电平有效。

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

表1 SDRAM基本操作及控制信号

命    令    名    称 CS RAS CAS WE
命令禁止(NOP:Command inhibit) H X X X
空操作(NOP:No operation) L H H H
激活操作(ACT:Select bank and active row) L L H H
读操作(READ:Select bank and column,and start READ burst) L H L H
写操作(WRITE:Select bank and column,and start WRITE burst) L H L L
突发操作停止(BTR:Burst terminate) L H H L
预充电(PRE:Deactive row in bank or banks) L L H L
自动刷新或自我刷新(REF:Auto refresh or self refresh) L L L H
配置模式寄存器(LMR:Load mode register) L L L L

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

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

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

    (1)初始化操作

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

(2)读写操作

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

(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给出了在一个字节时钟周期的内数据流1进行读写操作,其它3路数据进行读操作的命令排序时序图。可以看出通过多bank操作,时分复用,在20个系统时钟节拍内所需的读写操作命令刚好很紧凑地排开。

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

(3)SDRAM接口电路

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

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

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

4 SDRAM接口的实现结果

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

关键字:多路读写  SDRAM  数据处理 引用地址:多路读写的SDRAM接口设计

上一篇:对利用打印口读写存储器24cxx的质疑
下一篇:基于DSP的 USB 口数据采集分析系统

推荐阅读最新更新时间:2024-03-16 13:01

重新定义数据处理的能源效率,具有千个晶体管的二维半导体问世
研究人员创造了第一个基于二维半导体材料的内存处理器,包含1000多个晶体管,这是工业生产道路上的一个重要里程碑。图片来源:艾伦·赫尔佐格/洛桑联邦理工学院 据最新一期《自然·电子学》报道,瑞士洛桑联邦理工学院研究人员提出了一种基于二硫化钼的内存处理器,专用于数据处理中的基本运算之一:向量矩阵乘法。这种操作在数字信号处理和人工智能模型的实现中无处不在,其效率的提高可为整个信息通信行业节约大量的能源。 新处理器将1024个元件组合到一个一平方厘米的芯片上。每个元件都包含一个2D二硫化钼晶体管以及一个浮动栅极,用于在其存储器中存储电荷,以控制每个晶体管的导电性。以这种方式耦合处理和内存,从根本上改变了处理器执行计算的方式。 研究人员
[半导体设计/制造]
重新定义<font color='red'>数据处理</font>的能源效率,具有千个晶体管的二维半导体问世
芯启源:正在考虑数据处理单元芯片在元宇宙中可能机会
近日,芯启源接受上海广播电视台和中国国际电视台采访,交流中国企业“进军”元宇宙所面临的机遇和挑战。 据芯启源官方消息,随着“元宇宙热”的到来,中国电子企业相继“入局”元宇宙市场,陆续开启了AR芯片和VR芯片研发,相关技术不断涌现。芯启源也不例外,正在考虑其数据处理单元芯片在元宇宙中可能等待的机会。 芯启源产品市场部总监胡侃表示,元宇宙最关键的部分是载体和内容这两个部分,载体是指“我们如何构建元宇宙”,也可以理解为是元宇宙的基础设施;而内容,如网络、区块链、AR、VR、AI等一系列的业务功能,这些都需要载体去提供更强的算力。芯启源的DPU正是可极大的增强该类算力。 芯启源CEO、董事长卢笙表示,芯启源DPU数据处理单元芯片通过不
[手机便携]
S3C2410存储器扩展(1)——SDRAM
由于S3C2410是32位处理器(指令一次能够操作32位数据(运算器一次可以处理32位数据);通用寄存器多是32位寄存器;处理器内部数据通道也是32位的;处理器外部数据总线宽度通常是32位的,地址总线宽度只是代表CPU寻址范围大小,与CPU是多少位的无关,也即32位CPU的地址总线不一定是32根的,例如对于s3c2410,每一个Bank对应27根地址线,寻址能力为128MB,全部8个Bank总的寻址能力为1GB),所以为了最大限度的发挥其性能,内存最好也是32位(指数据宽度)的,(当然,在s3c2410的8个bank中,除了Bank0只能选择16/32数据位宽外,其余的7个Bank均可以单独选择8/16/32位宽的存储系统)然而市
[单片机]
S3C2410存储器扩展(1)——<font color='red'>SDRAM</font>
S3C2440开发板中SDRAM \NOR FLASH\ NAND FLASH地址分配
TQ2440 开发板的NOR FLASH是16bit数据位宽,选择从NOR FLASH启动,所以OM0接VDD,OM1接VSS,NOR FLASH接的是ngcs0,也就是接在BANK0.因为选择的NOR FLASH是2Mbyte,所以NOR FLASH的地址范围是0x0000 0000 --- 0x001f ffff。上电时,程序会从Norflash中启动,ARM直接取Norflash中的指令运行。 NAND FLASH 以页为单位读写,要先命令,再给地址,才能读到NAND的数据。NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在8个BANK中分配地址。如果S3C2440被配置成从Nand Flash
[单片机]
s3c2440中断程序(烧录到NORFlash,运行在SDRAM中)
现在正在看韦东山的《嵌入式Linux应用开发完全手册》,看到了中断部分。书上是将程序烧录到NANDFlash中,由于当mini2440板子从NANDFlash启动的时候,会自动将其中的前4KB程序拷贝到CPU内部的SRAM(4KB大小)中,并且将该SRAM的起始地址映射为0x0。所以当中断发生的时候,PC指针指向0x0+offset(如:IRQ就是0x18),可以找到中断服务程序的入口。 但是有4KB的限制,加上U-BOOT一般都烧录到NORFlash中,再将程序搬移到SDRAM中再运行的,恰好手底下有JLINK设备,所以决定写一个烧录到NORFlash,运行在SDRAM中的中断测试程序。 先说一下整体思路:将系统启动时寻找的八个
[单片机]
uboot-2011.12移植到S3C2440(四)——SDRAM初始化之后,卡在board.c的memset不动
按照转载的(四序)中设置SDRAM,并且修改uboot.lds之后,程序走到memset不再运行,无法解决。暂停。这应该是NANDFLASH代码挪窝的问题,说是2410和2440不兼容。研究中。 uboot-2010.09和201112这两个版本的memset不同,在2011.12版本中,将memset写成汇编语言了,这个比较难整,等待N人解决吧。 这一部分,csdn有csuwzc进行了201103的版本的移植,简单看了下,发现做的很好,我出错的原因大致就在于栈设置不正确,以及其它的小细节,我不打算继续深究,我现在以uboot-2010.09为模板移植。
[单片机]
ARM与SDRAM芯片的联接
通常ARM芯片内置的内存很少,要运行Linux,需要扩展内存。ARM9扩展内存使用SDRAM内存,ARM11使用 DDR SDRAM。以ARM9核心的S3C2440为例,介绍一下内存的扩展。 S3C2440通常外接32位64MBytes的SDRAM,采用两片16位256Mbits的SDRAM芯片(如HY57V561620),SDRAM芯片通过地址总线、数据总线、若干控制线与S3C2440芯片相连。 S3C2440的地址总线:27根地址线----ADDR 。 S3C2440的数据总线:32根数据线----DATA 。 S3C2440的SDRAM控制线: 1、SDRAM片选----nGCS6(对应ARM的地址0x3000 0
[单片机]
利用FPGA解决TMS320C54x与SDRAM的接口问题
  在DSP应用系统中,需要大量外扩存储器的情况经常遇到。例如,在数码相机和摄像机中,为了将现场拍摄的诸多图片或图像暂存下来,需要将DSP处理后的数据转移到外存中以备后用。从目前的存储器市场看,SDRAM由于其性能价格比的优势,而被DSP开发者所青睐。DSP与SDRAM直接接口是不可能的。   FPGA(现场可编程门阵列)由于其具有使用灵活、执行速度快、开发工具丰富的特点而越来越多地出现在现场电路设计中。本文用FPGA作为接口芯片,提供控制信号和定时信号,来实现DSP到SDRAM的数据存取。    1 SDRAM介绍   本文采用的SDRAM为TMS626812A,图1为其功能框图。它内部分为两条,每条1M字节,数据宽度为8
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved