当前位置: 首页 > news >正文

SDRAM

SDRAM(同步动态随机存储器)

本次运用的SDRAM内存大小为256Mbit,有4个bank,每个bank有4M(8192行*515列)存储单元,每个单元可存16bit数据

引脚

信号类型描述
clkin时钟,所有其他输入在CLK的上升沿被寄存到SDRAM
ckein时钟使能,控制内部时钟信号,当禁用时,SDRAM将处于电源关闭、暂停或自刷新状态之一
cs_nin片选,启用或禁用除CLK、CKE和DQM之外的所有输入
BA0,BA1inbank地址线
A0-A12in行列地址线,行地址:RA0 ~ RA12,列地址:CA0 ~ CA8自动预充电标志:A10
RAS_n,CAS_n,WE_Nin行地址选通,列地址选通,写使能
LDQM,UDQMI/O数据掩码,16位高低字节,可控制读写数据
DQ0-DQ15I/O数据输入输出

操作流程

在这里插入图片描述

1、预充电(precharge)

预充电命令:关闭特定bank中激活的行,或关闭所有bank中激活的行。

A10决定预充电模式:

当预充电命令中的地址A10为高时,预充电所有bank;当预充电命令中A10为低时,预充电特定bank。

当write/read命令中的A10为高时,自动预充电(auto-precharge)被使能;反之。

预充电命令发送之后,这些bank等待tRP才能接收命令

2、自动预充电(auto-precharge)

自动预充电是非显示命令,即使能自动预充电是需要发送write/read命令时将地址中A10拉高,在读写

突发结束后,立即预充电那个bank/row。

3、NOP

NOP 指令用以表明对 sdram 芯片(CS# == 0)进行空操作。NOP 指令的目的是在 sdram 在空闲

或者等待状态下,避免去执行一些潜在的不需要的指令。已经在执行过程中的指令不受影响。

4、自动刷新(auto-refresh)与自刷新(self-refresh)

为使数据不丢失,电容的两次刷新时间不能超过64ms,刷新都是针对行的。共性:都不需要外部提供地址信息,SDRAM内部有一个行地址生成器(刷新计数器)。刷新都是针对

一行的,不需要对列地址寻址,但也不需要对行进行寻址,因为内部有刷新计数器

自动刷新:SDRAM正常工作模式中为了数据不丢失进行的操作,需要外部时钟参与,刷新的行地址也

是由内部刷新计算器控制

自刷新:休眠模式低功耗状态下存储数据,不需要外部时钟参与,刷新的行地址内部刷新计算器控

制。

发送自动刷新命令需要的时间为tRRC(自动刷新周期),由于是对行操作,等效于行选通时间(RAS)

SDRAM中每次刷新操作所需要的时间为自动刷新周期(tRC),在自动刷新指令发出后需要等待tRC才能发

送其他指令。

5、行激活

行激活命令也叫做bank激活命令,作用是在指定bank中激活一行;

行激活后会一直处于激活状态(即列寻址处于激活状态),直到预充电命令被发送到这个bank;

行激活命令之后,需要延时tRCD(即发出行地址到发出列地址的时间间隔),才能发送READ/WRITE命令(读写操作必须先激活对应bank)

6、读操作

读数据命令用来开启数据的突发读,bank,row都可选,注意A10的值决定是否执行自动预充电操作,若执行自动预充电,突发读结束后就进行预充电,此行关闭,若不执行自动预充电,该行保持激活,仍能被访问。

CAS latency :读延迟(读潜伏周期,CL)Burst length:突发长度(BL)

读命令发出后,输出buffer(理解为SDRAM的dq_out)会在(CL-1)个时钟后期后变为低阻,然后会在突发读结束后重新变为高阻态,

7、写操作

DM(数据掩码)高有效,当为低时,数据能正确被写入DM;当为高时,数据将被忽略。

写突发时,第一个数据与写命令同步;

突发写–>预充电中间需要间隔tDPL

http://www.dtcms.com/a/303088.html

相关文章:

  • CTF-Web学习笔记:文件包含篇
  • 阿里给AI To C战略戴上眼镜
  • 4.应用层自定义协议与序列化
  • JUC线程池: ScheduledThreadPoolExecutor详解
  • VMWARE -ESXI-ntp时间同步无法启动异常处理
  • Go-Elasticsearch Typed Client 使用命名、结构与约定
  • Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与误报率降低策略(369)
  • AI原生应用:从人机关系重构到数字空间革命
  • 【分布式版本控制系统】Git的使用
  • 力扣17:电话号码的字母组合
  • 若依【(前后端分离版)SpringBoot+Vue3】
  • Android通知(Notification)全面解析:从基础到高级应用
  • 数据结构:下三角矩阵(Lower Triangular Matrix)
  • Eigen 中矩阵的拼接(Concatenation)与 分块(Block Access)操作使用详解和示例演示
  • 秩为1的矩阵的特征和性质
  • WireShark 抓包
  • Spring Boot项目生产环境部署完整指南
  • 数学建模算法-day[13]
  • 判断回文链表【两种O(n)时间复杂度】
  • iOS WebView 调试实战,第三方脚本加载失败与内容安全策略冲突问题排查指南
  • 前端高级综合搜索组件 SearchBox 使用详解!
  • React中的合成事件解释和理解
  • 归档日志-binlog
  • C语言的各种区
  • 背包DP之混合背包
  • 解决安装anaconda3后如何打开anaconda navigator的问题
  • 解构远程智能系统的视频能力链:从RTSP|RTMP协议接入到Unity3D头显呈现全流程指南
  • 力扣刷题(第一百零一天)
  • 0728 哈希表折半查找树二叉树
  • 【mysql】创建视图查询当月累计销售额的案例