关于FPGA对 DDR4 (MT40A256M16)的读写控制 2

关于FPGA对 DDR4 (MT40A256M16)的读写控制 2

语言 :Verilg HDL
EDA工具:ISE、Vivado、Quartus II

      • 关于FPGA对 DDR4 (MT40A256M16)的读写控制 2
        • 一、引言
        • 二、DDR4的简介
        • 四、DDR4 SDRAM状态框图

  • 关键词: 调用,Verilog HDL,DDR4,MT40A256M16
一、引言

博主将会写一个系列的文章 关于FPGA对DDR4(MT40A256M16)的有效读写控制,最大化FPGA对DDR4的读写控制。首先将对DDR4的技术文档进行研读,注重DDR4的读写操作、刷新时间等。

二、DDR4的简介

DDR4 SDRAM 是一种高速的、基于 CMOS 技术的动态随机存取存储器(DRAM)。它内部配置为具有 16 个存储体的 DRAM,这些存储体被组织成 4 个存储体组,每个组包含 4 个存储体。这种设计允许 DDR4 SDRAM 实现高速操作,因为它采用了 8n-预取架构,结合了接口设计,能够在每个时钟周期的 I/O 引脚处传输两个数据字。

512M×8的DDR4,功能框图如下所示(源文档图片就缺失了一块)

在这里插入图片描述256Mx16的DDR4,功能框图如下所示

在这里插入图片描述每片DDR4有四个BG ,每个BG有四个bank,也就是有16个bank,bank可以译为组。
加粗样式

加粗样式#### 三、DDR4的管脚及含义

1、VDDQ: DQ 电源供应,为内存模块的数据线提供电源。
2、VPP: DRAM 激活电源供应,用于某些特定的内存操作。
3、VDD: 电源供应,为内存模块的大部分部分提供电源。
4、VSS: 地线,提供参考的零电位。
5、VSSQ: DQ 地线,为数据线提供参考的零电位。
6、VREFCA: 为控制、命令和地址引脚提供参考电压。
7、RESET_n: 复位信号,低电平有效,用于初始化或重置内存模块。
8、CKE: 时钟使能信号,控制内存模块的时钟输入缓冲器和输出驱动器。
9、CS_n: 芯片选择信号,低电平有效,用于选择特定的内存模块。
10、ACT_n: 激活信号,与 CS_n 结合使用,用于激活内存中的特定行。
11、RAS_n/A16 和 CAS_n/A15: 分别用于内存的行地址和列地址的激活和访问。
12、WE_n/A14: 写使能信号,低电平有效,用于控制数据的写入操作。
13、BA[1:0] 和 BG[1:0]: 分别为bank地址和bank组地址输入,用于选择内存中的特定bank或bank组。
14、A[17:0]: 地址输入引脚,提供行地址和列地址,用于访问内存中的特定位置。
15、DQ[15:0]: 数据输入/输出引脚,用于数据的读写操作。
16、DM_n: 数据掩码信号,用于在写操作期间屏蔽数据。
17、ODT: 片上终止信号,用于控制内存模块的输出终止电阻。
18、PAR: 奇偶校验信号,用于命令和地址的奇偶校验。
19、TEN: 测试模式使能信号,用于进入内存的测试模式。
20、ALERT_n: 警告输出信号,用于指示内存模块内部的特定警告或事件。

四、DDR4 SDRAM状态框图

描述了 DDR4 SDRAM 可能的状态转换以及控制这些转换的命令。这个状态图是一个高层次的概述,注意不涉及多个存储体(bank)、片上终止(on-die termination)的启用或禁用等。
在这里插入图片描述
在 DDR4 SDRAM 的操作中,状态图通常包括以下一些状态和转换:
1、Bank active (存储体激活): 存储体已被激活,准备进行读写操作。
2、Reading (读取): 正在进行数据读取操作。
3、Writing (写入): 正在进行数据写入操作。
4、Activating (激活): 存储体正在被激活,准备访问。
5、Refreshing (刷新): 存储体正在执行刷新操作,以保持数据的完整性。
6、Self refresh (自刷新): 内存模块正在自刷新状态,以节省功耗。
7、Idle (空闲): 内存模块没有进行任何操作,等待命令。
8、Active powerdown (活动功耗降低): 存储体在活动状态下进入功耗降低模式。
9、Precharge powerdown (预充电功耗降低): 存储体在预充电状态下进入功耗降低模式。
10、ZQ calibration (ZQ 校准): 内存模块正在进行 ZQ 校准,以确保信号完整性。

状态转换由各种命令触发,例如:
1、ACT: 激活存储体。
2、READ: 从存储体读取数据。
3、WRITE: 向存储体写入数据。
4、PRE: 预充电,关闭当前激活的存储体。
5、PREA: 预充电所有存储体。
6、REF: 刷新存储体。
7、SRE: 进入自刷新状态。
8、SRX: 退出自刷新状态。
9、ZQCL: 执行 ZQ 校准。

这些状态和命令是 DDR4 SDRAM 正常操作的一部分,确保内存模块可以高效、可靠地执行数据存储和检索任务。状态图帮助设计者和工程师理解内存模块的行为,并在设计系统时考虑到这些行为。

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

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

相关文章

【Hachker News】如果你不需要钱,你会干什么?

Hachker News上的一个问题,标题是“如果你不需要钱,你会做什么?” 回答摘要 问题链接:What would you spend your time working on if you didn’t need money? A1: 我会把时间投入到城市周围的农村地区&#xff0c…

Matlab使用Simulink仿真实现AM和BPSK信号的解调

前言 本篇实现了基于AM和BPSK调制的通信系统,采用Bernoulli Binary Generator生成随机二元序列,码元速率为0.5秒/个。AM调制使用Sine Wave模块生成载波,频率40Hz,相位π/2。BPSK调制通过Switch模块切换相位0和π的载波。信号传输…

【java计算机专业毕设】房屋租赁系统代码源码MySQL springboot vue html maven送文档ppt

1项目功能 【java计算机专业毕设】房屋租赁系统javaweb MySQL springboot vue html maven 送报告 2项目介绍 系统功能: 房屋租赁系统包括管理员和用户和房东三种角色。 该系统包含多个功能模块,分别为管理员、用户和房东提供服务。管理员功能包括个人中…

20.2 JSON-JSON解码、映射数据类型、处理JSON响应

1. JSON解码 JSON解码,即将JSON格式在字符串转换为Go语言数据类型的变量。 函数Unmarshal接受一个JSON字节切片和一个指定目标格式的接口。而这个借口即与JSON字符串中的结果相匹配的结构体类型的变量。 定义结构体类型 type Person struct { ... }创建结构体变量…

聚鼎科技:现在的装饰画做起来难吗

在当代,装饰画作为一种体现个人品味和审美情趣的方式,已经广泛应用于各种室内空间。不少人会产生这样的疑问:在现代化技术和材料的支持下,制作一幅装饰画是变得容易了,还是依旧充满挑战? 现代科技的确为装饰画的制作带…

微信小程序查分易如何使用?

期末马上到了,老师们又开始为发放成绩而头疼了,堆积如山的试卷,密密麻麻的分数,还有那些不断响起的家长电话,真是让人心烦。别担心,今天就让我来介绍一个让老师“偷懒”神器——查分易微信小程序 第一步&am…

ROS中Twist消息类型

Twist消息类型在Robot Operating System (ROS)中是一个常见的数据结构,主要用于描述物体的线性速度和角速度。这种消息类型在ROS的geometry_msgs包中定义,常用于机器人运动控制,尤其是当需要向机器人发布速度指令时。 Twist消息由两个Vector…

6月14日 Qtday2

#include "widget.h" #include "ui_widget.h" #include <QTimer> using namespace std; Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), lab1(new QLabel(this)) //初始化一个标签显示登录状态 {//设置华清远见的标签图…

再谈 dijkstra 算法和最短路径问题

前置文章&#xff1a; dijkstra 算法为什么高效 有向图的负权值边与建模 求单源最短路径的新方法 前天晚上实现了一个基于 dijkstra 算法的求单源最短路径的新算法&#xff0c;整理了一篇文章。我非常不愿意把一些直观的问题太过于技术化&#xff0c;但多年的职业经历偏偏让一…

C#——静态成员和非静态成员详情

静态成员和非静态成员 调用: 静态属性(static) : 类名.属性名调用 非静态属性(没static) : 1.先创建对象 2.对象.属性 特点: 静态方法里面只能访问静态成员 非经态方法中可以访问所有的属性 static数据成员在类的内部声明&#xff0c;但只能在类的外部定义&#xff0c;…

【软件安装9】OpenCV多版本安装Ubuntu18.04

文章目录 一、查看已安装的Opencv版本二、安装新版本三、多版本OpenCV切换 OpenCV 官网 在此 一、查看已安装的Opencv版本 查看已安装opencv的版本 pkg-config opencv --modversion官网下载对应的版本&#xff0c;并解压 opencv3.4.3 二、安装新版本 进入前置准备里下载…

24年法考报名照片千万别乱拍,否则卡审

法考报名照片每年都有很多被卡审&#x1f62d; 常见的问题是 ①照片比例不对&#xff0c;无法上传&#xff0c;人像比例要求非常严格 ②照片像素错误&#xff0c;不能直接拿大图压缩图片&#xff0c;需要做出413*626像素的法考证件照 ③照片文件偏大&#xff0c;照片要求40-100…

单触控单输出触摸开关芯片PT2052A

1.产品概述 PT2052封装和丝印 PT2052A 是一款单通道触摸检测芯片。该芯片内建稳压电路&#xff0c;提供稳定电压给触摸感应电路使用&#xff0c;同时内部集成高效完善的触摸检测算法&#xff0c;使得芯片具有稳定的触摸检测效果。该芯片专为取代传统按键而设计&#xff0c;具有…

【精品方案】离散型制造行业智能工厂标准解决方案(49页 PPT)

引言&#xff1a;随着科技的不断进步和制造业的转型升级&#xff0c;离散型制造行业正面临着从传统制造向智能制造转型的迫切需求。离散型制造行业涉及的产品种类繁多&#xff0c;生产流程复杂&#xff0c;对生产效率、产品质量和成本控制有着极高的要求。因此&#xff0c;开发…

SQL中的UPDATE语句:别让你的数据“离家出走”

sql的update操作正式环境用的很少&#xff0c;但是在测试环境还是用的挺多的。 想象一下&#xff0c;你正在管理一个学校的数据库&#xff0c;其中有一个students表&#xff0c;记录着每个学生的信息。有一天&#xff0c;你接到通知说某个学生的年龄或成绩需要更新。这时&…

【Java并发编程之美 | 第一篇】并发编程线程基础

文章目录 1.并发编程线程基础1.1什么是线程和进程&#xff1f;1.2线程创建与运行1.2.1继承Thread类1.2.2实现Runnable接口1.2.3实现Callable接口&#xff08;与线程池搭配使用&#xff09;1.2.4小结 1.3线程常用方法1.3.1线程等待与通知1.3.2线程睡眠1.3.3让出CPU执行权1.3.4线…

漫步者开放式耳机值得买吗?漫步者、西圣、小米硬核测评pk性能!

说起开放式蓝牙耳机&#xff0c;相信大部分朋友都不会陌生。与传统的封闭式耳机相比&#xff0c;开放式蓝牙耳机不仅提升了佩戴舒适度&#xff0c;还对耳朵有良好的保护效果。特别适合喜欢户外运动和长途旅行的用户。然而&#xff0c;由于市场上产品众多&#xff0c;选择一款高…

用Python向Word文档添加页眉和页脚

用Python向Word文档添加页眉和页脚 添加页眉和页脚效果代码 添加页眉和页脚 在本文中&#xff0c;我们将用python向文档中添加页眉和页脚。 效果 添加前的文档&#xff1a; 添加页眉和页脚后&#xff1a; 代码 from docx import Documentdef add_header_footer(doc_path…

UE4_后期_ben_模糊和锐化滤镜

学习笔记&#xff0c;不喜勿喷&#xff0c;侵权立删&#xff0c;祝愿生活越来越好&#xff01; 本篇教程主要介绍后期处理的简单模糊和锐化滤镜效果&#xff0c;学习之前首先要回顾下上节课介绍的屏幕扭曲效果&#xff1a; 这是全屏效果&#xff0c;然后又介绍了几种蒙版&#…

MySQL与PostgreSQL关键对比四(关联查询性能)

引言&#xff1a;MySQL单表的数据规模一般建议在百万级别&#xff0c;而PostgreSQL的单表级别一般可以到亿级&#xff0c;如果是MPP版本就会更多。从基础数据建议上&#xff0c;不难看出&#xff0c;MySQL在Join的情况下也就是主要查询的情况下性能和PostgreSQL相差还是很大的。…