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

2014-9-9 22:05 3286 17 23 分类: FPGA/CPLD

 

今天,我们主要学习了SDRAM的操作时序,而今天的作业,就是设计SDRAM三大控制模块中的第一个模块——上电初始化模块
每次最痛苦的就是明明高清的图片写到博客里就看不清了,所以,在最后,我还是传上原版文档的PDF,供有兴趣的同学查看。
 

作业

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

设计频率100MHztRP=20ns2tCLK),tRFC=66ns7tCLK), tMRD=2tCLK设计接口如下(忽略DQDQM等信号)。该FSM加电后,按照ppt15页内容对输出信号进行操作。

设计要求

 

 

 

 

 

 

 

 

                 20140909215614441001.png                   

 

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

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

    使用Verilog进行编码

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

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

 

 

 

 

 

 

 

 

 

 

 


                                       


 

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

 

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

20140909215620916002.jpg

 

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

 

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

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

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

3、 1个预充电过程;

4、 2次自动刷新命令;

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

6、 等待激活。

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

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


 

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

状态设置:

         RST:复位状态

S0:上电延时状态(DELAY

S1NOPDO_NOP

         S2:预充电状态(PRECHARGE

         S3:自动刷新状态1REFRESH_1

         S4:自动刷新状态2REFRESH_2

         S5:设置模式寄存器(SET_MR

         S6:等待(WAIT

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

 

 

20140909215624504003.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 


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

20140909215630144004.jpg

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

 

 

 

 
 

   *   

cmd = `PRE

A[10]=1

 

 


20140909215635220005.png


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

 

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

 

20140909215640805006.jpg

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

 

20140909215646902007.jpg

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

 

PARTNER CONTENT

文章评论6条评论)

登录后参与讨论

用户1728380 2015-1-21 12:55

感谢楼主,我会一直关注的。

小梅哥 2014-11-23 15:17

SDRAM其实并不是那么的困难,要做出来容易,要做个全功能的还是有点难度

用户1635984 2014-11-23 13:32

也一直攻克SDRAM,特别是时序仿真,希望借助助学小组,搞定SDRAM

小梅哥 2014-10-3 23:31

这两天因为课程任务特别紧,就没有再更新,不过,预计年内,我会把我在至芯学习的内容整理好之后再更新上来的

用户1773503 2014-10-3 08:54

正好需要,好好看看。谢楼主

用户1772825 2014-9-11 09:54

好东东 好喜欢
相关推荐阅读
小梅哥 2019-09-04 22:10
小梅哥FPGA时序分析笔记(6.2)深入现象看本质——庖丁解牛之FPGA内数据传输模型
通过上一节,我们了解了FPGA内部数据的传输形式,接下来我们就可以根据上一节的内容来总结一下FPGA内部的数据传输模型了。 时钟和数据传输路径 通过上一节内容中,我绘制的那个FPGA内部数据在逻辑...
小梅哥 2019-09-01 21:28
小梅哥FPGA时序分析笔记(6.1)深入现象看本质——庖丁解牛之FPGA可编程原理
上一次发博客,已经是2个月前了,这中间两个月,干了件很有意义的事情,尤其是对于自己来说,感觉学到了非常多的知识和经验,每天都很忙,忙到没时间逛网站博客,终于忙完闲下来了,连载的事情可不能忘,终于可以书...
小梅哥 2019-07-02 08:57
小梅哥FPGA时序分析笔记(五)I/O约束显神威——深入龙潭
大家一定对我上一节的突然结尾表示一脸茫然:我是来学习时序约束的,然后你告诉我时序约束里面IO约束很重要,然我又跟着你的文章继续往下看,本以为你就要讲如何进行IO约束了,结果呢,你一个取反时钟就把我们打...
小梅哥 2019-06-30 11:07
小梅哥FPGA时序分析笔记(四)I/O时序定成败——化险为夷
小梅哥FPGA时序分析从遥望到领悟系列没有遇见过I/O时序问题,没有通过I/O约束方式实际解决过I/O时序问题,就很难明白I/O约束的重要性,也很难相信各种EDA软件真的有那么的傻白甜。 我遇到的最...
小梅哥 2019-06-22 10:32
小梅哥FPGA时序分析笔记(三)时钟约束真重要——事实说话
小梅哥FPGA时序分析从遥望到领悟系列以前,那是在以前,经常有网友(原谅我行文动不动就是网友说,网友问,毕竟我是卖开发板的,正面接触学FPGA的网友相对多一些,所以这些也都是事实存在的事情)问我:小梅...
小梅哥 2019-06-21 10:33
小梅哥FPGA时序分析笔记(二)时钟质量是生命——初遇时序
小梅哥FPGA时序分析从遥望到领悟系列第一次遇到时序问题并通过相应的手段解决问题,算是2年前做百兆以太网图像传输的时候了吧。当时遇到的问题为:同一个工程,每次编译结果的效果都不一样,有的时候编译了,下...
EE直播间
更多
我要评论
6
17
关闭 站长推荐上一条 /1 下一条