景芯SoC DDR子系统

news2024/9/24 5:32:44

Memory子系统主要由DDR Controller和DDR_PHY(含DDR_IO)两个部分组成。DDR Controller主要承担其它子系统(如CPU)与Memory子系统进行数据交互时的传输效率及调度,DDR_PHY主要负责数据交互过程中的传输速度。

DDR内存接口IP解决方案包括DDR控制器、PHY和接口。当我们提到DDR内存子系统时,我们指的是主机片上系统(SoC)控制和访问DDR内存,以及主机和DDR内存设备之间的接口和互连(通常是PCB),以及DDR SDRAM设备本身。

·DDRC通过AXI接受到来自Master的读写命令

·将来自master的命令转为DDR读写时序序列

·通过DFI协议传给PHY

图片

DFI接口如下:

图片

景芯DDR PHY

DDR PHY(物理层接口)是存储控制器和DRAM颗粒之间的桥梁,负责数据的传输速度和时序控制。DDR PHY的结构和功能如下:

1.DDR PHY结构组成:DDR PHY主要由Soft IP和Hard IP两部分组成。Soft IP指的是PUB模块(PHY Utility Block),它负责PHY的初始化、training及控制逻辑,支持自动化的DQS gate training、Delay line 校准和VT补偿等功能。

图片

2.PUB模块功能:PUB模块支持最多4个Rank,可以配置为单数据通道或双通道数据配置,并且能够完成自动化Write Leveling、Write、Read的data bit deskew以及DQ/DQS eye training等任务。

图片

1.不支持SDRAM DLL off模式;

2.数据通路的位宽以8bit的增量递增;

3.支持最多4个Rank;

4.支持单数据通道或者双通道数据配置;

5.能够完成PHY的初始化、training及控制逻辑;

6.支持自动化DQS gate training;

7.支持Delay line 校准和VT 补偿;

8.支持自动化Write Leveling;

9.支持自动化Write、Read的data bit deskew;

10.支持自动化DQ/DQS eye training;

11.支持APB或其它通用接口配置寄存器;

12.支持DFI接口;

3.Delay line校准:在PLL初始化完成后,进行Delay line calibration,以满足DDR传输过程中data path的时序要求。Delay line由基本的逻辑门组成,包括LCDL(局部校准延迟链)和MDL(主延迟链),它们在初始化和实际操作过程中都需要进行校准。

·LCDL:Local Calibration Delay line,局部校准延迟链,在初始化Delay line校准时只进行一次;

·MDL:Master Delay Line,主延迟链,除了初始化时需要进行校准外,在后续的实际操作过程中任需要不断地进行校准(周期测量)。

数据传输过程中,一般希望时钟CK边沿与DQ/DQS满足90°的相位关系,即CK边沿位于DQ/DQS的正中间位置,但在实际传输过程中通常会存在误差,而Delay line就是为了对相位偏差进行调整,从而满足speed需求。由于后续输出传输会用到Delay line对信号进行一些相位补偿,所以初始化时需要首先对Delay line进行校准。Delay line主要有一些基本的逻辑门组成。

图片

4.Ddift漂移检测和补偿:由于电压和温度变化,Delay line的延迟效果会存在差异,即漂移。漂移检测和补偿机制可以避免漂移对传输过程的影响。

同一条Delay line延迟链在不同的电压与温度下,延迟效果也会存在差异,这种现象被称之为漂移。为了避免漂移对传输过程的影响,就需要有检测漂移变化并对其进行补偿的机制。初始化之后,DATX8中的主延迟线(MDL)会持续的以选择的延迟时间为单位测量DDR的时钟,直到由于温度变化导致周期发生变化。

5.Impedance阻抗校准

阻抗校准时,需要开启ODT功能,具体景芯DDR教程已经讲过ODT原理,此处不再赘述。

6.SDRAM初始化:SDRAM初始化过程可以由PUB或者DDR Controller执行,需要先配置相关的寄存器时序参数,然后初始化步骤如下,包括RESET#、CKE信号的操作,访问MR寄存器,以及ZQ校准等。

1.上电后,RESET#复位信号被拉低至少200us;

2.复位信号拉低后,CKE信号拉低并至少保持500us;

3.500us之后,CKE可以再次拉高;

4.CKE拉高后,等待至少tXPR时间,之后便可以对DDR寄存器进行访问;

5.依次访问MR寄存器,MR2 -> MR3 -> MR1(使能DLL) -> MR0(复位DLL)。

6.发起ZQ校准命令;

7.等待至少512个DDR clock,保证DLL lock住(tDLLK)并保证ZQ校准完成(tZQinit);

8.接下来便可以对DDR memory进行正常访问。

图片

注意,DDR相关的时序参数:

·tXPR:DDR上电复位后,从CKE拉高到发出第一个有效的命令MRS之间的最小时间间隔;

·tMRD:DDR初始化过程中,两个连续的MRS命令之间持续的最小时间间隔;

·tMOD:MRS命令发送完毕后,让所有寄存器生效需要等待的时间;

·ZQCL:上电初始化之后,对DDR内部的ODT打开进行信号校准操作,属于长延时的操作;

·tZQinit:等待ZQCL校准完成的时间,至少需要512个clock;

·tDLLK:在MR0配置时,同时需要使能DLL,让颗粒中的DLL开始工作,而使能DLL至少需要保持的时间即为tDLLK.

7.DDR Training流程:包括Write Leveling、DQS Gate Training和Data eye Training,这些流程的目的是为了优化信号质量,确保数据的正确传输。

Write Leveling(写数据过程中的training)

为了获取更好的信号质量,DDR3的Mem颗粒采取了一种fly_by的拓扑结构,该结构中所有的Mem颗粒会复用CLK、Address及Command命令信号,(数据DQS/DQ信号不会被复用),这使得每一片Mem颗粒的时钟CLK和数据DQ/DQS的延迟不一样。

Write Leveling目的:不断增加Write DQS的延时以便满足CK与DQS之间的相位关系)

图片

实际的DDR协议中规定了时钟CLK与写数据的DQ/DQS命令之间需满足一定的相位关系(tDQSS、tDSS、tDSH),而fly_by结构引起的颗粒的时钟CLK和数据DQ/DQS的延迟不一致通常难以满足二者之间的相位需求。所以引入了Write Leveling命令就是为了对写数据过程中这种相位差进行不断的调整,直到满足实际需求。注意,DQS的脉冲发送方式不同于CK,CK只发送一次脉冲,DQS依次不断发送脉冲进而通过Write Leveling不断改变DQS延时调整相位。

图片

DQS Gate Training(读数据过程中的training)

在读数据过程中,DDR Controller发出读数据命令经过DDR_PHY传输给DDR memory颗粒,然后mem颗粒收到读数据Command后经过一段时间后会将数据反馈回DDR Controller。

在读数据前后,分别存在一段前导码和一段后导码。当前导码/后导码稳定后,在沿DQS/DQS#的交叉点进行采样时一般不会出现问题。但是,在前导码/后导码形成并持续时间内由于可能会存在缓冲波动(噪音、毛刺等),此时DQ采样就不可避免的会存在读错的情况。为了过滤掉噪声导致的不稳定因素,在DDR_PHY接收数据之前,颗粒通常需要给出比较干净的DQS信号避免数据读错,而设计中一般会采用DQS Gate信号来控制DQS的有效区间,进而避免前导码/后导码持续时间段内的噪音干扰读数据过程。

DQS Gate信号为什么需要进行Training呢?这是因为fly-by拓扑结构中CK、Address、Command信号的复用(DQS信号是通过CK信号产生),数据DQ信号是非复用的,这就导致DQ与DQS信号之间是异步关系,即Command到达不同颗粒存在先后顺序,而不同mem颗粒返回读数据则必然存在先后差异,所以需要对DQS Gate信号进行training,将其调整到规定的窗口区间。

Data eye Training(数据training)

Data eye Training的目的是为了让DQS/DQS#的采样交叉点恰好处于DQ eye数据信号的正中间,保证信号不会被漏采。

8. 物理设计方法:DDR PHY的物理设计关键在于时序路径的设计,包括时钟输入到输出信号的各个阶段,以及如何通过Innovus工具解决时序路径的时间预算、延时优化和路径对齐等问题]。

9. 内存初始化和校准序列:在系统复位后,PHY执行内部校准步骤,包括BISC、内存上电初始化序列、写入和读取数据路径的时序校准等。

10. LPDDR4/4X CS和CA训练:对于高频操作的LPDDR4/4X SDRAM,提供了一种对命令总线进行训练的机制,以确保信号与时钟对齐。

DDR3/4实战+SoC集成

DDR是SoC设计的关键技术,景芯SoC DDR4/3设计实战训练营将帮助您掌握DDR设计技术并成为芯片大拿。本门课程不仅教您学习DDR+PHY,还教您学会DDR的SoC集成、驱动、SoC仿真!

1)DDR课程所带的SoC系统架构如下:

图片

2)DDR课程架构

图片

3)DDR课程目录如下:

图片

图片

图片

以上就是今天分享的内容,如果您和小编一样渴求进步,想掌握芯片设计全流程,欢迎加入小编知识星球,疯狂成长,一起进步!早日成为芯片大佬!

图片

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

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

相关文章

Revit二次开发选择过滤器,SelectionFilter

过滤器分为选择过滤器与规则过滤器 规则过滤器可以看我之前写的这一篇文章: Revit二次开发在项目中给链接模型附加过滤器 选择过滤器顾名思义就是可以将选择的构件ID集合传入并加入到视图过滤器中,有一些场景需要对某些构件进行过滤选择,但是没有共同的逻辑规则进行筛选的情况…

健康管理系统

目录 第1章 系统概述 第2章 可行性研究 2.1 项目背景及意义 2.2 可行性研究 第3章 需求分析 3.1 功能性需求 3.2 非功能性需求 3.2.1 性能需求 第4章 总体设计 4.1 技术架构 4.2功能模块设计 第5章 详细设计 5.1 主页 5.2 写剧本杀 5.3 剧本杀分类管理 5.4 个人…

PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

Abstract 通常情况下研究人员会把点云数据转换为规则的3D体素网格或图像集合。这导致数据不必要的庞大,所以本文引入了一种新型的神经网络,能很好的尊重点云的排列不变性,名称是pointnet,并且能够应用于分类、分割、场景解析等下…

大模型入门无敌!《大模型基础》教材发布,已开源!

浙江大学DAILY实验室毛玉仁研究员、高云君教授领衔撰写的《大模型基础》教材第一版付梓。 本书旨在针对大语言模型感兴趣的读者系统地讲解相关基础知识、介绍前沿技术。作者团队将认真严肃开源社区以及广大专家学者的建议,持续进行月度更新,致力打造易读…

SQLServer Manager Studio扩展开发从入门到弃坑(针对17 ,18 。19)

Visualstudio的已经开发好了 可以在这里找到。 (如果低版本不适用,那么,我还要重新下载老版本vs开发一版) image.png image.png ,可这个就是不行,直接运行点这些按钮加载失败,而我直接不调试模式,则直接什么…

【运维类】智慧运维系统建设方案(PPT原件完整版)

建设方案目录: 1、智慧运维系统建设背景 2、智慧运维系统建设目标 3、智慧运维系统建设内容 4、智慧运维系统建设技术 5、智慧运维系统建设流程 6、智慧运维系统建设收益 企业对运维管理的需求: 1、提高运维效率:降低运维成本,提高…

我定制了一个属于自己的录屏软件

相信很多朋友都用过不同软件的录屏功能,但是这些软件多少还让存在一些缺点,让我们在录屏的时候不能得心应手。 今天我就来手把手教大家自己来制作一个私人订制的浏览器录屏器, 录屏器 我们可以使用浏览器的屏幕捕获API接口来帮助我们来捕获…

java里的序列化反序列化、HttpMessageConverter、Jackson、消息转化器、对象转化器...都是啥?

前段时间在学习SSM框架(spring boot、spring MVC、mybatis)后端项目的时候,发现他们的项目里:响应类Result类要实现Serializable接口、转化响应给前端的时间数据的格式要用到什么“消息转换器”MappingJackson2HttpMwssageConvert…

Vue:Vue3-TypeScript-Pinia-Vite-pnpm / 基础项目 / 20240807

一、项目技术栈 / 依赖 序号技术栈版本解释1node20.14.02vue 3.4.31 3vite 5.3.4 4TypeScript 5.2.2 5 types/node 22.0.2 解决TypeScript项目中缺少对应模块的类型定义文件的问题6 element-plus 2.7.8 ui组建7 types/js-cookie js-cookie 3.0.6 3.0.5 8 sass 1.77.8 9 hu…

zdppy+vue3+onlyoffice开发文档系统实战20240807上课笔记 解决了最近文档页面几个遗留的文档

小技巧 vite配置 open: true 可以自动打开浏览器。 目前 遗留任务 1、在名称前面,渲染这个文档的图标 2、大小的基本的单位是kb,超过1024kb则换成mb,主要是这两个单位 3、数据按照最近访问时间倒序 4、给文件名价格链接,实现和…

C语言深度剖析(部分)--剩下随缘更新

C语言深度剖析 关键字auto-最宽容大度的关键字 变量的分类 代码块:用{ }括起来的区域 局部变量:包含在代码块中的变量,局部变量具有临时性,进入代码块,自动形成局部变量,退出代码块自动释放。 全局变量…

鸿蒙AI功能开发【hiai引擎框架-人脸比对】 基础视觉服务

hiai引擎框架-人脸比对 介绍 本示例展示了使用hiai引擎框架提供的人脸比对能力。 本示例模拟了在应用里,选择两张图片,计算两个图中最大人脸的相似度 需要使用hiai引擎框架人脸比对接口hms.ai.face.faceComparator。 效果预览 使用说明:…

C++ STL专题 list的底层实现

目录 1.模拟实现list 2.节点模板讲解 3.迭代器模板讲解 3.1为什么template 有三个类型参数 (1).class T (2).class ref (3).class ptr 3.2 *重载 3.3 ->重载 3.4 前置和后置的重载 3.5 前置--和--后置的重载 3.6 和!的重载 4. list模板讲解 4.1 begin()函数 …

[译] How things get done on the Go Team

6天前,掌舵Go语言团队12年Rsc在golang-dev/群组发文宣布,将在9月1号后辞去当前职位,转去做 Gaby 和 Oscar. 这对于Go语言发展无疑是里程碑式的事件。 本篇内容是根据6月份他和另外两位同事参与Go Time音频录制内容的整理与翻译,英…

代码随想录算法训练营Day22 | Leetcode 77 组合 Leetcode 216 组合总和Ⅲ Leetcode17 电话号码的字母组合

前言 回溯算法中递归的逻辑不重要,只要掌握回溯的模板以及将问题转化为树形图,整个问题就很好解决了,比二叉树简单。 Leetcode 77 组合 题目链接:77. 组合 - 力扣(LeetCode) 代码随想录题解:…

K-means聚类算法的应用以及实现

K-means 聚类算法属于无监督学习,它会将相似的对象归到同一个簇中,该算法原理简单,执行效率高,并且容易实现,是解决聚类问题的经典算法。 尽管如此,任何一款算法都不可能做到完美无瑕,K-measn 算…

计算机毕业设计选题推荐-房屋租赁系统-Java/Python项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【python】python心理健康医学数据分析与逻辑回归预测(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

php 中 (0 == ‘abc‘) 为真

https://andi.cn/page/621653.html

第129天:内网安全-横向移动WmiSmbCrackMapExecProxyChainsImpacket

这里这个环境继续上一篇文章搭建的环境 案例一: 域横向移动-WMI-自带&命令&套件&插件 首先上线win2008 首先提权到system权限 wmic是windows自带的命令,可以通过135端口进行连接利用,只支持明文方式,优点是不用上传别…