DDR Study - LPDDR5 CBT / WCK2CK / DCA&DCM

参考来源:JESD209-5B
在之前的文章中介绍了LPDDR4的相关内容,LPDDR4 Initial可以跳转此处
从这篇文章开始,会对LPDDR5相关内容进行概要分享:
LPDDR5 Initial → LPDDR5 Command Bus and WCK2CK Training →LPDDR5 Read and Training →LPDDR5 Write and Training → LPDDR5 RFM
因为不同平台的设计细节不同,因此不会对详细细节做出分析,只参考JESD规范和SIPI - Signal Integrity and Power Integrity测试规范进行介绍。

CBT - Command Bus Training

与LPDDR4类似的是,LPDDR5的Command Bus Training内容也是围绕不同频率下的Vref(CA)和SOC端的CA/CS Delay满足Rx Mask要求展开。
关于Vref(CA)和CA/CS Rx Mask Training这部分内容,实际上和LPDDR4很像,只是在信号内容上发生了一些变化,以下是基于JESD209-5B的介绍:
在Rx Mask区域上,LPDDR5是以一个菱形的区域代替了LPDDR4上矩形区域的描述。
CA timing at the DRAM pins

tCIVW2保留了矩形Timing范围的有效宽度描述,tCIVW1则是增加了菱形区域的有效宽度描述。
vCIVW在Voltage范围的描述还是和LPDDR4一样的。

而对于CA输入信号的宽度范围要求tCIPW,也和LPDDR4类似,都需要保证在不同频率周期内足够支撑每次采样。
对于CA输入信号的幅值范围要求vCIHL_AC,不能出现幅值过低,导致无法正确区分高电平信号和低电平信。
CA RX

而CBT主要变化的是LPDDR5为CBT提供了两种模式,由MR13 OP[6]选择模式,由MR16 OP[5:4]为不同FSP频点Enable CBT。同时也会收到DVFS功能的影响。
两个模式相同的是都通过DQ[7]的高低电平来切换CBT训练的开关,通过CK采样CA/CS数值,通过DQ[6:0]传输采样training的数值。

Mode1

此模式下,通过WCK和DQ[7:0]训练Delay参数。Vref的训练需要退出Mode1,训练好了Vref再重新进入Mode1训练Delay。
下面是DVFS功能关闭下的详细步骤(X为低频,Y为高频):

  • 配置MR16 OP[1:0]使能FSP-WR[Y]的写入,MC控制器配置好相关的寄存器参数(latencies, termination, Vref, etc.)
  • 配置MR16 OP[5:4]使能CBT[Y],MC控制器发出MRW指令开始CBT
  • SOC端驱动DQ[7]为High,DRAM通过WCK采样改变CK频率为High
  • 执行CBT,通过DQ[6:0]交互Delay参数训练值
  • SOC端驱动DQ[7]驱动为Low,DRAM通过WCK采样结束Training,切换频率为Low,MC控制器发出MRW指令结束CBT
  • MC控制器发出MRW指令存储新的FSP-OP[Y]相关Value
  • 切换到FSP-OP[Y],进行下一个频点的Training或者正常运行DRAM

下面是DVFS功能开启下的详细步骤(蓝色为DVFSQ Disable,红色为DVFSQ Enable):

  • 配置MR16 OP[1:0]使能FSP-WR[Y]的写入,MC控制器配置好相关的寄存器参数(latencies, termination, Vref, etc.)
  • 关闭SOC ODT,开启VRCG为High Current Mode
  • 配置MR16 OP[5:4]使能CBT[Y],MC控制器发出MRW指令开始CBT
  • DQ[7]驱动为High,切换频率并且等待VDDQ降压到0.3V
  • VDDQ降压完成后开始执行CBT,通过DQ[6:0]交互Delay参数训练值
  • Training完成后,抬升VDDQ到0.5V
  • DQ[7]驱动为Low,结束Training ,切换频率为Training之前的值
  • 关闭VRCG High Current Mode,MC控制器发出MRW指令存储新的FSP-OP[Y]相关Value
  • 切换到FSP-OP[Y],并且开启SOC ODT
  • 进行下一个频点的Training或者正常运行DRAM

Mode2

此模式下,需要DMI pin参与,并且无需退出训练就可以调整Delay的同时训练Vref。
因此Mode2的主要区别就是在执行CBT,通过DQ[6:0]交互Delay参数和Vref训练值。
具体就是DRAM通过DMI[0]的上升沿对DQ[6:0]进行采样并更新Vref(CA)值。 其他Training Sequences和Mode1一致。

WCK2CK Training

LPDDR5的WCK2CK就是Write Leveling机制,目的就是为了对齐Clock信号和SOC侧的Strobe信号,在LPDDR4中是DQS,在LPDDR5中就是WCK信号。
WCK对齐CLK之后,才能对Data信号正确采样,因为DDR的机制就是在CLK信号的上升下降边沿发出对应的Data信号,详细内容可以参考此处
WCK2CK

WCK2CK功能由MR18 OP[6] Enable,这个模式下,WCK:CK的比例为2:1,而WCK和CK的对齐信息会通过DQ Bus返回到MC控制器端,DQ Pin上为 Low/High Level,代表WCK早于/晚于CK。
以下是详细过程:

  • 驱动WCK_t为Low,WCK_c为High
  • 配置MR18 OP[6]为1,进入WCK2CK Leveling Mode
  • MC控制端设置等待一定时长(tWLMRD)用于控制器端配置,再开始翻转WCK
  • WCK信号翻转7.5周期(tWCKTGGL),DRAM根据CK采样WCK,获取WCK Phase早于还是晚于CK的结果,通过DQ返回到MC
  • MC控制器根据DRAM返回结果来增加/减少WCK的Delay
  • 再执行上两步不断重复直到Delay数据稳定
  • 配置MR18 OP[6]为0,退出WCK2CK Leveling Mode

DCA - Duty Cycle Adjuster && DCM - Duty Cycle Monitor

对于WCK信号,LPDDR5在DRAM端有一个DCA + DCM的硬件模块,用于调整DRAM接收到的WCK的占空比 Duty Cycle。
为什么需要这个硬件模块?因为在LPDDR5的高频场景下,WCK信号的Toggle频率过快,导致传输过程中不同电平信号可能会出现占空比移动,从而影响DRAM端。
影响DRAM的方面包括:

  • 基于WCK信号分频出来的RDQS信号的产生质量
  • Read时DQ信号Launch
  • Write时DQ信号Capture

而DCM就是DRAM端监控WCK信号占空比数据的硬件模块,如果存在占空比偏移,由DCA模块对WCK占空比进行调整。
一般这部分Training在CBT和WCK2CK完成之后再进行,相关的操作由MR26寄存器控制。
mr26

而当DCM + DCA完成对WCK占空比调整后,会再进行一次WCK2CK操作,防止调整过程中影响了WCK和CK的对齐。
下图是WCK占空比调节的示意图,最终会影响WCK Delay Value:
WCK Delay

具体的DCM Training步骤如下:

  • 配置FSP,让WCK切换到最高频,等待WCK产生稳定Toggle
  • MC发出MRW命令,开始DCM
  • 等待tDCMM时间,用于DCM完成对WCK占空比的测量
  • MC发出MRW命令配置MR26 OP[1],之后MR26 OP[1] value每一次翻转会把当前DCM结果并存储到MR26
  • MC发出MRW命令,DRAM也会存储最后一次DCM结果到MR26,结束DCM
  • MRR命令读取DCM数值,通过DCA调整Duty Cycle再重复上述过程

具体AC Timing如下:
DCM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值