最近在DDR4方面做了一些工作,但依然对整个流程理解得不够透彻,遂在去年4月阅读DDR4标准的基础上再次阅读该手册,理清了不少含糊的脉络。由于阅读的英文很快便会忘记,加之阅读英文时脑海中不自觉地翻译,遂萌生将其直接翻译的想法。
前两章和第六章之后不翻译,只翻译设计和验证时所需的基本概念,此包括3、4、5章节。翻译过程中结合了不少资料,其中包括CSDN上前辈的翻译:hierro_sic的博客_CSDN博客-DDR4标准,DDR3,SNPS-PHY领域博主
还有些其它的参考博客,分布在各个章节内。
不同于其它文章,本人的翻译中,每张时序图和表格都写下了自己的分析。
4.11 DM, DBI, TDQS
x8和x16的DDR4器件支持DM, DBI,x4不支持,个人猜测原因是位数太少。仅x8支持TDQS,x4和x16不支持。
有一个特定的pin脚用于上述功能,该pin为DM_n/DBI_n/TDSQ_t,双向pin。DM_n和DBI_n低有效,TDQS并不驱动实际的电平。
通过MR1的A11和MR5的A12:A10进行DM/DBI/TDQS的使能。
对于写操作,DM和DBI不能同时使能。当DM和DBI功能关闭(在MR寄存器中disable)时,DRAM将会关掉对应pin脚的输入receiver,理论上外部的电平并不会影响DM/DBI功能的打开(此处的原文为DRAM pin不希望有任何有效的逻辑电平)。
对于读操作,仅有DBI功能可以用。同样地,当DBI功能关闭(在MR寄存器中disable)时,理论上外部的电平并不会影响DBI功能的打开。
TDQS功能:当使能TDQS功能,则会关闭DM和DBI功能,因为它们三个共用一个引脚,是互斥关系。TDQS使能后,用于DQS上的终端电阻也会应用于TDQS_t/c引脚上。当关闭TDQS功能时,DM和DBI功能的支持情况见表30所示,表30也是这三段话的总结。
当DM_n为低时,本应正常写入DRAM的DQ数据,例如在x8器件中,DQ1的DM打开(即DM1打开),则DQ1的数据不能写入DRAM。当DBI_n为低时,本应正常写入的DQ数据,会在取反后写入DRAM。对于读操作,DBI功能稍有不同:当在指定的byte lane上,数据'0'的个数超过四个,则会翻转DQ数据。
4.12 ZQ校准命令
4.12.1 ZQ校准描述
ZQ校准命令用于校准DRMA Ron和ODT值,Ron具体是什么还需后续补充。在上电初始化时,DRAM需要花费较长时间来校准输出驱动和终端电阻电路,完成之后,在正常工作期间会周期性地发送校准命令,此时的校准相较于初始化时的校准,花费的时间短一些,所以便有了ZQ长校准命令(ZQCL,L指long)和ZQ短校准命令(ZQCS,S指Short)之分。
长校准命令ZQCL常用于上电初始化阶段,具体何时发送该命令取决于内存控制器MC。ZQCL命令会触发DRAM内部的校准引擎,一旦完成校准,对应的校准值会输送到DRAM IO上。
上电后的第一次ZQCL校准(上电时RESET会有效一段时间),时间参数为tZQinit,之后的由于RESET后所需的ZQCL校准,时间参数为tZQoper。
ZQCS命令用于周期性的校准,以此来校准电压和温度,其对应的时间参数为tZQCS。对于所有的speed bin,一个ZQCS命令可以在128个CK周期内校准至少0.5%的Ron值和RTT电阻值错误。俩ZQCS的间隔可以参见表'Output Driver Voltage and Temperature Sensitivity'和'ODT Voltage and Temperature Sensitivity'。如果不想查表,有一个简单的算式可以帮忙计算合理的ZQCS命令间隔:
其中Tdriftrate为温度漂移率,Vdriftrate为电压漂移率。具体举例直接贴上标准中的例子。
在ZQ校准期间,特别是tZQinit,tZQoper和tZQCS时序期间内,不允许其他的DRAM命令发送。一旦完成了ZQ校准,DRAM应该disable ZQ来降低功耗。
在ZQCL和ZQCS命令发送前,所有的bank必须被precharge,且等待tRP后才能发送校准命令。
当退出自刷新后,ZQ校准命令可以和DLL锁定时间并行发出(原文为ZQ calibration commands can also be issued in parallel to DLL lock time when coming out of self refresh)。退出自刷新后,ZQ校准不会自动执行,需自行发送。当然也需满足时序要求,此处的时序为tXS或tXS_Abort或tXS_FAST。
对于那些器件间共享ZQ电阻的系统中,内存控制器不允许器件间的ZQ时序的交叉(the controller must not allow any overlap of tZQoper, tZQinit, or tZQCS between the devices)。
下图为ZQ校准时序。
4.13 DQ参考电压训练
DRAM内部的DQ参考电压参数有:工作电压范围,步长,参考电压单步长时间,参考电压全步长时间以及参考电压有效电平。
Vref工作范围如下图所示。这张图中,两条蓝色实线的交点,画一条蓝色虚线,称为Vswing Large;两条上下摆动的红色虚线的交点,画一条红色粗虚线,称为Vswing Small。红蓝虚线间的范围称为系统变量(应该是系统特有的,此处存疑),Vrefmax和Vrefmin的差值为系统所允许的最大的电压变化范围。
参考电压的步长由相邻两个参考电压决定,其步长范围为0.5%VDDQ到0.8%VDDQ。对于一个给定的设计,DRAM有一个在0.5%VDDQ到0.8%VDDQ范围内的特定值。
相较于理想情况,根据编码的不同,参考电压也会有一定的偏差,这种偏差是一步步累积的,也就是说是步长的函数。偏差值定义为Vref Set Tolerance,如下图所示。
Vref的变化所需的时间参数为Vref_time。如图29所示。其中,t1时刻的参考电压为最终的在Vref有效公差内(Vref_val_tol)的直流电压。Vref_time包括从Vrefmin到Vrefmax的时间或从Vrefmax到Vrefmin的时间。
参考电压有效电平由Vref_val tolerance决定。这个参数有什么用,英文原文没看懂,留下后续再写。
原文为:
This parameter is used to insure an adequate RC time constant behavior of the voltage level change after any Vref increment/decrement adjustment. This parameter is only applicable for DRAM component level validation/characterization.
通过MRS设置MR6 A7为1进入DQ参考电压校准模式,设置MR6的A6来选择期望的电压范围,当进入Vref训练模式时,VrefDQ训练值(MR6 A[5:0])是否被DRAM捕获取决于供应商。一旦进入VrefDQ校准模式,且满足tVREFDQE时序后,才能发送与VrefDQ校准有关的一系列命令,比如ACT, WR, WRA, RD, RDA, PRE, DES, 设置VrefDQ值的MRS命令以及退出VrefDQ校准模式的MRS命令。一旦进入VrefDQ校准模式,在初始化后的第一次执行VrefDQ校准时,可以在调整VrefDQ值之前发出虚写命令(“dummy”write commands)。虚写命令间有较多空闲,例如WR1, DES, DES, DES, WR2, DES, DES, DES, WR3, DES, DES, DES, ........ WR50, DES, DES, DES等。设置VrefDQ的值要求MR6的A7设置为1,且MR6的A6与初始化时的范围保持不变,也就是A6保持不变,且MR6 A[5:0]设置为期望的VrefDQ值。如果MR6 A7=0,MR6 A[6:0]将不会被写入。
如果在VrefDQ校准时打开了PDA模式(Per DRAM Addressability,每个DRAM寻址),则只能发送MRS命令,而非上述所说的ACT/WR/RD等命令。
当DRAM处于idle态,这说明VrefDQ校准模式已经结束。等到发送退出VrefDQ校准模式的MRS命令后,在tVREFDQX时间内必须发送DES命令,之后才允许发送其它命令。
NOTE1: 进入VrefDQ校准的MRS命令不关心MR6 A[5:0]的值,下一个MRS命令用于设置MR6 A[5:0]中的VrefDQ值。
NOTE2: 取决于最新的Vref值的step size,在disable VrefDQ训练模式前需满足Vref_time时间。
4.13.1 举例:VrefDQ校准模式的步骤
当MR6的A7 = 0时,MR6的A[6:0]是何值都不重要。
如果VrefDQ校准的范围为range1,则
- 当MR6的A7 = 1时,进入VrefDQ校准模式,此时MR6 A[7:6] = 'b10; A[5:0] = XXXXXX;
- 所有后续的VrefDQ校准的MRS命令为MR6 A[7:6]保持为'b10,MR6的A[5:0]设置为有效值VVVVVV(Valid)。
- 发送寻找pass/fail的ACT/WR/RD命令,用来决定Vcent(中点)。
- 在执行退出VrefDQ校准模式前,最后两个校准命令如下:
a) MR6 A[7:6] = 'b10; A[5:0] = VVVVVV;
b) MR6 A7 = 0; MR6[6:0] = XXXXXXX;
如果VrefDQ校准的范围为range2,则流程与上述一样,只不过需要将MR6的A6改为1即可。
图31到图34查阅手册,此处不贴图。
表39为DQ内部参考电压的规格说明,详见手册,此处不贴图。