Xilinx FPGA DDR4 接口配置基础(PG150)

news2024/11/14 1:24:20

1. 简介

1.1 DDR4 SDRAM 控制器主要特点

  • 支持8到80位接口宽度的组件(支持 RDIMM、LRDIMM、UDIMM 和 SODIMM)
    • 最大组件限制为9,此限制仅适用于组件,不适用于 DIMM。
  • 密度支持
    • 最高支持 32 GB 的组件密度,64 GB 的 LRDIMM,128 GB 的 RDIMM,16 GB 的 SODIMM 和16 GB 的 UDIMM。
    • 其他内存设备支持的密度可通过自定义部件选择获得支持。
  • AXI4从属接口
    • 注意:基于 x4 的组件接口不支持 AXI4,而基于 x4 的 RDIMM 和 LRDIMM 支持 AXI4。
  • 支持 x4、x8 和 x16 组件
  • DDR4 RDIMM、SODIMM、LRDIMM 和 UDIMM 的双槽支持
  • 8字节突发支持
  • 支持9到24个列地址脉冲(CAS)延迟(CL)
  • ODT支持
  • 3DS RDIMM 和 LRDIMM 支持
  • 3DS 组件支持
  • 支持9到18个 CAS 写延迟周期
  • Verilog 源代码交付
  • 4:1 内存到 FPGA 逻辑接口时钟比率
  • 开放、封闭和基于事务的预充电控制器策略
  • 通过Vivado硬件管理器提供接口校准和训练信息
  • 非 AXI4 72位接口的可选纠错码(ECC)支持
  • 不支持写操作的 CRC
  • 不支持地址/命令总线的2T定时

1.1.1 RDIMM, LRDIMM, UDIMM, SODIMM

DIMM(Dual In-line Memory Module)

DIMM,双列直插内存模块,一种常见的计算机内存模块。它是一块小型电路板,上面装有多个 DDR 芯片。DIMM 插入计算机主板上的相应插槽中,允许根据需要更改计算机的内存配置。与早期的 SIMM(Single In-line Memory Module,单列直插内存模块)不同,DIMM 的两侧有独立的电气接触点,能够提供更宽的数据通道(64 位),从而提高了数据传输效率。

RDIMM(Registered DIMM)

Registered DIMM 是一种带有寄存器的双列直插内存模块。寄存器位于 CPU 和 DRAM 芯片之间,用于缓冲数据传输信号,从而提高传输效率和稳定性。通常用于需要高稳定性和大容量内存的企业级服务器和高端计算机系统。

LRDIMM(Load-Reduced DIMM)

Load-Reduced DIMM 是一种降低负载的双列直插内存模块。与 RDIMM 不同,LRDIMM 使用内存缓冲芯片而不是寄存器来减少主板上的电力负载,这允许系统安装更多的内存模块,从而增加总内存容量,同时还能保持较高的数据传输速率。LRDIMM 非常适合需要极大内存容量的应用,如大型数据库、数据分析和高性能计算。

UDIMM(Unbuffered DIMM)

Unbuffered DIMM 是一种不带缓冲的双列直插内存模块。UDIMM 直接与系统的内存控制器交互,通常用于台式机和笔记本电脑。由于没有缓冲,UDIMM 的延迟较低,但支持的内存容量较小。

SODIMM (Small Outline DIMM)

Small Outline DIMM 是一种小型双列直插内存模块,主要用于笔记本电脑和其他空间有限的设备。SODIMM 的体积约为常规 DIMM 的一半,但性能和容量与全尺寸 DIMM 相似。

1.1.2 组件(Component)

组件(Component)指的是单个 DRAM 芯片。这些芯片是构成内存模块(如 DIMM)的基本单元。每个组件都有特定的容量和特性,它们共同决定了整个内存模块的性能和容量。

以下是一些关键点:

1)容量(Density)

  • 组件的容量通常以千兆位(Gb)为单位。例如,一个 8Gb 的 DRAM 组件可以存储 8 千兆位的数据。

2)位宽(Width)

  • 组件的位宽决定了每次数据传输的位数。常见的位宽有 x4、x8 和 x16,他们每次传输 4 位、8 位或 16 位数据。

3)组织(Organization)

  • 组件的组织方式描述了其内部结构,例如 8Gb x8 组件表示这个组件有 8Gb 的容量,每次传输 8 位数据。

4)速度(Speed)

  • 组件的速度通常以数据传输率(如 3200 MT/s)表示,决定了数据传输的快慢。

5)电压(Voltage)

  • 不同代的 DDR 组件工作在不同的电压下,DDR4 通常工作在 1.2V,而 DDR3 工作在 1.5V。

1.1.3 Bank / Rank

如果控制器数据位宽为 64bits,那么 CPU 每次操作内存数据为 64bits,如果组件是 8bits,那么就需要 8 个组件凑在一起,他们组成一组,称为一个 Rank。

1.1.4 模式寄存器

1.1.5 其他

DDR Bus Efficiency

指的是数据总线在传输数据时的效率。它衡量的是在给定时间内,数据总线实际传输的数据量与其理论最大传输能力的比率。高效的DDR总线意味着在最少的总线转换操作下,能够保持最高的数据传输效率。

内存控制器

内存控制器(MC)旨在从用户界面(UI)块接收读取、写入和读取-修改-写入事务,并以低延迟高效地将它们发送到内存,满足所有DRAM协议和时序要求,同时使用最少的FPGA资源。该控制器使用DRAM到系统时钟比率为4:1运行,每个系统时钟周期可以发出一个激活(Activate)、一个列地址选择(CAS)和一个预充电(Precharge)命令。
该控制器支持开放页策略,并且可以在具有高空间局部性的工作负载中实现非常高的效率。该控制器还支持封闭页策略,并具有重新排序事务以有效调度具有更随机地址模式的工作负载的能力。该控制器还允许通过UI控制信号对低级功能进行一定程度的控制,例如按事务基础上的自动预充电(AutoPrecharge),以及可以用于确定何时发出DRAM刷新命令的信号。

内存初始化和校准序列

在系统复位取消后,PHY首先执行一些必要的内部校准步骤。

PHY运行内置自检(BISC)。BISC用于在校准完成后计算用于电压和温度跟踪的内部偏移。
在完成BISC后,校准逻辑执行内存所需的上电初始化序列。
随后进行写入和读取数据路径的多个阶段的时序校准。
校准完成后,PHY计算内部偏移,用于电压和温度跟踪。
PHY指示校准已完成,控制器开始向内存发出命令。

1.2 DDR4 主要参数解释

1.2.1 VDD / VPP

2. 配置界面

2.1 Memory Part

MT40A512M16HA-075E, 8Gb, Row=16, Column=10, Bank=2, Bank Group=1, Ranks=1, StackHeight=1

重要提示:

应该使用DBI,通过将所有DQ总线上的“0”重复单个突发长度= 8(BL8)读取访问,并在每个BL8读取突发之间插入空闲(NOP/DESELECT),如图1-2所示。启用DBI功能有效地减轻过多的电源噪音。如果DBI不可用,则在数据到达内存控制器之前,在应用中对数据进行编码以消除所有“0”突发,也是减轻电源噪音的同样有效方法。对于缺少DM/DBI引脚的基于x4的RDIMM/LRDIMM接口,通过用于这些拓扑结构的ODT设置来减轻电源噪音。对于比16位更宽的基于x4的组件接口,建议使用数据编码方法。

区分数据总线宽度和突发长度的概念:

数据总线宽度:这是指存储器接口一次能并行传输数据的位数。例如,64位宽的数据总线每个传输周期可以传输64位(或8字节)数据。

突发长度:这指的是在一次突发操作中连续传输的数据块的大小,通常以字节为单位。突发长度可以是任何数值,但通常是内存接口宽度的整数倍。

对于64位宽的存储器接口,如果支持8字节突发,那么在理论上,每个传输周期可以完成一次完整的突发传输。

综上所述,8字节突发对于64位宽的存储器接口而言,确实是基本的操作单位,每个周期可以完成一次突发传输。但在不同的设计和应用需求下,可能会有不同的突发长度设置来优化性能。

4. 总结

5. 参考资料

  • 《UltraScale Architecture-Based FPGAs Memory IP Product Guide (PG150)》

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

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

相关文章

初识godot游戏引擎并安装

简介 Godot是一款自由开源、由社区驱动的2D和3D游戏引擎。游戏开发虽复杂,却蕴含一定的通用规律,正是为了简化这些通用化的工作,游戏引擎应运而生。Godot引擎作为一款功能丰富的跨平台游戏引擎,通过统一的界面支持创建2D和3D游戏。…

数字集成电路(3)

光刻(photolithography) 工艺步骤: 扩散和离子注入:900~1100℃ 淀积 刻蚀 平面化 衬底选择:常用(100)晶面(原因:面密度小,界面态少) 设计规…

【vue教程】四. Vue 计算属性和侦听器

目录 本章涵盖知识点回顾计算属性(Computed)创建计算属性计算属性的多样性计算属性的数组过滤计算属性的复杂表达式 计算属性 vs 方法计算属性的实例演示 侦听器(Watchers)创建侦听器侦听器的高级用法侦听器的深度观察侦听器的立即…

【ffmpeg命令基础】过滤处理

文章目录 前言过滤处理的介绍两种过滤类型简单滤波图简单滤波图是什么简单滤波示例 复杂滤波图复杂滤波是什么区别示例 总结 前言 FFmpeg是一款功能强大的开源音视频处理工具,广泛应用于音视频的采集、编解码、转码、流化、过滤和播放等领域。1本文将重点介绍FFmpe…

mysql存储引擎和备份

索引 事务 存储引擎 概念:存储引擎,就是一种数据库存储数据的机制,索引的技巧,锁定水平。 存储引擎。存储的方式和存储的格式。 存储引擎也属于mysql当中的组件,实际上操作的,执行的就是数据的读写I/O。…

ROC曲线和AUC

ROC曲线能更稳定反映模型的性能,对测试集合中数据分布的变化不敏感 AUC:当随机挑选一个正样本和一个负样本,根据当前的分类器计算得到的score将这个正样本排在负样本前面的概率 从AUC判断分类器(预测模型)优劣的标准&a…

【QT开发(19)】2023-QT 5.14.2实现Android开发,使用新版SDK,试图支持 emulator -avd 虚拟机

之前的博客【QT开发(17)】2023-QT 5.14.2实现Android开发,SDK是24.x版本的,虚拟机是32位的,但是现在虚拟机是64位的了,需要升级SDK匹配虚拟机 文章目录 最后的效果1.1 下载最新版 SDK tools (仅限命令行工…

JavaWeb-【3】DOM

笔记系列持续更新,真正做到详细!!本次系列重点讲解后端,那么第一阶段先讲解前端【续上篇CSS和JavaScript】 目录 1、dom介绍 2、html-dom 3、document 4、应用实例 ①、应用实例1 ②、多选框案例 ③、图片切换案例 ④、添…

高性能图数据库Neo4j从入门到实战

图数据库Neo4j介绍 什么是图数据库(graph database) 随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈…

密码学基础-Hash、MAC、HMAC 的区别与联系

密码学基础-Hash、MAC、HMAC 的区别与联系 Hash Hash 是一种从一段数据中创建小的数字“指纹”的方法。就像一个人的指纹代表一个人的信息一样,Hash 对输入的数据进行整理,生成一个代表该输入数据的“指纹” 数据。通常该指纹数据也可称之为摘要、散列…

CefSharp音视频编译与免费下载

注:Cefharp 音频和视频播放编译,生成相应的dll文件,从而支持项目开发。 建议编译至少 16G 的 RAM和至少 250G 的 SSD。该脚本以 E 盘为例,您需要在 E 盘上手动创建 cef 文件夹。禁止在转载后通过发布其他平台向用户收取下载费用。…

全国区块链职业技能大赛第八套区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 医疗健康平台中涉及到医院、医生、患者等参与方,他们需要在区块链医疗健康平台中完成账户注册、身份上链、挂号就诊、查询病例等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于医疗健康平台系统架构,以…

【数据结构进阶】二叉搜索树

🔥个人主页: Forcible Bug Maker 🔥专栏: C || 数据结构 目录 🌈前言🔥二叉搜索树🔥 二叉搜索树的实现Insert(插入)find(查找)erase(删除)destro…

毕业/期刊论文发表必备:YOLOv5 / v7 / v8 /v10算法网络结构图【文末提供原型文件下载地址】

前言:Hello大家好,我是小哥谈。同学们在写YOLO算法相关毕业论文/期刊论文的时候,不可避免的会用到相关版本的网络结构图,曾有很多小伙伴私信我索要原型文件,本文就给大家提供YOLOv5/v7/v8/v10版本算法网络结构图及原型文件下载地址。🌈 目录 🚀1.网络结构图 �…

Fiddler 导出请求为curl格式

来自:https://www.cnblogs.com/yudongdong/p/15418181.html Fiddler 下载地址: https://downloads.getfiddler.com/fiddler-classic/FiddlerSetup.5.0.20243.10853-latest.exe 这段代码加到类中 public static RulesOption("关闭请求体转代码", "生成代码&qu…

简单页表和多级页表

地址转换(Address Translation) 内存需要被分成固定大小的页(Page)然后再通过虚拟内存地址(Virtual Address) 到物理内存地址(Physical Address) 的地址转换(Address Translation)才能到达实际存放数据的物理内存位置 简单页表 页表的概念 想要把虚拟内存地址,映…

ip地址是电脑还是网线决定的

在数字化时代的浪潮中,网络已经成为了我们日常生活和工作不可或缺的一部分。当我们谈论网络时,IP地址无疑是一个核心的概念。然而,关于IP地址的分配和决定因素,很多人可能存在误解。有些人认为IP地址是由电脑决定的,而…

pytorch 46 将ASpanFormer模型导出onnx运行

ASpanFormer是一个2022年8月份发布的算法,其主要步骤与LoFTR模型类似,因此无法导出为onnx模型。根据ASpanFormer论文中的数据与效果图,可以确定AsPanFormer是可以作为一个比SP+SG更为有效的方案,其在标准数据集上的效果优于SP+SG,在速度上远超SP+SG,与LoFTR接近;在预测点…

C语言:静态库和动态(共享)库

相关阅读 C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm1001.2014.3001.5482 在软件开发中,库(Library)是一个至关重要的概念。它们是由函数和数据的集合构成,用于实现特定的功能,供其他程…

测试——性能测试

内容大纲: 常见的性能问题 性能测试是什么 性能测试和功能测试之间的区别 为什么要进行性能测试 常见的性能指标及性能测试专业术语 性能测试分类 1. 常见的性能问题 系统内部以及软件的代码实现: 资源泄漏,包括内存泄漏。CPU使用率达到100%,系统被锁定…