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

1. 简介

本文为硬件平台创建PL IP模块,创建PL内核,子系统功能仿真,并评估Vivado®的时序、资源和功耗收敛。

本文设计过程的主题包括:

  • Clocking
  • Resets
  • Protocol Description
  • Customizing and Generating the Core
  • Example Design

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定时

DDR Bus Efficiency

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

内存控制器

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

内存初始化和校准序列

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

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

2. 配置界面

重要提示:

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

4. 总结

5. 参考资料

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

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

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

相关文章

Linux学习(2):shell脚本和正则

概述 一般使用/bin/bash,也就是bash解析器。最广泛,大家公认。 一般shell脚本的后缀都是 .sh 简单写一个: 执行方法:sh sh文件 or bash sh文件,(不用x权限)直接运行./sh文件可能会有权限问题&#xff…

定制开发AI智能名片商城微信小程序在私域流量池构建中的应用与策略

摘要 在数字经济蓬勃发展的今天,私域流量已成为企业竞争的新战场。定制开发AI智能名片商城微信小程序,作为私域流量池构建的创新工具,正以其独特的优势助力企业实现用户资源的深度挖掘与高效转化。本文深入探讨了定制开发AI智能名片商城微信…

《昇思25天学习打卡营第20天|GAN图像生成》

生成对抗网络(GAN)是一种深度学习模型,用于生成逼真的图像。在手写数字识别的任务中,GAN 可以用来生成与真实手写数字相似的图像,以增强模型的训练数据集。GAN 主要由两个部分组成:生成器(Gener…

UDP客户端、服务端及简易聊天室实现 —— Java

UDP 协议(用户数据包协议) UDP 是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接,简单来说,当客户端向接收端发送数据时,客户端不会确认接收端是否存在,就会发出…

FATE Flow 源码解析 - 日志输出机制

背景介绍 在 之前的文章 中介绍了 FATE 的作业处理流程,在实际的使用过程中,为了查找执行中的异常,需要借助运行生成的日志,但是 FATE-Flow 包含的流程比较复杂,对应的日志也很多,而且分散在不同的文件中&…

Go语言中的并发

简单介绍go中的并发编程. 涉及内容主要为goroutine, goroutine间的通信(主要是channel), 并发控制(等待、退出). 想查看更多与Go相关的内容, 可以查看我的Go编程栏目 Goroutine 语法 在一个函数调用前加上go即可, go func(). 语法很简单, 可以说是并发写起来最简单的程序语言…

【简单介绍Gitea】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

广联达Linkworks ArchiveWebService XML实体注入漏洞复现

0x01 产品简介 广联达 LinkWorks(也称为 GlinkLink 或 GTP-LinkWorks)是广联达公司(Glodon)开发的一种BIM(建筑信息模型)协同平台。广联达是中国领先的数字建造技术提供商之一,专注于为建筑、工程和建筑设计行业提供数字化解决方案。 0x02 漏洞概述 广联达 LinkWorks…

【C#】已知有三个坐标点:P0、P1、P2,当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致,该如何计算P3、P4?

问题描述 已知有三个坐标点:P0、P1、P2,当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致,该如何计算P3、P4? 解决办法 思路一:斜率及点斜式方程 # 示例坐标 x0, y0 1, 1 # P0坐标 x1, y1 4, 4 # …

leetcode力扣_二分查找

69.x的平方根 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1&…

数据结构——线性表(循环链表)

一、循环链表定义 将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一 个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)。 循环链表解决了一个很麻烦的问题。如何从当中一 个结点出发&am…

C# 智慧大棚nmodbus4

窗体 :图表(chart): 下载第三方: nmodbus4:可以实现串口直连,需要创建串口对象设置串口参数配置Serialport 如果需要把串口数据表通过tcp进行网口传递 需要创建tcpclient对象 ModbusSerialMaster master; /…

爬虫(二)——爬虫的伪装

前言 本文是爬虫系列的第二篇文章,主要讲解关于爬虫的简单伪装,以及如何爬取B站的视频。建议先看完上一篇文章,再来看这一篇文章。要注意的是,本文介绍的方法只能爬取免费视频,会员视频是无法爬取的哦。 爬虫的伪装 …

【Arduino IDE】安装及开发环境、ESP32库

一、Arduino IDE下载 二、Arduino IDE安装 三、ESP32库 四、Arduino-ESP32库配置 五、新建ESP32-S3N15R8工程文件 乐鑫官网 Arduino官方下载地址 Arduino官方社区 Arduino中文社区 一、Arduino IDE下载 ESP-IDF、MicroPython和Arduino是三种不同的开发框架,各自适…

基于Web的特产美食销售系统的设计与实现

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

SpringBoot框架学习笔记(二):容器功能相关注解详解

1 Spring 注入组件的注解 Component、Controller、 Service、Repository这些在 Spring 中的传统注解仍然有效,通过这些注解可以给容器注入组件 2 Configuration 2.1 应用实例 需求说明: 演示在 SpringBoot, 如何通过Configuration 创建配置类来注入组件 回顾…

客户端与服务器通讯详解(3):如何选择合适的通讯方式

上篇文章中,我们讲解了客户端与服务器通讯详解(2):12种常见通讯方式,重点讲解了http、websocket和RESTful API三种,本文我们继续讲解如何依据场景选择最合适的通讯方式。欢迎友友们点赞评论。 一、客户端服…

微软研究人员为电子表格应用开发了专用人工智能LLM

微软的 Copilot 生成式人工智能助手现已成为该公司许多软件应用程序的一部分。其中包括 Excel 电子表格应用程序,用户可以在其中输入文本提示来帮助处理某些选项。微软的一组研究人员一直在研究一种新的人工智能大型语言模型,这种模型是专门为 Excel、Go…

PDF文件无法编辑?3步快速移除PDF编辑限制

正常来说,我们通过编辑器打开pdf文件后,就可以进行编辑了。如果遇到了打开pdf却不能编辑的情况,那有可能是因为密码或是扫描件的原因。小编整理了一些pdf文件无法编辑,以及pdf文件无法编辑时我们要如何处理的方法。下面就随小编一起来…

JDK新特性(Lambda表达式,Stream流)

Lambda表达式: Lambda 表达式背后的思想是函数式编程(Functional Programming)思想。在传统的面向对象编程中,程序主要由对象和对象之间的交互(方法调用)构成;而在函数式编程中,重点…