实验背景
在(一)中介绍了sdram器件手册中的部分内容和sdram初始化模块的实现过程和仿真过程,现在介绍自动刷新模块的实现和仿真验证。
实验内容
sdram控制器自动刷新模块,写模块的实现和仿真验证。
实验步骤
sdram 存储器是利用电容能够保持电荷以及可充放电的特性来实现数据存储的,电容存储的电荷会随着时间不断流失,从而造成存储数据丢失。为了保证sdram 中数据的不丢失,需要对 sdram 进行不断刷新。
sdram的刷新方式有自刷新(self refresh)和自动刷新(auto refresh)。自刷新用于休眠模式低功耗状态下的数据存储,不需要外部时钟参与,刷新的行地址由内部刷新计算器控制,不需要外部提供。自动刷新则是sdram正常工作中为了保证数据不丢失进行的操作,需要外部时钟参与,刷新行地址也是由内部刷新计算器控制。
这里主要讨论自动刷新方式,其波形图如下:
从波形图可知,自动刷新过程如下:
向sdram发送PRECHARGE命令,同时需要A10与BA[1:0]配合来确定PRECHARGE作用的对象是全部的bank还是特定的bank。等待tRP时间,等待期间需要发送NOP命令,等待tRP结束后,发送AUTO REFRESH命令,等待tRFC时间,等待期间需要发送NOP命令,等待tRFC结束后,第二次发送AUTO REFRESH命令,等待