SDRAM控制器设计(1)硬件结构

本文是学习了赵效民前辈的《高手进阶,终极内存技术指南》及小梅哥的教程后的整理总结。

1.原理介绍

SDRAM 同步动态随机存储器( Synchronous Dynamic RandomAccess Memory)
同步是指其时钟频率与对应控制器( CPU/FPGA)的系统时钟频率相同,并且内部命令的发送与数据传输都是以该时钟为基准;
动态是指存储阵列需要不断的刷新来保证数据不丢失;
随机指数据的读取和写入可以随机指定地址,而不是必须按照严格的线性次序变化;

而SRAM 属于异步器件,在工作时是不需要外部提供时钟的, SRAM的全称叫做 Asynchronous Static RAM,即异步静态随机存储器。

SDRAM 存储数据是利用了电容能够保持电荷以及其充放电特性。一位数据的存取电路如图 32.1 所示,该存储单元主要由行列选通三极管,存储电容,刷新放大器组成。对于这一位的数据,首先需要打开行地址,然后打开列地址,则电容的电平状态就能呈现在数据线( data_bit)上,即实现了读取。 或者,数据线上的电平值被送到电容上,从而实现写入数据。
SDRAM控制器设计(1)硬件结构_第1张图片
打开行地址(激活行)是需要一定时间的,即从打开行地址到可以打开 列 地 址 进 行 数 据 读 / 写 , 这 之 间 有 一 定 的 时 间 间 隔 , 这 个 间 隔 叫 做tRCD(ACTIVE-to-READ or WRITE delay)。

当列地址被打开后,数据并不是立即出现在最终的数据总线引脚上,而是有若干个时钟的延迟,这个延迟叫做列选通潜伏期( CL,CL = CAS (READ) latency)。

如是 SDRAM 内部存储矩阵的一个简化模型,对于每一行列,只展示了 1bit 的数据。主要是为了展示行列地址与存储电容的对应关系。实际进行数据读写时,打开一个确定的行和列,就能唯一确定一个存储单元。
SDRAM控制器设计(1)硬件结构_第2张图片

2.总体架构

SDRAM控制器设计(1)硬件结构_第3张图片

引脚描述

(1)CLK:SDRAM在此时钟下进行正常工作,在CLK的上升沿来临时,SDRAM才能进行工作。也就是说SDRAM所需要执行的所有命令,必须在CLK的上升沿来临时,并且保持稳定,防止SDRAM执行或者接受命令时发生错误。
(2)CKE:时钟使能信号,控制SDRAM是否工作的信号。
(3)CS:片选信号,假如需要对SDRAM进行操作,那么需要把CS信号进行拉低。
(4)BA0,BA1:Bank选择信号,给出bank的地址,可以选择对SDRAM的4个bank中具体一个进行操作。
(5)A0~A11:地址线,当选择SDRAM的一个Bank的某一行的时候,通过12根地址线(A0~A11)来进行操作;当选择某一列地址的时候,只需要A0~A8这9根线地址线进行选择;A10信号用来控制自动刷新。
(6)RAS、CAS、WE:这三根线用来通过I2C协议来对SDRAM发送命令。
(7)UDQM、LDQM:数据输入/输出掩码。SDRAM共包括16位数据线,而我后面要用到的OV5640摄像头输出的数据只有8位,因此只用到了其中的8位,此时就可以用掩码信号来屏蔽掉其中的8位,只关心需要的8位。
(8)DQ0~DQ15:SDRAM的双向数据线,既可以作为输入,同时可以作为输出。向SDRAM写数据或从SDRAM中读出来的数据都是在DQ0~DQ15上进行传输。

SDRAM控制器设计(1)硬件结构_第4张图片
SDRAM控制器设计(1)硬件结构_第5张图片

Bank结构

与乒乓操作紧密关联的bank结构,在后面的博客中会详细解读。
SDRAM控制器设计(1)硬件结构_第6张图片

3. 硬件模块详解


SDRAM控制器设计(1)硬件结构_第7张图片

你可能感兴趣的:(sdram)