SDRAM BANK 地址引脚连接例子
- 格式:pdf
- 大小:142.36 KB
- 文档页数:1


分析ARM外设flash及SDRAM的地址连接先提一下位宽的概念,对于具体器件而言,它的位宽是一定的,所谓位宽,指的是“读/写操作时,最小的数据单元”──别说最小单元是“位”,一般设备上没有单独的“位操作”,修改位时通过把整个字节、字或双字读出来、修改,再回写。
AM29L800BB 这种nor flash位宽是16位。
K4S561632C这种SDRAM位宽是32位。
对于CPU来说,一个地址对应的是一个字节(8位),也就是说CPU的地址线(A0~A20)对应的最小数据单元是字节。
这里需要注意的是,不要把“外设的位宽”和“CPU的位数”这两个概念混淆了。
外设的位宽是读写外设的最小数据单元,CPU位数是CPU可以一次处理的字节数,32位CPU 可以一次处理4字节数据。
好了,相信你也已经发现问题了吧。
既然CPU最小数据单元是8位,flash位宽是16位,那在我们写程序时会特意进行16位操作吗?显然不会,我们写代码时,可不管外设到底是多少位。
这是如何实现的呢?原因在于存储控制器(Memory Controller)这个中间层。
存储控制器根据NOR FLASH的位宽,每次总是读/写16位数据。
以读操作为例:CPU进行8位操作时,它选择其中的8位返回给CPU;CPU进行16位操作时,它直接把这16位数据返回给CPU;CPU进行32位操作时,它发起2次读/写,把结果组合成32位返回给CPU。
现在的连线是:CPU的(ADDR1-ADDR20)接到16位的NOR FLASH (A0-A19),即CPU的ADDR0不接──这说明:不管ADDR0是0还是1,NOR FLASH接收到的地址是一样的。
CPU发出地址0bxxxxxxxxx0、0bxxxxxxxxx1时,NOR FLASH看到的都是0bxxxxxxxxx,返回给存储控制器的都是同一个16位数据。
再由Memory Controller选择其中的低8位或高8位给CPU。
SDRAM硬件设计
SDRAM的硬件设计包括SDRAM芯片的电路设计以及在QuartusII顶层文件中SDRAM 控制器的引脚连接,下面以我前段时间做的FPGA开发板上的SDRAM电路为例来说明,板子已经顺利调通,证明电路没有问题。
一、SDRAM电路设计
上面为板子上SDRAM部分的电路(省略了一些电源去耦电容)。
芯片为三星的K4S641632H,4M*16位。
介绍一些主要引脚的作用:
CKE: 时钟使能
A:地址线
BA:bank地址选择信号
RAS:行选择信号
CAS:列选择信号
WE:写使能信号
DQM:数据掩码
DQ:数据线
二、基于SDRAM的最小系统
在CPU的属性中设置如下:
三、SDRAM控制器的引脚连线
Nios II中没有优化的程序非常耗内存,FPGA自带的RAM(我用的是EP2C8)很难满足要求,因此在Nios II开发板上SDRAM基本是必须的,SDRAM能够提供大容量的内存。
调通SDRAM后基本就解决了内存紧张的情况。
NOR flash,NAND flash,SDRAM结构和容量分析1.NOR flash结构和容量分析例如:HY29LV160 。
引脚分别如图:HY29LV160 有20根地址线,16位的数据线。
所以:容量=220(地址线)X16(数据位数)bit=1MX16bit=1MX2B=2MB2.SRAM简单介绍SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。
SRAM不需要刷新电路即能保存它内部存储的数据。
而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。
所以在主板上SRAM存储器要占用一部分面积。
SRAM一种是置于CPU与主存间的高速缓存,它有两种规格:一种是固定在主板上的高速缓存(Cache Memory );另一种是插在卡槽上的COAST(Cache On A Stick)扩充用的高速缓存,另外在CMOS芯片1468l8的电路里,它的内部也有较小容量的128字节SRAM,存储我们所设置的配置数据。
还有为了加速CPU内部数据的传送,自80486CPU起,在CPU的内部也设计有高速缓存,故在Pentium CPU就有所谓的L1 Cache(一级高速缓存)和L2Cache(二级高速缓存)的名词,一般L1 Cache是内建在CPU的内部,L2 Cache是设计在CPU的外部,但是Pentium Pro把L1和L2 Cache同时设计在CPU的内部,故Pentium Pro的体积较大。
最新的Pentium II 又把L2 Cache移至CPU内核之外的黑盒子里。
SRAM显然速度快,不需要刷新的操作,但是也有另外的缺点,就是价格高,体积大,所以在主板上还不能作为用量较大的主存。
DDR2设计说明:1 芯片选择:MT47H64M16HR-37E2 管脚分配:单片DDR2占用管脚资源如下表,一片需要一个FPGA BANK:将DDR2 SDRAM的所有有关的数据线,地址线,控制线,时钟线,均连到FPGA的SSTL18_II电平的BANK上。
端接:SSTL18_II电平在Virtex5 的端接:使用DCI的端接如下图:具体电路的连接参照我们已经调通的一个板卡原理图设计。
主要是:DDR2数据线、DQS信号等,与FPGA之间串接22欧姆电阻;对时钟、地址信号和控制信号通过47欧姆的电阻上拉至VTT(0.9V),PCB设计上需要较多因素。
PCB布线顺序:数据线-> 地址线-> 控制线-> 时钟。
其中数据线包括DQ/DQS/DM,它们都是在时钟的双沿发生操作。
PCB布线要点:(1)各种线的总长有要求;(2)时钟(差分对)除了等长(< 50mil),要需要25mil的安全距离。
两个时钟CK之间相差100mil之内。
(3)地址线不用等长,比时钟要长一些(4)控制线比时钟要长一些(5)每一个Data Group(8bits data + DQS + DM)在同一层走线。
DDR2的数据线与DQS是源同步关系,等长处理。
同组的数据线以DQS基准等长(<50mil)。
组与组之间的长度差不超过1000mil。
DQS与CK之间的约束较弱,一般不考虑,长度差别不要超过1000mil就差不多。
(6)地址/命令/控制信号与时钟是源同步的,走线长度匹配并不严格要求。
DDR2 SDRAM的供电参见电源章节。
还需要注意的是,需要把DQS信号都连接到IO_LxN_CC_LC的管脚上。
本时钟信号CK是FPGA输出给DDR2。
2 供电(1)V DD=1.8 VDDR2 SDRAM内存的电流消耗取决于其容量的大小以及运行的环境和速度。
根据Micron公司的数据手册(1GbDDR2.pdf),MT47H64M16HR-37E在Operating bank interleave read current下IDD的最大电流为350mA(颗粒是-187E,最大为520mA)。