当前位置: 首页 > article >正文

LPDDR4芯片学习(四)——DDR Training

https://cdn.nlark.com/yuque/0/2024/jpeg/26311727/1729650936041-2e1e735c-a8c8-42c2-8cac-b8aa8f339cf0.jpeg

一、ZQ Calibration

DDR 学习时间 (Part B - 6):DRAM ZQ 校正 - 知乎 (zhihu.com)

从原理上解释什么是DDR的ZQ校准? - 知乎 (zhihu.com)

LPDDR4的训练(training)和校准(calibration)--ZQ校准(Calibration)_wonder_coole-腾讯云开发者社区

01 ZQ校准的目的

为了提高信号完整性,并增强输出信号的强度,DDR内存中引入了终端电阻和输出驱动器,而为了在温度和电压发生变化的场景下仍然能够保持信号完整性,就需要对这些终端电阻和输出驱动器进行校准;

未经校准的终端电阻会直接影响到信号质量,而调整不当的输出驱动器则会使得有效信号跃迁偏离参考电平,从而导致数据和选通信号之间出现偏差。

DDR ZQ校准-CSDN博客

【DRAM存储器二十二】DDR3介绍-主要功能之ZQ校准_ddr zq校准-CSDN博客

02 ZQ校准原理

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729563617821-238b7c28-2efd-4c0e-bbb8-13b5f813b6ef.png

03 ZQ校准时序

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729563756859-bdb544fb-9cf3-4c7b-8f43-3a064677c83c.png

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729563725264-e714a2c5-7928-48cf-8b56-db42b7b9060a.png?x-oss-process=image%2Fcrop%2Cx_0%2Cy_0%2Cw_865%2Ch_339

二、VREF Training

【DRAM存储器三十五】LPDDR4介绍--主要技术特性之VREF training,为什么要做VREF training?-CSDN博客

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729654012306-ec4a99d7-4d16-4372-82ed-fc81504b6ad3.png

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729654020822-768a770a-d724-4190-acd0-973640bb7306.png

01 VREF DQ Training

  • Vref DQ Training 在DQ Training完成

  • MR14 OP[5:0] : VREF(DQ) Setting

02 VREF CA Training

  • Vref CA Training 在Command Bus Training完成

  • MR14 OP[6] : VREF(DQ) Range

三、CA Training

LPDDR4学习笔记(八)之command bus training-CSDN博客

01 Command Bus Training

CBT: Command Bus Training

  • 在高频操作之前Training

  • 两种Training模式,由MR12 OP[7]来进行配置

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729748285514-25098d58-89e8-4153-a319-0939d724340e.png?x-oss-process=image%2Fcrop%2Cx_0%2Cy_0%2Cw_964%2Ch_339

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729748338352-de2dd4f2-5d58-420e-aa0c-96bff8aba816.png

根据时序图,在CKE拉低后必须满足tCKELCK之后,clk可以停止或者切换;在片选拉高之前新的时钟频率必须满足tCKPRECS,在此期间保持CS/CA为低,在接收到training pattern之后,即CS拉高之后,频率至少需要保持tCKPSTCS;SDRAM不会以第一个DQS的边沿对DQ[6:0]进行捕获,每个input DQS(DQS[0])需要至少提供两个连续的脉冲才会用来捕获DQ[6:0]。

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729748359595-da6c1903-af04-429d-9da3-3672b13822de.png

CA判决电压的更新需要满足tVREFca_Long,在满足一定条件下,只需要满足tVREFca_Short。在CA发送training pattern之后,需要等待tCS_VREF之后才可以设置下一次判决电压的设定。

single-rank CBT sequence:(从默认状态训练高频)

  • 设置所有channel的FSP-WR为1(MR13 OP[6]=1)

  • 发送MRW命令进入CBT(MR13 OP[0]=1)

  • 驱动CKE为低,并且将CK频率改为高频

  • 训练(CA判决电压、CS、CA)

  • 离开训练,将CK频率改回低频之后,驱动CKE为高,SDRAM会自动恢复训练前状态的寄存器值

  • 所有寄存器训练值写入

  • 通过MRW去配置FSP-OP为1,并且将CK改变到高频,即进入训练过的、高频的工作状态,在此状态可以进行一些normal操作或者进行其他频点训练。

多rank CBT sequence: (从默认状态训练高频)

  • 将所有的channel和rank写寄存器,配置MR13 OP[6]=1

  • 读MR0 OP[7],判断哪个rank是terminating的

  • 对terminating的rank发送写寄存器命令,进入CBT(MR13 OP[0]=1)

  • 将terminating的rank的CKE拉低,将CK改为高频

  • 训练(CA判决电压、CS、CA)

  • 离开训练,将CK频率改回低频之后,驱动CKE为高,terminating的rank会自动恢复训练前状态的寄存器值

  • 对non-terminating的rank发送写寄存器命令,进入CBT(MR13 OP[0]=1)但是要保持CKE为高

  • 通过MRW去配置terminating的rank FSP-OP为1,并且将CK改变到高频

  • 驱动non-terminating的rank CKE为低

  • 训练(CA判决电压、CS、CA)

  • 通过MRW去配置terminating的rank FSP-OP为0

  • 离开训练,将CK频率改回低频之后,驱动CKE为高,non-terminating的rank会自动恢复训练前状态的寄存器值

  • 所有寄存器训练值写入

  • 通过MRW去配置FSP-OP为1,并且将CK改变到高频,即进入训练过的、高频的工作状态,在此状态可以进行一些normal操作或者进行其他频点训练。

四、DQ Training

01 RD DQ Training

执行RD DQ校准的程序是:

  • 发出MRW命令以写入MR32(前八位)、MR40(后八位)和MR15(八位)

字节0的反转掩码)和MR20(字节1的8位反转掩码)。

  • 可选地,可以跳过此步骤以使用默认模式

  • MR32默认值=5Ah

  • MR40默认值=3Ch

  • MR15默认值=55h

  • MR20默认值=55h

  • 发出MPC-1[RD DQ Calibration](RD DQ校准)命令,然后立即发出CAS-2命令。

  • 每次收到MPC-1[RD DQ Calibration]命令,然后是CAS-2时

LPDDR4 SDRAM,16位数据突发将在当前设置的RL之后驱动8位

在MR32中编程,然后在所有I/O引脚上在MR40中编程8位。

  • I/O引脚的数据模式将反转,并在相应的反转中编程“1”

掩码模式寄存器位(见表140)。

  • 请注意,该模式是在DMI引脚上驱动的,但没有启用数据总线反转功能,即使

如果DRAM模式寄存器中启用了读取DBI。

  • MPC-1[RD DQ校准]命令可以在每个tCCD上无缝发出,tRTRRD

阵列读取命令和MPC-1[RD DQ校准]命令之间需要延迟

以及MPC-1[RD DQ校准]命令和阵列读取之间所需的延迟。

  • 通过CAS-2命令接收的操作数必须被驱动为LOW。

  • 在刷新期间或SREF期间,可以在任何或没有银行活动的情况下进行DQ读取培训

CKE值较高。

02 DQS-DQ Training

五、Write Training

【DRAM存储器三十八】LPDDR4/DDR4的时序训练相关内容之写方向的训练_lpddr4 vref的作用-CSDN博客

01 Write Leveling

Write Leveling的基本过程是,DDR进入Write Leveling后,用DQS的上升沿采样CLK信号的状态,然后将采样结果通过DQ pin 反馈给MC,MC根据收到的反馈结果后调整CLK-to-DQS的关系,将这个过程不断重复,直到training成功。

LPDDR4的DQ[7:0]传输DQS[0]的反馈结果,DQ[8:15]传输DQS[1]反馈结果。也就是说LPDDR4的两个channel要独立的做Write Leveling,每个channel的16比特也要分两个byte lane来做。

MC通过配置LPDDR4的模式寄存器MR2的OP[7]为1,来让LPDDR4进入write leveling模式。在该模式下,LPDDR4只允许接受DESLECT命令以及退出该模式的MRW命令。当Write Leveling操作完成后,MC使用MRW命令将MR2的OP[7]置0来使LPDDR4退出write leveling操作。

Write leveling应该在write training(DQS2DQ training)前进行

LPDDR4的Write Leveling的具体过程如下(JESD209-4B的4.31):

  1. MC设置MR2-OP[7]使LPDDR4进入Write Leveling模式

  2. 一旦进入Write leveling模式,在tWLDQSEN时间后,MC必须驱动DQS到低电平

  3. 在tWLMRD时间后提供第一个DQS信号输入。tWLMRD是和不同的MC有关。

  4. 由于第一个DQS沿不稳定,所以DRAM或许能抓到第一个DQS沿,也可能抓不到,因此MC每次必须提供两个连续的DQS脉冲。每次由DQS沿采到的时钟电平都会被overwritten掉,DRAM会在tWLO时间后异* 步的通过DQ来反馈给MC。

  5. MC参考DRAM提供的反馈结果,来增到或减小DQS_t and/or DQS_C的延时设置。

  6. 重复第4到第5步,直到合适的DQS_t/DQS_c延时建立。

  7. 通过设置MR2-OP[7]=0, 退出Write-Leveling模式

https://cdn.nlark.com/yuque/0/2024/png/26311727/1729490104898-19875fe8-9e36-439e-8158-328f99d3142f.png

LPDDR4的训练(training)和校准(calibration)--Write Leveling(写入均衡)_ddr training过程-CSDN博客

六、Read Training

【DRAM存储器三十九】LPDDR4/DDR4的时序训练相关内容之读方向的训练_ddr4 data 训练-CSDN博客

01 Read DQS gate training

https://cdn.nlark.com/yuque/0/2024/png/26311727/1730170320177-d05e47bd-e144-4a59-878b-68be58a85b2d.png

02 Read data eye training

https://cdn.nlark.com/yuque/0/2024/png/26311727/1730170278963-63677e2a-2982-429d-8ec1-1d8a0e4694ff.png

03 Read Preamble training

https://cdn.nlark.com/yuque/0/2024/png/26311727/1730170241050-d3999d29-bbb9-496b-a73f-4ac2796a2259.png

七、参考文献

DDR4 SDRAM - Initialization, Training and Calibration - systemverilog.io


http://www.kler.cn/a/401972.html

相关文章:

  • Linux进阶:软件安装、网络操作、端口、进程等
  • python学习_2.去除字符strip方法
  • Android集成FCM(Firebace Cloud Messaging )
  • H.265流媒体播放器EasyPlayer.js网页直播/点播播放器WebGL: CONTEXT_LOST_WEBGL错误引发的原因
  • Python 神经网络项目常用语法
  • 2024年了,TCP分析工具有哪些?
  • uniApp项目运行到鸿蒙手机,应用图标一直是H,应用名一直是HBuilder问题
  • Soul App创始人张璐团队携多模态大模型参加GITEX GLOBAL,展现未来社交趋势
  • Javascript面试对象编程 - 手写apply call bind new
  • 远程办公用香港服务器合适吗?
  • leetcode400第N位数字
  • [Go实战]:SSE消息推送
  • 聚类分析 | MSADBO优化Spectral谱聚类优化算法
  • 群控系统服务端开发模式-应用开发-前端级别功能开发
  • 小红书内容推荐算法开发:利用API打造个性化用户体验
  • Android全局异常捕获
  • Android中常见内存泄漏的场景和解决方案
  • 代码辅助工具 GPT / Cursor
  • AWS EC2 ubuntu 使用密码登陆
  • 24.11.14 朴素贝叶斯分类 决策树-分类
  • 【算法】动态规划中01背包问题解析
  • uniapp 自定义加载组件,全屏加载,局部加载 (微信小程序)
  • git 基础之 merge 和 rebase 的比较
  • 运维面试题.云计算面试题之三ELK
  • VGG16-Pytorch实现人脸识别
  • C/C++实现tcp客户端和服务端的实现(从零开始写自己的高性能服务器)