SDRAM
16Meg*16

功能描述
读写都是通过突发的方式进行的, 访问是从指定的位置开始, 并访问指定的长度
每一次的访问都是以 ACTIVE 命令后面跟着一个 READ 或 WRITE 命令, 首先通过 ACTIVE 命令激活想要访问的 bank 中的某一行(选择行), 再通过 READ 或 WRITE 命令的 A0-A8 来设定突发传输开始的位置
再开始访问之前, 必须对 SDRAM 进行初始化
初始化
- 在上电后, 需要等待 100us 来让电路稳定
- 在电路稳定过后, 需要发出
PRECHARGE命令, 来进行预充电, 从而让所有bank都处于闲置状态 - 进行两次自动刷新
- 写入
mode寄存器, 设定 SDRAM 的工作模式
mode 寄存器
mode 寄存器的设定是通过 LOAD MODE REGISTER 命令来实现的, mode 寄存器中的信息会一直保存到下一次进行 LOAD MODE REGISTERE 或下电
mode 寄存器可以设定突发长度, 突发类型, CAS 延迟, 操作模式和写突发模式
mode 寄存器的设定必须在所有 bank 均处于闲置状态下进行, 并且在进行后续操作前, 需要等待一段时间

突发长度
1、2、4 或 8 个位置的突发长度可用于顺序和交错突发类型,而整页突发可用于顺序类型。整页突发需要通过 BURST TERMINATE 指令来结束突发传输
突发类型
- 顺序突发(Sequential):数据按照物理地址的连续顺序访问。
- 交错突发(Interleaved):数据访问按照一定的间隔模式交错进行。

CAS 延迟
CAS 延迟指的是发出 READ 命令后, 到读出第一个数据的延迟, 可以被设定为 2 或 3 个时钟周期

操作模式
写突发模式
当写突发模式位设定为 0 时候, 突发长度为设定的突发长度, 写突发模式位设定为 1 时候, 突发长度为 1 (也就是不进行突发)
指令
1. 激活命令 (ACTIVE)
- 功能:激活一个指定的行,以便进行读取或写入操作。
- 用途:在任何读或写操作之前,必须先通过激活命令选择内存中的一行。
2. 读取命令 (READ)
- 功能:从激活的行中读取数据。
- 特性:可以指定是否使用自动预充电结束这次访问,即在读取操作完成后自动关闭激活的行。
3. 写入命令 (WRITE)
- 功能:向激活的行写入数据。
- 特性:与读取命令类似,写入命令也可以指定是否在操作结束时自动预充电。
4. 预充电命令 (PRECHARGE)
- 功能:关闭当前激活的行,以便执行其他操作或激活另一行。
- 特性:可以单独预充电一个银行或所有银行。
5. 自动刷新命令 (AUTO REFRESH)
- 功能:周期性地刷新内存,保持数据的完整性。
- 说明:必须定期执行自动刷新以保持存储器中的信息不丢失。
6. 自刷新命令 (SELF REFRESH)
- 功能:使SDRAM进入低功耗模式,在此模式下SDRAM自行管理刷新,不需要外部时钟。
- 用途:在系统电源节能模式下保持数据完整性,常用于便携设备中。
7. 载入模式寄存器命令 (LOAD MODE REGISTER)
- 功能:设置SDRAM的操作参数,如CAS延迟、突发长度和其他特定的模式设置。
- 用途:配置或修改SDRAM的性能参数。
8. 无操作命令 (NOP)
- 功能:让SDRAM在当前时钟周期内不执行任何操作。
- 用途:在不需要内存操作或在等待其他操作完成时使用。
9. 命令禁止 (COMMAND INHIBIT)
- 功能:防止任何新命令被执行,用于稳定或控制内存状态。
- 说明:此命令不常用,主要用于测试或特定的初始化过程中。
10. 突发终止命令 (BURST TERMINATE)
- 功能:提前终止一次突发操作。
- 用途:用于控制数据传输长度,尤其是在全页突发模式中。
11. 写使能/输出使能 (WRITE ENABLE / OUTPUT ENABLE)
- 功能:确保在写操作中使能数据输入或在读操作中使能数据输出。
读 SDRAM
一些时序图
