采样时钟延迟相位确定方法、装置、系统和存储介质与流程

文档序号:33040987发布日期:2023-01-24 21:27阅读:135来源:国知局
采样时钟延迟相位确定方法、装置、系统和存储介质与流程

1.本发明涉及半导体制造技术领域,尤其涉及一种采样时钟延迟相位确定方法、装置、系统以及存储介质。


背景技术:

2.高速数据的恢复,需要使用时钟对数据进行采样,如果是双沿采样,需要保证时钟的上升沿和下降沿时,数据是稳定的,如果数据处于变化边界,则会造成数据采样误码。传统的lvds数据传输通常包括一路随路时钟加若干路数据通道,物理上增加了一个时钟通道,外围电路复杂度增加,并且需要手动调节时钟通道或数据通道的延时,以保证读写数据的正确性,不够灵活和可靠。此外,在无随路时钟的情况下,传统的lvds数据传输需要使用4种相位(0 度,90度,180度,270度)的时钟对数据进行采样,或者使用数据通道若干倍速率的时钟对数据进行过采样以恢复数据,这些方案的时钟系统较为复杂,电路复杂度较高,成本较高。


技术实现要素:

3.因此,针对上述现有技术中存在的技术问题,本发明实施例提出了一种采样时钟延迟相位确定方法、一种采样时钟延迟相位确定装置、一种采样时钟延迟相位确定系统和一种存储介质,可通过自动循环训练的方式自动找到数据的最佳采用时钟延迟相位,可靠性高。
4.一方面,本发明实施例提出的一种采样时钟延迟相位确定方法,例如包括:获取参考时钟信号和发送端设备发出的低压差分信号;对所述低压差分信号进行转换处理得到单端信号;根据当前相位对所述单端信号进行延迟处理得到串行数据;对所述参考时钟信号进行缓冲处理得到高速采样时钟信号;根据所述高速采样时钟信号转换所述串行数据得到并行数据;根据所述当前相位、所述参考时钟信号和所述并行数据确定所述延迟处理的目标延迟相位。
5.在本发明的一个实施例中,所述根据所述当前相位、所述参考时钟信号和所述并行数据确定所述延迟处理的目标延迟相位包括:对所述参考时钟信号进行降频处理得到并行数据时钟信号;根据所述当前相位、所述并行数据时钟信号和所述并行数据确定多个延迟相位范围;以及根据所述多个延迟相位范围确定所述目标延迟相位。
6.在本发明的一个实施例中,根据所述当前相位、所述并行数据时钟信号和所述并行数据确定多个延迟相位范围包括:在相邻两个所述并行数据时钟信号周期内分别获取所述当前相位下的第一并行数据和第二并行数据,组合所述第一并行数据和所述第二并行数据得到第一组合并行数据,比对所述第一组合并行数据和参考数据得到第一比对结果,当所述第一比对结果表示所述当前相位正确时,正确相位数量值计数加1;重复直到所述正确相位数量值达到第一阈值,根据相位调整步长调整所述当前相位得到第一调整相位,且清零所述正确相位数量值;以所述第一调整相位作为当前相位,重复前两个步骤直到接收到
循环结束指令,得到包括所述第一调整相位在内的多个延迟相位范围。
7.在本发明的一个实施例中,所述根据所述多个延迟相位范围确定所述目标延迟相位包括:获取所述多个延迟相位范围宽度最大的延迟相位范围的最大延迟相位和最小延迟相位;以及根据所述最大延迟相位和最小延迟相位确定所述目标延迟相位。
8.另一方面,本发明实施例提供的一种采样时钟延迟相位确定装置,例如包括:信号获取模块,用于获取参考时钟信号和发送端设备发出的低压差分信号;第一信号转换模块,用于对所述低压差分信号进行转换处理得到单端信号;延迟处理模块,用于对所述单端信号进行延迟处理得到串行数据;缓冲处理模块,用于对所述参考时钟信号进行缓冲处理得到高速采样时钟信号;第二信号转换获取模块,用于根据所述高速采样时钟信号转换所述串行数据得到并行数据;相位确定模块,用于根据所述参考时钟信号和所述并行数据确定所述延迟处理的目标延迟相位。
9.在本发明的一个实施例中,所述相位确定装置包括:并行信号确定单元,用于对所述参考时钟信号进行降频处理得到并行数据时钟信号;相位范围确定单元,用于根据所述并行数据时钟信号和所述并行数据确定多个延迟相位范围;以及目标相位确定单元,用于根据所述多个延迟相位范围确定所述目标延迟相位。
10.在本发明的一个实施例中,所述相位范围确定单元包括:调整相位确定子单元,用于在相邻两个所述并行数据时钟信号周期内分别获取所述当前相位下的第一并行数据和第二并行数据,组合所述第一并行数据和所述第二并行数据得到第一组合并行数据,比对所述第一组合并行数据和参考数据得到第一比对结果,当所述第一比对结果表示所述当前相位正确时,正确相位数量值计数加 1;重复直到所述正确相位数量值达到第一阈值,根据相位调整步长调整所述当前相位得到第一调整相位,且清零所述正确相位数量值;相位范围确定子单元,用于以所述第一调整相位作为当前相位,重复前一步骤直到接收到循环结束指令,得到包括所述第一调整相位在内的多个延迟相位范围。
11.在本发明的一个实施例中,所述目标相位确定单元包括:相位边界确定子单元,用于获取所述多个延迟相位范围宽度最大的延迟相位范围的最大延迟相位和最小延迟相位;以及目标相位确定子单元,用于根据所述最大延迟相位和最小延迟相位确定所述目标延迟相位。
12.又一方面,本发明实施例提供的一种采样时钟延迟相位确定系统,包括:处理器和连接所述处理器的存储器;其中所述存储器存储有所述处理器执行的指令,且所述指令使得所述处理器执行操作以进行如前述任意一项所述的采样时钟延迟相位确定方法。
13.又一方面,本发明实施例提供了一种存储介质,所述存储介质为非易失性存储器且存储有计算机程序,所述计算机程序用于执行如前述任意一项所述的采样时钟延迟相位确定方法。
14.由上可知,本发明上述多个技术方案可以具有如下一个或多个有益效果:本发明实施例提供的采样时钟延迟相位确定方法通过根据所述当前相位、所述参考时钟信号和所述并行数据自动确定数据的目标延迟相位,以得到最佳采用相位。此外,简化了时钟系统的复杂度和电路,增加系统可靠性。
附图说明
15.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明第一实施例提供的一种采样时钟延迟相位确定方法的流程示意图。
17.图2为图1中示出的步骤s60的详细流程示意图。
18.图3为图2中示出的步骤s630的详细流程示意图。
19.图4为图2中示出的步骤s650的详细流程示意图。
20.图5为本发明第一实施例涉及的一种可编程逻辑器件的结构示意图。
21.图6为图5中的相位确定单元的的状态流程示意图。
22.图7为本发明第二实施例的采样时钟延迟相位确定装置的结构示意图。
23.图8为图7中示出的相位确定模块的结构示意图。
24.图9为图8中示出的相位范围确定单元的结构示意图。
25.图10为图8中示出的目标相位确定单元的结构示意图。
26.图11为本发明第三实施例的一种采样时钟延迟相位确定系统的结构示意图。
27.图12为本发明第四实施例的一种存储介质的结构示意图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.如图1所示,本发明实施例提供了一种采样时钟延迟相位确定方法。具体地,所述采样时钟延迟相位确定方法例如包括步骤:
30.s10:获取参考时钟信号和发送端设备发出的低压差分信号;
31.s20:对所述低压差分信号进行转换处理得到单端信号;
32.s30:根据当前相位对所述单端信号进行延迟处理得到串行数据;
33.s40:对所述参考时钟信号进行缓冲处理得到高速采样时钟信号;
34.s50:根据所述高速采样时钟信号转换所述串行数据得到并行数据;
35.s60:根据所述当前相位、所述参考时钟信号和所述并行数据确定所述延迟处理的目标延迟相位。
36.本发明实施例提供的采样时钟延迟相位确定方法通过根据所述当前相位、所述参考时钟信号和所述并行数据自动确定数据的目标延迟相位,以得到最佳采用相位。此外,简化了时钟系统的复杂度和电路,增加系统可靠性。
37.具体地,如图2所示,步骤s60例如包括:
38.s610:对所述参考时钟信号进行降频处理得到并行数据时钟信号;
39.s630:根据所述当前相位、所述并行数据时钟信号和所述并行数据确定多个延迟
相位范围;以及
40.s650:根据所述多个延迟相位范围确定所述目标延迟相位。
41.此外,如图3所示,步骤s630例如包括步骤:
42.s631:在相邻两个所述并行数据时钟信号周期内分别获取所述当前相位下的第一并行数据和第二并行数据,组合所述第一并行数据和所述第二并行数据得到第一组合并行数据,比对所述第一组合并行数据和参考数据得到第一比对结果,当所述第一比对结果表示所述当前相位正确时,正确相位数量值计数加 1;重复直到所述正确相位数量值达到第一阈值,根据相位调整步长调整所述当前相位得到第一调整相位,且清零所述正确相位数量值;
43.s633:以所述第一调整相位作为当前相位,重复前两个步骤直到接收到循环结束指令,得到包括所述第一调整相位在内的多个延迟相位范围。
44.具体地,如图4所示,步骤s650具体包括:
45.s651:获取所述多个延迟相位范围宽度最大的延迟相位范围的最大延迟相位和最小延迟相位;
46.s653:根据所述最大延迟相位和最小延迟相位确定所述目标延迟相位。
47.为便于理解本发明,下面将结合图5至图6对本实施例的采样时钟延迟相位确定方法进行详细描述。
48.本发明实施例提供的采样时钟延迟相位确定方法例如适用于可编程逻辑器件内的低压差分信号(lvds,low-voltage differential signaling)的接收模块。可编辑逻辑器件例如为fpga(field-programmable gate array,现场可编程门阵列)或cpld(complex programmable logic device,复杂可编程逻辑器件) 等。具体地,如图5所示,可编程逻辑器件例如包括数据处理模块和接收模块。接收模块用于接收发送到发送的低压差分信号比如lvds信号,并对低压差分信号进行串并转换得到并行数据,并发送并行数据至数据处理模块,以供数据处理模块对并行数据进行进一步处理。
49.进一步地,接收模块例如包括锁相单元(pll,phase locked loop)、时钟分频单元(ioclkdiv)、时钟缓冲单元(ioclkbuf)、相位确定单元 (iddeleay_trainning)、单端信号转换单元(inbufgds)、延迟单元(iodelay)、串并转换单元(iserdes)等。下面对本实施例的采样时钟延迟相位确定方法进行具体说明。
50.首先,可编程逻辑器件的接收模块的单端信号转换单元获取发生端设备发送的低压差分信号data_p_i和data_n_i。此外,接收模块锁相单元还获取了外部输入的参考时钟信号ref_clk。其中,参考时钟ref_clk与发送端设备的时钟需要同源,避免接收模块和发送端设备存在频率偏差。
51.单端信号转换单元对所述低压差分信号data_p_i和data_n_i进行转换处理得到单端信号data_in。单端信号例如以“地”为参考点,用对地电压的变化来表达信号。单端信号转换单元例如为现有技术中的信号转换模块,此次不再赘述。
52.延迟单元根据当前相位对所述单端信号data_in进行延迟处理得到串行数据data_in_dly。通过配置不同的step参数,可以调整延迟单元的输出信号相对输入信号的延迟量,即延迟相位。延迟单元的输出信号和输入信号的频率相等,仅对相位进行了延迟。延迟单元可以通过外部端口动态调节输入信号信号和输出信号的相位差。举例来说,延迟单
元的可调步数为247step,每个step约10ps。
53.锁相单元根据参考时钟信号配置了其输出时钟信号hs_clk的频率为发送端设备发送的低压差分信号数据速率的1/2。时钟分频单元对输出时钟信号hs_clk进行5分频后得到并行数据时钟信号byte_clk。时钟缓冲单元对锁相单元的输出时钟信号hs_clk进行了缓冲处理后得到了高速采样时钟信号ioclk。
54.串并转换单元根据所述高速采样时钟信号ioclk转换所述串行数据data_in_dly得到并行数据rx_data[9:0]。具体地,通过高速采样时钟信号ioclk时钟对串行数据data_in_dly进行双沿采样,转换成10bit的并行数据rx_data,并同步到低速的并行时钟信号byte_clk的时钟域。
[0055]
相位确定单元根据所述当前相位、所述参考时钟信号和所述并行数据确定所述延迟处理的目标延迟相位。此处的目标延迟相位即为延迟处理单元的最佳延迟相位。
[0056]
进一步地,参见图6,其示出了相位确定单元(iodelay_trainning) 的状态流程框图。
[0057]
具体地,首先,发送端设备在空闲或者在上电初始化时发送一段连续的 comma code码型作为接收端的字节边界对齐码型。这里以10bit的码型 0011111010为例作为comma code码,comma code可通过参数进行重配置。发送端设备在空闲或者上电初始化时循环发送0011111010或者它的补码1100000101。comma code或其补码例如为参考数据。配置参数单次循环次数 one_loop_times为1000次,总循环次数loop_time为5次。可通过用户配置重构成其它电路参数。数据通道数为通过参数配置重构,每个通道独立,本实施例以1个通道为例进行阐述。
[0058]
系统初始化时,相位确定单元进入空闲状态(idle)。当相位确定单元检测到start_train信号为高电平,开始进入自动训练流程(也即相位确定流程);
[0059]
之后进入find_comma状态,相位确定单元每个byte_clk接收到1个 10bit的rx_data数据,2个byte_clk接收到2个10bit并行数据(第一并行数据和第二并行数据)。然后,相位确定单元将2个10bit数据拼成(也称组合成) 1个20bit数据(也即组合并行数据),判断这个20bit数据中能否框出一个10bit 的comma code或者它的补码,也即将20bit数据与comma code进行比对。举例来说,相邻的两个10bit数据分别是1111101000和0011110000,第2个10bit 数据的低两位(00)和第一个10bit数据的高8bit(11111010)可以合成一个10bit的comma code(0011111010),表示从发送过来的数据,这里能从20bit的码流里面框出一个comma code,表示接收模块能正确恢复发送端设备发送的数据。如果能,则进入loop_find1状态,并且loop_cnt1加1;如果没有,则表示当前高速采样时钟对并行数据的采样是有误码的,进入phase_adj状态进行相位调整。
[0060]
当在loop_find1状态,如果计数器loop_cnt1等于1000时,表示找到 1000个comma code,计数器loop_cnt2加1,进入loop_find2状态,如果计数器loop_cnt1不等于1000,进入find_comma状态继续寻找comma code。
[0061]
当在loop_find2状态,计数器loop_cnt1清0,如果计数器loop_cnt2 等于5时,表示这个相位下找到了5
×
1000个comma code,也即正确相位数量达到了5000个(第一阈值),即认为当前相位是正确的,进入phase_adj状态。如果计数器loop_cnt2不等于5,则进入find_comma状态继续寻找commacode。
[0062]
当在phase_adj状态,计数器loop_cnt2清0,将延迟单元调节5个step (每个step约10ps,5个step约50ps),也即相位调节步长,即高速时钟ioclk 和data_in的相位差调整了50ps。调整5个step后进入train_end状态。其中,延迟单元最大可调节247个step。
[0063]
当train_end状态时,判断boundary_end信号是否为高电平,为高电平则表示训练完成结束,也即是否接收到循环结束指令。boundary_end为高的前提是:找到两段连续正确的相位,或者iodelay单元的延迟值已经调节到最大值(247step)。
[0064]
当接到循环结束指令后,相位确定单元找到了所有的正确相位值也即多个相位范围,或称多个相位窗口。根据多个延迟相位范围计算出目标采用相位,也即最佳的采样相位,以用于整个系统的数据采样。如果为低电平,也即未接收到循环结束指令,则进入find_comma状态。判断为采样正确相位的前提是能够连续找到5*1000个comma code或者它的补码,判断采样相位为错误的条件为2个byte_clk里找不到comma code或者它的补码。
[0065]
目标相位或最佳相位的计算方法为:取连续正确窗口最大的中间值作为最佳iodelay单元延迟值。举例来说,假设step 0~30为正确相位,step31~49 为错误相位,step50~100为正确相位,则step50-100认为是最大的连续正确窗口,或者为宽度最大的延迟相位范围,取(50+100)/2=75作为iodelay单元最佳延迟相位,也即对最大延迟相位和最小延迟相位进行加权和得到最佳延迟相位,保证时钟对数据的采样时正确和可靠的。
[0066]
综上所述,本发明实施例提供的采样时钟延迟相位确定方法通过根据所述当前相位、所述参考时钟信号和所述并行数据自动确定数据的目标延迟相位,以得到最佳采用相位。此外,简化了时钟系统的复杂度和电路,增加系统可靠性。
[0067]
如图7所示,本发明第二实施例提供了一种采样时钟延迟相位确定装置10。采样时钟延迟相位确定装置10例如包括信号获取模块100、第一信号转换模块 200、延迟处理模块300、缓冲处理模块400、第二信号转换获取模块500和相位确定模块600。
[0068]
具体地,信号获取模块100用于获取参考时钟信号和发送端设备发出的低压差分信号;第一信号转换模块200用于对所述低压差分信号进行转换处理得到单端信号;延迟处理模块300用于对所述单端信号进行延迟处理得到串行数据;缓冲处理模块400用于对所述参考时钟信号进行缓冲处理得到高速采样时钟信号;第二信号转换获取模块500用于根据所述高速采样时钟信号转换所述串行数据得到并行数据;相位确定模块600用于根据所述参考时钟信号和所述并行数据确定所述延迟处理的目标延迟相位。
[0069]
此外,如图8所示,模型建立和训练模块60包括:并行信号确定单元610、相位范围确定单元630和目标相位确定单元650。其中,并行信号确定单元610 用于对所述参考时钟信号进行降频处理得到并行数据时钟信号;相位范围确定单元630用于根据所述并行数据时钟信号和所述并行数据确定多个延迟相位范围;以及目标相位确定单元650用于根据所述多个延迟相位范围确定所述目标延迟相位。
[0070]
再者,如图9所示,相位范围确定单元630还包括:调整相位确定子单元 631和相位范围确定子单元633。具体地,调整相位确定子单元631用于在相邻两个所述并行数据时钟信号周期内分别获取所述当前相位下的第一并行数据和第二并行数据,组合所述第一并行数据和所述第二并行数据得到第一组合并行数据,比对所述第一组合并行数据和参考数据得到第一比对结果,当所述第一比对结果表示所述当前相位正确时,正确相位数量值计数加1;重复直到所述正确相位数量值达到第一阈值,根据相位调整步长调整所述当前相位得
到第一调整相位,且清零所述正确相位数量值;相位范围确定子单元633用于以所述第一调整相位作为当前相位,重复前一步骤直到接收到循环结束指令,得到包括所述第一调整相位在内的多个延迟相位范围。
[0071]
另外,如图10所示,目标相位确定单元650包括:相位边界确定子单元651和目标相位确定子单元653。其中,相位边界确定子单元651用于获取所述多个延迟相位范围宽度最大的延迟相位范围的最大延迟相位和最小延迟相位;目标相位确定子单元653用于根据所述最大延迟相位和最小延迟相位确定所述目标延迟相位。
[0072]
本实施例中的采样时钟延迟相位确定装置10中的各模块的具体工作过程和技术效果参见前述第一实施例的相关步骤描述,在此不再赘述。
[0073]
如图11所示,本发明第三实施例提供一种采样时钟延迟相位确定系统20。采样时钟延迟相位确定系统20例如包括存储器22和与存储器22连接的处理器 21。存储器22可例如为非易失性存储器,其上存储有指令。处理器21可例如包括嵌入式处理器或中央处理器等。处理器21运行指令时执行前述第一实施例提供的采样时钟延迟相位确定方法。
[0074]
如图12所示,本发明第四实施例提供一种存储介质30,存储有计算机程序,计算机程序用于执行如前述第一实施例的采样时钟延迟相位确定方法。存储介质30例如为非易失性存储器,如包括:磁介质(如硬盘、软盘和磁带),光介质(如cdrom盘和dvd),磁光介质(如光盘)以及专门构造为用于存储和执行计算机可执行指令的硬件装置(如只读存储器(rom)、随机存取存储器(ram)、闪存等)。存储介质30可由一个或多个处理器或处理装置来执行计算机程序。
[0075]
另外,可以理解的是,前述各个实施例仅为本发明的示例性说明,在技术特征冲突、结构不矛盾、不违背本发明的发明目的前提下,各个实施例的技术方案可以任意组合、搭配使用。
[0076]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多路单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0077]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多路网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0078]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0079]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1