lpddr4上电及初始化流程:
1.Ta时刻上电,至Tb时刻上电结束,该过程不大于20ms,在这个过程,Vdd1升压必须同时或早于Vdd2,Vdd2同时或早于Vddq;Ta-Tb阶段RESET_n推荐≤0.2×Vdd2,所有input必须在VILmin和VIHmax之间。
2.Tb时刻开始,RESET_n需要保持为低至少200us至Tc,所有的输出在RESET_n为低期间全部保持高阻态Z,Tc前也就是RESET_n变为非有效值之前至少10ns,CKE需要设为低。
3.Tc时刻,复位释放,需要至少等待2ms才可以断言CKE,并且在CKE断言之前CS信号保持为低,CKE断言之前,clk需要稳定至少五个周期。
4.CKE使能之后,后续会完成模式寄存器读写、ZQ校准、training,即完成初始化。
注:上述步骤是强制的,并且all通道是同时的。除非特殊指定。
power off:即CKE拉低(≤0.2×Vdd2),CKE拉低期间,所有输出会保持高阻态Z。
命令时序:
参数介绍:
1.tRCD:RAS to CAS Delay,激活命令和读写命令之间的tCK数
2.tRP:预充电时间,预充电命令至激活命令之间的间隔
3.tRC:同一个bank不同行的激活命令间隔,即tRP+tRAS
4.tRRD:不同bank间激活命令的间隔
5.tFAW:在FAW窗口内,允许发送最多四个激活命令,即tFAW≥4×tRRD。也就是说在FAW内,不能超过4个bank被激活。tFAW不是一个确定的tCK数,与CK频率有关,计算方式tFAW/tCK向上取整。
6.tCCD:CAS to CAS Delay,读命令间隔
DQS信号之前导码和后导码:
在DQS第一个锁存沿之前为前导码,t*PRE,最后一个锁存沿之后为后导码,t*PST。
前导码宽度t*PRE为2×tCK,后导码长度默认为0.5×tCK,可通过模式寄存器配置扩展为1.5×tCK,另外read前导码可通过模式寄存器配置为toggle,默认为static;对于写前导码即需要保持工作频率。
疑问:lp4 spec中读前导码toggle时序图中,只有第二个CK是toggle,第一个CK是static
读时序:
lpddr4支持16、32突发长度,并且对于read突发,列地址[1:0]是tie 0,而对于write突发,列地址[3:0]是tie 0。后续会详细介绍这一点。
参数:
1.tDQSQ:DQS采样沿和DQ(data开始位置)之间的相位差
2.tDQSCK:DQS和CK之间的相位差
根据上述参数,突发传输的时序图会一目了然,突发传输的关键在于控制命令发起间隔来保证数据连续读出。
根据时序,RL的计算是最后一个读命令的CK采样沿至计算tDQSCK的CK上升沿。
所以在最后一个读命令被采样后,数据需要等待RL×tCK+tDQSCK+tDQSQ才可以到达DQ bus。
这个时序图中,第一次发出BL=32的突发读,由于双沿传输,因此本次突发传输需要16个时钟即可传完,因此控制tCCD=16,使得下一次传输刚好和前一次传输连续,提升传输带宽。这种传输称为无缝读突发,在这种传输中可以设置tCCD=BL/2,并且可以访问任何打开的bank。
下图是一个先读后写的时序:
上图显示了一个先读后写操作读写命令之间的最小时间,即RL+tDQSCK(max)/tCK+BL/2+tRPST-WL+tWPRE。
下面从一个基本的读时序来分析tLZ(DQS), tLZ(DQ), tHZ(DQS), tHZ(DQS)
spec这个图对于这四个参数太过抽象,同时还有详细的电气协议,这里就暂时先不做学习了。
写时序:
参数(不同于读的叫法):
1.tDQS2DQ:DQS采样沿和DQ(data中间位置)之间的相位差
2.tDQSS:DQS采样沿和CK沿之间的相位差
WL的计算与CL同理,最后一个写命令的CK采样沿至计算tDQSS的CK上升沿。
下图是一个先写后读的操作:
图中tWPST=0.5×tCK,tWTR是写入命令和读出命令的延迟,因此对于一个先写后读命令之间的最小延迟是WL+BL/2+1+tWTR/tCK。为什么需要加1,是因为tWTR的计算是最后一个DQS锁存沿的下一个CK沿开始计算,因此多加了1。