GDDR6 (2) training

个人理解

(1)

GDDR6的training是包括CA training的,但与LPDDR4不一致,在CA training之前,LPDDR4是通过低频时钟对颗粒内部的MR寄存器进行设置。

GDDR6没有低频时钟,通过复位释放前,通过CA等引脚,将CA ODT等参数,静态设置完毕。并提供了一个特殊的MR15寄存器,用于使能CA training。

MR15 for CA training is a special single data rate mode register guaranteed to work without training
并且CAT命令是通过CKEN 单边沿采样的。

(2)

GDDR6做读写training时,是将数据存放在FIFO中,不会访问mem arry。这样设计的目的是,为了方便在正常工作的情况下,对颗粒进行training训练。比如发生EDC错误时,如果判定需要重新调整延迟,那么需要做training。

CA training

(1)CA training 通过设置MR15寄存器,使能和退出CA training。通过MR15的描述可以知道,CA training有三部分,trainingCA[9:0]与CK 上升沿对齐,trainingCA[9:0]与CK的下降沿对齐,trainingCABI与CA10

(2)CAtraining使能通过设置MR15实现,发送CAT命令需要CKEn拉高一个周期 ;退出CADT需要拉高两个周期,其中第二个周期用于设置MR15。

(3)CA training,CA的值通过latch传输到DQ的,其对应关系

(4)CA training,支持self-refresh下的CA training,需要提前配置MR2将颗粒进入self-refresh状态。这里有个疑问;

        在CA training之前如何配置MR2的值呢?

文档说在低频下配置。那么需要PHY端提供低频时钟。

WCK2CK training

WCK2CK的目的是为了对齐WCK与CK。

在WCK2CK training之前需要做好以下准备:

(1)CA training完成

(2)CK时钟稳定

(3)PLL on/off 与PLL 延迟补偿enable/disable 设置好

(4)WCK2CK对齐的点和WCK ratio设置好

(5)WCK分频后的相位偏移设置好

(6)all-bank 在idle状态

注意点1 一开始分频器的相位差

在启动WCK2CK training之后,会初始化WCK divider,这样会导致每个byte上分频后的时钟相位不一致。这样会在EDC上 显现出来。这时候需要通过调整MR的值,调整分频后的相位偏移,实现对齐。如图15

还有一种方式如图16,这种方式需要在fWCKSTOP频率以下才能实现,这种方式就是WCK先固定电平,使能WC2CK training,这样会使得分频器输出都以相同的相位输出。

注意点2 分频器的分频系数

WCK有两种频率,分别对应WCK:CK =4:1 和2:1。而且颗粒内部对WCK的要求也有两种一种是Internal Quarter data rate WCK 另外一种是Internal Eighth data rate WCK, 所以分频器也存在/2和/4的情况。

这些颗粒的信息都可以通过vender ID可以得知。

Internal Quarter data rate WCK : 外部为half rate ,分频系数为2

Internal Eighth data rate WCK : 外部为half rate,分频系数为4;或者外部为quarter data rate,分频系数为2。

颗粒如何反馈WCK与CK之间的相位关系

颗粒通过EDC反馈WCK与CK之间的相位关系。

当WCK比CK早,那么EDC会拉高。增加WCK的延迟

当WCK比CK晚,那么EDC会拉低。降低WCK的延迟

当WCK与CK对齐,那么EDC状态是不确定的。

WCK与CK之间相位存在对齐范围,参考tWCK2CKPIN

注意点4 PLL/DLL 与WCK2CK之间的关系

下图可以得出,外部WCK进入颗粒后,先进行分频,然后一路用于与CK进行相位对齐检测,用于WCK2CK training。另外一路会进入PLL或直接用于采样DQ数据。

所以从下图不难得出,PLL/DLL 不会影响WCK2CK training 的结果的,但WCK2CK会调节WCK的相位,从而影响PLL/DLL的输出时钟。所以在WCK2CK training 训练中,待WCK与CK对齐后,需要将PLL/DLL复位,然后重新启动,等待tLK后PLL/DLL重新lock后才能退出WCK2CK training。图15 和图16中描述了这一过程。

注意点5 WCK2CK退出的注意事项

(1)退出WCK2CK training 通过配置MR10完成的。MR10的OP[7:4]是对内部WCK做相位调整;如果在WCK2CKtraining过程中有过设置调整,在最后退出的时候,配置MR10中的OP[7:4]用调整后的值。

(2)退出后WCK与CK需要在tWCK2CKSYNC的时间内对齐。

(3) WCK的相位因为PVT的关系存在漂移,当超过厂家设置的tWCK2CK的范围,则需要重新training

注意点6 WCK与CK相位对齐的地点

通过MR7 OP0控制

设置为0 : WCK与CK对齐在 相位检测器端

设置为1 : WCK与CK对齐在balls上,不是很理解是哪个位置。只有的fCKPIN频率内才能使用

WCK2CK auto sync

WCK2CK atuo sync可以减少training的时间。

read training

注意1: readtraining之前准备工作:

(1)至少保证一个bank 在ACT状态,或者一个REFab在执行并且需要设置MR5 OP2=0,即设置LP2=0 ,允许在REFab期间进行training操作。

(2)WCK2CK training 完成

(3)PLL/DLL lock

(4)如果要training DBI,需要将RDBI和WDBI打开。

LDFF& RDTR两个指令

LDFF是将数据load到read FIFO中

RDTR是将数据从read FIFO中读出。

这两个命令是不会访问mem arry的

LDFF

(1)LDFF命令直接将数据通过CA命令的方式load到read fifo中

(2)read FIFO中针对每一位DQ ,DBI和EDC都有6个burst,一共能存6*16=96个数据。所以上图中EDC自己单独一个6*16bits的EDCfifo ;DQ/DBI是一个合体的6*144bit的FIFO

(3)data pattern 只有10bit,所以byte0和byte1是相同的

(4)需要16个LDFF才能将一个FIFO填满,通过B选择哪个,其中0-14 可以任意顺序,第16个burst一定是15,因为它可以有效地将数据加载到FIFO中,并导致FIFO指针的增量。

(5)FIFO一共有6个,对于其他五个FIFO,通过发送LDFF burst15 将前一个的FIFO中的数据复制到下一个fifo中。所以之后连续发送五个burst15 完成对其他FIFO的赋值。如果超过5,那么只会循环覆盖。

(6)当与RDTR一起使用时,那么LDFF填满的FIFO数和RDTR访问的一致才可以

RDTR

(1)如果要使用 CE要为高。

(2)RDTR跟LDFF一样,只能在一个bank为ACT或者REFab过程且MOR5 OP2设置为0

(3)DBI和EDC只要设置才能输出

(4)时序完全符合READ操作

注意2:EDC read training 相关

(1)无论使能不使能CRC,LDFF都会将数据load到EDC fifo中,但只有在使能时,RDTR才会将EDC的数据读出。

(2)当EDC采用 half rate时,那么LDFFload到EDC fifo中的数据,0和1,2和3,4和5.。。。等等每组要load相同的值。RDTR也会以half rate的状态读出数据

WRITE TRAINING

注意1:write training之前准备工作:

(1)基本跟read training要求一样

(2)read training 完成

涉及两个命令

WRTR:通过DQ往 read FIFO写入数据

RDTR:从read FIFO中读出数据

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哈哈黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值