CN117971756A - 一种时钟相位的确定方法、装置、电子设备及存储介质 - Google Patents

一种时钟相位的确定方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117971756A
CN117971756A CN202410136446.0A CN202410136446A CN117971756A CN 117971756 A CN117971756 A CN 117971756A CN 202410136446 A CN202410136446 A CN 202410136446A CN 117971756 A CN117971756 A CN 117971756A
Authority
CN
China
Prior art keywords
target
phase
bits
sampling clock
clock signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410136446.0A
Other languages
English (en)
Inventor
王江伟
赵江
王镇山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lingsi Microelectronics Hangzhou Co ltd
Original Assignee
Lingsi Microelectronics Hangzhou Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lingsi Microelectronics Hangzhou Co ltd filed Critical Lingsi Microelectronics Hangzhou Co ltd
Priority to CN202410136446.0A priority Critical patent/CN117971756A/zh
Publication of CN117971756A publication Critical patent/CN117971756A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本申请提供了一种时钟相位的确定方法、装置、电子设备及存储介质,涉及通信技术领域,其中,该方法包括:接收到目标频率的第一时钟信号后,将第一时钟信号输入延时线路在该线路的N位选择位中任选M个选择位以确定第一高电平信号;确定目标相位和目标延时值;获取延时后的第二采样时钟信号,通过调整所选M个选择位的位数,在目标半周期内的不同相位读取数据,以确定第一调整位数和第二调整位数;根据第一调整位数和第二调整位数以及目标延时值确定目标时钟相位。解决了相关技术中在环境因素影响较大的情况下,无法保持采样时钟读取数据的稳定性的技术问题,达到了在环境因素影响较大的情况下,保持采样时钟读取数据的稳定性的技术效果。

Description

一种时钟相位的确定方法、装置、电子设备及存储介质
技术领域
本申请涉及通信技术领域,尤其涉及一种时钟相位的确定方法、装置、电子设备及存储介质。
背景技术
随着数字通信技术的快速发展,采样时钟信号在确保信号同步和数据完整性方面发挥着至关重要的作用。在高速数字***中,采样时钟信号不仅需要保持稳定的频率,还必须确保数据在正确的时间点被采集或发送。因此,时钟信号成为确保数据完整性的核心技术之一。
在相关技术中,在读写数据过程中,主芯片内部的主控制接口通过偶数分频产生相应的串行外设接口(Serial Peripheral Interface,可简称为SPI)时钟,该串行外设接口时钟的上升沿需要保持在每一拍数据的稳定区域,以确保读写数据的稳定性。然而,在低压高温或高压低温的应用场景中,主控制接口可以使用串行外设接口时钟作为采样时钟来捕获外部数据,环境因素(例如,低压高温或高压低温)对该采样时钟及相关元件(例如,主芯片、数据线、接收芯片等)的延时会有影响,因此主芯片内部会根据环境因素和相关元件的延时确定出延时配置值,再通过该延时配置值调整该采样时钟相位,从而使得该采样时钟的上升沿保持在每一拍数据的稳定区域,以确保读取数据的稳定性。
然而,采用上述的方式,当环境因素对采样时钟及相关元件的延时产生较大的影响时,根据该环境因素和相关元件的延时会确定出较大的延时配置值,通过较大的延时配置值调整采样时钟相位会产生较大的相位颗粒度(即相位调整量),从而会导致采样时钟的上升沿跳出读取数据的稳定区域,进而导致相关技术中在环境因素影响较大的情况下,无法保持采样时钟读取数据的稳定性。
发明内容
本申请提供了一种时钟相位的确定方法、装置、电子设备及存储介质,用于在环境因素影响较大的情况下,保持采样时钟读取数据的稳定性。
第一方面,本申请提供了一种时钟相位的确定方法,该方法包括:在接收到时钟控制设备输入的目标频率的第一采样时钟信号后,将该第一采样时钟信号输入延时线路中,并从该延时线路中的N位选择位中任选M个选择位,以确定该M个选择位为对应的M级延时单元所提供的第一高电平信号,其中,该N位选择位对应有N+1级延时单元,该延时线路包括该N位选择位和该N+1级延时单元,2≤M≤N;根据该第一采样时钟信号、该第一高电平信号以及该M级延时单元的M级数确定该第一采样时钟信号在该延时线路中每延时目标半周期的目标相位和每级该延时单元的目标延时值;获取该延时线路输出的第二采样时钟信号,其中,该第二采样时钟信号为该延时线路对该第一采样时钟信号进行延时所得到的;在该第二采样时钟信号中与该目标相位所对应的该目标半周期内,从该N位选择位中任选该M个选择位,并轮次调整对该M个选择位的位数,以在每次调整完该M个选择位的位数后,在该目标半周期的不同相位执行一次数据读取操作,其中,该目标相位包括多个相位,该目标半周期为该多个相位中的任意相邻的两个相位之间的差值;在从第一半周期的第一相位处读取到正确数据后,将该第一相位所对应的该M个选择位的位数记为第一调整位数,其中,在该第一相位之前所读取到的数据均为错误数据,以及在该第一相位之后且在第一目标相位之前所读取到的数据均为正确数据,在该第二采样时钟信号上该第一目标相位延时于该第一相位,该目标相位包括该第一目标相位,该目标半周期包括该第一半周期;在从第二半周期的第二相位处读取到错误数据后,并将该第二相位所对应的该M个选择位的位数记为第二调整位数,其中,在该第二相位之后且在第二目标相位之前所读取到的数据均为错误数据,以及在该第二相位之前且在该第一相位之后所读取到的数据均为正确数据,在该第二采样时钟信号上该第二相位延时于该第一目标相位以及该第二目标相位延时于该第二相位,该目标相位包括该第二目标相位,该目标半周期包括第二半周期,在该第二采样时钟信号上该第二半周期延时于该第一半周期;根据该目标延时值和该第一调整位数以及该第二调整位数确定目标时钟相位。
通过采用上述技术方案,将接收到第一采样时钟信号输入延时线路,通过在延时线路中的N位选择位中任选M个选择位来确定该M个选择位为对应的M级延时单元所提供的第一高电平信号,从而确保了时钟信号的延时配置的灵活性和适应性。根据第一采样时钟信号和第一高电平信号以及M级延时单元的M级数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位和每级延时单元的目标延时值。再获取延时线路输出的对第一采样时钟信号进行延时所得到的第二采样时钟信号,在第二采样时钟信号中,在与目标相位对应的目标半周期内,通过调整选定的M个选择位的位数,能够在不同相位处执行数据读取操作。使得在第一半周期的第一相位处正确读取数据后,可以将此时的位数定为第一调整位数,在第二半周期的第二相位处读取到错误数据时,可以将此时的位数定为第二调整位数。根据目标延时值和第一调整位数以及第二调整位数确定目标时钟相位。进而可以根据该目标时钟相位读取数据,实现了采样时钟读取数据的稳定性不受温度影响的目的。解决了相关技术中在环境因素影响较大的情况下,无法保持采样时钟读取数据的稳定性的技术问题,达到了在环境因素影响较大的情况下,保持采样时钟读取数据的稳定性的技术效果。
可选的,该根据该第一采样时钟信号、该第一高电平信号以及该M级延时单元的M级数确定该第一采样时钟信号在该延时线路中每延时目标半周期的目标相位和每级延时单元的目标延时值,具体包括:获取该M级延时单元根据该第一高电平信号对该第一采样时钟信号进行延时所得到的第三采样时钟信号;将该第一采样时钟信号和该第三采样时钟信号输入触发设备中,以获取该触发设备输出的触发信号;在获取到该触发信号,且确定该触发信号包括第一低电平信号和第二低电平信号的情况下,按预设增量持续增大该M个选择位的位数,直至该触发信号包括目标高电平信号和目标低电平信号;在该触发信号包括该目标高电平信号和该目标低电平信号的情况下,将当前的该M个选择位的位数记为目标位数,并确定与该目标位数对应的该延时单元的目标级数;根据该目标级数确定该第一采样时钟信号在该延时线路中每延时该目标半周期的该目标相位,以及,根据该目标级数和该目标频率确定每级该延时单元的目标延时值。
通过采用上述技术方案,获取M级延时单元根据第一高电平信号对第一采样时钟信号进行延时所得到第三采样时钟信号。将第一采样时钟信号和第三采样时钟信号同时输入触发设备,以获取触发设备产生的触发信号。在触发信号包括第一低电平信号和第二低电平信号时,按预设增量持续增加M个选择位的位数,直到触发信号包括目标高电平信号和目标低电平信号,记录当前的M个选择位的位数为目标位数,并确定与目标位数对应的延时单元的目标级数。根据目标级数确定第一采样时钟信号在延时线路中每延时所述目标半周期的所述目标相位,同时,根据目标级数和目标频率来确定每级延时单元的目标延时值。通过动态调整选择位以实现对时钟信号的延时进行精确调整,可以为后续的数据读取操作提供精确同步的时钟信号。
可选的,该在该第二采样时钟信号中与该目标相位所对应的目标半周期内,从该N位选择位中任选该M个选择位,并轮次调整对该M个选择位的位数,以在每次调整完该M个选择位的位数后,在该目标半周期的不同相位执行一次数据读取操作,具体包括:在反向采样时钟信号中与第三目标相位所对应的第三半周期内,从该N位选择位中任选该M个选择位,并轮次调整对该M个选择位的位数,其中,该第二采样时钟信号包括该反向采样时钟信号,在该第二采样时钟信号上该第一相位延时于该第三目标相位,该目标半周期包括该第三半周期,在该第二采样时钟信号上该第一半周期延时于该第三半周期;在每次调整完该M个选择位的位数后,在该第三半周期的不同相位执行一次数据读取操作。
通过采用上述技术方案,第二采样时钟信号包括反向采样时钟信号,进而在反向采样时钟信号中与第三目标相位所对应的第三半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数。在每次调整完M个选择位的位数后,在第三半周期的不同相位进行数据读取操作。可以为数据读取的关键时刻提供更精确的控制,以确保在不同的相位点捕获数据的准确性,进而提高数据读取效率和可靠性。
可选的,该在从第一半周期的第一相位处读取到正确数据后,将该第一相位所对应的该M个选择位的位数记为第一调整位数,具体包括:在从该第三目标相位处读取到错误数据后,在正向采样时钟信号中与第四目标相位所对应的该第一半周期内,从该N位选择位中任选该M个选择位,并轮次调整对该M个选择位的位数,其中,该第二采样时钟信号包括该正向采样时钟信号,该反向采样时钟信号为该正向采样时钟信号的反相时钟信号;在每次调整完该M个选择位的位数后,在该第一半周期的不同相位执行一次数据读取操作;在该第一相位处读取到正确数据后,继续调整该M个选择位的位数,直至在该第一半周期的该第四目标相位处读取到正确数据;将该第一相位所对应的该M个选择位的位数记为该第一调整位数。
通过采用上述技术方案,从第三目标相位处读取到错误数据后,此时需要继续进行数据读取操作,第二采样时钟信号包括正向采样时钟信号,进而在正向采样时钟信号中与第四目标相位所对应的第一半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数。每次调整完M个选择位的位数后,在第一半周期的不同相位执行一次数据读取操作。当在第一相位处读取到正确数据后,不停止调整M个选择位的位数,直到在第一半周期的第四目标相位处也能读取到正确数据为止。完成上述操作后,将第一相位处对应的M个选择位的位数定为第一调整位数。从而确保了在时钟信号的不同相位点读取数据的准确性,进而提升了数据读取的可靠性。
可选的,该在从第二半周期的第二相位处读取到错误数据后,并将该第二相位所对应的该M个选择位的位数记为第二调整位数,具体包括:在从该第四目标相位处读取到正确数据后,在该反向采样时钟信号中与该第二目标相位所对应的在该第二半周期内,从该N位选择位中任选该M个选择位,并轮次调整对该M个选择位的位数;在每次调整完该M个选择位的位数后,在该第二半周期的不同相位执行一次数据读取操作;在该第二相位处读取到错误数据后,继续调整该M个选择位的位数,直至在该第二目标相位处读取到错误数据;将该第二相位所对应的该M个选择位的位数记为该第二调整位数。
通过采用上述技术方案,在从第四目标相位处读取到正确数据后,在反向采样时钟信号中与第二目标相位所对应的第二半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数。每次调整完M个选择位的位数后,在第二半周期的不同相位执行一次数据读取操作。如果在第二相位处读取到错误数据,不停止调整M个选择位的位数,直到在第二目标相位处读取到错误数据为止。完成上述操作后,将第二相位处对应的M个选择位的位数定义为第二调整位数。通过细致地调整,提高数据读取时的精确度。
可选的,该根据该目标延时值和该第一调整位数以及该第二调整位数确定目标时钟相位,具体包括:确定该第一调整位数所对应的该延时单元的第一级数,以及,确定该第二调整位数对应的该延时单元的第二级数;根据该目标延时值和该第一级数以及该第二级数确定该目标时钟相位。
通过采用上述技术方案,确定第一调整位数对应的延时单元的第一级数,以及确定第二调整位数对应的延时单元的第二级数,根据第一级数和第二级数以及目标延时值可以更精准地确定出目标时钟相位,且通过该方式在环境因素影响较大的情况下可以确定出准确的时钟相位,进而通过该时钟相位读取数据,可以确保时钟相位在低压高温或高压低温情况下读取数据的稳定性。
可选的,该根据该目标延时值和该第一级数以及该第二级数确定该目标时钟相位,具体包括:按如下公式确定该目标时钟相位a:
a=(b×d-c×d)÷2+c×d
其中,该b为该第一级数,该d为该目标延时值,该c为该第二级数。
通过采用上述技术方案,将第一级数b和第二级数c以及目标延时值d代入特定公式即可计算出目标时钟相位a,即确保了确定目标时钟相位的灵活性,仅通过调整第一级数或第二级数或目标延时值即可得到在不同场景下所需要的时钟相位。
第二方面,本申请实施例提供了一种时钟相位的确定装置,该装置包括:第一确定模块,用于在接收到时钟控制设备输入的目标频率的第一采样时钟信号后,将该第一采样时钟信号输入延时线路中,并从该延时线路中的N位选择位中任选M个选择位,以确定该M个选择位为对应的M级延时单元所提供的第一高电平信号,其中,该N位选择位对应有N+1级延时单元,2≤M≤N;第二确定模块,用于根据该第一采样时钟信号、该第一高电平信号以及该M级延时单元的M级数确定该第一采样时钟信号在该延时线路中每延时目标半周期的目标相位和每级该延时单元的目标延时值;获取模块,用于获取该延时线路输出的第二采样时钟信号,其中,该第二采样时钟信号为该延时线路对该第一采样时钟信号进行延时所得到的;执行模块,用于在该第二采样时钟信号中与该目标相位所对应的该目标半周期内,从该N位选择位中任选该M个选择位,并轮次调整对该M个选择位的位数,以在每次调整完该M个选择位的位数后,在该目标半周期的不同相位执行一次数据读取操作,其中,该目标相位包括多个相位,该目标半周期为该多个相位中的任意相邻的两个相位之间的差值;第一读取模块,用于在从第一半周期的第一相位处读取到正确数据后,将该第一相位所对应的该M个选择位的位数记为第一调整位数,其中,在该第一相位之前所读取到的数据均为错误数据,以及在该第一相位之后且在第一目标相位之前所读取到的数据均为正确数据,在该第二采样时钟信号上该第一目标相位延时于该第一相位,该目标相位包括该第一目标相位,该目标半周期包括该第一半周期;第二读取模块,用于在从第二半周期的第二相位处读取到错误数据后,并将该第二相位所对应的该M个选择位的位数记为第二调整位数,其中,在该第二相位之后且在第二目标相位之前所读取到的数据均为错误数据,以及在该第二相位之前且在该第一相位之后所读取到的数据均为正确数据,在该第二采样时钟信号上该第二相位延时于该第一目标相位以及该第二目标相位延时于该第二相位,该目标相位包括该第二目标相位,该目标半周期包括第二半周期,在该第二采样时钟信号上该第二半周期延时于该第一半周期;第三确定模块,用于根据该目标延时值和该第一调整位数以及该第二调整位数确定目标时钟相位。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
1、解决了相关技术中在环境因素影响较大的情况下,无法保持采样时钟读取数据的稳定性的技术问题,达到了在环境因素影响较大的情况下,保持采样时钟读取数据的稳定性的技术效果。
2、通过动态调整选择位以实现对时钟信号的延时进行精确调整,可以为后续的数据读取操作提供精确同步的时钟信号。
3、可以为数据读取的关键时刻提供更精确的控制,以确保在不同的相位点捕获数据的准确性,进而提高数据读取效率和可靠性。
附图说明
图1是本申请实施例提供的一种时钟相位的确定方法的流程示意图;
图2是本申请实施例中时钟相位的确定方法可应用的***构架的一个结构示意图;
图3是本申请实施例中一种延时线路的局部放大示意图;
图4是本申请实施例中一种延时线路和锁相电路的局部放大示意图;
图5是本申请实施例中一种延时线路和锁相电路波形示意图一;
图6是本申请实施例中一种延时线路和锁相电路波形示意图二;
图7是本申请实施例中一种最佳时钟相位波形示意图;
图8是本申请实施例提供的一种时钟相位的确定装置结构框图;
图9是本申请实施例的公开的一种电子设备的结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请提供了一种时钟相位的确定方法,参阅图1,图1是本申请实施例提供的一种时钟相位的确定方法的流程示意图,包括以下步骤:
步骤S101,在接收到时钟控制设备输入的目标频率的第一采样时钟信号后,将第一采样时钟信号输入延时线路中,并从延时线路中的N位选择位中任选M个选择位,以确定M个选择位为对应的M级延时单元所提供的第一高电平信号,其中,N位选择位对应有N+1级延时单元,延时线路包括N位选择位和N+1级延时单元,2≤M≤N;
步骤S102,根据第一采样时钟信号、第一高电平信号以及M级延时单元的M级数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位和每级延时单元的目标延时值;
步骤S103,获取延时线路输出的第二采样时钟信号,其中,第二采样时钟信号为延时线路对第一采样时钟信号进行延时所得到的;
步骤S104,在第二采样时钟信号中与目标相位所对应的目标半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数,以在每次调整完M个选择位的位数后,在目标半周期的不同相位执行一次数据读取操作,其中,目标相位包括多个相位,目标半周期为多个相位中的任意相邻的两个相位之间的差值;
步骤S105,在从第一半周期的第一相位处读取到正确数据后,将第一相位所对应的M个选择位的位数记为第一调整位数,其中,在第一相位之前所读取到的数据均为错误数据,以及在第一相位之后且在第一目标相位之前所读取到的数据均为正确数据,在第二采样时钟信号上第一目标相位延时于第一相位,目标相位包括第一目标相位,目标半周期包括第一半周期;步骤S106,在从第二半周期的第二相位处读取到错误数据后,并将第二相位所对应的M个选择位的位数记为第二调整位数,其中,在第二相位之后且在第二目标相位之前所读取到的数据均为错误数据,以及在第二相位之前且在第一相位之后所读取到的数据均为正确数据,在第二采样时钟信号上第二相位延时于第一目标相位以及第二目标相位延时于第二相位,目标相位包括第二目标相位,目标半周期包括第二半周期,在第二采样时钟信号上第二半周期延时于第一半周期;
步骤S107,根据目标延时值和第一调整位数以及第二调整位数确定目标时钟相位。
在上述实施例中,时钟控制设备包括但不限于相位锁定环(Phase-Locked Loop,可以简称为PLL)、振荡器、实时时钟(Real-Time Clock,可简称为RTC)模块、网络时间协议(Network Time Protocol,可简称为NTP)服务器、计时器/计数器(Timer/Counter)、时钟分配器等。延时线路中包括有N+1级延时单元,该N+1级延时单元中的每一级延时单元对应有一个选择位,例如,当延时线路中有3级延时单元时,该3级延时单元对应有3个选择位,该3个选择位的位数分别为0位选择位、1位选择位、2位选择位。当延时线路中有5级延时单元时,该5级延时单元对应有5个选择位,该5个选择位的位数分别为0位选择位、1位选择位、2位选择位、3位选择位、4位选择位等。
通过上述步骤,将接收到第一采样时钟信号输入延时线路,通过在延时线路中的N位选择位中任选M个选择位来确定该M个选择位为对应的M级延时单元所提供的第一高电平信号,从而确保了时钟信号的延时配置的灵活性和适应性。根据第一采样时钟信号和第一高电平信号以及M级延时单元的M级数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位和每级延时单元的目标延时值。再获取延时线路输出的对第一采样时钟信号进行延时所得到的第二采样时钟信号,在第二采样时钟信号中,在与目标相位对应的目标半周期内,通过调整选定的M个选择位的位数,能够在不同相位处执行数据读取操作。使得在第一半周期的第一相位处正确读取数据后,可以将此时的位数定为第一调整位数,在第二半周期的第二相位处读取到错误数据时,可以将此时的位数定为第二调整位数。根据目标延时值和第一调整位数以及第二调整位数确定目标时钟相位。进而可以根据该目标时钟相位读取数据,实现了采样时钟读取数据的稳定性不受温度影响的目的。解决了相关技术中在环境因素影响较大的情况下,无法保持采样时钟读取数据的稳定性的技术问题,达到了在环境因素影响较大的情况下,保持采样时钟读取数据的稳定性的技术效果。
其中,上述步骤的执行主体可以是***,例如,高速时钟控制***等,或者是时钟控制设备,例如,相位锁定环等,还或者是时钟处理设备等,但不限于此。
在一个可选的实施例中,根据第一采样时钟信号、第一高电平信号以及M级延时单元的M级数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位和每级延时单元的目标延时值,具体包括:获取M级延时单元根据第一高电平信号对第一采样时钟信号进行延时所得到的第三采样时钟信号;将第一采样时钟信号和第三采样时钟信号输入触发设备中,以获取触发设备输出的触发信号;在获取到触发信号,且确定触发信号包括第一低电平信号和第二低电平信号的情况下,按预设增量持续增大M个选择位的位数,直至触发信号包括目标高电平信号和目标低电平信号;在触发信号包括目标高电平信号和目标低电平信号的情况下,将当前的M个选择位的位数记为目标位数,并确定与目标位数对应的延时单元的目标级数;根据目标级数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位,以及,根据目标级数和目标频率确定每级延时单元的目标延时值。
在上述实施例中,假设有一个***需要对时钟信号进行精确的延时控制,以便进行高速数据采集。***中有一个延时线路,该延时线路由N+1级序列相连的延时单元组成,每级延时单元对应有一位选择位,每级延时单元可以对输入的时钟信号进行固定时间的延时。第一采样时钟信号是***的参考时钟信号。第一高电平信号是选择位触发延时单元的控制信号。需要通过调整选择位的位数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位。具体实施步骤,获取M级延时单元根据第一高电平信号对第一采样时钟信号进行延时所得到的第三采样时钟信号;将第一采样时钟信号和第三采样时钟信号同时输入到触发设备中(例如,D触发器或T触发器等,此处不作限定);获取触发设备输出的触发信号;通过观察触发信号中的电平信号来调整M个选择位的位数,从而调节延时线路的总延时。从一个预设增量开始,持续增大M个选择位的位数,直至触发信号显示出目标高电平信号和目标低电平信号(这表示延时已经调整到目标相位处);一旦触发信号包括目标高电平信号和目标低电平信号,记录当前的M个选择位的位数作为目标位数;根据目标位数,确定对应的延时单元的目标级数,这表示需要多少个延时单元来实现目标相位;根据目标级数和第一采样时钟信号的目标频率,计算出每级延时单元所需的目标延时值;通过将目标位数编码到控制延时线路的逻辑中,锁定***的延时设置,使得每次第一高电平信号触发时,第三采样时钟信号都能够与第一采样时钟信号保持正确的目标相位关系。
在一个可选的实施例中,在第二采样时钟信号中与目标相位所对应的目标半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数,以在每次调整完M个选择位的位数后,在目标半周期的不同相位执行一次数据读取操作,具体包括:在反向采样时钟信号中与第三目标相位所对应的第三半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数,其中,第二采样时钟信号包括反向采样时钟信号,在第二采样时钟信号上第一相位延时于第三目标相位,目标半周期包括第三半周期,在第二采样时钟信号上第一半周期延时于第三半周期;在每次调整完M个选择位的位数后,在第三半周期的不同相位执行一次数据读取操作。
在上述实施例中,假设有一个数字存储示波器,需要在一个特定的相位角度采集数字信号。该数字存储示波器使用一个N位寄存器来控制采样时刻,该寄存器中有N位选择位可以被设置来改变采样时刻。第二采样时钟信号是用于控制数据采样时刻的已延时时钟信号,在反向采样时钟信号的第三目标相位所对应的第三半周期内进行数据采集,并且能够在不同相位处的进行数据采集。具体实施步骤,获取延时线路输出的第二采样时钟信号,在反向采样时钟信号中确定与第三目标相位所对应的第三半周期;从N位寄存器中任选M个选择位,以用于调整采样时刻;设置一个初测试的选择位的位模式,以确定在第三半周期内的初始采样时刻;开始一个循环,依次调整选定的M个选择位的位数,在每次调整后,立即在反向采样时钟信号的第三半周期内的不同相位执行一次数据读取操作;数据读取可以通过抓取数字信号线上的值来实现;继续轮次调整M个选择位的位数,每次调整后都在新的相位上执行数据读取操作。通过改变选择位的位数,实现微调采样时刻,以便在半周期的不同相位点上采集数据。记录每次数据读取操作所获取的数据及其对应的选择位设置;分析数据,确定时钟信号的相位特性;经过多次位数调整和数据采集,确定数据在第三半周期内的分布特性。在本实施例中,通过对M个选择位的精细控制,可以在特定的时钟周期内的不同相位点采集数据,以实现动态分析时序和测试信号完整性的目的。
在一个可选的实施例中,在从第一半周期的第一相位处读取到正确数据后,将第一相位所对应的M个选择位的位数记为第一调整位数,具体包括:在从第三目标相位处读取到错误数据后,在正向采样时钟信号中与第四目标相位所对应的第一半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数,其中,第二采样时钟信号包括正向采样时钟信号,反向采样时钟信号为正向采样时钟信号的反相时钟信号;在每次调整完M个选择位的位数后,在第一半周期的不同相位执行一次数据读取操作;在第一相位处读取到正确数据后,继续调整M个选择位的位数,直至在第一半周期的第四目标相位处读取到正确数据;将第一相位所对应的M个选择位的位数记为第一调整位数。
在上述实施例中,假设需要在一个数字通信设备中进行信号完整性测试,测试过程需要在不同的时钟相位上捕获数据,并根据捕获的数据正确性来调整采样时刻。具体实施步骤,设定正向采样时钟信号,设定一个N位的选择位寄存器,用于控制数据采样的时刻;在反向采样时钟信号中的第三目标相位处读取到错误数据后,表明需要调整采样时刻;在正向采样时钟信号的第一半周期内,从N位选择位中任选M个选择位,设置一个初始位模式,开始采样时刻的调整;开始一个循环,依次调整选定的M个选择位的位数,在每次调整后,立即在第一半周期内的不同相位执行一次数据读取操作;当在第一半周期中的第一相位处读取到正确的数据后,继续轮次调整M个选择位,直到在第一半周期中第四目标相位处读取到正确数据,停止调整选择位,将该第一相位对应的M个选择位的位数记录为第一调整位数;将第四目标相位处读取到正确数据时对应的M个选择位的位数也可以记录下来。在本实施例中,每个步骤是迭代的,每次调整选择位的位数后都需要验证数据是否正确,通过这种方法可以精确找到数据采集的最优时刻。
在一个可选的实施例中,在从第二半周期的第二相位处读取到错误数据后,并将第二相位所对应的M个选择位的位数记为第二调整位数,具体包括:在从第四目标相位处读取到正确数据后,在反向采样时钟信号中与第二目标相位所对应的在第二半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数;在每次调整完M个选择位的位数后,在第二半周期的不同相位执行一次数据读取操作;在第二相位处读取到错误数据后,继续调整M个选择位的位数,直至在第二目标相位处读取到错误数据;将第二相位所对应的M个选择位的位数记为第二调整位数。
在上述实施例中,假设需要在一个数字通信设备中进行信号完整性测试,测试过程需要在不同的时钟相位上捕获数据,并根据捕获的数据正确性来调整采样时刻。具体实施步骤,设定反向采样时钟信号,设定一个N位的选择位寄存器,用于微调数据采样的时刻;在从第四目标相位处读取到正确数据后,在反向采样时钟信号中与第二目标相位所对应的第二半周期内,从N位选择位中任选M个选择位,设置一个初始位模式;开始采样时刻的调整;开始一个循环,依次调整选定的M个选择位的位数,在每次调整后,立即在第二半周期内的不同相位执行一次数据读取操作;在第二半周期的第二相位处读取到错误数据后,继续调整M个选择位的位数,直至在第二目标相位处读取到错误数据后,将第二相位对应的M个选择位的位数记为第二调整位数。
在一个可选的实施例中,根据目标延时值和第一调整位数以及第二调整位数确定目标时钟相位,具体包括:确定第一调整位数所对应的延时单元的第一级数,以及,确定第二调整位数对应的延时单元的第二级数;根据目标延时值和第一级数以及第二级数确定目标时钟相位。
在上述实施例中,当第一调整位数包括sel[8]、sel[9],其中,sel[8]是位数为8的选择位、sel[9]是位数为9的选择位,即sel[8]为第9个选择位、sel[9]为第10个选择位,进而将sel[8]对应的延迟单元的级数确定为第一级数,即sel[8]对应的延迟单元有9级,将9级确定为第一级数;当第二调整位数包括sel[44]、sel[45],其中,sel[44]是位数为44的选择位、sel[45]是位数为45的选择位,即sel[44]为第45个选择位、sel45]为第46个选择位,进而将sel[44]对应的延迟单元的级数确定为第二级数,即sel[44]对应的延迟单元有45级,将45级确定为第二级数。此外,当第一调整位数包括sel[26]、sel27],其中,sel[26]是位数为26的选择位、sel[27]是位数为27的选择位,即sel[26]为第27个选择位、sel[27]为第28个选择位,进而将sel[26]对应的延迟单元的级数确定为第一级数,即sel[26]对应的延迟单元有27级,将27级确定为第一级数;当第二调整位数包括sel[100]、sel[101],其中,sel[100]是位数为100的选择位、sel[101]是位数为101的选择位,即sel[100]为第101个选择位、sel101]为第102个选择位,进而将sel[100]对应的延迟单元的级数确定为第二级数,即sel[100]对应的延迟单元有101级,将101级确定为第二级数,等等。需要说明的是,上述第一调整位数和上述第二调整位数的举例说明仅是一种示例性的实施例,上述第一调整位数和上述第二调整位数并不仅限于上述举例。
在上述实施例中,假设需要精确时序控制的***确保信号从主设备发出,到从设备接收,最后回到主设备的整个过程满足特定的时序要求。这个过程中,环境因素对时钟相位会有影响,进而影响数据传输的稳定性和准确性。然而,通过上述的lock电路确定延时线路中每级延时单元的目标延时值,即使是在环境因素影响较大的情况下,也可以精确地确定出延时线路中每级延时单元的目标延时值,从而使得采用时钟读取数据的稳定性不受温度因素的影响,再通过测试确定第一调整位数所对应的延时单元的第一级数和第二调整位数对应的延时单元的第二级数。对第一级数和第二级数以及目标延时值进行计算来确定读取数据的最佳时钟相位,可以实现细微调整时钟信号,以满足高速数据通信的精确时序要求。
在一个可选的实施例中,根据目标延时值和第一级数以及第二级数确定目标时钟相位,具体包括:
按如下公式确定目标时钟相位a:
a=(b×d-c×d)÷2+c×d
其中,b为第一级数,d为目标延时值,c为第二级数。
在上述实施例中,当第一级数为50级(当然也可以是30级、55级、60级等,此处不作限定),第二级数为10级(当然也可以是15级、20级、25级等,此处不作限定),目标延时值为50ps(当然也可以是100ps、150ps、200ps等,此处不作限定)时,目标时钟相位为a=(50×50-10×50)÷2+10×50,即目标时钟相位为1500ps。需要说明的是,上述第一级数、上述第二级数以及上述目标延时值的举例说明仅是一种示例性的实施例,上述第一级数、上述第二级数以及上述目标延时值并不仅限于上述举例。
显然,上述描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。下面结合具体实施例对本申请进行具体说明。
图2是本申请实施例中时钟相位的确定方法可应用的***构架的一个结构示意图,参阅图2,该***包括:
***作芯片(即104前的SLAVE_CHIP),***作芯片读取数据延时(即104前的SLAVE_CHIP_RDATA_DELAY),即当主芯片通过串行通信接口(Quad Serial PeripheralInterface,可简称为QSPI)去读数据时,***作芯片数据返回给主芯片会有延时。
主芯片数据引脚(即105~106之间的DATA_PAD[3:0]),105~106之间是主芯片上的4个数据引脚,该数据引脚会有延时。
输入数据路径延时(即106~108之间的Input_data_path_delay),106~108之间是主芯片引脚到读寄存器间的线路和组合逻辑的延时。
锁相环(即100前的PLL),用于产生正确频率的时钟。
反相器,100~101之间,将时钟反相处理。
多路选择器(Multiplexer,可简称为MUX),100/101~102之间的2选1的选择器。
时钟树(Clock_tree),102开始到该时钟树下的所有寄存器时钟端延时要一样。
异步先进先出模块(Asynchronous First-In-First-Out Module,可简称为Async_fifo),写时钟域为调整好延时值的116输出端,读时钟域为115端输给Async_fifo。
延时线路(delay_line),可灵活配置的延时线路,延时线路的延时值需要超过半周期(对应于上目标半周期)。
图3是本申请实施例中一种延时线路的局部放大示意图,参阅图3,图3是图2中的115~116之间的delay_line局部放大示意图,延时线路中包括128个延时单元(delayelement)组成,每一个小颗粒度延时单元由1个同相缓冲器(delay cell)和1个反向器以及3个与非门组成,控制选择位(sel)有128bit,每个延时单元由sel的位数来控制延时情况。当有一个小颗粒度延时单元的sel[x]=1时,在该x位后面的延时单元都会被旁路掉,此时,延时线路的延时值等于这个第2个sel[x]=1前的所有延时单元的延时值之和。为了节省功耗,保证后面的延时单元里的逻辑不翻转,两个sel[y]=1设置为一组,例如,sel[0]=1,在sel[0]=1后面且与之相邻的sel[1]=1,其它sel[y]都为0,再例如,sel[80]=1,在sel[80]=1后面且与之相邻的sel[81]=1,其它sel[y]都为0,上述x和上述y均为sel的位数。
锁相电路(LOCK),对半周期(对应于上述目标半周期)进行锁定控制。
图4是本申请实施例中一种延时线路和锁相电路的局部放大示意图,参阅图4,图4是图2中的115~116之间的delay_line和LOCK的局部放大示意图,通过锁相电路计算出每一个小颗粒延时单元的延时值:
第1阶段,图5是本申请实施例中一种延时线路和锁相电路波形示意图一,参阅图5,当延时线路的sel的位数较小时,115处时钟信号经过延时线路后,116处时钟信号的波形比115处时钟信号的波形多一点延时,116处时钟信号经过一个同相缓冲器后,117处时钟信号的波形比116处时钟信号的波形会再加一点延时,此时多位触发寄存器输出的118和119都为0;
第2阶段:图6是本申请实施例中一种延时线路和锁相电路波形示意图二,参阅图6,当延时线路的sel的位数一直在变大时,115处时钟信号经过延时线路后,116处时钟信号的波形比115处时钟信号的波形多一点延时,116处时钟信号经过一个同相缓冲器后,117处时钟信号的波形比116处时钟信号的波形会再加一点延时,此时多位触发寄存器输出的118为0、119为1,这时记录当前sel的位数,此时,经过当前sel的位数对应的延迟单元的级数即为半周期的延时,输入频率(对应于上述目标频率)是已知的,通过输入频率确定时钟周期,采用时钟周期的一半除以延迟单元的级数得到每级延迟单元的延时值。
本申请实施例中还提供了一个最佳时钟相位(对应于上述目标时钟相位)的确定流程,该流程包括:
测试过程:
1、delay line sel=1,102处的控制器ctl[0]=1;
2、中央处理器(Central Processing Unit,可简称为CPU)控制QSPI主控制接口(master IP)向从控制接口(slave IP)发送测试命令,slave IP向主控制接口发送已知的数据;
3、CPU确认静态随机存取存储器(Static Random Access Memory,可简称为SRAM)中的数据是否正确;
4、CPU记录delay line sel=0,ctl[0]=0,读数据正确或错误。
图7是本申请实施例中一种最佳时钟相位波形示意图,参阅图7,在常压室温应用场景下,假设时钟频率为200Mhz,时钟周期为5ns(t1到t2为2500ps),lock时sel[50]=1,sel[51]=1,时钟经过了51级延时单元,每级延时单元的延时值为50ps,D0数据片和D1数据片可以分别包括4bit数据(即分别包括DATA 0~3),当然,D0数据片和D1数据片还可以分别包括8bit数据、16bit数据、32bit数据等,此处不作限定,具体如下:
1、反向采样时钟t1~t2阶段:102处的控制器ctl[0]=1(提供反向采样时钟),caption_count=0(t1~t4为第1个采样时钟),从sel[0]=1,sel[1]=1开始轮次改变sel的位数,每改变一次sel的位数,循环执行测试过程中的2、3、4步骤:
sel[0]=1,sel[1]=1,sel[2]~sel[127]=0,t1位置的反向采样时钟延时值为50ps(延时绕过第2个为1的sel位的延时单元,即绕过sel[1]位的延时单元),循环执行测试过程中的2、3、4步骤,此时读取数据错误;
sel[0]~sel[1]=0,sel[2]=1,sel[3]=1,sel[4]~sel[127]=0,t1位置的反向采样时钟延时值为150ps(延时绕过第2个为1的sel位,即绕过sel[3]位的延时单元,后续类似操作同此处理),循环执行测试过程中的2、3、4步骤,此时数据错误;
……
sel[0]~sel[49]=0,sel[50]=1,sel[51]=1,sel[52]~sel[127]=0,t1位置的反向采样时钟延时值为2500ps循环执行测试过程中的2、3、4步骤,此时数据错误,该时刻为反向采样时钟沿延时到t2位置。
2、正向采样时钟t2~t4阶段:102处的控制器ctl[0]=0(提供正向采样时钟),caption_count=0(t1~t4为第1个采样时钟),sel[0]=1,sel[1]=1开始轮次改变sel的位数,每改变一次sel的位数,循环执行测试过程中的2、3、4步骤:
通过上述操作使得相位改变连续起来,采样时钟取反位置前后,相位的改变也是连续的。
sel[0]=1,el[1]=1,sel[2]~sel[127]=0,t2位置的反向采样时钟延时值为50ps,循环执行测试过程中的2、3、4步骤,此时读取数据错误;
sel[0]~sel[1]=0,sel[2]=1,sel[3]=1,sel[4]~sel[127]=0,t2位置的正向采样时钟延时值为150ps,循环执行测试过程中的2、3、4步骤,此时读取数据错误;
……
sel[0]~sel[19]=0,sel[20]=1,sel[21]=1,sel[22]~sel[127]=0,t2位置的正向采样时钟延时值为1000ps,循环执行测试过程中的2、3、4步骤,此时数据错误;
sel[0]~sel[21]=0,sel[22]=1,sel[23]=1,sel[24]~sel[127]=0,t2位置的正向采样时钟延时值为1100ps,循环执行测试过程中的2、3、4步骤,此时数据正确,该时刻为正向采样时钟沿延时到t3位置,t3时刻前读到数据是错误的,t3时刻后读到数据是正确的;
……
sel[0]~sel[49]=0,sel[50]=1,sel[51]=1,sel[52]~sel[127]=0,t2位置的正向采样时钟延时值为2500ps,循环执行测试过程中的2、3、4步骤,此时数据正确,该时刻为正向采样时钟沿延时到t4位置;
3、反向采样时钟t4~t6阶段,102处的控制器ctl[0]=1(提供反向采样时钟),caption_count=1(t4~t7为第2个采样时钟),sel[0]=1,sel[1]=1开始轮次改变sel的位数,每改变一次sel的位数,循环执行测试过程中的2、3、4步骤:
sel[0]=1,sel[1]=1,sel[2]~sel[127]=0,t4位置的反向采样时钟延时值为50ps,循环执行测试过程中的2、3、4步骤,此时读取数据正确;
sel[0]~sel[1]=0,sel[2]=1,sel[3]=1,sel[4]~sel[127]=0,t4位置的反向采样时钟延时值为150ps,循环执行测试过程中的2、3、4步骤,此时读取数据正确;
……
sel[0]~sel[49]=0,sel[50]=1,sel[51]=1,sel[52]~sel[127]=0,t4位置的反向采样时钟延时值为2500ps,循环执行测试过程中的2、3、4步骤,此时数据正确,该时刻为反向采样时钟沿延时到t6位置
4、正向采样时钟t6~t7阶段:102处的控制器ctl[0]=0(提供正向采样时钟),caption_count=1(t4~t7为第2个采样时钟),sel[0]=1,sel[1]=1开始轮次改变sel的位数,每改变一次sel的位数,循环执行测试过程中的2、3、4步骤:
sel[0]=1,sel[1]=1,sel[2]~sel[127]=0,t6位置的正向采样时钟延时值为50ps,循环执行测试过程中的2、3、4步骤,此时读取数据正确;
sel[0]~sel[1]=0,sel[2]=1,sel[3]=1,sel[4]~sel[127]=0,t6位置的正向采样时钟延时值为150ps,循环执行测试过程中的2、3、4步骤,此时读取数据正确;
……
sel[0]~sel[49]=0,sel[50]=1,sel[51]=1,sel[52]~sel[127]=0,t6位置的正向采样时钟延时值为2500ps,循环执行测试过程中的2、3、4步骤,此时数据正确,该时刻为正向采样时钟沿延时到t7位置;
5、反向采样时钟t7~t9阶段,102处的控制器ctl[0]=1(提供反向采样时钟),caption_count=2(t4~t7为第3个采样时钟),sel[0]=1,sel[1]=1开始轮次改变sel的位数,每改变一次sel的位数,循环执行测试过程中的2、3、4步骤:
sel[0]=1,sel[1]=1,sel[2]~sel[127]=0,t7位置的反向采样时钟延时值为50ps,循环执行测试过程中的2、3、4步骤,此时读取数据正确;
sel[0]~sel[1]=0,sel[2]=1,sel[3]=1,sel[4]~sel[127]=0,t7位置的反向采样时钟延时值为150ps,循环执行测试过程中的2、3、4步骤,此时读取数据正确;
……
sel[0]~sel[5]=0,sel[6]=1,sel[7]=1,sel[8]~sel[127]=0,t7位置的反向采样时钟延时值为300ps,循环执行测试过程中的2、3、4步骤,此时数据正确;
sel[0]~sel[7]=0,sel[8]=1,sel[9]=1,sel[10]~sel[127]=0,t7位置的反向采样时钟延时值为400ps,循环执行测试过程中的2、3、4步骤,此时数据错误,该时刻为反向采样时钟沿延时到t8位置,t8时刻前读到数据是正确的,t8时刻后读到数据是错误的;
……
sel[0]~sel[49]=0,sel[50]=1,sel[51]=1,sel[52]~sel[127]=0,t7位置的反向采样时钟延时值为2500ps,循环执行测试过程中的2、3、4步骤,此时数据错误,该时刻为反向采样时钟沿延时到t9位置;
通过如下计算最佳时钟相位为t5时刻
当t7时刻延时为sel[50]×4,即50级×50ps×4,其中,4为t0~t7之间的4个半周期延时;当t8时刻延时为sel[50]×4+sel[6],即为50级×50ps×4+6级×50,其中,sel[6]为t7~t8之间的延时;
当t2时刻为sel[50]×1,即为50级×50ps×1;
当t3时刻为sel[50]×1+sel[22],即为50级×50ps×1+22级×50,其中,sel[22]为t2~t3之间的延时;
最后t5时刻在102处的控制器ctl[0]=1,caption_count=1(t4~t7为第2个采样时钟),sel[39]=1,sel[40]=1附近。
在本申请实施例中,通过调节小颗粒度的延时单元确定每级延时单元的延时值,以及结合大颗粒度的采用时钟沿的调节,在环境因素影响较大的情况下,可以有效确保采样时钟读取数据的稳定性,进而实现高速读写数据的目的。
上面对本申请实施例中的时钟相位的确定进行了描述,下面结合上述时钟相位的确定,详细描述本申请实施例中的时钟相位的确定装置,参阅图8,图8是本申请实施例提供的一种时钟相位的确定装置结构框图,该装置包括:
第一确定模块801,用于在接收到时钟控制设备输入的目标频率的第一采样时钟信号后,将第一采样时钟信号输入延时线路中,并从延时线路中的N位选择位中任选M个选择位,以确定M个选择位为对应的M级延时单元所提供的第一高电平信号,其中,N位选择位对应有N+1级延时单元,2≤M≤N;
第二确定模块802,用于根据第一采样时钟信号、第一高电平信号以及M级延时单元的M级数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位和每级延时单元的目标延时值;
获取模块803,用于获取延时线路输出的第二采样时钟信号,其中,第二采样时钟信号为延时线路对第一采样时钟信号进行延时所得到的;
执行模块804,用于在第二采样时钟信号中与目标相位所对应的目标半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数,以在每次调整完M个选择位的位数后,在目标半周期的不同相位执行一次数据读取操作,其中,目标相位包括多个相位,目标半周期为多个相位中的任意相邻的两个相位之间的差值;
第一读取模块805,用于在从第一半周期的第一相位处读取到正确数据后,将第一相位所对应的M个选择位的位数记为第一调整位数,其中,在第一相位之前所读取到的数据均为错误数据,以及在第一相位之后且在第一目标相位之前所读取到的数据均为正确数据,在第二采样时钟信号上第一目标相位延时于第一相位,目标相位包括第一目标相位,目标半周期包括第一半周期;
第二读取模块806,用于在从第二半周期的第二相位处读取到错误数据后,并将第二相位所对应的M个选择位的位数记为第二调整位数,其中,在第二相位之后且在第二目标相位之前所读取到的数据均为错误数据,以及在第二相位之前且在第一相位之后所读取到的数据均为正确数据,在第二采样时钟信号上第二相位延时于第一目标相位以及第二目标相位延时于第二相位,目标相位包括第二目标相位,目标半周期包括第二半周期,在第二采样时钟信号上第二半周期延时于第一半周期;
第三确定模块807,用于根据目标延时值和第一调整位数以及第二调整位数确定目标时钟相位。
在一个可选的实施例中,上述第二确定模块802包括:第一获取单元,用于获取M级延时单元根据第一高电平信号对第一采样时钟信号进行延时所得到的第三采样时钟信号;第二获取单元,用于将第一采样时钟信号和第三采样时钟信号输入触发设备中,以获取触发设备输出的触发信号;第一处理单元,用于在获取到触发信号,且确定触发信号包括第一低电平信号和第二低电平信号的情况下,按预设增量持续增大M个选择位的位数,直至触发信号包括目标高电平信号和目标低电平信号;第一确定单元,用于在触发信号包括目标高电平信号和目标低电平信号的情况下,将当前的M个选择位的位数记为目标位数,并确定与目标位数对应的延时单元的目标级数;第二确定单元,用于根据目标级数确定第一采样时钟信号在延时线路中每延时目标半周期的目标相位,以及,根据目标级数和目标频率确定每级延时单元的目标延时值。
在一个可选的实施例中,上述执行模块804包括:第一调整单元,用于在反向采样时钟信号中与第三目标相位所对应的第三半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数,其中,第二采样时钟信号包括反向采样时钟信号,在第二采样时钟信号上第一相位延时于第三目标相位,目标半周期包括第三半周期,在第二采样时钟信号上第一半周期延时于第三半周期;第一执行单元,用于在每次调整完M个选择位的位数后,在第三半周期的不同相位执行一次数据读取操作。
在一个可选的实施例中,上述第一读取模块805包括:第二调整单元,用于在从第三目标相位处读取到错误数据后,在正向采样时钟信号中与第四目标相位所对应的第一半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数,其中,第二采样时钟信号包括正向采样时钟信号,反向采样时钟信号为正向采样时钟信号的反相时钟信号;第二执行单元,用于在每次调整完M个选择位的位数后,在第一半周期的不同相位执行一次数据读取操作;第三调整单元,用于在第一相位处读取到正确数据后,继续调整M个选择位的位数,直至在第一半周期的第四目标相位处读取到正确数据;第二处理单元,用于将第一相位所对应的M个选择位的位数记为第一调整位数。
在一个可选的实施例中,上述第二读取模块806包括:第四调整单元,用于在从第四目标相位处读取到正确数据后,在反向采样时钟信号中与第二目标相位所对应的在第二半周期内,从N位选择位中任选M个选择位,并轮次调整对M个选择位的位数;第三执行单元,用于在每次调整完M个选择位的位数后,在第二半周期的不同相位执行一次数据读取操作;第五调整单元,用于在第二相位处读取到错误数据后,继续调整M个选择位的位数,直至在第二目标相位处读取到错误数据;第三处理单元,用于将第二相位所对应的M个选择位的位数记为第二调整位数。
在一个可选的实施例中,上述第三确定模块807包括:第三确定单元,用于确定第一调整位数所对应的延时单元的第一级数,以及,确定第二调整位数对应的延时单元的第二级数;第四确定单元,用于根据目标延时值和第一级数以及第二级数确定目标时钟相位。
在一个可选的实施例中,上述第四确定单元包括:确定子单元,用于按如下公式确定目标时钟相位a:
a=(b×d-c×d)÷2+c×d
其中,b为第一级数,d为目标延时值,c为第二级数。
本申请还公开一种电子设备,参阅图9,图9是本申请实施例的公开的一种电子设备的结构示意图。该电子设备900可以包括:至少一个处理器901,至少一个网络接口904,用户接口903,存储器905,至少一个通信总线902。
其中,通信总线902用于实现这些组件之间的连接通信。
其中,用户接口903可以包括显示屏(Display)、摄像头(Camera),可选用户接口903还可以包括标准的有线接口、无线接口。
其中,网络接口904可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器901可以包括一个或者多个处理核心。处理器901利用各种接口和线路连接整个电子设备(如服务器)内的各个部分,通过运行或执行存储在存储器905内的指令、程序、代码集或指令集,以及调用存储在存储器905内的数据,执行服务器的各种功能和处理数据。可选的,处理器901可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器901可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器901中,单独通过一块芯片进行实现。
其中,存储器905可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器905包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器905可用于存储指令、程序、代码、代码集或指令集。存储器905可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及的数据等。存储器905可选的还可以是至少一个位于远离前述处理器901的存储装置。参照图9,作为一种计算机存储介质的存储器905中可以包括操作***、网络通信模块、用户接口模块以及一种时钟相位的确定方法的应用程序。
在图9所示的电子设备900中,用户接口903主要用于为用户提供输入的接口,获取用户输入的数据;而处理器901可以用于调用存储器905中存储的一种时钟相位的确定方法的应用程序,当由一个或多个处理器901执行时,使得电子设备900执行如上述实施例中一个或多个所述的方法。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必需的。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (10)

1.一种时钟相位的确定方法,其特征在于,包括:
在接收到时钟控制设备输入的目标频率的第一采样时钟信号后,将所述第一采样时钟信号输入延时线路中,并从所述延时线路中的N位选择位中任选M个选择位,以确定所述M个选择位为对应的M级延时单元所提供的第一高电平信号,其中,所述N位选择位对应有N+1级延时单元,所述延时线路包括所述N位选择位和所述N+1级延时单元,2≤M≤N;
根据所述第一采样时钟信号、所述第一高电平信号以及所述M级延时单元的M级数确定所述第一采样时钟信号在所述延时线路中每延时目标半周期的目标相位和每级所述延时单元的目标延时值;
获取所述延时线路输出的第二采样时钟信号,其中,所述第二采样时钟信号为所述延时线路对所述第一采样时钟信号进行延时所得到的;
在所述第二采样时钟信号中与所述目标相位所对应的所述目标半周期内,从所述N位选择位中任选所述M个选择位,并轮次调整对所述M个选择位的位数,以在每次调整完所述M个选择位的位数后,在所述目标半周期的不同相位执行一次数据读取操作,其中,所述目标相位包括多个相位,所述目标半周期为所述多个相位中的任意相邻的两个相位之间的差值;
在从第一半周期的第一相位处读取到正确数据后,将所述第一相位所对应的所述M个选择位的位数记为第一调整位数,其中,在所述第一相位之前所读取到的数据均为错误数据,以及在所述第一相位之后且在第一目标相位之前所读取到的数据均为正确数据,在所述第二采样时钟信号上所述第一目标相位延时于所述第一相位,所述目标相位包括所述第一目标相位,所述目标半周期包括所述第一半周期;
在从第二半周期的第二相位处读取到错误数据后,并将所述第二相位所对应的所述M个选择位的位数记为第二调整位数,其中,在所述第二相位之后且在第二目标相位之前所读取到的数据均为错误数据,以及在所述第二相位之前且在所述第一相位之后所读取到的数据均为正确数据,在所述第二采样时钟信号上所述第二相位延时于所述第一目标相位以及所述第二目标相位延时于所述第二相位,所述目标相位包括所述第二目标相位,所述目标半周期包括第二半周期,在所述第二采样时钟信号上所述第二半周期延时于所述第一半周期;
根据所述目标延时值和所述第一调整位数以及所述第二调整位数确定目标时钟相位。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一采样时钟信号、所述第一高电平信号以及所述M级延时单元的M级数确定所述第一采样时钟信号在所述延时线路中每延时目标半周期的目标相位和每级延时单元的目标延时值,具体包括:
获取所述M级延时单元根据所述第一高电平信号对所述第一采样时钟信号进行延时所得到的第三采样时钟信号;
将所述第一采样时钟信号和所述第三采样时钟信号输入触发设备中,以获取所述触发设备输出的触发信号;
在获取到所述触发信号,且确定所述触发信号包括第一低电平信号和第二低电平信号的情况下,按预设增量持续增大所述M个选择位的位数,直至所述触发信号包括目标高电平信号和目标低电平信号;
在所述触发信号包括所述目标高电平信号和所述目标低电平信号的情况下,将当前的所述M个选择位的位数记为目标位数,并确定与所述目标位数对应的所述延时单元的目标级数;
根据所述目标级数确定所述第一采样时钟信号在所述延时线路中每延时所述目标半周期的所述目标相位,以及,根据所述目标级数和所述目标频率确定每级所述延时单元的目标延时值。
3.根据权利要求1所述的方法,其特征在于,所述在所述第二采样时钟信号中与所述目标相位所对应的目标半周期内,从所述N位选择位中任选所述M个选择位,并轮次调整对所述M个选择位的位数,以在每次调整完所述M个选择位的位数后,在所述目标半周期的不同相位执行一次数据读取操作,具体包括:
在反向采样时钟信号中与第三目标相位所对应的第三半周期内,从所述N位选择位中任选所述M个选择位,并轮次调整对所述M个选择位的位数,其中,所述第二采样时钟信号包括所述反向采样时钟信号,在所述第二采样时钟信号上所述第一相位延时于所述第三目标相位,所述目标半周期包括所述第三半周期,在所述第二采样时钟信号上所述第一半周期延时于所述第三半周期;
在每次调整完所述M个选择位的位数后,在所述第三半周期的不同相位执行一次数据读取操作。
4.根据权利要求3所述的方法,其特征在于,所述在从第一半周期的第一相位处读取到正确数据后,将所述第一相位所对应的所述M个选择位的位数记为第一调整位数,具体包括:
在从所述第三目标相位处读取到错误数据后,在正向采样时钟信号中与第四目标相位所对应的所述第一半周期内,从所述N位选择位中任选所述M个选择位,并轮次调整对所述M个选择位的位数,其中,所述第二采样时钟信号包括所述正向采样时钟信号,所述反向采样时钟信号为所述正向采样时钟信号的反相时钟信号;
在每次调整完所述M个选择位的位数后,在所述第一半周期的不同相位执行一次数据读取操作;
在所述第一相位处读取到正确数据后,继续调整所述M个选择位的位数,直至在所述第一半周期的所述第四目标相位处读取到正确数据;
将所述第一相位所对应的所述M个选择位的位数记为所述第一调整位数。
5.根据权利要求4所述的方法,其特征在于,所述在从第二半周期的第二相位处读取到错误数据后,并将所述第二相位所对应的所述M个选择位的位数记为第二调整位数,具体包括:在从所述第四目标相位处读取到正确数据后,在所述反向采样时钟信号中与所述第二目标相位所对应的在所述第二半周期内,从所述N位选择位中任选所述M个选择位,并轮次调整对所述M个选择位的位数;
在每次调整完所述M个选择位的位数后,在所述第二半周期的不同相位执行一次数据读取操作;
在所述第二相位处读取到错误数据后,继续调整所述M个选择位的位数,直至在所述第二目标相位处读取到错误数据;
将所述第二相位所对应的所述M个选择位的位数记为所述第二调整位数。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标延时值和所述第一调整位数以及所述第二调整位数确定目标时钟相位,具体包括:
确定所述第一调整位数所对应的所述延时单元的第一级数,以及,确定所述第二调整位数对应的所述延时单元的第二级数;
根据所述目标延时值和所述第一级数以及所述第二级数确定所述目标时钟相位。
7.根据权利要求6所述的方法,其特征在于,所述根据所述目标延时值和所述第一级数以及所述第二级数确定所述目标时钟相位,具体包括:
按如下公式确定所述目标时钟相位a:
a=(b×d-c×d)÷2+c×d
其中,所述b为所述第一级数,所述d为所述目标延时值,所述c为所述第二级数。
8.一种时钟相位的确定装置,其特征在于,包括:
第一确定模块,用于在接收到时钟控制设备输入的目标频率的第一采样时钟信号后,将所述第一采样时钟信号输入延时线路中,并从所述延时线路中的N位选择位中任选M个选择位,以确定所述M个选择位为对应的M级延时单元所提供的第一高电平信号,其中,所述N位选择位对应有N+1级延时单元,2≤M≤N;
第二确定模块,用于根据所述第一采样时钟信号、所述第一高电平信号以及所述M级延时单元的M级数确定所述第一采样时钟信号在所述延时线路中每延时目标半周期的目标相位和每级所述延时单元的目标延时值;
获取模块,用于获取所述延时线路输出的第二采样时钟信号,其中,所述第二采样时钟信号为所述延时线路对所述第一采样时钟信号进行延时所得到的;
执行模块,用于在所述第二采样时钟信号中与所述目标相位所对应的所述目标半周期内,从所述N位选择位中任选所述M个选择位,并轮次调整对所述M个选择位的位数,以在每次调整完所述M个选择位的位数后,在所述目标半周期的不同相位执行一次数据读取操作,其中,所述目标相位包括多个相位,所述目标半周期为所述多个相位中的任意相邻的两个相位之间的差值;
第一读取模块,用于在从第一半周期的第一相位处读取到正确数据后,将所述第一相位所对应的所述M个选择位的位数记为第一调整位数,其中,在所述第一相位之前所读取到的数据均为错误数据,以及在所述第一相位之后且在第一目标相位之前所读取到的数据均为正确数据,在所述第二采样时钟信号上所述第一目标相位延时于所述第一相位,所述目标相位包括所述第一目标相位,所述目标半周期包括所述第一半周期;
第二读取模块,用于在从第二半周期的第二相位处读取到错误数据后,并将所述第二相位所对应的所述M个选择位的位数记为第二调整位数,其中,在所述第二相位之后且在第二目标相位之前所读取到的数据均为错误数据,以及在所述第二相位之前且在所述第一相位之后所读取到的数据均为正确数据,在所述第二采样时钟信号上所述第二相位延时于所述第一目标相位以及所述第二目标相位延时于所述第二相位,所述目标相位包括所述第二目标相位,所述目标半周期包括第二半周期,在所述第二采样时钟信号上所述第二半周期延时于所述第一半周期;
第三确定模块,用于根据所述目标延时值和所述第一调整位数以及所述第二调整位数确定目标时钟相位。
9.一种电子设备,其特征在于,包括:一个或多个处理器和存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-7中任一项所述的方法。
CN202410136446.0A 2024-01-31 2024-01-31 一种时钟相位的确定方法、装置、电子设备及存储介质 Pending CN117971756A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410136446.0A CN117971756A (zh) 2024-01-31 2024-01-31 一种时钟相位的确定方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410136446.0A CN117971756A (zh) 2024-01-31 2024-01-31 一种时钟相位的确定方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117971756A true CN117971756A (zh) 2024-05-03

Family

ID=90845506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410136446.0A Pending CN117971756A (zh) 2024-01-31 2024-01-31 一种时钟相位的确定方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117971756A (zh)

Similar Documents

Publication Publication Date Title
TWI622270B (zh) 用於平衡高速串列數位介面之信道之間的偏斜之方案
JP3856696B2 (ja) 2倍データ速度同期式動的ランダムアクセスメモリのための構成可能同期装置
US7555590B2 (en) Fast buffer pointer across clock domains
US7310396B1 (en) Asynchronous FIFO buffer for synchronizing data transfers between clock domains
CN113615088B (zh) 跨时钟域同步电路以及方法
US8520464B2 (en) Interface circuit and semiconductor device incorporating same
US7107393B1 (en) Systems and method for transferring data asynchronously between clock domains
JPWO2006030904A1 (ja) 半導体装置、及び通信制御方法
US8589717B1 (en) Serial peripheral interface
US6795514B2 (en) Integrated data clock extractor
CN108233906B (zh) 一种基于adc的开机确定性延时***及方法
US6917660B2 (en) Adaptive de-skew clock generation
US6472913B2 (en) Method and apparatus for data sampling
US20050055489A1 (en) Bridge circuit for use in retiming in a semiconductor integrated circuit
JP2003008555A (ja) タイミング信号発生システムおよび受信回路
US8023343B2 (en) Systems and methods for issuing address and data signals to a memory array
JP3593104B2 (ja) クロック切替回路
US6973155B2 (en) Highly scalable glitch-free frequency divider
US20090193285A1 (en) Method for the data transfer between at least two clock domains
CN113491082B (zh) 一种数据处理装置
US7620138B2 (en) Apparatus for receiving parallel data and method thereof
CN117971756A (zh) 一种时钟相位的确定方法、装置、电子设备及存储介质
CN1166109C (zh) 相位差放大器
CN112148655B (zh) 多位数据跨时钟域的处理方法及装置
US20070290732A1 (en) Reset method for digital circuit and related signal generating apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination