FPGA-SDRAM设计学习(一)简单概念和操作介绍

简介: FPGA-SDRAM设计学习(一)简单概念和操作介绍

之前学过DDR然后断更了,现在买了个明德扬的视频课来重新学习下,付费就是赚便宜,开源骚客的也挺好,大家自己看着选择吧,个人听明德扬比较习惯(没收广告费哈哈哈)

SDRAM理解:


下图可以帮助大家理解SDRAM是原理,个人理解很像程序语言的数组的概念,其实就是把一个存储器分成了几个bank,一个bank里面可以存储一些数据,这里对每个bank的读写存储是给出了行列地址进行索引。

 image.png

image.png

几个基本的概念:


1、容量


存储单元的数量:行数X列数(得到一个L-BANK的存储单元的数量)X L-BANK的数量

产品文档中会用M X W的方式来表示芯片的容量

M是芯片中的存储单元的总数

W是每个存储单元的容量

2、初始化


SDRAM 上电后要第一步要初始化。

3、突发burst


突发读写


突发burst是指的是同一行中相邻的存储单元连续进行数据传输的方式,只需要给出读写命令和开始地址,就就开始读/写一定长度的数据,地址自动递增。

突发读操作时序

image.png

突发长度


     连续传送石所涉及到的存储单元列的数量就是突发长度(Burst Lengths)简称BL,常见的突发长度为1、2、4、8和全页(一行)。

4、刷新refresh


image.png

存储阵列是需要不断刷新来保证存储的数据不会丢失,由于SDRAM是电容存储数据,时间一长就会漏电丢失。

刷新可以认为是:将一行的数据读出来再存进去

  • 储存时间

公认的标准:电容存储数据的时间是64ms,也就是每隔64ms,所有的单元都要刷新一遍 。

  • 刷新命令

image.png

  • 刷新周期

     刷新周期: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:修改模式寄存器
目录
相关文章
|
存储 缓存 算法
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念(二)
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念
538 0
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念(二)
|
7月前
|
存储 算法 前端开发
【FPGA学习篇】认识Robei(一)
【FPGA学习篇】认识Robei(一)
100 1
|
存储 缓存 算法
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念(一)
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念
610 0
HLS介绍 - 01 - FPGA的架构、结构以及硬件设计相关概念(一)
|
开发工具 芯片 异构计算
芯片设计:FPGA开发学习
芯片设计:FPGA开发学习
262 0
芯片设计:FPGA开发学习
|
存储
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
311 0
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
|
Go 网络架构 内存技术
FPGA-SDRAM设计学习(二)具体操作详细介绍(文档阅读)
FPGA-SDRAM设计学习(二)具体操作详细介绍(文档阅读)
203 0
FPGA-SDRAM设计学习(二)具体操作详细介绍(文档阅读)
|
算法 计算机视觉 异构计算
FPGA与MATLAB-图像处理-学习列表(图像处理专题更新目录,补充中)
FPGA与MATLAB-图像处理-学习列表(图像处理专题更新目录,补充中)
161 0
|
缓存 异构计算
FPGA学习之按键控制led
按键控制led 设计要求:通过8个按键分别控制一个led的亮灭。   该实验有两个模块:按键缓存模块和由按键值控制led模块 按键缓存模块:通过二级缓存,将按键值存入key_r1,防止按键时产生的尖峰脉冲影响按键值。 由按键值控制led模块:采用case语句,一一对应控制led的亮灭。   顶层代码: module keyled(clk,
2018 0
|
异构计算
FPGA学习之流水灯的简单设计
流水灯的简单设计 设计要求:低位点亮一个led,下一个周期,点亮两个led,逐次增加led的个数,全部点亮后的下一个周期,又点亮一个led 该实验需要两个模块,计数器模块和led控制模块 计数器模块:就是一个分频器,频率为2hz,系统时钟为50mhz,50_000_000/2=25_000_000,需要25位计数器。 Led控制模块:控制移位,到达全0时,led
1733 0
|
异构计算 人工智能
【FPGA学习】Verilog之加法器
         在fpga工程应用设计中,随处可见加法器,乘法器等等。现在将一些常用模块和心得体会先记录下来,以便日后使用。 一位半加器: module halfadder(cout,sum,a,b);          outputco...
1689 0

热门文章

最新文章