SDRAM学习(一)之刷新心得
本篇博文共有两种刷新方式
SDRAM数据手册给出每隔64ms就要将所有行刷新一遍,
因此每隔64_000_000 ns/2^12=15625ns 就要刷新一次。(因为一个L-Bank的行是12位,所以一共有2^12行)。
假设我的时钟频率是100Mhz(一个周期是10ns),则只需要每隔1562个时钟周期刷新一次即可。
注意:这里最多隔 1562 个时钟周期就要保证至少刷新一次,言外之意,我可以隔小于1562的时钟周期就刷新一次,这样也是可以的,
因此,在设计刷新操作的时候可以利用这个特点。
1、例如在full-page模式下利用这个特点进行刷新设计,
SDRAM 初始化完成后,每隔一定的刷新时间就执行刷新操作,但是当刷新时间到了还不够,还必须处于IDLE状态时,才能执行刷新操作。
那么这个刷新时间要怎么计算呢?
刷新有可能出现的情况为
刷新时间到了,刚好处于 IDLE 状态,那么就立即执行刷新操作。
刷新可能出现最坏的结果为,刷新时间到了,但是此刻我没有处于 IDLE 状态,而是刚好处于读或写,这时我就需要等待直到IDLE状态时才执行刷新操作。
因此我们要保证的是 刷新时间+需要等待的时间<=1562.
这两个时间如何确定呢?
因为是全页模式的读写,则突发长度为2^8,需要256个时钟周期,
如果是读,则需要等待的时钟周期为 激活时间(tRCD)+ CAS Latency (tCL)+ 256 +预充电的时间(tRP)
如果是写,则需要等待的时钟周期为 激活时间(tRCD)+ 256 +预充电的时间(tRP)
tRCD、tCL、tRP都可以从 datasheet 中获得,因此需要等待的时间就能算出来。
1562 - 需要等待的时间 = 刷新时间。
2、第二种刷新方式:刷新计数器计数到刷新时间1562时,设立一个刷新标志位 refresh_flag =1,当状态机在 IDLE 状态时且 refresh_flag =1则响应刷新操作。刷新计数器设立刷新标志位后立即又从零开始计数,不再等待。
第二种刷新方式更灵活一些。
转载请注明出处:http://www.cnblogs.com/aslmer/p/5893525.html
SDRAM学习(一)之刷新心得的更多相关文章
- SDRAM的初始化与刷新操作---看时序图写代码
SDRAM的初始化与刷新操作---看时序图写代码 1.SDRAM的常见操作 2.初始化就是配置SDRAM 3.SDRAM初始化时序 时序解释如下: 4.刷新操作
- python学习的一点点心得
好久没发博客了,不解释....接下来写一点自己最近学习python的一点心得. 想要学习python的初衷,是看<软件测试技术大全>一书时,了解到像perl.python.ruby等脚本类 ...
- SDRAM 学习(三)之command
command 模块总述 SDRAM 的 command 模块的内容包括如下: 1.对初始化请求.配置模式寄存器.读/写.刷新.预充电等命令的一个优先级的控制. 2.对命令执行时间进行控制,依据如图1 ...
- SDRAM 学习笔记(一)
前面几篇博客已经讲到了关于0V7725的相关驱动问题,那么OV7725驱动成功之后,设定OV7725输出RGB565格式,那么对于640x480x16,那么若是选用FIFO,应该设置为位宽16bit, ...
- Linux系统的理解及学习Linux内核的心得
作业列表 (点击作业跳转) linux内核分析作业:以一简单C程序为例,分析汇编代码理解计算机如何工作 linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核 ...
- SDRAM学习笔记(二)
上一篇博客主要讲解了一下SDRAM整体结构以及PCB方面的注意事项.接下来讲解一下需要用到的一些命令. 1.常用命令的缩写 上述是常用到的一些指令集. 2.模式寄存器 (1)突发长度 通过对A0~ ...
- SDRAM 学习笔记(三)
上图是terasic公司提供的SDRAM控制器,大部分已经封装好,我们需要修改其中部分代码,以此来实现我们自己需要的功能. 1.PLL时钟设定 首先上面的sdram_pll.v中产生上一篇博客所需要的 ...
- SDRAM学习(二)之初始化
目录 1.SDRAM初始化的内容(结合英文数据手册) 2.SDRAM初始化的时序 3.代码的编写 4.modesim的仿真 SDRAM初始化的内容 SDRAMs must be powered up ...
- 新手入门学习angular.js的心得体会
看了一天的angular.js,只要记住这是关于双向数据绑定 和单向数据绑定就可以,看看开发文档,短时间内还是可以直接入手的,看个人理解能力(我是小白). 这几天开始着手学习angularjs的有关知 ...
随机推荐
- 解析ASPX网页__doPostBack分页的网页table数据
由于急于上线的功能要去客服系统里抓取数据进行验证,客服方面又没有时间开发EDI接口给到我,所以用了本办法:爬人家web系统上的数据进行分析. 由于客服的web系统用ASP.Net的__doPostBa ...
- pg中的非varchar类型的模糊搜索
模糊搜索,bay字段是 numeric 类型的(如果是 varchar 类型的用常规的即可) 1,SELECT * FROM s_view_monitor_result WHERE bay ~~ CA ...
- cms-详细页面2
详细页面遗留下来的部分: 1:当前位置 2.分享 3.时间格式 4.摘要 5.关键字: 解决方案: 1:当前位置:---后台拼接 2:分享:前端一段js代码 3.摘要,直接数据库查询 4.时间格式:引 ...
- 前台使用load一个集合后台接受的方法
前台: var imageCaseList = []; }; imageCaseList.push(data); $('#showData').load(url, { querys: imageCas ...
- 实现带查询功能的ComboBox控件
实现效果: 知识运用: ComboBox控件的AutoCompleteMode属性 public AutoCompleteMode AutoCompleteMode{get;set;} //属性值为枚 ...
- Linux 的歷史
Unix 狹義作業系統提供應用程式及命令直譯器. 作業系統發展初期並不具可攜性. Bell, GE 及 MIT 合作開發的 "Multice" 系統( 相容分時系統 ). 1969 ...
- python_17_数据运算
#//取整除,返回商的整数部分 print(9//2) print(10/3.3) print(10//3.0) #<>与!=都为不等于 #and 与 例(a and b) #or 或 # ...
- js 数组方法大集合,各方法是否改变原有的数组详解
不会改变原来数组的有: concat()---连接两个或更多的数组,并返回结果. every()---检测数组元素的每个元素是否都符合条件. some()---检测数组元素中是否有元素符合指定条件. ...
- java设计模式——单例模式(三)
容器单例模式 之前学习Structs2,Spring框架时,经常会听到单例,多例.虽然这与单例模式不太一样,但是都很类似.在程序运行的时候,就加载所有的实例,然后用的时候直接取出 看下面代码: /** ...
- 黑马基础阶段测试题:创建Phone(手机)类,Phone类中包含以下内容:
package com.swift; public class Phone { private String pinpai; private int dianliang; public String ...