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核,最直观的学习方式就是通过其仿真模型进行仿真,观察其工作时序,抓住需要重点关注的信号观察。在这里我们需要关注用户接口信号。

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

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

相关文章

web环境实现一键式安装启动

部署的痛点 一般在客户环境安装web环境,少说需要花费1-2小时。一般需要安装jdk、nginx、mysql、redis等 等你接触到了inno setup ,你有可能会节约更少的时间去部署。也有可能是一个不懂技术的人,都可以进行操作的。废话不多说,接…

Ansible 企业实战详解

一、ansible简介1. ansible是什么2.ansible的特点ansible的架构图 二、ansible 任务执行1、ansible 任务执行模式2、ansible 执行流程3、ansible 命令执行过程 二 .Ansible安装部署1.yum安装2.ansible 程序结构3、ansible配置文件查找顺序4、ansible配置文件5.ansible自动化配置…

yolov5模型代码怎么修改

yaml配置文件 深度乘积因子 宽度乘积因子 所有版本只有这两个参数的不同,s m l x逐渐加宽加深 各种类型层参数对照 backbone里的各层,在这里解析,只需要改.yaml里的各层参数就能控制网络结构 修改网络结构 第一步:把新加的模块…

C++打怪升级(十一)- STL之list

~~~~ 前言1. list是什么2. list接口函数的使用1. 构造相关默认构造n个val构造迭代器范围构造拷贝构造 2 赋值运算符重载函数2 析构函数3 迭代器相关begin 和 endrbegin 和rend 4 容量相关emptysize 5 元素访问相关frontback 6 修改相关push_backpop_backpush_frontpop_frontins…

二进制的形式在内存中绘制一个对象实例

一、引用类型实例的内存布局 从内存布局的角度来看,一个引用类型的实例由如下图所示的三部分组成:ObjHeader TypeHandle Fields。前置的ObjHeader用来缓存哈希值和同步状态,TypeHandle部分存储类型对应方法表(Method Table&…

并发编程之生产者消费者模型

什么是生产者消费者模型 生产者消费者模型是多线程中一个比较典型的模型。 打个比方:你是一个客户,你去超市里买火腿肠。 这段话中的 "你"就是消费者, 那么给超市提供火腿肠的供货商就是生产者。超市呢?超市是不是被…

Scrapy----Scrapy简介

文章目录 概述与应用背景架构和组件功能和特点社区生态概述与应用背景 Scrapy,一个高效、灵活、且强大的Web爬取框架,被广泛应用于数据抓取和网页内容的结构化提取。它是用Python编写的,支持多平台运行,适用于数据挖掘、在线零售信息收集、历史数据存档等多种场景。Scrapy…

【ArcGIS处理】行政区划与流域区划间转化

【ArcGIS处理】行政区划与流域区划间转化 引言数据准备1、行政区划数据2、流域区划数据 ArcGIS详细处理步骤Step1:统计行政区划下子流域面积1、创建批量处理模型2、添加批量裁剪处理3、添加计算面积 Step2:根据子流域面积占比均化得到各行政区固定值 参考…

设计基于STM32F103C8T6微控制器的巡线小车

巡线小车是一种能够在一条预定线追踪路径的小车,广泛应用于工业自动化、物流仓储、智能家居等领域。本设计将使用STM32F103C8T6微控制器来实现一个基础的巡线小车。 硬件组成:1. STM32F103C8T6微控制器开发板:作为巡线小车的核心控制器&…

如何快速搭建Spring Boot接口调试环境并实现公网访问

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

用归并排序算法merge_sort( )求解 逆序对的数量 降低时间复杂度为 nlogn

题目简述 给定一个序列有n个数&#xff0c;求n个数中逆序对的个数&#xff0c;逆序对的定义&#xff1a;i < j && a[i] > a[j]。 输入格式 第一行包含一个整数n。 第二行包含 n 个整数&#xff08;所有整数均在1~1e9范围内&#xff09;&#xff0c;表示整数数…

Maven项目指定main方法配置

例如有个maven工程 打包后 xxx.jar 而这个maven工程里可能有很多main方法,比如测试的main方法 插件指定 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId>&…

Python武器库开发-flask篇之模板渲染(二十四)

flask篇之模板渲染(二十四) Flask 中的模板是一种将数据和 HTML 代码组合在一起的方式&#xff0c;使得我们可以生成动态的 HTML 页面。使用模板可以使我们的代码更加简洁、易于维护和复用。在真实的环境中&#xff0c;我们往往接触到的是由 html、CSS和JavaScript所做的网页&…

【教3妹学编程-算法题】购买物品的最大开销

3妹&#xff1a;2哥&#xff0c;听说你今天发工资啦&#xff1f; 请我吃饭怎么样&#xff0c;嘿嘿 2哥 : 切&#xff0c;你上周还发工资了呢&#xff0c;也没见你请我吃饭。 3妹&#xff1a;哎呀&#xff0c; 我的工资都用来双11 shopping了&#xff0c; 双11过后我都吃了1周土…

【转载】快速搭建OpenGL环境!!!Windows10 + Visual Studio 2019 搭建OpenGL环境

目录 具体链接&#xff1a; 【转自】 完成后效果如下&#xff1a; 一开始的爆红&#xff1a; 下载安装后&#xff1a; 运行成功&#xff1a; 具体链接&#xff1a; 萌新向&#xff01;&#xff01;&#xff01;Windows10 Visual Studio 2019 搭建OpenGL环境&#xff08;…

基于springboot实现体育场馆运营平台项目【项目源码】

基于springboot实现体育场馆运营管理系统演示 系统开发平台 在该数码论坛系统中&#xff0c;Eclipse能给用户提供更多的方便&#xff0c;其特点一是方便学习&#xff0c;方便快捷&#xff1b;二是有非常大的信息储存量&#xff0c;主要功能是用在对数据库中查询和编程。其功能…

2024清理mac苹果电脑内存免费工具CleanMyMac X4.15

当你使用苹果电脑时&#xff0c;内存的优化和清理变得至关重要。随着时间的推移&#xff0c;我们的电脑内存可能会变得拥挤&#xff0c;导致性能下降。清理内存可以提高电脑的速度和反应能力&#xff0c;并确保它始终在良好状态下运行。本文将向您介绍怎么清理苹果电脑内存的方…

深眸科技革新升级OCR技术,与AI视觉实现有效融合赋能各行业应用

OCR即光学字符识别&#xff0c;是通过扫描仪或工业相机等电子设备检查打印的字符&#xff0c;并通过检测暗、亮的模式确定其形状&#xff0c;然后用字符识别方法将形状翻译成计算机文字的过程。 目前&#xff0c;随着机器视觉和人工智能技术的进一步升级&#xff0c;OCR技术实…

鸿蒙原生应用开发-折叠屏、平板设备服务卡片适配

一、多设备卡片适配原则 为不同尺寸的卡片提供不同的功能 在卡片开发过程中请考虑适配不同尺寸的设备&#xff0c;特别是在折叠屏和平板设备上&#xff0c;设备屏幕尺寸的变化直接影响了卡片内容的展示。请发挥想象力设计具有自适应能力的卡片&#xff0c;避免在卡片内容不做…

代码随想录图论|130. 被围绕的区域 417太平洋大西洋水流问题

130. 被围绕的区域 **题目&#xff1a;**给你一个 m x n 的矩阵 board &#xff0c;由若干字符 ‘X’ 和 ‘O’ &#xff0c;找到所有被 ‘X’ 围绕的区域&#xff0c;并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 题目链接&#xff1a;130. 被围绕的区域 解题思路&#xff1a…