一种基于二分法的时钟周期检测方法和电路
技术领域
本发明涉及电路领域,特别涉及一种基于二分法的时钟周期检测方法和电路。
背景技术
目前市场上的时钟周期检测方法采用了硬件逻辑模块和寄存器模块, 硬件逻辑模块和外部相连接,接受外部时钟信号,通过和外部时钟信号对比进行时钟校准。比如公告号为CN103092258B的中国专利,该专利的技术方案是通过外部时钟信号进行对比,用于对时钟信号进行校正,然而,上述现有技术无法对时钟周期进行精准检测,外部时钟信号作为对比信号仍然具有较大的误差。
发明内容
本发明其中一个发明目的在于提供一种基于二分法的时钟周期检测方法和电路,所述方法和电路可以精确地检测时钟信号周期,并采用固定延迟单元精确调整信号延迟。
本发明另一个发明目的在于提供一种基于二分法的时钟周期检测方法和电路,所述方法和电路通过设置延迟模块,所述延迟模块中具有级联设置的固定延迟单元,所述固定延迟单元的级联个数可以根据延迟时钟信号的位宽设置,从而可以精准实现时钟周期的检测。
本发明另一个发明目的在于提供一种基于二分法的时钟周期检测方法和电路采用二分法计算延迟的最小延迟,将最小延迟作为时钟周期,无需外部时钟进行对比,可以降低时钟周期检测的成本。
为了实现至少一个上述发明目的,本发明进一步提供一种基于二分法的时钟周期检测方法,所述方法包括如下步骤:
获取初始时钟信号和使能信号,将所述初始时钟信号输入到延迟模块,获取延迟时钟信号,未延迟时钟信号;
将所述未延迟时钟信号连续两次对所述使能信号进行采样,获取第一采样信号;
将所述延迟时钟信号对所述使能信号进行采样,获取第二采样信号,所述第二采样信号对所述第一采样信号进行采样,获取采样输出信号;
判断所述采样输出信号的电压高低,用于判断延迟时钟信号和未延迟时钟信号的相位差是否大于一个时钟周期;
根据所述采样输出信号的高低采用二分法执行当前延迟时钟信号延迟的增减,直到上一个延迟时钟信号和当前延迟时钟信号的延迟差等于一个固定延迟单元值,并将此时的延迟时钟信号和未延迟时钟信号的延迟差作为时钟周期。
根据本发明其中一个较佳实施例,若所述采样输出信号为高,则判断所述延迟时钟信号和未延迟时钟信号之间延迟大于一个时钟周期,采用二分法减少延迟时钟的延迟量。
根据本发明另一个较佳实施例,若所述采样输出信号为低,则判断所述延迟时钟信号和未延迟时钟信号的之间的延迟小于一个时钟周期,采用二分法增加延迟时钟的延迟量。
根据本发明另一个较佳实施例,所述固定延迟单元值为设置的最小延迟时长。
根据本发明另一个较佳实施例,减少对应延迟时钟的延迟量的方法包括:
获取上一个延迟时钟和当前延迟时钟的第一延迟差;
若所述当前延迟时钟信号和未延迟时钟信号之间延迟差大于一个时钟周期;
则控制所述当前延迟时钟减少二分之一个所述第一延迟差的延迟量,作为下一个延迟时钟的延迟量。
根据本发明另一个较佳实施例,增加延迟时钟的延迟量的方法包括:
计算当前延迟时钟和上一个延迟时钟的第二延迟差;
若当前延迟时钟信号和未延迟时钟信号延迟差小于一个时钟周期;
则控制所述当前延迟时钟增加二分之一个所述第二延迟差的延迟量,作为下一个延迟时钟的延迟量。
根据本发明另一个较佳实施例,将增加延迟量的延迟时钟和对应的未延迟时钟输入到对应的延迟模块中,所述延迟模块获取当前第一延迟差的一半作为下一个延迟时钟的减少的延迟量。
根据本发明另一个较佳实施例,将减少延迟量的延迟时钟和对应的未延迟时钟输入到所述延迟模块中,所述延迟模块获取当前第二延迟差的一半作为下一个延迟时钟的增加的延迟量。
为了实现至少一个上述发明目的,本发明进一步提供一种基于二分法的时钟周期检测电路,所述电路包括:
时钟门控;
延迟模块;
多个采样器,
二分法查找模块;
其中所述时钟门控连接所述延迟模块,通过所述延迟模块生成延迟时钟信号和未延迟时钟信号,所述多个采样器获取包括延迟时钟信号、未延迟时钟信号、使能信号、第一采样信号和第二采样信号,所述二分法查找模块连接采样器,用于获取采样输出信号,根据所述采样输出信号采用二分法对所述延迟时钟信号进行延迟量的减少或增加。
根据本发明其中一个较佳实施例,所述延迟模块包括多个固定延迟单元,并且所述延迟模块的多个固定延迟单元级联设置,根据初始延迟量的位宽设置级数和每级固定延迟单元个数。
附图说明
图1显示的是本发明一种基于二分法的时钟周期检测方法流程示意图。
图2显示的是本发明一种基于二分法的时钟周期检测电路结构示意图。
图3显示的是本发明中延迟模块的结构示意图。
图4显示的是本发明延迟时钟的延迟量少于一个周期的信号示意图。
图5显示的是本发明延迟时钟的延迟量大于一个周期的信号示意图。
其中,
第一采样器-01,第二采样器-02,第三采样器-03,第四采样器-04。
具体实施方式
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
请结合图1-图5,本发明公开了一种基于二分法的时钟周期检测方法和电路,所述方法和电路基于二分法实现,所述方法包括:通过所述时钟门控获取初始时钟信号,所述初始时钟信号输入到所述延迟模块中,通过所述延迟模块生成未延迟时钟信号(gated_clk)和延迟时钟信号(dly_gated_clk),其中所述未延迟时钟信号和初始时钟信号相同,所述延迟模块分别连接第一采样器01,第二采样器02和第三采样器03,其中所述第一采样器01和第二采样器02的一个输入端分别连接所述延迟模块的未延迟时钟信号端口,所述第一采样器另一个输入端连接使能信号(measure_en),所述使能信号处于被拉高状态,即所述使能信号值measure_en=1,所述第二采样器02的另一个输入端连接所述第一采样器的输出端。所述第三采样器03的一个输入端连接所述延迟模块的延迟时钟信号端口,所述第三采样器03的另一个输入端连接所述使能信号(measure_en)。
所述电路包括第四采样器04,所述第四采样器04的一个输入端连接所述第二采样器02的输出端,所述第四采样器04的另一个输入端连接所述第三采样器03的输出端。所述电路包括二分法查找模块,所述二分法查找模块输入端连接所述第四采样器04的输出端,并且所述二分法查找模块的输出端连接所述延迟模块,用于控制未延迟时钟和延迟时钟的增量或减量延迟。
具体的,所述未延迟时钟信号通过所述第一采样器集和第二采样器02连续两次采样所述被拉高的使能信号(measure_en),在所述第二采样器02的输出端输出第一采样信号(measure_en_rr),所述第一采样信号输入到所述第四采样器04。将所述延迟模块输出的延迟时钟信号(dly_gated_clk)输入到所述第三采样器03,由于所述第三采样器03输入端还连接所述使能信号(measure_en),因此通过所述延迟时钟信号(dly_gated_clk)对所述使能信号(measure_en)进行采样,输出第二采样信号(dly_measure_en_r),将所述第二采样信号(dly_measure_en_r)输入到所述第四采样器04,从而采用所述第二采样信号(dly_measure_en_r)对所述第一采样信号(measure_en_rr)进行采样,输出最终的采样输出信号(measure_out),所述采样输出信号(measure_out)输入到所述信号二分法查找模块用于判断未延迟时钟和延迟时钟的延迟量和延迟差,并输出二分法控制信号(dly_sel),采用二分法循环控制所述未延迟时钟和延迟时钟的延迟增量和减量。
进一步的,所述二分法查找模块根据采样输出信号(measure_out)判断所述未延迟时钟信号(gated_clk)和延迟时钟信号(dly_gated_clk)的延迟差,若所述采样输出信号(measure_out)为高值,则可以判断为所述未延迟时钟信号(gated_clk)和延迟时钟信号(dly_gated_clk)的延迟差大于一个时钟周期,则进一步采用二分法对所述延迟时钟信号的延迟量进行减量,所述二分法查找模块中包括寄存器,所述寄存器寄存延迟量,并且寄存器输出的各个位数与延迟模块对应的选择器一一对应,从而使得所述二分法查找模块可以控制所述延迟模块的延迟增量和减量。需要说明的是,所述二分法包括:
获取当前所述未延迟时钟信号(gated_clk)和延迟时钟信号(dly_gated_clk)的延迟差;将该延迟差定义为第三延迟差。若所述第三延迟差大于时钟周期,则控制所述延迟模块对当前的延迟时钟信号(dly_gated_clk)减少延迟量,获取当前延迟时钟和上一个延迟时钟之间的第一延迟差,其中减少的延迟量为所述第一延迟差的一半,并将减少延迟量的延迟时钟信号作为新的延迟时钟信号进行上述采样流程,当前未延迟的时钟信号同样执行上述采样工作。
若所述第三延迟差小于所述时钟周期,此时获取上一个延迟时钟信号和当前延迟时钟信号的延迟差,定义该延迟差为第二延迟差,控制所述延迟模块对当前的延迟时钟信号增加延迟量,其中增加的延迟量为所述第二延迟差的一半,并将增加延迟量的延迟时钟信号作为新的延迟时钟信号进行上述采样流程,并将对应的未延迟时钟信号同时执行上述采样过程。
举例来说:二分法控制信号(dly_sel)的位宽为7位,比如:dly_sel=1000000,则初始延迟量为64,对应的延迟时钟信号的延迟量为64,未延迟时钟的延迟量为0,设所述时钟周期为16.5,采样的延迟结果超过一个时钟周期,则采用二分法获得(0,64)中间延迟量为32,该中间延迟量也是延迟时钟信号的延迟量和未延迟时钟的延迟量的差值的一半,根据上述延迟时钟信号的延迟量和未延迟时钟的延迟量的差值的一半将所述二分法控制信号(dly_sel)值改为0100000,对应的延迟时钟信号的延迟量为32,延迟时钟信号的延迟量大于时钟周期,则进一步将二分法控制信号(dly_sel)值改为32-(64-32)/2=16,此时当前未延迟时钟和延迟时钟信号分别为(0,16),则可判断当前延迟时钟的二分法控制信号(dly_sel)值小于所述时钟周期,则进一步将所述延迟时钟信号的延迟量改值为(32-16)/2+16=24,使得上一个延迟时钟信号和当前延迟时钟信号分别为(16,24),通过采样判断可知当前延迟时钟的延迟量大于所述时钟周期,进一步获减少所述延迟时钟的延迟量至24-(24-16)/2=20,上一个时钟的延迟量和当前时钟的延迟量为(24,20),未延迟时钟为0,通过采样可知当前延迟时钟大于时钟周期,因此进一步获取下一个延迟时钟20-(24-20)/2=18。采样判断当前延迟时钟仍然大于所述时钟周期,因此进一步减少当前延迟时钟的延迟量:18-(20-18)/2=17,由于当前延迟时钟的延迟量17和上一个时钟周期的延迟量之差的一半小于所述固定延迟单元的值,本发明中所述固定延迟单元的值可设定为1,因此无法进一步采用二分法将当前延迟时钟逼近至真实的时钟周期,进一步将当前延迟时钟的延迟量17作为时钟周期输出,其中该输出的时钟周期值也是最终延迟时钟和未延迟时钟的延迟差。该输出时钟周期相对于真实时钟周期的延迟量为17-16.5=0.5,因此该延迟量小于一个固定延迟单元。其中最终输出的当前延迟时钟和未延迟时钟的延迟差可能刚好是一个固定延时单元值,本发明不再对此情况进行二分法切割。
值得一提的是,所述延迟模块是由多个固定延迟单元和对应的选择器组成,且所述延迟模块内的延迟单元是多级的级联结构,并且所延迟模块的级联结构是根据需要的最大延迟量设置的,一般可以根据初始延迟量进行设置,比如:设置最大的延迟量为2n-1个固定延迟单元,第一级的延迟量可以设置为2n-1个固定延迟单元,并且有相应的选择器控制;第二级的延迟量就为2n-2个固定延迟单元,并有相应的选择器控制,以此类推,直到最后一级为1个固定延迟单元。并且相邻级之间串联连接形成所述延迟模块,其中所述选择器可以选择对应的固定延迟单元是否进行延迟操作,所述固定延迟单元为最小的延迟量,由于不同固定延迟单元之间相互串联,因此延迟量会根据固定延迟单元而进行叠加。由于级联设置的延迟模块,并且不同级之间存在2的倍数关系,从而可以使得在对时钟进行延迟时,可以根据级联的延迟模块进行快速的延迟控制。需要说明的是,n是延迟量寄存器的位宽。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明,本发明的目的已经完整并有效地实现,本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。