OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7209|回复: 0

【开源骚客】《轻松设计SDRAM控制器》第四讲—SDRAM 理论基础讲解

[复制链接]

17

主题

23

帖子

1

精华

高级会员

Rank: 4

积分
614
金钱
614
注册时间
2016-1-16
在线时间
18 小时
发表于 2017-5-10 13:21:12 | 显示全部楼层 |阅读模式
本帖最后由 Kevin·Deng 于 2017-5-10 19:13 编辑

大家看了我们的前三讲教程,想必已经非常期待第四讲课程了。从第四讲开始,就带大家真正的进入到的SDRAM的世界了。

第四讲的主要内容如下:
  • 普及SDRAM常识性知识;
  • 介绍SDRAM芯片相关引脚;
  • 学习SDRAM初始化的配置过程;
  • 编写SDRAM初始化模块并进行仿真。

一、SDRAM常识性知识普及关于SDRAM的基本概念,在这先引用《终极内存指南》这篇文章中的一段话:

SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器。同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证存储的数据不丢失,因为SDRAM中存储数据是通过电容来工作的,大家知道电容在自然放置状态是会有放电的,如果电放完了,也就意味着SDRAM中的数据丢失了,所以SDRAM需要在电容的电量放完之前进行刷新;随机是指数据不是线性依次存储,而是自由指定地址进行数据的读写。


个人觉得这应该是对SDRAM作的一段比较完整详细的介绍了。。。。


这只是对SDRAM的概念介绍,下面再简单的看一下SDRAM的内部结构。


对于SDRAM的内容结构,就如同Excel的表格:




其中的一个小表格就是SDRAM内部的一个存储单元,而要确定这个存储单元的为止,只需要知道行地址(row  address列地址(col  address就可以了。

这样的一张表格就相当于是SDRAM的一个Bank,一般SDRAM有4个Bank,也就是相当于有4张这样的表格。


所以SDRAM的容量计算方式为:
SDRAM容量 = 数据位宽 x 存储单元数量(行地址 x 列地址 x Bank数)

二、SDRAM引脚介绍

SDRAM的引脚,就必须要看SDRAMdatasheet咯。


对于SDRAM的地址线,大家一定要注意,它的行列地址线是复用的。并且A10这根地址线还是一个Auto-Refresh的标志位。

对于这部分内容呢,就先介绍到这,如有不清楚的地方,可以观看我们录制的视频教程。

教程观看地址:http://t.elecfans.com/1418.html(本套视频教程已全部更新完毕)
百度网盘地址:http://pan.baidu.com/s/1o88h0Ps 密码:t9qg(已上传完毕)


三、学习SDRAM初始化的配置过程



对于的初始化,也是需要参考官方文档的。



对于初始化过程,首先需要有200us的一个延时,在延时满足之后,给一次Precharge命令,之后再给两次Auto-refresh命令,最后进行模式寄存器配置。
当然对于这些命令与命令之间的延时参数,也是需要结合文档来确定的。


在设置模式寄存器的时候,需要配置潜伏期、突发类型、突发长度这几个参数。这几个参数是在进行配置命令时给Addr这些引脚赋值决定的。


四、编写SDRAM初始化模块并进行仿真

对于SDRAM初始化模块的编写,我们可以先学习下SDRAM的初始化时序图,然后再根据时序图设计初始化模块的时序。

下边是Kevin设计的一个时序图,比较简单:




对这个时序图,相信大家已经不用Kevin作太多的解释就可以看懂了。

关于初始化模块的代码,就由大家自己来完成了哦。如果有疑惑的地方,可以先学习下本讲视频教程。


编写完代码后,就进入到了SDRAM的仿真阶段,仿真的话,需要用到SDRAM的仿真模型,并且修改对应的参数。


在例化好模块之后,可以先让Modelsim运行201us,若初始化模块编写正确,就可以再Modelsim中看到如下的打印信息了:




这些信息中包含了模式寄存器的配置信息。在配置模式寄存器时,给它设置的潜伏期为3,突发长度为4。

关于潜伏期和突发长度的含义,大家可以学习《终极内存指南》(该文档在Kevin的个人博客提供下载http://dengkanwen.com/doc)。



当然也可以观看我们的视频教程进行学习,Kevin在视频中也讲解得很详细。

好了,这一讲内容就先讲到着了哦,有啥问题大家可以先观看视频教程进行学习,或者加入开源骚客的QQ交流群,群内已有多数成员已成功设计出专属于自己的SDRAM控制器哦!!!!




转载请注明:邓堪文博客 » 【开源骚客】《轻松设计SDRAM控制器》第四讲—SDRAM 理论基础讲解


个人FPGA博客:http://dengkanwen.com  欢迎批评指导
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-7-3 03:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表