SDRAM基础知识

摘要:
RAS、CAS、WE:这三根线就是用来给SDRAM发命令的,包括初始化、读、写、自动充电等命令。

SDRAM介绍

SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器。同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证存储的数据不丢失,因为SDRAM中存储数据是通过电容来工作的,大家知道电容在自然放置状态是会有放电的,如果电放完了,也就意味着SDRAM中的数据丢失了,所以SDRAM需要在电容的电量放完之前进行刷新;随机是指数据不是线性依次存储,而是自由指定地址进行数据的读写

SDRAM结构

这里写图片描述

SDRAM容量=数据位宽x存储单元数量(BANK数x行地址x列地址)
(数据位宽等于存储单元中存储数据的宽度)

SDRAM芯片引脚介绍

1、首先,我们知道内存控制器要先确定一个P-Bank 的芯片集合,然后才对这集合中的芯片进行寻址操作。因此要有一个片选的信号,它一次选择一个P-Bank 的芯片集(根据位宽的不同,数量也不同)。被选中的芯片将同时接收或读取数据,所以要有一个片选信号。
2、接下来是对所有被选中的芯片进行统一的L-Bank 的寻址,目前SDRAM 中L-Bank 的数量最高为4 个,所以需要两个L-Bank 地址信号(=4)。
3、最后就是对被选中的芯片进行统一的行/列(存储单元)寻址。地址线数量要根据芯片的组织结构分别设计了。但在相同容量下,行数不变,只有列数会根据位宽的而变化,位宽越大,列数越少,因为所需的存储单元减少了。
4、找到了存储单元后,被选中的芯片就要进行统一的数据传输,那么肯定要有与位宽相同数量的数据I/O通道才行,所以肯定要有相应数量的数据线引脚。

这里写图片描述
CLK:SDRAM工作的时钟,并且所有的输入信号都是在CLK的上升沿进行检测的,也就是说我们给SDRAM给的任何命令,一定要在CLK的上升沿保持稳定,以免SDRAM获取我们给出的命令时出现错误。

CKE:时钟使能信号,是用来控制SDRAM内部时钟是否工作的一个信号(在SDRAM内部也是有时钟的哦)

CS:片选信号,这里需要注意的是,如果要对SDRAM进行操作,必须要将片选信号拉低

BA0,BA1:Bank地址线,用来给bank的地址,可以控制SDRAM的4个bank

A0~A11:地址线,当我们选择SDRAM某个Bank的Row地址的时候,需要到12根地址线(A0~A11);当选择Col地址的时候,只用A0~A8这9根线;A10这个信号可以用来控制Auto-precharge。

RAS、CAS、WE:这三根线就是用来给SDRAM发命令的,包括初始化、读、写、自动充电等命令。

UDQM、LDQM:数据输入/输出掩码。

DQ0~DQ15:SDRAM的数据线,为双向的,向SDRAM写数据或者从SDRAM中读出来的数据都是在DQ上进行传输的

地址线

• A0~A11:地址线,当我们选择SDRAM某个Bank的Row地址的时候,需要到12根地址线(A0~A11);当选择Col地址的时候,只用A0~A8这9根线;A10这个信号可以用来控制Auto-precharge
• SDRAM的厂商一般为了节约成本,采用同一总线来对SDRAM进行寻址是无可厚非的,对于Row地址用到了12根线,也就是总共有2^12=4096个Row地址,而col地址使用9根线,也就是有2^9=512个col地址

掩码

• 就拿咱们使用的这块SDRAM芯片来讲,数据线有16根,也就是说明我们数据的位数可以达到16位,但是呢,请注意,也许在我们使用SDRAM的时候,也许我们在向SDRAM写数据的时候,我们生成的数据只有8位,但FPGA是与SDRAM的16根数据线连在一起的,这个时候,存到SDRAM中的数据还是16位的,所以为了避免这个问题,我们就可以使用掩码来屏蔽掉高8位了。当然掩码在读数据的时候起到的作用也是类似的。

预充电

L-Bank 关闭现有工作行,准备打开新行的操作就是预充电(Precharge)

实际上,预充电是一种对工作行中所有存储体进行数据重写,并对行地址进行复位,同时释放S-AMP(重新加入比较电压,一般是电容电压的1/2,以帮助判断读取数据的逻辑电平,因为S-AMP 是通过一个参考电压与存储体位线电压的比较来判断逻辑值的),以准备新行的工作。
电容的电量(或者说其产生的电压)将是判断逻辑状态的依据(读取时也需要),为此要设定一个临界值,一般为电容电量的1/2,超过它的为逻辑1,进行重写,否则为逻辑0,不进行重写(等于放电)。为此,现在基本都将电容的另一端接入一个指定的电压(即1/2 电容电压),而不是接地,以帮助重写时的比较与判断

刷新

• 为什么有预充电操作还要进行刷新呢?
• 因为预充电是对一个或所有L-Bank 中的工作行操作,并且是不定期的,而刷新则是有固定的周期,依次对所有行进行操作,以保留那些久久没经历重写的存储体中的数据。

那么要隔多长时间重复一次刷新呢?目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000 秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到4096 Refresh Cycles/64ms 或8192 Refresh Cycles/64ms 的标识,这里的4096 与8192 就代表这个芯片中每个L-Bank 的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096 行时为15.625µs(微秒,1/1000 毫秒),8192 行时就为7.8125µs。

存储原理

这里写图片描述

免责声明:文章转载自《SDRAM基础知识》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇局域网内共享文件夹stm32操作系统ucosiii笔记02下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浅谈半导体集成电路封装的历程

http://hi.baidu.com/hieda/blog/item/9c8070465981fc0d6b63e58b.html IC封装历史始于30多年前。当时采用金属和陶瓷两大类封壳,它们曾是电子工业界的“辕马”,凭其结实、可靠、散热好、功耗大、能承受严酷环境条件等优点,广泛满足从消费类电子产品到空间电子产品的需求。但它们有诸多制约因素,即重量、成...

痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU特性那些事(4)- RT105x选型

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RT1xxx系列MCU的RT105x选型。   大家都知道i.MX RT105x是i.MX RT系列第一款产品,在提这款产品特性的时候,我们往往说的是i.MXRT1052DVL6B的特性,这也是RT105x系列主推的一款核心芯片,目前一些第三方硬件公司(比如ZLG、野火、...

EEPROM类库的使用---断电不丢失的存储芯片

EEPROM(Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器——一种掉电后数据不丢失的存储芯片。 EEPROM可以在不使用文件和文件系统的情况下用来固化一些数据,常见的比如用来保存SSID或者Password,保存用户设置等数据,这样就可以不用每次都通过烧写程序来改变系统运...

电路原理图检查的十大步骤详解

最近一直在做嵌入式系统,画原理图。最后,为了保证原理图准确无误,检查原理图花费我近两周的时间,在此,把我在检查原理图方面的心得体会总结在此,供大家参考,说得不对的地方欢迎大家指出。 往往我们画完电路原理图后,也知道要检查检查,但从哪些地方入手检查呢?检查原理图需要注意哪些地方呢?下面听我根据我的经验一一道来。 1. 检查所有的芯片封装图引脚是否有误 当然,...

STM32硬件调试详解

STM32的基本系统主要涉及下面几个部分:  一、电源  1)、无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA、VSSA、Vref(如果封装有该引脚)都必需要连接,不可悬空;  2)、对于每组对应的VDD和GND都应至少放置一个104的陶瓷电容用于滤波,并接该电容应放置尽量靠近MCU; 3)、用万用表测试供电电压是否正确。调试时最好...

深入理解CPU和异构计算芯片GPU/FPGA/ASIC (上篇)

随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、直播中的视频转码、图片压缩解压缩以及HTTPS加密等各类应用对计算的需求已远远超出了传统CPU处理器的能力所及。摩尔定律失效的今天,关注“新“成员(GPUFPGAASIC)为数据中心带来的体系架构变革,为业务配上一台动力十足的发动机。 1 异构计算:WHY...