一、SDRAM基础理论
1.SDRAM简介
SDRAM
的全称即同步动态随机存储器(
Synchronous Dynamic Random Access Memory
)
,
这里的同步是指其时钟频率与对应控制器(
CPU/FPGA
)的系统时钟频率相同,并且内部命令
的发送与数据传输都是以该时钟为基准;动态是指存储阵列需要不断的刷新来保证数据不丢
失;随机指数据的读取和写入可以随机指定地址,而不是必须按照严格的线性次序变化。
sdram存储容量 = 数据位宽 * 存储单元数量(Bank数 * 行地址 * 列地址)
eg: 128Mb = 2M * 4Banks *16 I/O
2.SDRAM操作指令
对
SDRAM
的操作,是通过对应命令来实现的,这些命令由
CS_N,RAS_N,CAS_N,WE_N
这 四个控制信号组合成不同的状态以表示。同时,ADDR
总线和
DQM
总线作为辅助信号,提供与命令相对应的参数(设置模式寄存)或地址(读写命令)。下表为 SDRAM
工作中使用到的所有命令与对应的控制信号线的状态。
二、SDRAM初始化
在对SDRAM进行正常的操作之前,SDRAM必须被初始化。SDRAM的上电和初始化需要按照预先定义好的方式进行,非这些指定的操作之外的命令可能导致不可预知的操作。
当SDRAM的VDD和VDDQ上电,并且时钟稳定后,SDRAM首先需要延时等待100us,(程序中设置为200us提高可靠性)在这个等待期间,对于SDRAM只能赋给禁止命令(INHIBIT)或者空操作(NOP)命令。100us(程序中为200us)的延时之后,需要对SDRAM首先执行一次预充电命令,所有的 BANK 都必须被预充电,以使器件所有的 BANK 都处于空闲状态。进入空闲状态后,至少需要执行两个周期的自动刷新命令,自动刷新命令完成之后,就可以对