本发明涉及数据存储领域,尤其涉及基于fpga的ddr采样时钟动态调整的采样方法及系统。
背景技术:
1、fpga称为现场可编程逻辑门阵列,是由大量的独立功能模块和布线资源组成的硬件可编程器件。ddr是一种存储器件,主要用于存储大容量的数据,ddr具有双倍采样数据的功能,也就是在时钟沿的上升沿和下降沿,同时具备采样数据的能力,这样就可以成倍的增加数据传输的效率。在进行ddr phy控制器的设计生产时,会将ddr与fpga主控芯片联合使用以实现存储及数据传输功能。
2、ddr与fpga之间存在一定的距离,所以随着控制ddr的时钟频率的增加,ddr返回的数据与fpga主控芯片内部的本地时钟就会产生异步的差异,这种误差会随着频率增大而增大。为了解决这种问题,专利申请号202311313866.2的中国发明专利申请了“一种存储器系统的训练方法及系统”,该发明阐述了相关方案即通过使用延迟训练模块生成门控gate,再采用多个内部时钟对数据采样,并通过调整phy输入端的延迟链方式实现数据同步。该方法可以稳定可靠的实现ddr读写操作,是一种应用于数据存储的有效采集方式。
3、上述现有技术,数据采样需要使用到门控gate的延迟训练模块资源,并且需要多次调整门控的延迟链,功能实现复杂,资源占用较多且使得ddr的初始化时间较长。因此,本发明提供了基于fpga的ddr采样时钟动态调整的采样方法及系统以解决上述问题。
技术实现思路
1、本发明的目的在于提供基于fpga的ddr采样时钟动态调整的采样方法及系统,解决了现有技术需要使用门控gate的延迟训练模块资源才能进行数据采样的问题,资源占用少从而减少了ddr的初始时间。
2、一方面,为了实现本发明的目的,本发明所采用的技术方案为:
3、基于fpga的ddr采样时钟动态调整的采样方法,包括以下步骤:
4、生成本地时钟和相位可偏移时钟,所述本地时钟用于生成ddr的读命令,所述相位可偏移时钟能够相对所述本地时钟进行相位偏移;
5、基于发送到ddr的读命令返回dqs时钟和dq数据,所述dqs时钟和所述dq数据物理层面实现对齐;
6、控制所述dqs时钟对所述相位可偏移时钟进行多次采样;
7、对比采样数据与上一次采样数据得到对比结果;
8、根据对比结果控制所述相位可偏移时钟进行偏移操作,实现所述相位可偏移时钟的边沿与返回的dq数据的中心位置对齐。
9、进一步地,对比采样数据与上一次采样数据得到对比结果,具体包括:
10、若连续采样的两个数据电平相同,得到对比结果为1;
11、若连续采样的两个数据电平不相同,得到对比结果为0,并进一步对比连续采样的两个数据的电平状态,若连续采样的两个数据是由高电平转为低电平,则得到对比结果为00,若连续采样的两个数据是由低电平转为高电平,则得到对比结果为01。
12、进一步地,根据对比结果控制所述相位可偏移时钟进行偏移操作,实现所述相位可偏移时钟的边沿与返回的dq数据的中心位置对齐,具体包括:
13、所述相位可偏移时钟的一个时钟周期记为n,所述相位可偏移时钟相对所述本地时钟偏移时以一直向左或者向右每次偏移1/n个相位的方式偏移;若对比结果为1,那么继续对所述相位可偏移时钟进行偏移;
14、假设所述相位可偏移时钟向右偏移,当对比结果为00时,即所述dqs时钟的上升沿与所述相位可偏移时钟的上升沿对齐,控制所述相位可偏移时钟继续偏移n/4个相位,使得所述相位可偏移时钟的边沿处于所述dqs时钟和所述dq数据的中心位置;
15、当对比结果为01时,即所述dqs时钟的上升沿与所述相位可偏移时钟的下降沿对齐,控制所述相位可偏移时钟继续偏移(3/4)n个相位,使得所述相位可偏移时钟的边沿处于所述dqs时钟和所述dq数据的中心位置。
16、进一步地,控制所述dqs时钟对所述相位可偏移时钟进行多次采样,具体包括:
17、识别所述相位可偏移时钟是否产生偏移;
18、所述相位可偏移时钟每偏移一次则控制所述dqs时钟均对所述相位可偏移时钟采样一次。
19、进一步地,识别所述相位可偏移时钟是否产生偏移,具体包括:
20、首次识别到所述相位可偏移时钟未偏移,判定为识别无效,并控制所述dqs时钟对所述相位可偏移时钟采样两次。
21、进一步地,所述本地时钟和所述相位可偏移时钟在初始状态时的相位和频率一致。
22、另一方面,为了实现本发明的目的,本发明所采用的技术方案为:
23、基于fpga的ddr采样时钟动态调整的采样系统,包括时钟生成模块、ddr模块和训练模块,所述训练模块包括cmd读模块(2)、控制采样子模块(41)、状态判断子模块和偏移控制子模块,其中:
24、所述时钟生成模块用于生成本地时钟和相位可偏移时钟,所述本地时钟用于生成ddr的读命令,所述相位可偏移时钟能够相对所述本地时钟进行相位偏移;
25、所述ddr模块用于基于发送到ddr的读命令返回dqs时钟和dq数据,所述dqs时钟和所述dq数据物理层面实现对齐;
26、所述cmd读模块用于实现时钟信号和命令的格式转换;
27、所述控制采样子模块用于控制所述cmd读模块产生读命令,实现所述dqs时钟对所述相位可偏移时钟进行多次采样;
28、所述状态判断子模块用于对比采样数据与上一次采样数据得到对比结果;
29、所述偏移控制子模块用于根据对比结果控制所述相位可偏移时钟进行偏移操作,实现所述相位可偏移时钟的边沿与返回的dq数据的中心位置对齐。
30、进一步地,所述时钟生成模块、所述控制采样子模块、所述状态判断子模块和所述偏移控制子模块均是调用fpga的现有资源组合而成。
31、进一步地,所述ddr模块包括ddr颗粒,所述ddr颗粒用于基于所述读命令返回所述dqs时钟和所述dq数据,所述ddr颗粒与fpga合封于一起,使得所述dqs时钟和所述dq数据到达所述训练模块的输入端口时边沿对齐。
32、进一步地,所述训练模块还包括fifo子模块,所述ddr颗粒返回的dq数据通过所述相位可偏移时钟存储到所述fifo子模块中,所述fifo子模块用于实现dq数据的本地时钟同步。
33、本发明有益效果:
34、1、本发明通过采用ddr返回的dqs时钟对相位可偏移时钟进行采样,通过相位可偏移时钟找到dqs时钟采样的正确位置,dqs时钟和dq数据物理层面实现对齐,找到dqs时钟采样的正确位置即找到dq数据的正确位置,利用相位可偏移时钟将dq数据上的数据同步到本地时钟,从而实现对数据的正确稳定采样,减少了时钟资源占用,节省了时钟资源。整个过程只移动相位可偏移时钟,避免了移动dqs时钟和dq数据的情况,简化了训练过程,减少了延迟产生,提高了稳定性。通过简化训练过程,减少了ddr的初始化时间,从而节约了用户的等待时间。
35、2、本发明没有采用门控gate,且不用多次调整门控的延迟链,功能实现简单,节约了资源,逻辑也更简单,减少了ddr的初始化时间,从而节约了用户的等待时间。相比于现有技术来说,现有技术使用门控gate的延迟训练模块资源进行数据采样,通过多个接收时钟对数据进行采样以获取采样数据,且需要对多个接收时钟进行训练,功耗较高,而本发明只使用了一组偏移时钟且省去了门控gate的延迟训练模块的使用,降低了整体功耗,也为其他功能模块的布局设计提供了空间且灵活性更强,可以加快设计进度。
1.基于fpga的ddr采样时钟动态调整的采样方法,其特征在于:包括以下步骤:
2.如权利要求1所述的基于fpga的ddr采样时钟动态调整的采样方法,其特征在于:对比采样数据与上一次采样数据得到对比结果,具体包括:
3.如权利要求2所述的基于fpga的ddr采样时钟动态调整的采样方法,其特征在于:根据对比结果控制所述相位可偏移时钟进行偏移操作,实现所述相位可偏移时钟的边沿与返回的dq数据的中心位置对齐,具体包括:
4.如权利要求2所述的基于fpga的ddr采样时钟动态调整的采样方法,其特征在于:控制所述dqs时钟对所述相位可偏移时钟进行多次采样,具体包括:
5.如权利要求4所述的基于fpga的ddr采样时钟动态调整的采样方法,其特征在于:识别所述相位可偏移时钟是否产生偏移,具体包括:
6.如权利要求1所述的基于fpga的ddr采样时钟动态调整的采样方法,其特征在于:所述本地时钟和所述相位可偏移时钟在初始状态时的相位和频率一致。
7.基于fpga的ddr采样时钟动态调整的采样系统,其特征在于:包括时钟生成模块(1)、ddr模块(3)和训练模块(4),所述训练模块(4)包括cmd读模块(2)、控制采样子模块(41)、状态判断子模块(42)和偏移控制子模块(43),其中:
8.如权利要求7所述的基于fpga的ddr采样时钟动态调整的采样系统,其特征在于:所述时钟生成模块(1)、所述控制采样子模块(41)、所述状态判断子模块(42)和所述偏移控制子模块(43)均是调用fpga的现有资源组合而成。
9.如权利要求7所述的基于fpga的ddr采样时钟动态调整的采样系统,其特征在于:所述ddr模块(3)包括ddr颗粒,所述ddr颗粒用于基于所述读命令返回所述dqs时钟和所述dq数据,所述ddr颗粒与fpga合封于一起,使得所述dqs时钟和所述dq数据到达所述训练模块(4)的输入端口时边沿对齐。
10.如权利要求9所述的基于fpga的ddr采样时钟动态调整的采样系统,其特征在于:所述训练模块(4)还包括fifo子模块(44),所述ddr颗粒返回的dq数据通过所述相位可偏移时钟存储到所述fifo子模块(44)中,所述fifo子模块(44)用于实现dq数据的本地时钟同步。
