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

DDR SDRAM 学习笔记

一、基本知识

1.SDRAM

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

SDRAM 使用电容的电荷存储特性存储数据,而 SRAM使用CMOS晶体管存储数据,这决定了SDRAM的运行功耗要远远低于SRAM。由于使用晶体管存储数据,要能够正确的存储一位数据,需要最少6个晶体管。因此,从芯片面积上来说,单片SRAM芯片的容量不可能做到很高。

2.发展

SDRAM从发展到现在已经经历了五代,分别是:

第一代:SDR SDRAM,

第二代:DDR SDRAM,

第三代:DDR2 SDRAM,

第四代:DDR3 SDRAM,

第五代:DDR4 SDRAM。

第一代SDRAM采用单端(Single-Ended)时钟信号,第二、三、四、五代由于工作频率比较快(100MHz以上称为高频时钟),所以采用可降低干扰的差分时钟信号作为同步时钟。

差分时钟的P线与N线电平相反,而外界影响对变化沿作用等同,故外界干扰可通过两根线的处理相互抵消:如图,数据在PN的变化沿交叉处传输,由图可知时钟的高电平周期和低电平周期长度达到一致,如果不用差分时钟,则长短不一;控制信号与地址信号则只在P线的上升沿与N线的下降沿交叉处采集,从而起到触发时钟校准的作用。

SDR SDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如pc100,pc133则表明时钟信号为100或133MHz,数据读写速率也为100或133MHz。之后的第二,三,四代DDR(Double Data Rate)内存则采用数据读写速率作为命名标准,并且在前面加上表示其DDR代数的符号,PC-即DDR,PC2=DDR2,PC3=DDR3。如PC2700是DDR333,其工作频率是333/2=166MHz,2700表示带宽为2.7G。

DDR 设备: 1. 功能上实现双速率 2. 增加了差分时钟线(clk,clk_n) 3. 电压等级 SSTL_25 2.5V) 4. 增加了数据线(DQ)的随路时钟(DQS,DQS_n) 5. 速度达到400M (Mbit/s)

DDR2 设备: 1. 电压等级进一步减低( SSTL_18 ) 2. 增加了 ODT(On-Die Termination) 3. 内部 4Bit 预读结构 4. 速度最高达到 1066 (Mbit/s)

DDR3设备:内部 8Bit 预读结构

3.关键时序

时序上,看数据与时钟的对齐位置:

4.应用

为什么要用DDR这些存储器?(高速大容量)

1.大容量需求:DDR3、DDR4和DDR5的最大容量可以达到64GB、128GB和2TB。

2.高速度需求:DDR3内存传输速率可以达到800Mhz-1600MHz,带宽可以达到12.8-16GB/s,更新代的可以更高。

可用于如图像处理等应用,作为数据缓存区。

5.新概念:预读取

        由于存储器内部支持的最高读取速率是固定的(即内核时钟频率),且只能在上升沿/下降沿读取数据,不能双沿读取,想要提高数据通信带宽,只能通过预读取更高位宽的数据,然后用更高频率的时钟双沿分段送出这些预读取的数据来实现。比如:存储器内部支持的内核时钟最高读取速率是200M,接口数据引脚位宽为16bit,假设每周期读取16位数据,则存储器通信带宽为:200M * 16 =3600Mbit/s ; 对于双数据速率接口,我们要求时钟双沿都读取数据,假如此时接口时钟也为200MHz,那么一个周期就要处理32位数据,所以存储器应该预读取32位数据,此时接口通信带宽为200M * 16 * 2 = 7200 Mbit/s;当我想要提高通信带宽为14400Mbit/s时,即200M * 2 * 16 * 2 = 14400Mbit/s,这时候就需要用200M时钟预读取 2 * 2 * 16= 64 bit位宽的数据,然后用400M的时钟双沿送出即可(存储器内核200MHz时钟一周期单沿读出64bit数据,400MHz接口时钟双沿传输,则刚好能在一个200MHz时钟周期内送出 2*2*16 = 64 bit)。

       也就是说,用高速时钟传输低速时钟存取的数据,相当于低速时钟一次性读取出高位宽的数据放在寄存器里,然后用高速时钟分段传输。

        ddr3接口时钟频率较高,如400MHz等,而FPGA内部的时钟一般100MHz、200MHz就已经很高的了;为了建立FPGA与DDR3的通信,FPGA内部专门设计了一个转换的物理层PHY,通过选择ratio,如4:1,则可以实现ddr3接口时钟用400MHz,而FPGA内部时钟用100MHz,这样一来FPGA存取数据均用的是100MHz。一般来说,这个PHY会有FIFO来缓存转换。

6.学习方法

        DDR与SDR SDRAM底层时序上的区别并不大,但我们一般使用用户接口(IP核)来控制,不自己写代码,因为要作很多优化。我们只需要例化IP核,然后根据需求进行简化封装即可。一般IP核会为我们提供用户接口,可以直接使用(部分IP核可提供AXI4接口,一般用于与NISO II 软核通信)。

        一般来说,学习一个复杂的IP核,最直观的学习方式就是通过其仿真模型进行仿真,观察其工作时序,抓住需要重点关注的信号观察。在这里我们需要关注用户接口信号。

相关文章:

DDR SDRAM 学习笔记

一、基本知识 1.SDRAM SDRAM : 即同步动态随机存储器(Synchronous Dynamic Random Access Memory), 同步是指其时钟频率与对应控制器(CPU/FPGA)的系统时钟频率相同,并且内部命令 的发送与数据传输都是以该时钟为基准…...

RocketMQ(4.9.4)学习笔记 - 安装部署

单机部署: 官网文档地址: https://rocketmq.apache.org/zh/docs/4.x 参考文档: windows安装RocketMQ_rocketmq windows_book多得的博客-CSDN博客 下载地址: https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.…...

虚拟局域网

虚拟局域网(VLAN) VLAN建立于交换技术的基础之上 广播域(broadcast domain):其中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收,这部分网络就叫广播域利用以太网交换机可以很方便地实现虚拟局域网VLAN(Virtual LAN)对于一个主机和…...

【PG】PostgreSQL 预写日志(WAL)、checkpoint、LSN

目录 预写式日志(WAL) WAL概念 WAL的作用 WAL日志存放路径 WAL日志文件数量 WAL日志文件存储形式 WAL日志文件命名 WAL内容 检查点(checkpoint) 1 检查点概念 2 检查点作用 触发检查点 触发检查点之后数据库操作 设置合…...

一文了解VR全景拍摄设备如何选择,全景图片如何处理

引言: 在如今的数字化时代,虚拟现实(VR)技术不仅为我们的生活增添了许多乐趣,也为摄影领域带来了新的摄影方式,那么VR全景拍摄如何选择设备,全景图片又怎样处理呢? 一. VR全景拍摄设…...

Linux下docker安装mysql8.0

下载mysql8.0docker镜像 docker pull mysql:8.0 查看下载的docker镜像 docker images创建挂载目录 mkdir -p /data/mysql/conf mkdir -p /data/mysql/data mkdir -p /data/mysql/logs运行 docker run -p 3306:3306 --name mysql --restartalways --privilegedtrue \ -v /da…...

C++ std::make_unique和std::make_shared用法

std::make_unique 和 std::make_shared 是 C++11 引入的两个辅助函数,用于创建动态分配的智能指针 std::unique_ptr 和 std::shared_ptr,分别帮助避免了显式使用 new 和 delete,从而提高代码的安全性和可读性。 std::make_unique: #include <memory>int main() {// …...

【Redis】list列表

上一篇&#xff1a; String 类型 https://blog.csdn.net/m0_67930426/article/details/134362606?spm1001.2014.3001.5501 目录 Lpush LRange Rpush Lpop Rpop Lindex Ltrim Lset 列表不存在的情况 如果列表存在 Linsert ​编辑 在………之前插入 在……后面插入…...

树莓派安装ubuntu系统

准备工作&#xff1a; 1.树莓派官方烧录工具&#xff0c;raspberry pi imager下载链接Raspberry Pi OS – Raspberry Pi 2.下载ubuntu镜像文件&#xff0c;下载链接Install Ubuntu on a Raspberry Pi | Ubuntu 打开imager软件&#xff0c;操作系统选择自定义镜像&#xff0c;…...

绩效管理系统有哪些?

绩效管理系统有哪些&#xff1f; 把绩效管理系统按照两大指标分类—— 按地域划分&#xff08;主要看兼容性和稳定性&#xff09;按照功能性质划分&#xff08;主要看实用性和拓展性&#xff09; 按照以上两个维度&#xff0c;我们可以简单把绩效管理系统分为4大不同类型——…...

Three.js学习记录

下载并安装...

CTFhub-RCE-远程包含

给咱一个phpinfo那么必然有他的道理 PHP的配置选项allow_url_include为ON的话&#xff0c;则include/require函数可以加载远程文件&#xff0c;这种漏洞被称为"远程文件包含漏洞(Remote File Inclusion RFI)"。 allow_url_fopen On 是否允许打开远程文件 allow_u…...

云流量回溯的重要性和应用

云流量回溯是指利用云计算和相关技术来分析网络流量、数据传输或应用程序操作的过程。这个过程包括了对数据包、通信模式和应用程序性能的审查和跟踪。本文将介绍云流量回溯重要性和应用! 1、网络安全: 云流量回溯是网络安全的重要组成部分。通过监测和回溯网络流量&#xff0c…...

JVM之垃圾回收

1. 如何判断对象可以回收 1.1 引用计数法 引用计数法是一种内存管理技术&#xff0c;其中每个对象都有一个与之关联的引用计数。引用计数表示当前有多少个指针引用了该对象。当引用计数变为零时&#xff0c;表示没有指针再指向该对象&#xff0c;该对象可以被释放&#xff0c…...

人工智能基础_机器学习026_L1正则化_套索回归权重衰减梯度下降公式_原理解读---人工智能工作笔记0066

然后我们继续来看套索回归,也就是线性回归,加上了一个L1正则化对吧,然后我们看这里 L1正则化的公式是第二个,然后第一个是原来的线性回归,然后 最后一行紫色的,是J= J0+L1 对吧,其实就是上面两个公式加起来 然后我们再去看绿色的 第一行,其实就是原来线性回归的梯度下降公式…...

ubuntu xrdp远程登录一直弹出Authentication required. System policy prevents WiFi scans

windows远程登录以后想要连接一下wifi&#xff0c;一定弹出Authentication required&#xff0c;关都关不掉&#xff0c;wifi也连不上。 使用以下方法后完美解决 sudo vi /etc/polkit-1/localauthority/50-local-d/network.pkla 加入如下内容&#xff1a; [Allow Wifi Scan…...

【Python】基础练习题_ 函数和代码复用

&#xff08;1&#xff09;编写一个函数&#xff0c;输入n为偶数时&#xff0c;调用函数求1/21/4…1/n,当输入n为奇数时&#xff0c;调用函数1/11/3…1/n。 def calculate_sum(n):total_sum 0if n % 2 0: # n为偶数for i in range(2, n1, 2):total_sum 1 / ielse: # n为奇…...

Java中的ClassLoader是什么?有哪些常见的ClassLoader?

在Java中&#xff0c;ClassLoader是一个抽象类&#xff0c;它的主要任务就是将class文件加载到JVM虚拟机中去以便程序可以正确运行。一般来说&#xff0c;Java程序在编写完成后是以.java的文件存在磁盘上&#xff0c;然后通过编译器将其编译成.class文件&#xff08;字节码文件…...

vim批量多行缩进调整

网上其他教程&#xff1a; ctrl v 或者 v进行visual模式按方向键<&#xff0c;>调整光标位置选中缩进的行Shift > &#xff08;或者 Shift < &#xff09;进行左右缩进。 我只想说&#xff0c;乱七八糟&#xff0c;根本不管用 本文教程&#xff1a; 增加缩进…...

MATLAB|科研绘图|山脊图

效果图 山脊图介绍 山脊图&#xff08;Ridge Plot&#xff09;&#xff0c;也被称为Joy Plot&#xff0c;是一种用于可视化数据分布的图表&#xff0c;特别是用于显示多个组的分布情况。在这种图表中&#xff0c;每个组的数据分布都通过平滑的密度曲线来表示&#xff0c;这些曲…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...