移位寄存器电路、相位差计算方法及时间数字转换器
技术领域
本发明涉及数字电路技术领域,特别是涉及一种移位寄存器电路、相位差计算方法及时间数字转换器。
背景技术
时间数字转换器(Time-Digital Converter,TDC)主要应用于全数字锁相环(AllDigital Phase-Locked Loop,ADPLL)中。其功能是测量反馈时钟和参考信号之间的相位差,并转换为数字信号输出。
全数字锁相环主要分为窄带和宽带两类。传统的时间数字转换器中,如图1所示,通常采用N个延迟单元级联组成延迟链来对信号进行测量。N个延迟单元一旦完成电路设计就不可改变,时间数字转换器的分辨率Tdel是固定的。
因此,为了覆盖完整的反馈时钟周期Tfb,组成延迟链的延迟单元个数N必须满足下式:如果反馈时钟的频率范围较大(例如宽带的全数字锁相环),那么N必须根据最低输出频率来决定,Tfb的最大值相对较大。而为了保证分辨率,Tdel的最小值也比较小,因此需要的延时单元数量很多,造成功耗和面积的浪费。
为实现时间数字转换器的分辨率的可调整,减少需要使用的延迟单元数量,发明专利“可调节分辨率的TDC及基于该TDC的ADPLL”(公开号:104539288 A)提供了一种可调节分辨率的TDC,使得TDC能覆盖的频率范围扩大。
在实现本发明过程中,发明人发现相关技术存在以下问题:发明专利104539288 A提供的技术方案中使用了可变延迟单元。一方面,可变延迟单元的设计复杂,而且在使用多组可变延时单元的情况下,功耗和电路面积也非常大。另一方面,由于延迟单元的延迟时间受集成电路工艺,温度和电压的影响很大,增加了设计难度,多个延迟单元之间还存在延迟不匹配的问题,导致时间数字转换出现非线性,降低系统的可靠性。
发明内容
本发明实施例主要解决的技术问题是提供一种移位寄存器电路、相位差计算方法及时间数字转换器系统,能够解决现有技术中使用延时单元或者可变延时单元系统可靠性不佳、电路面积和功耗较大的问题。
为解决上述技术问题,本发明实施例提供一种时间数字转换器。其包括:移位寄存器电路,包括移位寄存器,其中,所述移位寄存器被配置为:用于接收第一时钟信号,并根据所述第一时钟信号,以预定的工作速度,在若干个移位寄存器的移位状态中循环转换,所述移位状态由所述移位寄存器的最低位至最高位的输出组成;采样同步电路,包括:用于接收参考信号的待检测信号接收端、用于接收第二时钟信号的分频信号接收端、采样单元以及用于输出采样结果的第一输出端,所述第二时钟信号为第一时钟信号分频后获得的时钟信号,其中,所述采样单元被配置为:使用所述参考信号和第二时钟信号采样所述移位寄存器的移位状态,获取对应的采样结果;以及运算电路,包括:用于接收所述采样结果的采样信号接收端、用于输出相位差的第二输出端以及逻辑计算单元,所述逻辑计算单元被配置为:根据所述采样结果、参考信号及第二时钟信号,计算所述第一时钟信号与参考信号之间的相位差。
可选地,移位寄存器电路还包括一个非门;所述移位寄存器为N位移位寄存器,包括最低位至最高位的N位输出端以及N位输入端,所述最高位输出端通过一个非门耦合至所述最低位输入端;
所述N位移位寄存器被配置为:根据所述第一时钟信号,以所述预定工作速度,依次移动所述N位输出端的输出,以使所述N位移位寄存器在若干个移位状态中循环转换;所述移位状态包括N位输出端的输出为全零的初始状态。
可选地,所述移位寄存器电路还包括逻辑单元;所述逻辑单元与所述N位移位寄存器的至少一位输出端以及所述最低位输入端耦合;
所述逻辑单元被配置为:根据与所述逻辑单元耦合的一位或者多位输出端的输出,反馈对应的信号至所述最低位输入端,以令所述N位移位寄存器从异常状态转换为正常移位状态;所述异常状态为非依次移动所述N位输出端的输出形成的移位状态。
可选地,所述时间数字转换器还包括:由设置在所述N位移位寄存器中,上一位寄存器的输入端与下一位寄存器的输出端之间的缓冲器组成的分频器;所述分频器被配置为:将所述第一时钟信号分频以获得第二时钟信号;所述第一时钟信号和第二时钟信号的分频比为2N。
可选地,所述N位移位寄存器为4位移位寄存器;所述逻辑单元的逻辑功能满足如下逻辑式:
S=(A′B)′·C
其中,S为所述逻辑单元的输出;A、B、C为所述逻辑单元的输入,分别与所述4位移位寄存器的第二位、第三位输出端以及第四位输出端连接的非门的输出端耦合。
可选地,所述采样同步电路包括:时钟信号采样单元,所述时钟信号采样单元被配置为:获取第一编码值以及第二编码值,并且输出第一和第二编码值之差;所述第一编码值为第二时钟信号采样的移位状态对应的编码值,所述第二编码值为参考信号采样的移位状态的对应的编码值;
时钟信号取样单元,所述时钟信号取样单元对所述参考信号进行取样,并输出用以表示参考信号状态的第三编码值。
可选地,所述时钟信号采样单元还包括:编码校正子单元;所述编码校正子单元被配置为:基于查找表的方法,将所述第二时钟信号和参考信号采样的错误的移位状态校正为具有对应编码值的移位状态;所述错误的移位状态为不具有对应编码值的移位状态。
可选地,所述采样同步电路还包括:校正信号采样单元;所述校正信号采样单元被配置为:在第二时钟信号的下降沿对所述参考信号进行采样,并输出用以反映参考信号状态的第四编码值。
可选地,所述逻辑计算单元包括:
粗粒度计算子单元,所述粗粒度计算子单元被配置为:在当前计算周期,每次检测到第二时钟信号的上升沿时,为初始值为0的第一值增加一个所述第一时钟信号与第二时钟信号的分频比;
细粒度计算子单元,所述细粒度计算子单元被配置为:在所述参考信号出现上升沿时,获取所述第一编码值和第二编码值的差值;
并且,通过如下算式计算在当前计算周期,所述第一时钟信号和参考信号之间的相位差:output=cnt+pre_delta-delta
其中,output表示第一时钟信号和参考信号之间的相位差,cnt表示第一值,pre_delta表示上一计算周期的第一编码值和第二编码值的差;delta表示当前计算周期的第一编码值和第二编码值的差;
所述参考信号的相邻两个上升沿之间为一个计算周期。
可选地,所述逻辑计算单元包括:
粗粒度计算子单元,所述粗粒度计算子单元被配置为:在当前计算周期,每次检测到第二时钟信号的上升沿时,为第一值增加一个所述第一时钟信号与第二时钟信号的分频比;
细粒度计算子单元,所述细粒度计算子单元被配置为:在所述参考信号出现上升沿时,获取所述第一编码值和第二编码值的差值;
并且,通过如下算式计算在当前计算周期,所述第一时钟信号和参考信号之间的相位差:output=cnt+pre_delta-delta
其中,output表示第一时钟信号和参考信号之间的相位差,cnt表示第一值,pre_delta表示上一计算周期的第一编码值和第二编码值的差;delta表示当前计算周期的第一编码值和第二编码值的差;
所述参考信号的相邻两个上升沿之间为一个计算周期;
相位差错误校正子单元,所述相位差错误校正子单元被配置为:在所述第四编码值为1时,判断所述第一编码值和第二编码值的差是否大于等于预设的第二值;
当所述第一编码值和第二编码值的差小于第二值时,将所述第一时钟信号和参考信号之间的相位差减去一个分频比;
在所述第四编码值为0时,判断所述第一编码值和第二编码值的差是否小于等于第三值;
当所述第一编码值和第二编码值的差大于第三值时,将所述第一时钟信号和参考信号之间的相位差加上一个分频比;所述第二值和第三值之和为分频比。
为解决上述技术问题,本发明实施例提供一种移位寄存器电路。其包括:用于接收第一时钟信号的控制信号输入端;具有预定工作速度的N位移位寄存器;所述N位移位寄存器包括最低位至最高位的N位输出端以及N位输入端;所述最高位输出端耦合至所述最低位输入端;
所述N位移位寄存器具有若干个由所述最低位至最高位输出端的输出组成的移位状态;所述N位移位寄存器被配置为:根据所述第一时钟信号,以所述预定工作速度,依次移动所述N位输出端的输出,以使所述N位移位寄存器在若干个不同的移位状态中循环转换。
可选地,所述最高位输出端通过一个非门耦合至所述最低位输入端;所述移位状态包括N位输出端的输出为全零的初始状态。
可选地,所述移位寄存器电路还包括:逻辑单元;所述逻辑单元与所述N位移位寄存器的至少一位输出端以及所述最低位输入端耦合;
所述逻辑单元被配置为:根据与所述逻辑单元耦合的一位或者多位输出端的输出,反馈对应的信号至所述最低位输入端,以令所述N位移位寄存器从异常状态转换为正常移位状态;所述异常状态为非依次移动所述N位输出端的输出形成的移位状态。
可选地,所述N位移位寄存器为4位移位寄存器;所述逻辑单元的逻辑功能满足如下逻辑式:S=(A′B)′·C
其中,S为所述逻辑单元的输出;A、B、C为所述逻辑单元的输入,分别与所述4位移位寄存器的第二位、第三位输出端以及第四位输出端连接的非门的输出端耦合。
为解决上述技术问题,本发明实施例提供一种应用上述移位寄存器电路的相位差计算方法。其包括如下步骤:在当前计算周期,每次检测到第二时钟信号的上升沿时,为第一值增加一个第一时钟信号与第二时钟信号的分频比;所述第一值在每个计算周期的初始值为0;
在检测到参考信号的上升沿时,停止为所述第一值叠加分频比并且计算第一编码值与第二编码值的差,所述第一编码值与使用第二时钟信号采样移位寄存器的移位状态对应;所述第二编码值与使用参考信号采样移位寄存器的移位状态对应;
根据如下算式计算当前计算周期的参考信号与第一时钟信号的相位差:output=cnt+pre_delta-delta
其中,output表示第一时钟信号和参考信号之间的相位差,cnt表示第一值,pre_delta表示上一计算周期的第一编码值和第二编码值的差;delta表示当前计算周期的第一编码值和第二编码值的差;
所述参考信号的相邻两个上升沿之间为一个计算周期。
可选地,所述方法还包括:
在第二时钟信号的下降沿对所述参考信号进行采样,并输出用以反映参考信号状态的第四编码值;在所述第四编码值为1时,判断所述第一编码值和第二编码值的差是否大于等于预设的第二值;
当所述第一编码值和第二编码值的差值小于第二值时,将所述第一时钟信号和参考信号之间的相位差减去一个分频比;在所述第四编码值为0时,判断所述第一编码值和第二编码值的差是否小于等于第三值;
当所述第一编码值和第二编码值的差值大于第三值时,将所述第一时钟信号和参考信号之间的相位差加上一个分频比;所述第二值和第三值之和为分频比。
本发明实施例中提供的时间数字转换器,使用移位寄存器替代传统的时间数字转换器中由延迟单元构成的延时链。基于这样移位寄存器设置的时间数字转换器的分辨率与移位寄存器的工作速度相关,可以由输入的第一时钟信号所决定,并且避免了延迟单元受集成电路工艺,温度和电压的影响大的特性,解决了多个延迟单元之间存在延迟不匹配的问题,降低了模拟电路设计的复杂性,提高了系统的可靠性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为典型的基于延时链的时间数字转换器的示意图;
图2为图1所示的时间数字转换器的时序操作示意图;
图3为本发明实施例提供的时间数字转换系统的功能框图;
图4为本发明实施例提供的移位寄存器电路的电路图;
图5为本发明实施例提供的采样同步电路的电路图;
图6为本发明实施例提供的编码校正子单元的采样示意图;
图7为本发明实施例提供的运算电路执行的运算方法的方法流程图;
图8为本发明实施例提供的时间数字转换系统的时序操作示意图;
图9为为本发明实施例提供的采样获取第四编码值的时序图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
时间数字转换器可以对两触发事件间的时间精确测量。在需要进行精确时间控制的系统中,如PLL、DLL、CDR等,时间数字转换器可以将连续时间信号变为数字时间信号。图2为图1所示的典型的时间数字转换器的基本时序操作图。
如图1所示,典型的基于延时链的时间数字转换器由延时单元级联和寄存器构成。在时钟信号S0的上升沿作为触发事件,经过延时链(每个延时单元的延时为Tq),每个延时单元的输出耦合至寄存器的输入D,在上升沿触发寄存器的输入。
在寄存器的时钟信号S1的上升沿对延时单元的输出进行采样,可以获得对应的一组多位的数据,例如图2所示的1111100。这样的多位数据可以表示在触发事件之间,时钟信号S0的上升沿经过延时单元的个数,将上述的状态数据相加即可得到对应的数字输出,用以表示两个时钟信号S0和S1的上升沿之间的时间差Δt1。
因此,延时单元的个数以及延时单元的性能是影响时间数字转换器分辨率和精度的重要因素。基于时间数字转换器的原理,可以使用其它更为可靠的功能模块替代延时链,产生跟随时钟信号S0周期性变化的精确时间单元,用以计算两个时钟信号上升沿之间的时间差并以数字形式输出该时间差。
图3为本发明实施例提供的一种时间数字转换系统。该时间数字转换系统使用移位寄存器替代惯常使用的延时链,可以提供两个触发事件之间的时间差(如两个时钟信号之间的相位差)的精确数字输出。如图3所示,该时间数字转换系统包括:移位寄存器电路100、采样同步电路200以及运算电路300。
其中,该移位寄存器电路100具体可以包括:用于接收第一时钟信号的控制信号输入端以及移位寄存器。
可选地,该移位寄存器电路100还包括一分频器,通过整合在移位寄存器电路100中的分频器,可以向采样同步电路200输出第一时钟信号分频后的第二时钟信号。
该移位寄存器具有跟随输入的第一时钟信号周期性变化的移位状态,在各个移位状态中循环转换,例如在8个移位状态中循环转换。该移位状态是指最低位至最高位输出的各个位的寄存器的输出(0或1)组成的数组。由于移位寄存器跟随第一时钟信号依次的移位,因此,移位状态的转换速度是恒定的,可以通过计算两个移位状态之间的差值,即相差了多少个移位状态,来获得时间差的数字形式的表示,替代原有的延时链的功能。
在本发明实施例提供的时间数字转换系统中,其分辨率取决于移位寄存器的移位状态的转换速度。因此,移位寄存器的工作速度与分辨率挂钩,例如,当移位寄存器的工作速度在2GHz时,其时间数字转换器的分辨率能够达到0.5ns;移位寄存器的工作速度在4GHz时,分辨率能够达到0.25ns。。
所述采样同步电路200可以包括:接收参考信号的待检测信号接收端和接收第二时钟信号的分频信号接收端。所述采样同步电路200可以在任何合适的时刻对移位寄存器电路100的移位状态进行采样,例如在参考信号的上升沿或者第二时钟信号的上升沿等时刻进行采样。
可选地,采样获得的移位状态可以进一步的转换为对应的编码值,例如通过查找表的方法,将移位状态转换为对应的编码值。然后,通过计算编码值的差值来计算两个采样点的移位状态之间间隔了多少个移位状态。
所述采样同步电路200输出采样的结果至运算电路300中。所述运算电路300根据具体输出的采样结果,执行对应的运算功能从而计算所述第一时钟信号与参考信号之间的相位差,该相位差以数字形式表示。
在本实施例中,通过使用移位寄存器代替延时单元,产生精确的时间单元(如移位状态)的方式,经过对应的采样同步电路和运算电路,输出两个触发事件之间的时间差的数字输出(如时间计算单元的个数)。本实施例中,使用移位寄存器的方式可以实现时间数字转换系统的分辨率随第一时钟信号的动态变化,而且由于替代了惯常使用的由若干个延时单元级联组成的延时链,可以避免使用延时单元造成的一系列问题。
在实际使用过程中,可以使用任何合适的,能够实现上述实施例中描述的,能够以恒定的速度在各个移位状态之间循环转换的功能的寄存器电路。图4为本发明实施例提供的,能够实现上述功能的移位寄存器电路。
如图4所示,该移位寄存器电路可以包括:4位移位寄存器110、接收第一时钟信号CLK_dco的控制信号输入端120,连接在相邻两位寄存器之间的缓冲器130。
其中,每位的寄存器可以包括:输入端D、输出端Q、时钟信号接收端Clk。最高位寄存器3的输出端Q通过一个非门140耦合至最低位寄存器0的输入端形成反馈。
设置在各位寄存器之间的缓冲器130组成了分频器,在最高位寄存器3的输出端Q输出第一时钟信号Clk_dco分频后的第二时钟信号Clk_div。基于上述设置的分频器可知,第一时钟信号与第二时钟信号的分频比与移位寄存器的位数相关,分频比D等于2N,N为移位寄存器的位数。
在另一些实施例中,还可以使用其它任何合适的结构的分频器或相类似的功能模块替代实现对第一时钟信号的分频,生成第二时钟信号。
在本实施例提供的如图4所示的移位寄存器电路中,跟随输入的第一时钟信号,4位移位寄存器在8种不同的移位状态(R0-R7)之间转换,具体的移位状态转换过程如移位状态转换表所示:
移位状态转换表:
4位移位寄存器依次在移位状态R0-R7之间依次循环转换,即由R0转换至R1,R2转换至R3直至由R7转换至R0。这样的,通过对4位移位寄存器的最低位至最高位输出端的输出进行采样,即可以获得在该时刻(如第二时钟信号的上升沿)的移位状态。
如上所述,由于移位寄存器的移位状态是在第一时钟信号的控制下,依次移位获得的。因此,移位状态的转换速度是恒定的。这样的,每个移位状态可以作为一个精确的时间单元,可以通过计算两个移位状态之间的差值(即相差了多少个移位状态)来获得两个时钟信号之间相位差的数字形式的表示。
在本实施例中,以4位移位寄存器为例进行陈述,可以理解的是,还可以其它更多或者更少位的移位寄存器实现上述功能,在不同的移位状态中进行循环转换。当然,在使用N位移位寄存器时,随着N的改变,第一时钟信号与第二时钟信号的分频比D以及移位状态的位数会随之变化。
最高位寄存器的输出端Q耦合至最低位寄存器的输入端D,将最高位寄存器的输出(0或1)反馈至最低位寄存器中,以实现类似于循环移位的功能,令移位寄存器的移位状态循环转换。
在本实施例中,如图4所示,使用了一个非门用以实现如移位状态转换表所示的R0-R7的移位状态转换,即最高位的输出为0时(R0至R4),经过非门,反馈至最低位为1;最高位的输出为1时,(R5-R0),经过非门,反馈至最低位为0。在另一些实施例中,还可以设置其它合适的逻辑电路。
在另一些实施例中,若移位寄存器循环转换的状态中不包括全零的状态(即移位状态转换表中的R0),也可以直接将最高位寄存器的输出端耦合至最低位寄存器的输入端,将最高位寄存器输出端的输出反馈至最低位,实现循环移位,例如移位寄存器的移位状态可以按照如下循环移位状态表,在R00至R03之间循环转换。
循环移位状态表:
由于移位状态的采样结果是后续时间差的数字输出的基础。因此,选择便于进行纠错或者较为稳定的移位状态,避免后续的移位状态编码转换等出现错误是更为推荐使用的方案。
在一些实施例中,例如因干扰或者系统状态不稳定时,移位寄存器中的各个位的寄存器输出端会出现错误的输出,出现如下异常移位状态表所示的一些异常状态:
异常移位状态表:
该异常状态是不遵循移位状态转换表中的移位状态R0-R7中的移位状态的移位规则的寄存器状态。即在正常的寄存器移位过程中,不可能获得的寄存器状态。应当说明的是,在如图3所示的移位寄存器电路中,上述异常状态E0-E7之间也会依次进行转换,即E0会转换为E1,E1会转换为E2,在E7时,还会进一步转换为E0。
因此,在发生错误的情况时,移位寄存器将进入到一个异常移位状态的循环转换中。由于这样的异常移位状态无法正常的转换为编码值或者被识别。因此,会导致后续的功能模块无法操作执行,输出对应的时间差的数字形式表示。
在本实施例中,可以设置如图4所示的逻辑单元150,通过逻辑单元150对各个位寄存器的输出执行特定的逻辑功能从而反馈对应的输入至最低位的输入端,将异常状态转换为移位状态转换表中的正常移位状态(如R0)。
具体的,对于4位移位寄存器,所述逻辑单元150可以由一个与门151、一个非门152以及一个与非门153组成。
该逻辑单元150的逻辑功能满足如下逻辑式:
S=(A′B)′·C
其中,S为所述逻辑单元的输出;A、B、C为逻辑单元的输入,分别与所述4位移位寄存器的第二位、第三位输出端以及所述非门的输出耦合,所述逻辑单元的输出S与最低位的寄存器的输入端耦合。
通过设置该逻辑单元150,移位寄存器可以从异常状态E7重新进入到符合正常移位次序的移位状态R0,然后重新在正常的移位状态R0至R7之间循环转换。
本领域技术人员可以理解的是,对于N位移位寄存器,可以基于本发明实施例揭示的异常移位状态的纠错思路,根据实际的需要,例如通过真值表等,设计具有对应逻辑功能的逻辑单元,根据输入反馈合适的信号至N位移位寄存器的最低位,以使N位移位寄存器能够从异常状态转换至正常移位状态。
图5为本发明实施例提供的,与图4所示的移位寄存器电路配合使用的采样同步电路。如图5所示,该采样同步电路200的输入可以包括:接收第二时钟信号Clk_div的控制信号端口IN_1,与移位寄存器电路的各个位寄存器的输出端连接的采样端口IN_2以及接收参考信号Clk_ref的参考信号端口IN_3。
该采样同步电路200的输出可以包括:输出第二时钟信号的控制信号输出端口OUT_1,输出当前计算周期的编码值的差和上一计算周期的编码值的差的取样输出端口OUT_21和OUT_22,输出用于表示参考信号状态的第三编码值的时钟输出端口OUT_3以及输出第四编码值的校正信号输出端口OUT_4。
如图5所示,该采样同步电路200可以包括:时钟信号采样单元210,时钟信号取样单元220以及校正信号采样单元230三个功能模块。输入的数据通过合适的功能模块执行的操作,可以形成相应的输出信号,提供给运算单元使用。
在本实施例中,该时钟信号采样单元210可以包括:第一寄存器组211,第二寄存器组212,第三寄存器组213,第四寄存器组214,同步电路215,第一编码校正子单元216,第二编码校正子单元217。
其中,所述第一至第四寄存器组表示N个寄存器,与移位寄存器电路的N位移位寄存器对应设置,可以容纳采样输入的N比特信号。所述同步电路具体可以采用任何合适类型的同步方法,使用N个寄存器串联采样。
采样后获得的移位状态可以通过编码校正子单元(216或217)转换为对应的编码值。在本实施例中,由于需要分别使用第二时钟信号和参考信号进行采样,获得对应的第一编码值a和第二编码值b。因此,分别使用两组的寄存器组和编码校正子单元分别用于执行第二时钟信号和参考信号的移位状态采样和编码转换。
在本发明实施例提供的第一时钟信号和参考信号的相位差的连续计算过程中,在一个计算周期内,还需要使用上一个计算周期的第一编码值和第二编码值的差。具体可以通过设置寄存器组来存放该数据,并在当前计算周期中,由取样输出端口OUT_22输出。
以下以第一时钟信号的上升沿对移位寄存器的移位状态进行采样和编码转换为例,详细陈述第一编码校正子单元的工作过程。可以理解的是,该采样及编码转换过程也可以应用于参考信号或者其它触发事件对移位状态的采样或者移位状态的编码转换中。
图6为本发明实施例提供的,在第二时钟信号的上升沿Up对寄存器组的4位信号(a至d)进行采样示意图。如图6所示,在第二时钟信号的上升沿Up对信号进行采样的过程中,理想的采样结果为1100。但中间的两位信号b和c的信号变化边沿距离上升沿非常近,有可能因不满足建立时间和保持时间导致出现如下的几种错误的采样结果:1000、1110以及1010。
一方面,1110和1000都属于可能存在的移位状态,进行编码转换后会造成+1或者-1的误差。该错误可以通过后续计算过程中的校正或者其它合适的步骤进行调整。因此,这样的错误采样结果是可以容忍的。
另一方面,1010则是一个不可能由移位寄存器电路通过正常移位获得的移位状态。因此,这样的移位状态将无法被识别或者转换,导致后续计算无法进行。
可选地,通过查找表的方式对1010这样的无法进行识别或者转换的移位状态进行纠错,将其纠正为正常的采样结果并进行编码转换。以上述4位信号为例,可以通过如下表格进行纠错和编码转换:
校正及编码转换表:
在本发明实施例中,提供了对于与图4所示的4位移位寄存器电路的移位状态(R0-R8)的编码转换和采样结果的纠错的对应使用的校正和编码转换表。该校正和编码转换表提供至少如下的几个功能:
1)提供移位寄存器电路通过依次移位形成的各个移位状态对应的编码值(如R0-R7),通过查找表的方法,将采样结果的移位状态转换为对应的编码值输出。
2)对于因各种因素造成的,不可能通过依次移位形成的采样结果提供对应的校正移位状态,从而使其转换为对应的编码值输出。
基于本发明实施例揭露的发明构思,本领域技术人员可以理解的是,可以根据实际使用的N位移位寄存器电路及其循环转换的N比特信息组成的移位状态,可以调整上述校正和编码转换表用以实现本发明实施例提供的编码转换和采样结果纠错功能,保证后续计算过程的顺利进行。在另一些实施例中,还可以根据实际的应用情况,添加或者减省一些额外的功能模块。
请继续参阅图5,所述时钟信号取样单元220可以输出与输入的参考信号状态对应的第三编码值。该第三编码值可以是1比特的数据,用以反映参考信号是否出现上升沿。
如图5所示,该时钟信号取样单元220可以包括:第一寄存器221、第二寄存器222、同步电路223以及一个与门224。在本实施例中,通过该时钟信号取样单元,在参考信号出现上升沿时,第三编码值为1。
如图5所示,所述校正信号采样单元230在第二时钟信号的下降沿对所述参考信号进行采样,并且输出反映参考信号电平变化的采样结果,该结果以第四编码值的数字形式输出。
在本实施例中,如图5所示,所述校正信号采样单元230包括:寄存器、同步电路以及一个非门。该校正信号采样单元230接收第二时钟信号的CLK_div,在第二时钟信号的下降沿对参考信号CLK_ref进行采样,并在校正信号输出端口OUT_4输出第四编码值。该第四编码值用以反映采样时参考信号的状态。在另一些实施例中,该校正信号采样单元230也可以减省,或者使用其它合适的功能模块代替。
运算电路300接收本发明实施例提供的采样同步电路200的端口输出的数据,并据此执行对应的时间数字转换运算过程,输出第一时钟信号和参考信号之间的相位差。
该运算电路300可以采用任何合适的,具有一定逻辑运算能力的分立电子元件组成的电路或者集成芯片,如微处理器或者其它类型的处理核心。该运算电路300还可以与一个或者多个存储有对应的计算机运行程序的存储器耦合,从存储器中调用对应的程序用以执行所述时间数字转换运算过程。应当说明的是,该运算电路300可以通过任何合适的方式与采样同步电路200耦合,获取采样同步电路200的输出数据。
图7为本发明实施例提供的时间数字转换的运算方法的方法流程图。所述运算电路300接收图5所示的采样同步电路输出的如下数据:当前计算周期的第一编码值和第二编码值的差delta,上一计算周期的第一编码值和第二编码值的差pre_delta,第三编码值is_psg以及第四编码值Neg,并执行如图7所示的方法,所述参考信号中相邻的两个上升沿之间为一个计算周期。
如图7所示,在一个计算周期内,该运算方法包括如下步骤:
701:初始化一个第一值Cnt,令第一值Cnt=0。
702:接收第二时钟信号,判断是否出现第二时钟信号的上升沿出现。,
702a:在每个上升沿出现时,为第一值增加一个分频比D。
703:判断第三编码值is_psg是否为1,若是则执行步骤707,若否则重复执行步骤702。
707:根据如下算式计算第一时钟信号和参考信号之间的相位差:
Out=Cnt+pre_delta-delta,其中,Out为相位差的数字输出,Cnt为第一值,pre_delta为上一计算周期的第一编码值和第二编码值的差,delta为当前计算周期的第一编码值和第二编码值的差。
在本实施例中,当图5所示的采样同步电路200输出的第三编码值为1时,表示出现了参考信号的上升沿,若第三编码值为0,则表示当前计算周期的参考信号的上升沿仍未出现。
在一些实施例中,为了进一步的提供更准确的相位差输出,还可以利用第四编码值进行进一步的调整,执行如图7所示的步骤:
704:判断第四编码值是否为1,若第四编码值为1,则执行步骤705,若第四编码值为0,则执行步骤706。
705:判断当前计算周期的第一编码值和第二编码值的差delta是否大于等于预设的第二值,若是则执行步骤709,若否则执行步骤708a。
706:判断当前计算周期的第一编码值和第二编码值的差delta是否小于等于预设的第三值,若是则执行步骤709,若否则执行步骤708b。
该预设的第二值与第三值之和为分频比D。该预设的第二值是一个根据实际情况设置的经验数据,与实际使用的寄存器的建立时间、保持时间以及第一时钟信号的频率等相关。该经验数据的设置可以考虑各种不同类型的影响因素,包括但不限于集成电路工艺、工作温度或者工作电压等。例如,在第一时钟信号的频率为2.5GHz左右,寄存器的建立时间为0.1ns,保持时间为0.5ns时,该第二值可以为2-3。
本领域技术人员可以理解的是,预设的第二值(或者对应的第三值)是用以判断采样同步电路的采样结果(即输出的delta)是否有较大的概率属于出现错误,需要进行调整或者校正。基于上述的发明构思,本领域技术人员根据实际情况的需要,对于该预设的第二值进行调整、变换或者整合的技术方案均属于本发明实施例公开的范围。
708a:根据如下算式计算第一时钟信号和参考信号之间的相位差:
Out=Cnt+pre_delta-delta-D,其中,Out为相位差的数字输出,Cnt为第一值,pre_delta为上一计算周期的第一编码值和第二编码值的差,delta为当前计算周期的第一编码值和第二编码值的差,D为分频比。
708b:根据如下算式计算第一时钟信号和参考信号之间的相位差:
Out=Cnt+pre_delta-delta+D,其中,Out为相位差的数字输出,Cnt为第一值,pre_delta为上一计算周期的第一编码值和第二编码值的差,delta为当前计算周期的第一编码值和第二编码值的差,D为分频比。
图7所示的运算方法是一个连续执行的过程,每个计算周期完毕后,Cnt会重置为0(步骤709),重新进入下一个计算周期的计算。在每个计算周期中,需要利用到上一计算周期的第一编码值和第二编码值的差pre_delta。在本实施例中,其可以通过对应的电路结构设置,由采样同步电路200提供。当然,也可以采用其它合适的方式获取。
在图7所示的时间转换运算方法中,步骤704-706,步骤708a和708b是利用采样同步电路200输出的第四编码值和预设的第二值判断是否出现采样错误以及校正的过程。
在一些实施例中,也可以减省上述判断和校正过程,执行步骤707用以获得相位差的数字形式输出结果。在另一些实施例中,还可以进一步的采用其它合适的方式,实现判断或者校正的功能,校正或者判断过程中需要的数据可以由采样同步电路设置对应的电路功能模块生成,输出至运算电路300中完成。
以下结合图8所示的时序图对上述运算方法进行详细陈述。图8是上述实施例中提供的4位的移位寄存器电路及对应的采样同步电路的信号时序图。
根据图8所示的时序图,可以理解的是:上述运算方法可以大致分为:粗粒度计算和细粒度计算以及判断校正三个部分。在本实施例中,时间数据转换的运算方法的目标为计算第一时钟信号CLK_dco和参考信号CLK_ref之间的相位差。在本实施例中,由于移位状态是跟随第一时钟信号循环转换的。因此,该相位差可以通过参考信号的两个上升沿之间的时间差T1包含的移位状态转换的次数来表示(即数字形式的表示)。
假设在当前计算周期,参考信号的上升沿Up出现在第二时钟信号CLK_div的第四个上升沿和第五个上升沿之间。
本领域技术人员可以理解,对应的步骤701-702的过程属于粗粒度计算过程,当Cnt=4D时,步骤703将根据第三编码值为1而判断参考信号出现上升沿Up,从而停止执行步骤702并执行步骤704从而进行细粒度计算。
如图8所示,在上述情况下,将Cnt加上第一时间T2和减去第二时间T3后,即可获得两个时钟信号之间的相位差T1(T1及T2均采用两个采样点的移位状态的编码值之差a-b这样的数字形式表示)。显然的,根据以上实施例的描述,该第一时间实际上可以用上一计算周期的第一编码值和第二编码值的差pre_delta表示。相对应地,第二时间则可以用当前计算周期的第一编码值和第二编码值的差delta表示。
由此,在不考虑采样错误和校正的情况下,相位差Out可以通过算式:Out=Cnt+pre_delta-delta计算(即步骤707)获得。
而考虑到具体的应用情况,因各种因素导致出现采样错误是更为常见的状态,在另一些实施例中,可以通过步骤704-706、步骤708a和708b的判断和校正步骤,使运算电路具备错误纠正能力。
如上所述,本发明实施例提供的第四编码值用于表示在第二时钟周期的下降沿D时,参考信号的状态。通过第四编码值,可以分别采用相对应的判断准则(即步骤705和706),定性的判断差值delta是否出现了采样错误。具体而言,上述步骤704-706是基于如下的原则判断是否出现了采样错误:
图9为第四编码值两种采样结果的具体示意图。如图9所示,在一个第二时钟信号的周期T内,当第四编码值为1时(即图9所示的S1的情况时),可以表示参考信号的上升沿Up出现在下降沿D之前。
而当第四编码值为0时(即图9所示的S2的情况时),表示参考信号的上升沿Up出现在下降沿D之后。
当采样同步电路200的采样结果(如第一编码值和第二编码值的差值delta)显示参考信号的上升沿Up太接近第二时钟信号的上升沿时,可以认为采样结果出现了明显错误或者具有较大的概率是错误的结果。
通过预设的阈值T4(如第二值),可以实现上述定性判断结果。即当采样结果显示的上升沿Up与下降沿D之间的距离小于等于阈值时,判断为出现错误,否则判断为没有出现错误。
与上述步骤705和706的判断过程相对应地,当判断为出现了采样错误时(即上升沿Up与下降沿D距离在阈值内),则相应的增加或者减去一个分频比D(步骤708a或708b),从而实现对于相位差计算的校正。
基于图8和图9的时序图所揭露的思想,本领域技术人员可以根据实际的使用情况,对具体的相位差时间运算过程进行调整、替换、组合或者减省、增添一个或者多个步骤,例如判断是否出现采样错误,根据采样错误的类型进行校正等,用以输出符合实际使用要求的相位差。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各实施例的运算步骤(如图7所示运算方法),能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所述的计算机软件可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
本发明实施例提供的移位寄存器电路具有恒定的移位状态转换速度。最终输出的数字形式的相位差本质上由两个时钟信号之间的上升沿之间经过了多少个移位寄存器电路的移位状态表示。
一方面,本领域技术人员还可以根据本发明实施例提供的运算方法的计算和校正思路,将该移位寄存器电路作为其它任何合适的两个触发事件之间的时间差的数字输出的基础,经过一个或者多个运算步骤后,输出所需的数据。
另一方面,根据具体使用的运算方法,确定需要输入的数据,如上述实施例提供的第一编码值和第二编码值的差delta、第三编码值is_psg或者第四编码值Neg。本领域技术人员基于需要输入的数据以及移位寄存器电路的输出数据,可以对采样同步电路进行调整、变换或者增加一个或者多个功能电路以实现对应的数据形式转换或者计算过程。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。