当前位置:网站首页>08-SDRAM:汇总
08-SDRAM:汇总
2022-08-01 23:59:00 【刘颜儿】
前言
推荐阅读:孤独的单刀 - SDRAM汇总篇
正文
一、SDRAM概念
1.1 含义
SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器
同步:
动态:不断刷新保证数据的可靠性(电容存储电荷)
随机:
1.2 版本
- SDR SDRAM:即常说的SDRAM,采用
单端时钟信号,在时钟上升沿采样 - DDR SDRAM
- DDR2 SDRAM
- DDR3 SDRAM
- DDR4 SDRAM
时钟信号:差分信号(抗干扰)
采样模式:时钟上升沿和下降沿都要采样
1.3 存储阵列
SDRAM中4个区域用存储,即4个Bank
SDRAM 存储容量计算:
- 找到芯片手册中对应的行地址、列地址的位宽,下面图中Bank的行数=13,列数=9

- 假设每个存储单元可以存16bit的数据
- 计算公式:
(2^13) * (2^9) * 16 bit * 4 Bank = 256Mbit (单位是bit)
1.4 芯片引脚
CLK:时钟
CKE:时钟使能,高电平时,CLK才起作用
RAS#:低电平有效,行选通信号
CAS#:低电平有效,列选通信号
这2个引脚共同使用A0-A12这13个引脚,分时复用
WE#:使能写操作、预充电
CS#:片选信号,屏蔽或使能所有的输入输出端口
SDRAM操作命令:CS#——CAS#——RAS#——WE#
BA[1:0]:Bank地址
A[12:0]:存储地址
DQ[15:0]:双向数据端口
1.5 操作命令
1.6 学习难点
主要体现在对控制时序要求很严格
1.6.1 由动态造成的难点
1.6.2 由随机造成的难点
行地址、列地址公用一个端口,分时复用
二、实验
2.1 初始化
时序图来自镁光数据手册
波形图来自野火视频
2.1.1指令:
指令的写入只占用一个时钟周期
SDRAM初始化需要用到下面这4个指令共同完成
parameter P_CHARGE = 4'b0010 , //预充电指令 AUTO_REF = 4'b0001 , //自动刷新指令
NOP = 4'b0111 , //空操作指令 M_REG_SET = 4'b0000 ; //模式寄存器设置指令

2.1.2 地址
init_addr = {
3'd0,1'b0,2'b00,3'b011,1'b0,3'b111};

2.2 自动刷新(保证数据不丢失)



2.3 写操作(页突发)
突发模式:不带自动充电的页突发模式
页突发的长度 : 一行包含的存储单元的个数


2.4 读操作(页突发)
突发模式:不带自动充电的页突发模式
设置潜伏期

在初始化模块部分设置的3个潜伏期
于是在读数据部分,就需要用突发长度+3来表示读数据的使用的周期



从SDRAM中读取的数据需要进行打拍,因为SDRAM的工作时钟和当前模块的系统时钟频率相同、相位不同
2.5 仲裁模块
优先级:自动刷新>写操作>读操作

2.6 SDRAM控制模块

2.7 FIFO控制模块
需要配置读写FIFO的IP核:FIFOIP核配置步骤


边栏推荐
猜你喜欢

Axure tutorial - the new base (small white strongly recommended!!!)

Flink学习第三天——一文带你了解什么是Flink流?

How to reinstall Win11?One-click method to reinstall Win11

A brief analysis of mobile APP security testing in software testing, shared by a third-party software testing agency in Beijing

在CentOS下安装MySQL

检查 Oracle 版本的 7 种方法

REST会消失吗?事件驱动架构如何搭建?

GetHashCode方法与=

如何优雅的消除系统重复代码

security cross-domain configuration
随机推荐
20220725资料更新
【MySQL系列】MySQL数据库基础
如何用Redis实现分布式锁?
洞见云原生微服务及微服务架构浅析
Thymeleaf简介
Detailed explanation of Zadig's self-testing and tuning environment technical solution for developers
Get piggy homestay (short-term rental) data
Artifact XXXwar exploded Artifact is being deployed, please wait...(已解决)
控制电机的几种控制电路原理图
security CSRF Vulnerability Protection
Several interview questions about golang concurrency
根本上解决mysql启动失败问题Job for mysqld.service failed because the control process exited with error code
Architecture basic concept and nature of architecture
Flink Yarn Per Job - CliFrontend
Classical Literature Reading--DLO
Spark Sql之union
Chrome书签插件,让你实现高效整理
Flink学习第三天——一文带你了解什么是Flink流?
单片机遥控开关系统设计(结构原理、电路、程序)
Docker搭建Mysql主从复制