Xilinx FPGA平台DDR3设计详解(二):DDR SDRAM组成与工作过程

本文主要介绍一下DDR SDRAM的基本组成以及工作过程,方便大家更好的理解和掌握DDR的控制与读写。

一、DDR SDRAM的基本组成

1、SDRAM的基本单元

SDRAM的基本单元是一个CMOS晶体管和一个电容组成的电路。

晶体管最上面的一端,称作栅极,通过加上电压或取消电压,可以控制CMOS晶体管的开和关,进而控制流入小电容的电流。

小电容可以存储电荷,有电荷时表示存储1bit的1,无电荷时表示存储1bit的0。

当要写入存储1bit的1时,在R/W端加上高电压,并在栅极端加高电压保持一段时间后断开,即可写入。

当要写入存储1bit的1时,在R/W端接地,并在栅极端加高电压保持一段时间后断开,即可写入。

2、存储阵列

为了存储大量信息,需要将基本单元构成存储阵列,如下图所示:

word line表示字线,对应行,连接是每个单元的栅极。

bit line表示位线,对应列,连接的是每个单元的R/W端。

存储阵列读写数据时,当某一行的字线上通电后,这一行就打开了,通过控制位线上的电压变化,就能读取存储信息或写入数据。

读取数据时由于电容很小,所以读取数据时,产生的电压波动也很小,要经过sense amplifier进行放大,另外在读取位线上的数据后,小电容上的电荷会发生了改变,这会丢失原本的信息,是一种破坏性读出。

3、SDRAM动态刷新

为什么SDRAM要做动态刷新?

SDRAM基本单元的小电容的电容值很小,存储电荷不多,而CMOS晶体管有“电流泄漏”问题,即使字线不打开,小电容也会缓慢损失电荷,慢慢的信息就丢失了。

这就需要定时将电容的旧值重新向小电容写入数据,也就是动态刷新电容。

动态刷新电容如何实现的?

这里简单介绍一下,存储阵列中放大器可以暂存信息。

每个单元行,每隔一段时间,放大器暂存好信息后,就立刻将信息写回电容。

二、SDRAM读写过程

1、SDRAM读数据

  • 激活命令:在向SDRAM发送读命令之前,必须先打开指定块中的指定行,并将其复制到行缓冲器中。这个操作由激活命令(ACTIVE)完成,激活命令通过片选信号(CS)、块地址信号(BA)和行地址信号(A)来确定要激活的块和行。激活命令还需要一个行地址选通信号(RAS),用来选通行地址。

  • 读命令:在激活命令之后,需要等待一定的时间间隔(tRCD),才能发送读命令(READ)。读命令通过列地址信号(A)来确定要读取的列,并通过列地址选通信号(CAS)来选通列地址。读命令还需要一个写使能信号(WE),用来指示读操作。

  • 数据输出:在读命令之后,还需要等待一定的时间间隔(tCL),才能从数据总线上获取数据。这个时间间隔被称为CAS等待时间或读取潜伏期,是指提供一个列地址与接收到相关数据之间的间隔。数据输出可以是单个或突发的,突发长度由模式寄存器设置。

  • 预充电命令:在读操作完成后,需要对打开的行进行预充电操作,以恢复其电荷状态。这个操作由预充电命令(PRECHARGE)完成,预充电命令通过片选信号(CS)、块地址信号(BA)和预充电信号(A10)来确定要预充电的块和行。预充电命令还需要一个行地址选通信号(RAS)和一个列地址选通信号(CAS),用来指示预充电操作。

2、SDRAM读数据

  • 激活命令:在向SDRAM发送写命令之前,必须先打开指定块中的指定行,并将其复制到行缓冲器中。这个操作由激活命令(ACTIVE)完成,激活命令通过片选信号(CS)、块地址信号(BA)和行地址信号(A)来确定要激活的块和行。激活命令还需要一个行地址选通信号(RAS),用来选通行地址。

  • 写命令:在激活命令之后,需要等待一定的时间间隔(tRCD),才能发送写命令(WRITE)。写命令通过列地址信号(A)来确定要写入的列,并通过列地址选通信号(CAS)来选通列地址。写命令还需要一个写使能信号(WE),用来指示写操作。

  • 数据输入:在写命令之后,可以立即从数据总线上输入数据。数据输入可以是单个或突发的,突发长度由模式寄存器设置。

  • 预充电命令:在写操作完成后,需要对打开的行进行预充电操作,以恢复其电荷状态。这个操作由预充电命令(PRECHARGE)完成,预充电命令通过片选信号(CS)、块地址信号(BA)和预充电信号(A10)来确定要预充电的块和行。预充电命令还需要一个行地址选通信号(RAS)和一个列地址选通信号(CAS),用来指示预充电操作。

3、突发读写模式

SDRAM的burst突发模式是指当SDRAM接收到一个读或写命令后,不需要再次寻址,而是按照预设的长度和顺序连续地传输数据。这样可以节省寻址时间,提高数据传输效率。

突发长度(burst length)和突发类型(burst type)可以通过模式寄存器(mode register)来设置。突发长度(burst length)是指每次突发传输的数据量,一般有1、2、4、8和全页(fullpage)五种选择。全页指的是打开行中剩余的所有列地址。突发长度越大,传输速度越快,但也会占用总线时间越长,影响其他设备的访问。突发类型(burst type)是指每次突发传输的数据顺序,一般有顺序(sequential)和交替(interleave)两种选择。

顺序指的是按照列地址从低到高或从高到低的顺序传输数据,速度较快。

交替指的是按照列地址以某种规律跳跃地传输数据,速度较慢。

不同的突发类型对应不同的应用场景,一般来说,顺序适合于连续访问相邻地址的情况,交替适合于随机访问不连续地址的情况。

4、bank并行和内存交错

让一个 chip 内的不同 bank 并行工作,提升读写效率。

连续向不同的 bank 发送读取指令,同一时间内很多 bank 都在并行工作,比如第一个 bank 可能在输出,第二个 bank 可能在放大电压,第三个 bank 可能在开启单元行。这样当第一个 bank 突发输出完毕,第二个 bank 刚好可以输出,当第二个 bank 猝发输出完毕,第三个 bank 刚好可以输出。

这种通过“ bank 间并行”实现“连续泵出数据”的方法,就是所谓的“内存交错”。

本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

005、简单页面-容器组件

之——布局 目录 之——布局 杂谈 正文 1.布局基础知识 2.Column 3.Row 4.实践 杂谈 布局容器组件。 一个丰富的页面需要很多组件组成,那么,我们如何才能让这些组件有条不紊地在页面上布局呢?这就需要借助容器组件来实现。 容器组件是…

C语言中的格式化输出符号:%d %c %p %x等

文章目录 概览%d%c%d和%c的区别%p%x %X输出浮点数参考 概览 C语言中的格式化输出符号有很多,以下是一些常见的: %d 或 %i:用于输出十进制整数。 %u:用于输出无符号十进制整数。 %f:用于输出浮点数。 %s:用…

通义千问 模型学习 和 SDK试用

通义千问-14B-Chat-Int4 模型库 (modelscope.cn) **通义千问-14B(Qwen-14B)**是阿里云研发的通义千问大模型系列的140亿参数规模的模型。Qwen-14B是基于Transformer的大语言模型, 在超大规模的预训练数据上进行训练得到。预训练数据类型多样&#xff0…

灯光开不了了,是不是NVIDIA的问题

如果你跟我一样灯光亮度调节不了了,然后显示适配器又没有了,你看一下是不是和我这个大怨种一样把NVIDIA卸了,为了这个东西,这屏幕亮瞎我的眼镜😢😢。只需要进入官网,你就可以直接找到&#xff0…

【el-form】表单label添加?及tooltip

<el-form-item><span slot"label"><el-tooltip :content"tooltip提示框内容" placement"top"><i class"el-icon-question"></i></el-tooltip>{{ $t(menu.status) }}</span><el-radio-gr…

某公司前端笔试题(12.30)

1、对象数组去重&#xff1a; 数组去重&#xff1a; const a[{a:1,b:2},{a:2},{a:2},{a:1,c:3},{b:2,a:1}] 结果&#xff1a;[{a:1,b:2},{a:2},{a:1,c:3}] // 判断两个对象的属性值是否一致 const a [{ a: 1, b: 2 }, { a: 2 }, { a: 2 }, { a: 1, c: 3 }, { b: 2, a: 1 }] co…

报错:执行sudo gedit时 No protocol specifiedUnable to init server: 无法连接: 拒绝连接

1.问题描述 在执行sudo gedit编辑文件时&#xff0c;报错连接不上服务&#xff1a; 2.问题解决 2.1先安装Vncserver sudo apt-get update sudo apt-get install tightvncserver2.2执行 vncserver 按提示输入密码&#xff0c;不宜过短 2.3若出现提示warning 则按提示执行&…

C#之扩展方法详解

前言&#xff1a; 我们想要向一个类型中添加方法&#xff0c;可以通过以下两种方式&#xff1a; 1.修改源代码。 2.在派生类中定义新的方法。 但是这两种方式都有缺点&#xff0c;1如果是别人的代码&#xff0c;你对其直接进行修改&#xff0c;可能破坏代码的完整性&#x…

Windows11系统下MemoryCompression导致内存占用率过高

. # &#x1f4d1;前言 本文主要是win11系统下CPU占用率过高如何下降的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日…

【STM32】TIM定时器

第一部分&#xff1a;定时器基本定时的功能&#xff1b; 第二部分&#xff1a;定时器的输出比较功能&#xff1b; 第三部分&#xff1a;定时器输入捕获的功能&#xff1b; 第四部分&#xff1a;定时器的编码接口。 1 TIM简介 TIM&#xff08;Timer&#xff09;定时器&#…

STM32GPIO速度配置究竟改变了什么-笔记

STM32GPIO速度配置究竟改变了什么-笔记 摘要STM32引脚内部框图STM32时钟树端口寄存器I/O交流特性定义 摘要 一般有 Low、Medium、High&#xff0c;三种速度选择。速度配置变了硬件什么状态&#xff1f; 对 GPIO 的输入输出信号有什么影响&#xff1f; 编程时如何选取速度参数&…

【网络】传输层 -- 详解IP协议及IP协议的分片原理

目录 一、IP协议基本概念二、IP协议头格式1、报头和有效载荷如何分离2、有效载荷是如何向上交付&#xff08;分用&#xff09;的3、具体IP报头 三、网段划分1、什么是网段划分2、如何进行子网划分&#xff1f;再次理解子网划分及如何划分 3、私有IP地址和公网IP地址4、路由 四、…

虚拟机备份数据自动化验证原理

备份数据成功备份下来了&#xff0c;但是备份数据是否可用可靠&#xff1f;对于这个问题&#xff0c;最好最可靠的方法是将备份数据实际恢复出来验证。 但是这样的方法&#xff0c;不仅费时费力&#xff0c;而且需要随着备份数据的定期产生&#xff0c;还应当定期做备份数据验…

opencv知识库:利用cv2.resize()函数进行图像缩放

引言 在numpy知识库&#xff1a;深入理解numpy.resize函数和数组的resize方法中&#xff0c;小编较为详细地探讨了numpy的resize函数背后的机理。从结果来看&#xff0c;numpy.resize函数并不适合对图像进行缩放操作。而opencv中的resize函数虽然和numpy的resize函数同名&…

Java面试题(每天10题)-------连载(41)

目录 Spring篇 1、什么是Spring框架&#xff1f;Spring框架主要有哪些模块&#xff1f; 2、使用Spring框架能带来哪些好处&#xff1f; 3、什么是控制反转&#xff08;IOC&#xff09;&#xff1f;什么是依赖注入&#xff1f; 4、解释下Spring中的IoC? 5、BeanFactory和…

Fiddler抓包工具之fiddler设置弱网测试

弱网测试 概念&#xff1a;弱网看字面意思就是网络比较弱&#xff0c;我们通称为信号差&#xff0c;网速慢。 意义&#xff1a;模拟在地铁、隧道、电梯和车库等场景下使用APP &#xff0c;网络会出现延时、中断和超时等情况。 Fiddler弱网测试流程&#xff1a; 一、限速操作…

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602移屏显示应用

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602移屏显示应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD1602简单介绍IIC通信简单介绍掉电保…

使用Python免费调用通义千问大模型

Qwen-72b开源模型 模型的主要用途是预测或描述一个系统或现象的行为模式。它可以帮助人们更好地理解这个系统或现象&#xff0c;例如预测股市变化、天气预报、地震预警、交通流量等。模型也常用于设计和优化产品和工艺。在科学研究中&#xff0c;模型也是一种方法&#xff0c;用…

仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能

仿京东淘宝商品列表筛选组件&#xff1a;实现一个高效的侧边栏弹框筛选功能 一、引言 随着电子商务的快速发展&#xff0c;用户体验成为了竞争的关键因素。在众多的电商网站中&#xff0c;如京东和淘宝&#xff0c;商品列表筛选功能为用户提供了便捷的途径来找到心仪的商品。本…

使用JSP+Servlet+MySQL实现登录注册功能

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…