原创 SDRAM模块上电初始化模块设计

2017-1-10 14:16 1861 11 11

今天,我们主要学习了SDRAM的操作时序,而今天的作业,就是设计SDRAM三大控制模块中的第一个模块——上电初始化模块

每次最痛苦的就是明明高清的图片写到博客里就看不清了,所以,在最后,我还是传上原版文档的PDF,供有兴趣的同学查看。


作业:


试完成如下的FSM设计:该FSM仅执行SDRAM的上电过程,包括上电的延时,预充电,刷新和MRS(模式寄存器设置)。


设计频率100MHz,tRP=20ns(2tCLK),tRFC=66ns(7tCLK), tMRD=2tCLK,设计接口如下(忽略DQ和DQM等信号)。该FSM加电后,按照ppt15页内容对输出信号进行操作。


设计要求



首先将状态转移图绘制出来


延时过程可以用一个延时计数器控制,也可以直接用FSM控制。


使用Verilog进行编码


在Quartus II中执行编译并生成符号


有兴趣的同学可以编写一个Testbench用ModelSim进行功能仿真


一、 上电初始化模块状态时序分析


图1.1为MT48LC32M16A2数据手册提供的该芯片的上电初始化以及模式设置寄存器的时序图,因此,该上电初始化模块的状态设计将严格按照此时序图进行。



图(1.1)MT48LC32M16A2上电与模式寄存器设置时序图


该芯片上电初始化包含了以下几个过程:


1、 上电最小100us的延时;


2、 1个周期的空操作指令;


3、 1个预充电过程;


4、 2次自动刷新命令;


5、 设置模式寄存器命令;


6、 等待激活。


其中,预充电命令到第一个自动刷新命令之间的时间延迟最小要求为tRP=20ns。


一次自动刷新时间最小要求为tRFC=66ns。模式寄存器设置时间最小要求为tMRD=2tCLK。当模式寄存器设置完毕后,系统即进入等待激活状态。


二、 上电初始化模块状态转移图设计


状态设置:


RST:复位状态


S0:上电延时状态(DELAY)


S1:NOP(DO_NOP)


S2:预充电状态(PRECHARGE)


S3:自动刷新状态1(REFRESH_1)


S4:自动刷新状态2(REFRESH_2)


S5:设置模式寄存器(SET_MR)


S6:等待(WAIT)


因为本模块只设计了上电复位,因此上电复位状态结束后就会一直停留在WAIT状态,直到下一次复位信号的到来。



控制命令(CMD)与各控制引脚状态对应关系


本状态迁移图由李老师设计,通过对比,发现我的设计基本能够达到老师的要求,只是老师的更规范,命名更合理,相比之下,我的设计还有很多的不规范不合理的地方,特此对比。在实际代码编写过程中,为了保证代码的规范易读,所以均采用和老师提供的一致的信号名。




三、 上电初始化模块仿真结果分析


下图为上电初始化模块的仿真波形图,由图可知,该上电初始化模块能够正确的对仿真模型进行初始化,图3.2为Micron官网提供的仿真模型打印出的仿真信息,通过该打印信息也可知上电初始化是成功的。



图(3.1)上电初始化模块仿真波形图



图(3.2)仿真模型输出的信息


文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /5 下一条