如何实现DRAM控制器的电路设计?
扫描二维码
随时随地手机看文章
DRAM(Dynamic Random Access Memory)
即动态随机存取存储器,它和 SRAM(静态随机存取存储器)一样都是常见的系统内存,也就是说我们个人电脑里的内存条通常都是DRAM。但是DRAM和 SRAM 两者之间有着很大的区别。其中最大的区别就是DRAM的地址总线接口与 SRAM 的不同。DRAM使用了dram 地址复用技术。也就是行地址与列地址分时复用技术,这就是dram 的关键技术所在。主要原因是由它的硬件电路决定的。
DRAM与 CPU 的接口(寻址方式)
举个栗子,EM63A165TS 是 EtronTech 公式的一款 DRAM 芯片,容量为 16M*16Bit,分成四个 Bank,每一个 Bank 为 4M*16Bit。但是,观察它的芯片管脚图,你就会发现它的地址线只有 13 根(A0-A12)和两根 Bank 控制线。13 根的控制线按照 SRAM 的寻址方法,每个 Bank 只有 2^13=8K,远远没有达到 4M。这是为什么呢?
原因在于,DRAM 普遍采用的是行与列地址分时复用技术进行寻址。在 DRAM 的矩阵存储单元中,地址可以分成行地址和列地址。在寻址时,必须先进行行寻址然后在进行列寻址,这是由 DRAM 的硬件电路所决定的。所以,对行地址线和列地址线进行共用,既节省了地址线,也不会降低 DRAM 原有的工作速率(因为 DRAM 的行地址和列地址就是要分时传送的)。而,如果是 SRAM 采用这种寻址方式的话,则会大大降低其工作速度。
那么,EM63A165TS 只有 13 根地址线也就可以理解了,在其数据手册上可以知道,A0-A12 是行地址线,同时 A0-A8 复用为列地址线,那么就有了 22 根地址线,2^22=4M。
DRAM作为PC必备器件之一,大家自然对DRAM较为熟悉。但是,大家知道DRAM存储具有哪些分类吗?大家了解DRAM控制器是如何设计出来的吗?如果你对DRAM以及本文即将要阐述的内容具有兴趣,不妨继续往下阅读哦。
一、DRAM存储分类
DRAM是Dynamicrandomaccessmemory的缩写,称为动态随机存取存储器。主要运用在对功耗要求不太高、系统缓存要求容量比较大速度要求比较快的系统。
广泛应用于各种电子系统,如PC、通信、DVB、DVD、LCDTV、监控等。
DRAM的分类:
DRAM,Dynamicrandomaccessmemory,是很快要淘汰的产品。
SDRAM,SynchronousDRAM(单数据传输模式),主要应用于PC外的产品上
DDRSDRAM,DoubleDataRate(双数据传输模式),主要应用在PC上
RDRAM,RambusDRAM,主要应用在PC上,比DDR用得少。
二、基于VHDL设计DRAM控制器
80C186XL16位嵌入式微处理器是Intel公司在嵌入式微处理器市场的上导产品之一。为了方便地使用DRAM,降低系统成本,本文提出一种新颖的解决方案:利用80C186XL的时序特征,采用CPLD技术,并使用VHDL语言设计实现DRAM控制器。
(一)80C186XLRCU单元的资源
80C186XL的BIU单元提供20位地址总线,RCU单元也为刷新周期提供20位地址总线。80C186XL能够产生刷新功能,并将刷新状态编码到控制信号中。
嵌入式系统中DRAM控制器的CPLD解决方案
图1是RCU单元的方框图。它由1个9位递减定时计数器、1个9位地址计数器、3个控制寄存器和接口逻辑组成。当RCU使能时,递减定时计数器每一个CLKOUT周期减少1次,定时计数器的值减为1时,则产生刷新总线请求,递减定时计数器重载,操作继续。刷新总线周期具有高优先级,旦80C186XL总线有空,就执行刷新操作。
设计者可将刷新总线周期看成是“伪读”周期。刷新周期像普通读周期一样出现在80C186XL总线上,只是没有数据传输。从引脚BHE/RFSH和A0的状态可以判别刷新周期,如表1所列。刷新总线周期的时序要求如图2所示。
(二)80C186XLDRAM控制器的设计与运行
DRAM存在着大量、复杂的时序要求,其中访问时间的选择、等待状态以及刷新方法是至关重要的。DRAM控制器必须正确响应80C186XL的所有总线周期,必须能将DRAM的部周期和其它访问周期分辨出来,其访问速度必须足够快,以避免不必要的等待周期。
在设计时,我们采用XC95C36-15CPLD[2]以及4Mbits的V53C8258[3]DRAM作范例。15ns的CPLD,速度相对较高,价格比较便宜。用它设计成的DRAM控制器允许80C186XL的工作速度高达20MHz,并且XC95C36有异步时钟选择项。这种特性对本设计有很大的好处。
图3是80C186XLDRAM控制器和存储器的功能框图。
DRAM控制器由80C186XL状态信号S2、S1和S0的解码来检测总线的开始、类型和结束。这些状态线是在CLKOUT的上升沿开始有效,在CLKOUT的下降沿失效的。DRAM控制器发出的RAS和CAS信号应该在CLKOUT的下降沿同时有效,行列地址应该在CLKOUT上升沿附近提供。
DRAM控制器应该在CLKOUT的两个沿都应能正常操作。通过启用XC95C36的异步时钟选择项,每个XC95C36宏单元可以从可编程与阵列获得时钟。DRAM控制器使用80C186XL的CLKOUT信号作时钟输入。
DRAM控制器主要由两个相互联的状态机构成。这两个状态机,使得DRAM的控制与80C186XL是否进行等待状态无关。状态机A和地址多路控制信号(MUX)在CLKOUT的上升沿锁存。状态机B和RAS及CAS的逻辑在CLKOUT的下降沿锁存。
动态随机存取存储器(dram)是一种将数据的各位元储存在分开的电容器中的随机存取存储器。最简单的dram单元包含单一n型金属氧化物半导体(n-typemetal-oxide-semiconductor,nmos)晶体管及单一电容器。若电荷被储存在电容器中,则取决于所使用的约定,称该单元储存逻辑高。接着,若没有电荷存在,则称该单元储存逻辑低。由于电容器中的电荷随时间耗散,dram系统需要额外的重写电路以周期性地重写储存在电容器中的电荷。由于电容器只能储存非常有限量的电荷,为了快速区分逻辑`1`与逻辑`0`之间的差异,典型是将两条位元线(bit-line,bl)用于各位元,其中该对位元线中的第一条被称作真位元线(bitlinetrue,blt),而另一条是互补位元线(bitlinecomplement,blc)。该单一nmos晶体管的栅极受字元线(wordline,wl)控制。
此“背景技术的讨论”章节仅为提供背景技术信息。于此“背景技术的讨论”中的陈述并非承认于此“背景技术”章节中公开的标的构成本公开的现有技术,且此“背景技术”章节没有任何部分可用于作为承认本申请案的任何部分,包括此“背景技术”章节,构成本公开的现有技术。