FPGA-SDRAM设计学习(一)简单概念和操作介绍
之前学过DDR然后断更了,现在买了个明德扬的视频课来重新学习下,付费就是赚便宜,开源骚客的也挺好,大家自己看着选择吧,个人听明德扬比较习惯(没收广告费哈哈哈)
SDRAM理解:
下图可以帮助大家理解SDRAM是原理,个人理解很像程序语言的数组的概念,其实就是把一个存储器分成了几个bank,一个bank里面可以存储一些数据,这里对每个bank的读写存储是给出了行列地址进行索引。
几个基本的概念:
1、容量
存储单元的数量:行数X列数(得到一个L-BANK的存储单元的数量)X L-BANK的数量
产品文档中会用M X W的方式来表示芯片的容量
M是芯片中的存储单元的总数
W是每个存储单元的容量
2、初始化
SDRAM 上电后要第一步要初始化。
3、突发burst
突发读写
突发burst是指的是同一行中相邻的存储单元连续进行数据传输的方式,只需要给出读写命令和开始地址,就就开始读/写一定长度的数据,地址自动递增。
突发读操作时序
突发长度
连续传送石所涉及到的存储单元列的数量就是突发长度(Burst Lengths)简称BL,常见的突发长度为1、2、4、8和全页(一行)。
4、刷新refresh
存储阵列是需要不断刷新来保证存储的数据不会丢失,由于SDRAM是电容存储数据,时间一长就会漏电丢失。
刷新可以认为是:将一行的数据读出来再存进去
-
储存时间
公认的标准:电容存储数据的时间是64ms,也就是每隔64ms,所有的单元都要刷新一遍 。
-
刷新命令
-
刷新周期
刷新周期:64ms/BANK行数,例如,1个bank的行数为4096,那么至少每隔64ms/4096=15.625us就要刷新一次。
-
刷新时间
给出刷新命令,SDRAM就进行刷新操作,一般需要9个时钟周期时间(具体参看datasheet)。此时不能对SDRAM进行任何操作。
-
自动刷新(auto refresh)AR
正常工作状态下的刷新
-
自刷新(self refresh)SR
休眠状态下的刷新
5、预充电precharge
由于SDRAM的寻址的独特性,所以在进行完读写操作后,如果要对同一L-Bank的另一行进行寻址,就要将原来有效(工作)的行进行关闭,重新发送行/列地址。L-BANK关闭现有的工作行,准备打开新行的操作就是预充电。
可以设置让芯片每次进行读写操作后,自动进行预充电,这样设计时,只需要进行等待几个时钟周期即可
6、模式寄存器
SDRAM支持多个工作模式,突发相关的有:是否突发读写,突发长度,突发类型等,还可以配置延时(latency)
7、SDRAM命令
通过CKE、CS、RAS、CAS、WE等信号的组合,就可以产生下面命令:
- NOP:空指令
- ACTIVE:读写操作之前的激活操作
- READ:读
- WRITE:写
- BURST TERMINATE:突发读写结束命令
- PRECHARGE:预充电命令
- AUTO REFRESH:自动刷新
- SELFREFRESH:自刷新
- LOAD MODE REGISTER:修改模式寄存器
相关文章
- 高等数学学习笔记——第十四讲——函数极限的概念(1. 函数在无穷远处极限定义)
- 机器学习概念了解
- 机器学习的核心概念置信度和置信区间,我用这个例子把它讲明白
- 基于Netty的IM聊天加密技术学习:一文理清常见的加密概念、术语等
- 中资多起半导体并购遭欧洲阻挠!中方回应:滥用国家安全概念
- 寒假干点啥?看懂这25个核心概念,就没有啃不动的机器学习论文
- Rust学习笔记之基础概念
- salesforce零基础学习(一百二十八)Durable Id获取以及相关概念浅入浅出
- 27场机器学习面试后,来划个概念重点吧
- DDOS高防服务器概念和作用学习
- 卷积操作的概念及其在深度学习中的应用
- Kafka学习之(一)了解一下Kafka及关键概念和处理机制详解程序员
- Android开发学习总结——Android开发的一些相关概念详解手机开发
- [android] 测试的相关概念详解手机开发
- 这款被法国政府列入社保的面包,是不是伪概念?
- SQL Server传参:从概念到实践(sqlserver 传参)
- Oracle数据库中的SID概念解析(oracle中 sid)
- 一步一脚印Oracle数据库概念(oracle什么概念)
- Oracle助你洞悉似物概念(oracle似物概念)
- Oracle中的概念什么是数据库(oracle中什么是库)
- Oracle中事务概念实现完整性与稳定性(oracle中事物的概念)
- 学习Redis集合类型一次性掌握集合概念(redis集合类型教程)
- 探讨Redis锁一种解决并发问题的新思路(redis锁的概念)
- XML轻松学习手册(二):XML概念
- php学习之运算符相关概念
- C++概念重载、覆盖、隐藏的使用说明