一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

时间数字转换器及电路的制作方法

2022-06-29 07:38:09 来源:中国专利 TAG:

时间数字转换器及电路
1.交叉引用本发明基于申请号为202141044473、申请日为2021年9月30日、发明名称为“用于测量多个时钟之间相位差的时间数字转换器tdc结构”的印度临时专利申请以及申请号为17/662,662、申请日为2022年5月10日、发明名称为“用于时间数字转换器的计数器设计”的美国专利申请以及申请号为17/662,667、申请日为2022年5月10日、发明名称为“时间数字转换器及电路”的美国专利申请以及申请号为17/662,669、申请日为2022年5月10日、发明名称为“用于有抖动的输入时钟信号的时间数字转换器”的美国专利申请提出,并要求上述印度临时专利申请和美国专利申请的优先权,上述印度临时专利申请和美国专利申请的全部内容在此以引入方式并入本发明。
技术领域
2.本发明实施例总体上涉及一种时间数字转换器(time-to-digitalconverter,tdc),更具体地涉及一种用于测量周期性输入之间的相位差的tdc。


背景技术:

3.tdc通常用于测量一对事件之间的时间间隔,测量值通常被量化为相应的数字值。该一对事件通常是相应信号对的电压或逻辑电平变化。tdc可用于电子设备,例如锁相环(phase-lockedloop, pll)、计时卡、飞行时间(time-of-flight, tof)测量设备,例如辐射探测器、诊断设备等。
4.该tdc经常接收周期性输入并且需要生成表示相应时刻处的相位差的连续数字值。每个数字值表示两个周期性输入的对应沿(相同方向)之间的时间差,周期信号的示例包括时钟等。
5.本发明的各方面均指向该tdc。


技术实现要素:

6.本发明的目的在于提供一种tdc,用于测量周期性输入之间的相位差。
7.为解决上述技术问题,本发明的实施例提供了一种tdc,包括计数逻辑电路和数字核心。该技术逻辑装置用于分别为作为输入信号接收的第一周期信号和第二周期信号生成第一计数序列和第二计数序列,该第一计数序列表示在发生该第一周期信号的具有第一方向的第一沿序列的时间尺度上的各个时刻,该第二计数序列表示在发生该第二周期信号的具有第一方向的第二沿序列的时间尺度上的各个时刻。该数字核心用于根据该第一计数序列和该第二计数序列生成表示该第一周期信号和该第二周期信号之间的相位差的输出序列。该输出序列的每个输出均是从该第一周期信号和该第二周期信号其中一个周期信号的该第一方向的一对连续沿和在该一对连续沿之间出现的该第一周期信号和该第二周期信号中的另一周期信号中的单个沿产生的,其中该输出被设置为等于具有该一对连续沿的第一值的该单个沿与具有该一对连续沿的第二值的单个沿的差值的最小值。
8.在一些实施例中,该数字核心包括输入分析器块和输出块。该输入分析器块用于接收该第一计数序列和该第二计数序列,其中该输入分析器块确定多个窗口的对应边界,该多个窗口中的每个窗口的该边界指示发生该一对连续沿的各个时刻。该输出块用于接收该多个窗口的该边界并产生该输出序列,该输出块在该多个窗口的每个窗口结束时产生该输出序列的每个输出。
9.在一些实施例中,该输入分析器块包括用于确定该多个窗口的窗口标识符块,其中该输出块包括减法块,正最小值发生器,负最大值发生器和单次数据发生器。该减法块用于在该多个窗口的每个窗口中接收该第一计数序列的第一子集和该第二计数序列的第二子集,该减法块生成该第一子集和该第二子集之间的多个差值。该正最小值发生器用于接收该多个差值并生成正最小值,该正最小值表示该多个差值中包含的所有正值中的最小值。该负最大值发生器用于接收该多个差值并生成负最大值,该负最大值表示该多个差值中包含的所有负值中的最大值。该单次数据发生器用于接收该正最小值和该负最大值,并将该正最小值和该负最大值的绝对最小值作为该每个输出转发。
10.在一些实施例中,该输入分析器块用于从该计数逻辑电路接收主时钟,该输入分析器块进一步包括第一唯一计数发生器和第二唯一计数发生器。该第一唯一计数发生器用于指示该第一计数序列中下一个计数的可用性,该第二唯一计数发生器用于指示该第二计数序列中下一个计数的可用性。该窗口标识符块用于将该多个窗口中的每个窗口确定为时刻之间的间隔,该时刻指示该第一计数序列中的下一个计数和该第二计数序列中的下一个计数两者的可用性。
11.在一些实施例中,该输出块进一步包括累加逻辑电路,用于提供跨越该多个窗口中的多个窗口的该输出的期望数量的运行总和,其中该累加逻辑电路从外部单元接收该期望数量的指示。
12.在一些实施例中,该累加逻辑电路接收该正最小值和该负最大值中的每一个相应的序列,以将该相应序列中的每一个中的值相加,并且生成两者的绝对最小值作为该运行总和的附加值,其中,每个该相应序列的长度小于或等于该期望数量。
13.在一些实施例中,该第一周期信号和该第二周期信号在第一持续时间内具有相同的频率。
14.在一些实施例中,在第二持续时间内,该第一周期信号的频率是该第二周期信号的频率的n倍,其中n大于或等于2,该一对连续沿属于该第二周期信号,且该单个沿属于该第一周期信号。该第一周期信号的相应多个时钟周期存在于该一对连续沿之间,该单个沿是该多个时钟周期中在时间上更接近该一对连续沿中的最早或最后一个沿。
15.在一些实施例中,具有该第一方向的该沿对应于该第一周期信号和该第二周期信号的上升沿。
16.本发明的实施例还提供了一种电路,包括时间数字转换器和处理块。其中,该时间数字转换器用于生成一个输出序列,该处理块用于处理所述输出序列,该时间数字转换器为根据上述任一项所述的时间数字转换器。
17.在一些实施例中,该电路是锁相环,并且该处理块用于最小化由该输出序列表示该第一周期信号和该第二周期信号之间的任何相位差。
附图说明
18.本发明的示例实施例将结合以下简要描述的附图进行描述。
19.图1a为可以实现本发明的若干方面的示例设备的框图。
20.图1b为本发明实施例中一对输入时钟的相位差的时序图。
21.图1c为本发明实施例中实现的tdc中包含的在多于一对周期性输入上同时运行的数字核心的框图。
22.图2为本发明实施例中实现的计算单元的框图。
23.图3a为本发明的实施例中实现的输入分析器块的框图。
24.图3b为本发明的实施例中实现的输出发生器块的框图。
25.图4为本发明实施例中用于生成每个相位差值的唯一计数发生器和窗口标识符块的实现细节的框图。
26.图5为本发明实施例中为具有相同频率的一对输入时钟生成唯一计数信号和窗口标识符信号的方式的时序图。
27.图6为在本发明实施例中为具有大于1的整数相关倍数的频率的一对输入时钟生成唯一计数信号和窗口标识符信号的方式的时序图。
28.图7为本发明实施例中处理计数值翻转的方式的时序图。
29.图8a为在发明实施例中tdc对于具有相同频率的一对输入时钟的运行的时序图。
30.图8b为本发明实施例中tdc对具有与整数相关的频率的一对输入时钟的运行的时序图。
31.图9为本发明实施例中累加相位差样本的方式的时序图。
32.图10为本发明实施例中,在tdc的单次连续模式中产生相位差的方式的时序图。
33.图11为本发明实施例中结合根据本发明的若干方面实现的设备的系统的框图。
34.在上述附图中,相似的附图标记通常表示相同的、功能相似的和/或结构相似的元件。元素首次出现的图由相应附图标记中最左边的数字表示。
具体实施方式
35.1.概述根据本发明的一方面提供的tdc包括计数逻辑电路和数字核心。该计数逻辑电路分别为作为输入信号接收的第一周期信号和第二周期信号产生第一计数序列和第二计数序列。该第一计数序列表示在发生该第一周期信号的具有第一方向的第一沿序列的时间尺度上的各个时刻,并且该第二计数序列表示在发生该第二周期信号的具有第一方向的第二沿序列的时间尺度上的各个时刻。
36.数字核心,根据该第一计数序列和该第二计数序列生成表示该第一周期信号和该第二周期信号之间的相位差的输出序列。该输出序列的每个输出均是从该第一周期信号和该第二周期信号其中一个周期信号的该第一方向的一对连续沿和在该一对连续沿之间出现的该第一周期信号和该第二周期信号中的另一周期信号中的单个沿产生的,其中该输出被设置为等于具有该一对连续沿的第一值的该单个沿与具有该一对连续沿的第二值的单个沿的差值的最小值。
37.通过将每个输出设置为这样的最小差值,该tdc特别适用于寻求快速获得稳定状
态的环境。
38.根据本发明一个方面,该tdc被设计成在该第一周期信号和该第二周期信号具有相同频率的持续时间以及该第一周期信号的频率为该第二周期信号的频率的n倍的持续时间中以该第一周期信号和该第二周期信号运行,其中n大于等于2(整数关系)。
39.当存在这种整数关系时,上述一对连续沿属于第二周期信号,而单个沿属于第一周期信号。第一周期信号的多个时钟周期存在于这对连续沿之间,其中单个时钟周期是多个时钟周期的最早或最后一个沿,其在时间上更接近于上述一对连续沿中的任一个。
40.下面参考示例来描述本发明的几个方面以用于说明。然而,相关领域的技术人员将认识到,可以在没有一个或多个具体细节的情况下或使用其他方法、组件、材料等来实践本发明。在其他情况下,未详细示出众所周知的结构、材料或运行以避免模糊本发明的特征。此外,所描述的特征/方面可以以各种组合来实践,尽管为了简明起见这里仅描述了一些组合。
41.2.示例设备图1a为可以实现本发明的若干方面的示例设备的框图。tdc100被设置为包含计数逻辑电路105和数字核心110。该tdc 100示为连接以接收在路径101-1上的输入时钟信号clk_in_1和在路径101-2上的输入时钟信号clk_in_2,以及在路径103上的测量时钟clk_meas。该输入时钟信号clk_in_1和该输入时钟信号clk_in_2表示使用该tdc 100寻求测量(确定)相位差的周期性输入。该“相位差”是指两个周期信号之间的相位角差。该周期信号可以具有相同的频率或具有大于1的整数倍的频率。表示相位差的输出数字值在输出路径115(单次数据)上按顺序设置。
42.该计数逻辑电路105在内部包含用于该输入时钟信号clk_in_1和该输入时钟信号clk_in_2中每一个的计数器。该计数逻辑电路105被连接以接收该输入时钟信号clk_in_1和该输入时钟信号clk_in_2。该信号clk_meas表示施加到计数逻辑电路105中的计数器的测量时钟。在本发明实施例中,每个计数器均被设计为在该信号clk_meas的每个周期(例如,在每个上升沿)增加一个计数。然而,在替代实施例中,可以采用用于计数的其他约定,例如对于该信号clk_meas的每个时钟周期将计数器递减1或某个其他固定值,这对于本领域熟练的技术人员来说是显而易见的。该信号clk_meas的频率至少部分地或基本上确定了可以产生两个事件之间的时间差(例如,输入时钟的上升沿)的分辨率。
43.计数逻辑电路105用于分别为该输入时钟信号clk_in_1和该输入时钟信号clk_in_2在路径104-1上生成count_1和在路径104-2上生成count_2。该信号count_1和count_2中的每个计数序列代表相应输入时钟的预定方向(上升或下降)的沿出现的相同时间尺度上的各个时刻。术语“相同时间尺度”意味着每个计数代表从共同开始时间开始的相应相对持续时间。例如,每个输入时钟的计数器在同一时间(例如,在复位时)以相同的频率开始计数(例如,从零开始)。该计数逻辑电路105可以以已知方式实现。在本发明实施例中,由该计数逻辑电路105中的该计数器产生的计数是36位宽的,并且该计数器的时间分辨率是62.5皮秒(ps)。
44.该数字核心110连接以接收该信号count_1和该信号count_2,并产生表示该输入时钟信号clk_in_1和该输入时钟信号clk_in_2之间相位差的输出数字值。该输出数字值在该路径115上按顺序设置。
45.当阐述该tdc测量一对周期性输入的相位差的方式时,本发明的若干特征将被更好地理解和领会。因此,接下来参考图1b简要描述该tdc测量相位差的方式。
46.3.测量一对周期性输入之间的相位差图1b为本发明实施例中tdc测量具有相同频率但相位差未知的一对周期性输入之间的相位差的方式的时序图。在图1b中,描述相位差的波形未按比例绘制,仅用于说明相位差。在图1b中,对应于路径101-1和101-2的波形分别表示要测量相位差的该输入时钟信号clk_in_1和该输入时钟信号clk_in_2。
47.该信号clk_in_1的上升沿被设置为发生在时刻t10、t12、t14和t16,而该信号clk_in_2的上升沿被设置为发生在时刻t11,t13、t15和t18。该信号clk_in_1 (101-1)的时间段被描述为t1(两个连续上升沿之间的时间间隔)。
48.由于该数字核心110接收对应于该输入时钟信号clk_in_1和该输入时钟信号clk_in_2的上升沿的计数序列,因此该数字核心110将在该输入时钟信号clk_in_1和该输入时钟信号clk_in_2的时钟沿之间产生两个可能的差值,即pmin(例如表示较小的时间间隔t10-t11)和pmax(例如表示较大的时间间隔t11-t12)。
49.根据本发明的一个方面,设置pmin(而不是pmax),即两个差值中的较小者,作为(正确的)相位差。通过设置pmin作为相位差,除了可以减少抖动输出之外,依赖于相位差处理的电路(例如,pll)可以更快地达到稳定状态。
50.根据本发明的另一方面,该数字核心110计算pmin和pmax,然后将pmin和pmax两者中的较小者识别为一对输入时钟之间的相位差。这种方法避免了了解输入时钟的确切频率的需要,除此之外可用于单独根据pmax确定pmin(或单独根据pmin确定pmax)。
51.虽然图1b示出的时序图说明了识别具有相同频率的一对周期性输入 (输入时钟)的沿之间的最小时间差的需要,但对于本领域熟练技术人员来说,同样的问题会出现对于频率是大于1的整数倍数的一对输入时钟。在这种情况下,两个时钟中较慢的一个会在一对连续沿(相同方向,即上升或下降)之间会有一组超过2个可能的时间差,其中最小的差值需要被识别为(正确的)相位差。本发明的各个方面也适用于这样的一对输入。
52.此外,虽然图1b示出的时序图说明了该信号clk_in_2被设置为在相位上滞后于该信号clk_in_1的情形,但是对于本领域熟练的技术人员来说,显然该信号clk_in_2可能领先于该信号clk_in_1,在这种情况下也会出现同样的问题。
53.上述tdc 100被指出为仅在一对周期性输入上运行。但是,该tdc可以实现同时在一对以上的周期性输入上运行。在这种情况下,可以并行测量多个相位差(在相应的输入时钟对之间),并由该tdc作为相应的输出提供。因此,下面简要介绍本发明实施例中这种tdc中包含的数字核心的实现细节。
54.4.在多输入时钟上运行的 tdc 的数字核心图1c为在本发明实施例中根据本发明的若干方面实现的tdc的数字核心的框图。该数字核心110被设置为连接以接收在路径104-1上的计数信号count_1到在路径104-n上的计数信号count_n(n在一个实施例中等于10)、在路径107上的信号clk_dig_tdc和路径159上的信号pair_sel。
55.如上所述清楚的是,可以在任何一对或多对输入时钟信号之间测量相位差。在累积模式的情况下,在输出路径165-1中的数据accum_valid_data和路径165-3中的数据
running_acc_data的组合上按顺序提供输出数字值,在单次模式的情况下在路径115上按顺序提供,其中路径115上为数据single_shot_data,详细描述如下。
56.在本发明的实施例中,路径104-1到104-n上的各个计数信号的计数值是36位宽,并且该数字核心110中的各个块被设计为具有内部路径和块(例如,寄存器),其宽度为可以处理计数的位宽。
57.该信号clk_dig_tdc在该计数逻辑电路105内部生成,并作为主时钟提供给该数字核心110的相应组件。如下文所述,在本发明的实施例中,该信号clk_dig_tdc的频率比该输入时钟信号clk_in_1到clk_in_n所允许的最大频率高至少两倍。该数字核心110的所有顺序块被设计为基于单个主时钟信号clk_dig_tdc同步运行。信号clk_dig_tdc_sel由该数字核心110生成,并由该计数逻辑电路105(未示出)接收。该信号clk_dig_tdc_sel用于为数字核心选择该信号clk_dig_tdc的频率。
58.参考图1c,该数字核心110被设置为包含寄存器块109、多路复用器(multiplexer,mux)125-1至125-2p、计算单元150-1至150-p和输出mux160。输入时钟的组合具有n个输入时钟信号,最多可能为(n*(n-1)/2)对。因此,p可以是具有从2到(n*(n-1)/2)的整数值范围的整数。因此,例如,当n等于10时,该tdc 100可以使用相应数量的计算单元150并行测量2到45个相位差。在一个实施例中,p等于10并且特定的期望对由适当的多路复用器选择指定输入,如下所述。
59.图1c的特定块和互连仅作为示例示出。在本发明的其他实施例中可以使用更多或更少的块。从上下文可以清楚地看出,输入计数(计数值),多路复用器、选择信号和计算单元分别由104、125、120和150共同或单独地指代。
60.寄存器块109接收信号count_1至count_n并将其存储在各个内部寄存器中,并以存储的时序生成该信号count_1至count_n的由该信号clk_dig_tdc 107控制的p个副本。该寄存器块109根据该信号clk_dig_tdc将该信号count_1的p个副本转发到该信号count_n作为各自的输出。
61.该mux 125-1到125-2p中的每一个都是n:1多路复用器,接收输入计数信号count_1到count_n,以及通过路径120-2p-1上的信号sel_pa,和路径120-2p上的选择信号sel_pb相应的选择信号,120-1路径上的sel_1a、和路径120-2上的sel_1b。因此,mux 125中的每一个基于选择信号120的逻辑值在路径128-1到128-2p上转发n个计数中的一个作为各自的输出(mux输出/选择的计数)。选择信号sel_1a到sel_pb可以由用户(通过未示出的相应装置)设置以指示一对计数-1到计数-n用作相应计算单元150的输入时钟。
62.例如,mux 125-1可以基于选择信号sel_1a的逻辑值将路径128-1上的count_1到count_n之一转发到路径150-1上的计算单元1,并且mux 125-2可基于选择信号sel_1b(120-2)的逻辑值,将路径128-2上的count_1到count_n中的一个计数转发到路径150-1上的计算单元1。因此,可以将对应的计数对作为输入提供给每个计算单元150,用于确定对应输入之间的相位差。
63.每个计算单元150接收对应的一对计数作为输入,并基于该tdc 100的运行模式生成相应的输出。因此,计算单元150-1被设置为生成输出以下数据,路径155-1-1上的accum_valid_data_1,路径155-1-2上的data_valid_1、路径155-1-3上的running_acc_data_1、路径155-1-4上的running_nsample_1和路径155-1-5上的single_shot_data_1。而计算单元
150-p被设置为生成在路径155-1-p上输出accum_valid_data_p、在路上155-p-2上的data_valid_p、在路径155-p-3上的running_acc_data_p、在路径155-p-4上的running_nsample_p和在路径155-p-5上的single_shot_data_p。其中,该数据single_shot_data_1到single_shot_data_p中的每一个都向计算单元提供了对应的输入时钟对之间的相位差的对应序列,并且在只有一对输入时钟的情况下对应于该数据single_shot_data,如图1a所示。尽管在图1c中未示出,每个计算单元150-1到150-p接收信号clk_dig_tdc用于其运行。每个计算单元的其他输出将通过下面描述tdc 100的各种运行模式更加清楚。
64.mux160接收来自各个计算单元150的输出和路径159-1上的选择信号pair_sel。其中,该信号pair_sel可由用户设置(通过未示出的相应装置)以指示其输出可作为tdc 100的输出提供的计算单元150-1至150-p之一。以下输出的数据,在路口155-1上的accum_valid_data、在路径155-2上的data_valid、在路径155-3上的running_acc_data、在路径155-4上的running_nsample和路径115上的single_shot_data因此分别对应于基于pair_sel选择的计算单元150的输出。该pair_sel(159)可以循环遍历p值,以使得每个计算单元的输出能够作为tdc 100的输出基本上并行地提供。上述各种运行模式描述如下。
65.在一个实施例中,tdc 100被设计成以以下模式运行:1.累加器模式,该输入时钟信号clk_in_1到clk_in_n具有相同的频率;2.累加器模式,该输入时钟信号clk_in_1到clk_in_n的频率整数倍上相关;3.连续单拍模式;4.一次性单拍模式。
66.在模式(1)和(2)中,该计算单元150对周期性输入(例如该信号clk_in_1 到clk_in_n)进行运行,并且接收(通过未示出的相应装置从用户接收)指示要累积的相位差样本的数量的预定值。在这两种模式中,该tdc 100在路径155-1、155-2、155-3和155-4上生成输出数据accum_valid_data、data_valid、running_acc_data、running_nsample。在每个预定数量的样本采样结束时,该计算单元150使数据data_valid生效并提供路径155-1上的累积相位差值,即数据accum_valid_data。在累加每个相位差样本结束时,该计算单元150提供迄今为止在路径155-3上累加的相位差值,即running_acc_data。数据running_nsample表示数据running_acc_data中累积的样本数。累加值的平均值(总累加值除以累加样本的数量)可以由该tdc 100外部的组件确定。
67.在模式(3)中,该计算单元150对周期性输入(例如该信号clk_in_1至clk_in_n)进行运行,并在每对周期性输入之间产生相位差(不累积相位差)在模式1和2中进行采样),并提供路径115上的相位差序列,即数据single_shot_data。
68.在模式(4)中,该计算单元150对脉冲输入进行运行,生成脉冲之间的一次性相位差,并在路径115上提供相位差,即数据single_shot_data。
69.图1c中的计算单元(例如,150-1)在功能上等同于图1a的仅两个输入方案的数字核心110。
70.接下来将详细描述图1a的数字核心110确定输入时钟信号clk_in_1和该输入时钟信号clk_in_2之间的相位差的方式。
71.5.数字核心图2为本发明实施例中数字核心110的实施细节的框图。该数字核心110被设置为
包含输入分析器块250和输出发生器块290。
72.该输入分析器块250被设置为接收路径128-1上的输入信号count_1_1、路径128-2上的信号count_1_2和路径107上的信号clk_dig_tdc。该输入分析器块250在路径232上产生信号window_identifier、在路径242-1产上产生信号count1_sub和在路径242上产生信号count2_sub-2。该输入分析器块250在对应输入时钟的每个上升沿接收该信号count_1_1和count_1_2。该输入分析器块250可以存储该信号count_1_1和count_1_2的计数值,并另外执行操作,例如处理生成该信号count_1_1和count_1_2的计数器的翻转。详细描述如下,在没有此类附加操作的情况下,该信号count1_sub和该信号count2_sub在功能上分别等效于该信号count_1_1和该信号count_1_2。
73.该输入分析器250,在其他操作中,当两个时钟具有相同频率时,或当两个时钟具有大于1的整数倍的频率时的较慢时钟,操作以确定对应于(或由其定义)两个输入时钟信号clk_in_1和该输入时钟信号clk_in_2中任一个的一对连续边的窗口(各个时刻)的边界。该输入分析器250使用信号window_identifier指示窗口的边界(左沿和右沿),下面会详细介绍。
74.尽管将继续描述输入时钟的上升沿,但是本发明的各个方面同样适用于输入时钟的下降沿,这对于本领域熟练的技术人员来说,通过阅读本文的内容将是显而易见的。
75.该输出发生器块290被设置为在路径232上接收信号window_identifier、在路径242-1上接收信号count1_sub、在路径242-2上接收信号count2_sub和在路径107上接收信号clk_dig_tdc。该输出发生器块290在路径115上,在window_identifer定义的每个窗口的结尾生成相位差序列,即single_shot_data。除非两个输入时钟之间的相位差发生变化,否则序列中的相位差可能都基本相等。
76.接下来详细描述由数字核心110(或一般的计算单元150)的输入分析器块250和输出发生器块290在确定一对输入时钟之间的相位差时执行的操作的细节。
77.6.输入分析模块图3a为本发明实施例中的输入分析器块的实施细节的框图。该输入分析器块250被设置为包含count_1_q-发生器305-1、count_2_q-发生器305-2、unique_1-发生器310-1、unique_2-发生器310-2、rollover 1-发生器315-1、rollover 2-发生器315-2、窗口标识符块320和翻转块325。图3a的特定块和互连仅作为示例示出。在本发明的其他实施例中可以使用更多或更少的块。在本发明的实施例中,count_1_q-发生器305-1、count_2_q-发生器305-2、unique_1-发生器310-1、unique_2-发生器310-2、rollover 1-发生器315-1、rollover 2-发生器315-2使用时序逻辑来实现,而窗口标识符块320和翻转块325是使用组合逻辑实现的。然而,通过阅读本文的公开内容,对于本领域熟练的技术人员将显而易见,可以不同地实施这些块。输入分析器块250的顺序块由该信号clk_dig_tdc计时。
78.如上所述,该信号clk_dig_tdc的频率大于该输入时钟信号clk_in_1和该输入时钟信号clk_in_2的频率,并且该信号count_1_1和该信号count_1_2的值在各个时钟的每个上升沿被接收。因此,该信号count_1_1和count_1_2的值可以在该信号clk_dig_tdc的两个或更多个周期内保持不变。因此,可以检查该信号count_1_1和count_1_2各自值的变化以确定该输入时钟信号clk_in_1和该输入时钟信号clk_in_2之间的相位差。块count_1_q-发生器305-1、count_2_q-发生器305-2、unique_1-发生器310-1、unique_2-发生器310-2和窗
口标识符块320运行以实现上述功能。
79.该块count_1_q-发生器305-1上在路径128-1上接收信号count_1_1并在路径306-1上生成信号count1_q。在一个实施例中,该count1_q-发生器305-1被实现为正沿触发触发器。该块count1_q-发生器305-1由信号clk_dig_tdc计时。路径306-1上的信号count_1_q表示该信号count_1_1的延时版本。因此,该信号count_1_1在输出到路径306-1之前被延迟该信号clk_dig_tdc的一个时钟周期。
80.该块count_2_q-发生器305-2在路径128-2上接收信号count_1_2并在路径306-2上生成信号count2_q。在一个实施例中,该块count2_q-发生器305-2被实现为正沿触发触发器。该count2_q-发生器305-2由该信号clk_dig_tdc计时。路径306-2上的信号count_2_q表示该信号count_1_2 的延时版本。因此,信号count_1_2在输出到路径306-2之前被延迟该信号clk_dig_tdc的一个时钟周期。
81.该块unique_1-发生器310-1接收信号count_1_1、count1_q和window_identifier,并在路径311-1上生成信号unique_count1_q。从图3a可以看出,该块unique_1-发生器310-1和窗口标识符块320的运行依赖于彼此的输出,如下所述。通常,该块unique_1-发生器是二进制信号,其指示在由窗口标识符块320标识的窗口的边界处是否有新的计数可用。在本发明的实施例中,该块unique_1-发生器310-1被实现为一个时序块,由该信号clk_dig_tdc提供时钟,并实现以下逻辑:当该信号count_1_1的值等于该信号count1_q的值,并且该信号window_identifier为逻辑高电平时,该块unique_1-发生器310-1在路径311-1上生成逻辑低电平,并且当该信号count_1_1的值不等于该信号count1_q的值时,生成逻辑高电平。换言之,该块unique_1-发生器310-1运行以确定该信号count_1_1的计数值已经从其在该信号clk_dig_tdc之前的时钟周期中的值经历了变化(指示出现该信号clk_in_1的上升沿),并且还额外考虑了该信号window_identifier的值。
82.该块unique_2-发生器310-2接收count_1_2、count2_q和window_identifier,并在路径311-2上生成信号unique_count2_q。从图3a可以看出,该块unique_2-发生器310-2和窗口标识符块320(如下所述)的运行依赖于彼此的输出。通常,该信号unique_count2_q是二进制信号,其指示在由窗口标识符块320标识的窗口的边界处是否有新的计数可用。在本发明的实施例中,该块unique_2-发生器310-2被实现为一个时序块,由该信号clk_dig_tdc提供时钟,并实现以下逻辑:当该信号count_1_2的值等于该信号count2_q的值,并且该信号window_identifier为逻辑高电平时,该块unique_2-发生器310-2在路径311-2上生成逻辑低电平。并且,当该信号count_1_2的值不等于该信号count2_q的值时,该块unique_2-发生器310-2在路径311-2上生成逻辑高电平。换言之,该块unique_2-发生器310-2运行以确定该信号count_1_2的计数值已经从其在该信号clk_dig_tdc (107)之前的时钟周期中的值经历了变化(指示出现该信号clk_in_2的上升沿),并且还额外考虑了该信号window_identifier的值。
83.该数字核心110接收表示该输入时钟信号(clk_in_1和该输入时钟信号clk_in_2)的对应沿的连续计数流。该数字核心110根据一个输入时钟(例如,clk_in_1)的一对连续沿(相同方向,上升/下降)和其他输入时钟(例如,clk_in_2)的单个沿生成输出序列(如上所
述)中的每个输出。因此,数字核心110需要识别相应的一对连续沿以生成每个输出。在输入分析器块250中实现的窗口标识符块320执行这样的运行。
84.该窗口标识符块320运行以识别上面提到的窗口边界。即,当两个输入时钟的频率是大于一的整数倍时,该窗口标识符块320运行以识别较慢输入时钟的相同方向(上升或下降)的一对连续沿出现的时刻,或者当两个输入时钟的频率相等时,两个输入时钟中的任何一个的相同方向(上升或下降)的一对连续沿。时刻之间的持续时间在本文中被称为窗口。每个窗口可能具有需要检查的相应差值流,以便在每个窗口结束时生成输出(表示该输入时钟信号clk_in_1和该输入时钟信号clk_in_2之间的相位差)。
85.窗口标识符块320接收该信号unique_count1_q和unique_count2_q,并在路径232上生成信号window_identifier。当该信号unique_countl_q和unique_count2_q为逻辑高电平时,该窗口标识符块320生成一个逻辑高电平,否则,生成一个逻辑低电平。一对连续的逻辑高电平表示上述窗口边界,详细描述如下。
86.该块rollover 1-发生器315-1接收信号count_1_1、count1_q、window_identifier并在路径316-1上生成信号rollover_1。在本发明的实施例中,该块rollover 1-发生器315-1被实现为由该信号clk_dig_tdc计时的顺序块。当该信号count_1_1的计数值超过计数器的满量程值(即发生翻转)时,该块rollover 1-发生器315-1在路径316-1上生成逻辑高电平。如相关技术中公知的,当计数器的值达到其满量程值并且计数器从零开始计数时,成为翻转发生。例如,对于10位计数器,当计数值达到1024时,就会发生翻转。
87.该块rollover 2-发生器315-2接收信号count_1_2、count2_q、window_identifier并在路径316-2上生成信号rollover_2。在本发明的实施例中,该块rollover 2-发生器315-2被实现为由该信号clk_dig_tdc计时的顺序块。当该信号count_1_2的计数值超过计数器的满量程值(翻转)时,该块rollover2-发生器315-2在路径316-2上生成逻辑高电平。
88.翻转块325接收信号count_1_1、count_1_2、rollover_1和rollover_2,并生成信号count1_sub和count2_sub。在本发明的实施例中,该翻转块325被实现为组合块。该翻转块325运行以确保在任一输入计数翻转的情况下将输入计数的相应正确值转发到输出发生器块290。下面结合图7详细描述翻转处理的细节。
89.接下来提供本发明实施例中的输出发生器块290的实施细节。
90.7.输出发生器块图3b为本发明实施例中的输出发生器块的实施细节的框图。该输出发生器块290被设置为包含减法单元330、正最小值发生器335、负最大值发生器345、多样本计数器344、正值累积器340、负值累积器350、单次数据发生器 355、运行累加器数据发生器365和累加器有效数据发生器375。
91.图3b的具体块和互连仅作为示例示出。在本发明的其他实施例中可以使用更多或更少的块。在本发明的实施例中,正最小值发生器335、负最大值发生器345、多样本计数器344、正值累积器340、负值累积器350、单次数据发生器355和累加器有效数据发生器375被设置为是连续的,而减法单元330和运行累加器数据发生器365被设置为是组合的。输出single_shot_data (155-1-5)对应于图1a的single_shot_data 115。其他输出,即数据running_acc_data、running_nsample、data_valid和accum_valid_data由块365和375额外
生成,它们在计算单元150中额外实现以启用模式1和2中的运行,如下所述。
92.输出发生器块290接收信号window_identifier、count1_sub和count2_sub。在一个实施例中,信号window_identifier、count1_sub和count2_sub被缓冲在一个样本深度到使数字核心110能够满足电路时序要求。在一个实施例中,流水线延迟级是使用寄存器来实现的,并且信号被延迟/缓冲该信号clk_dig_tdc的一个时钟周期。
93.减法单元330接收路径242-1上的count1_sub和路径242-2上的count2_sub。减法单元330在路径333上生成信号running_count_diff。在本发明实施例中,减法单元330被实现为有符号减法块。因此,该减法单元330生成该信号count1_sub和count2_sub之间的有符号差。该信号running_count_diff表示窗口内输入时钟的沿或沿对、该输入时钟信号clk_in_1和该输入时钟信号clk_in_2之间的时间差流。
94.该正最小值发生器335运行以确定由该减法单元330在由该窗口标识符块320识别的每个窗口中生成的一组差值,即信号running_count_diff之中/之间,即,在两个输入时钟中较慢的时钟的一对连续正(上升)沿之间的最小正值。该正最小值发生器335接收路径333上的running_count_diff和路径232上的window_identifier,并在路径336上生成信号pos_min。在本发明实施例中,该正最小值发生器335被实现为由该信号clk_dig_tdc计时的顺序块,并按照以下逻辑运行。
95.即,如果该信号window_identifier为逻辑高电平并且该信号running_count_diff的值为零或正值,则将该信号pos_min的值记录为该信号running_count_diff的值。否则,如果该信号window_identifier为逻辑高电平并且该信号running_count_diff的值为非零且为负值,则将该信号pos_min的值记录为满量程正值。换句话说,如果该信号count_1_1和count_1_2的值分别由p位组成,则满量程正值为 (2
p
–1)。否则,如果该信号running_count_diff的值是正值并且小于该信号pos_min的值,则将该信号pos_min的值更新为该信号running_count_diff的值。因此,该正最小值发生器335运行以确定两个连续window_identifier信号脉冲之间的该信号running_count_diff的最小正值。
96.该负最大值发生器345运行以确定在减法单元330在由窗口标识符块320标识的每个窗口中产生,即,在两个输入时钟中较慢的时钟的一对连续正(上升)沿之间产生的一组差值之中/之间的最大负值,即信号running_count_diff。该负最大值发生器345在路径333上接收该信号running_count_diff和在路径232上接收该信号window_identifier,并在路径346上生成信号neg_max。在本发明实施例中,该负最大值发生器345被实现为由该信号clk_dig_tdc计时的顺序块,并按照以下逻辑进行运行。
97.即,如果该信号window_identifier为逻辑高电平且该信号running_count_diff的值为零或负值,则该信号neg_max的值记录为该信号running_count_diff的值。另外,如果该信号window_identifier为逻辑高电平并且该信号running_count_diff(333)的值非零且为正值,则将该信号neg_max的值记录为满量程负值。换句话说,如果该信号count_1_1和count_1_2分别由p位组成,则满量程负值为-(2
p
–1)。否则,如果该信号running_count_diff的值是负值并且大于该信号neg_max的值,则将该信号neg_max的值更新为该信号running_count_diff的值。因此,该负最大值发生器345运行以确定两个window_identifier信号脉冲之间的该信号running_count_diff的最大负值。
98.该多样本计数器344接收该信号pos_min和neg_max,并在路径347上生成信号
nsample_done。在一个实施例中,该多样本计数器344在每个窗口结束时递增计数器的值,并且在当计数器值等于作为用户输入提供的相位差样本的预定数量时,使该信号nsample_done生效。
99.该正累加器340在路径336上接收该信号pos_min、在路径232上接收该信号window_identifier、在路径347上接收该信号nsample_done,并在路径342上生成信号acc_pos_q。正累加器340累加(相加)接收到的该信号pos_min的值。
100.该负累加器350在路径346上接收该信号neg_max,在路径232上接收该信号window_identifier,在路径347上接收该信号nsample_done,并在路径352上生成信号acc_neg_q。该负累加器350累加(相加)接收到的该信号neg_max的值。
101.在上述模式(1)和(2)中,该信号acc_pos_q和acc_neg_q由运行累积器数据发生器365和累积器有效数据发生器375检查以确定输出数据,running_acc_data和accum_valid_data。正值累积器340、负值累积器350、运行累加器数据发生器365和累加器有效数据发生器375一起包括累加逻辑电路,其可运行以在tdc 100的累加运行模式中产生对应的输出。
102.该单次数据发生器355在路径336上接收该信号pos_min、在路径346上接收该信号neg_max和在路径333上接收该信号running_count_diff,并在路径155-1-5上生成信号single_shot_data。在本发明的实施例中,该单次数据发生器355被实现为由该信号clk_dig_tdc计时的顺序块。在连续单次运行模式中,该单次数据发生器355确定该信号pos_min和neg_max的绝对最小值并将其提供在路径155-1-5上。在一次性单次模式中,该单次数据发生器355在路径155-1-5上转发该信号running_count_diff。
103.该运行累积器数据发生器365接收该信号acc_pos_q和该信号acc_neg_q,并在路径155-1-3上生成该信号running_acc_data和在路径155-1-4上生成该信号running_nsample。该运行累积器数据发生器365确定该信号acc_pos_q和acc_neg_q的绝对最小值,并将其设置在路径155-1-3上。该信号running_nsample表示该信号running_acc_data中累积的样本数。
104.该累积器有效数据发生器375接收该信号acc_pos_q、acc_neg_q和nsample_done,并在路径155-1-2上生成信号data_valid和在路径155-1-1上生成信号accum_valid_data。在每个预定数量的样本(由信号nsample_done表示)采样结束时,累积器有效数据发生器375使该信号data_valid生效,并将该信号acc_pos_q和acc_neg_q设置在路径155-1-1上。
105.下面提供本发明实施例中该块unique_1-发生器305-1和unique_2-发生器305-2的实现细节。
106.8.唯一计数发生器图4为本发明实施例中的唯一计数发生器的实现细节的框图。图4被设置为包含块count1_q发生器305-1、unique_1-发生器310-1、count2_q发生器305-2、unique_2-发生器310-2和窗口标识符块320。该unique_1-发生器310-1又被设置为包含逻辑块405-1、mux407-1、409-1、411-1、413-1、触发器415-2、反相器420-1和与门418-1。该块unique_2-发生器310-2依次被设置为包含逻辑块405-2、mux 407-2、409-2、411-2、413-2、触发器415-2、反相器420-2和与门418-2。图4的具体块和互连仅作为示例示出。在本发明的其他实施例中可以使用更多或更少的块。
107.该逻辑块405-1接收该信号count_1_1和count1_q并生成信号unique_count1。在
一个实施例中,如果该信号count_1_1和count1_q的值不相等,则逻辑块405-1在路径401-1上生成逻辑高电平,否则生成逻辑低电平。因此,逻辑块405-1实现了逻辑:unique_count1 = (count_1 != count1_q)。
108.mux 407-1在路径403-1上接收逻辑高电平和该信号unique_count1_q,并基于逻辑值将路径408-1上的逻辑高电平和该信号unique_count1_q之一作为输出(mux选择的输出)转发选择信号unique_count1。因此,当该信号unique_count1_q为逻辑高电平时,该mux 407-1在路径408-1上转发路径403-1中的逻辑高电平。当该信号unique_count1_q为逻辑低电平时,该mux 407-1在路径408-1上转发该信号unique_count1_q。
109.mux 409-1在路径404-1上接收逻辑低电平并在路径408-1上接收mux 407-1的输出,并在路径410-1上转发该逻辑低电平和mux的输出408-1之一作为输出(mux选择输出)基于路径419-1中选择信号的逻辑值。因此,当路径419-1上的值为逻辑高电平时,mux 407-1在路径410-1上转发逻辑低电平(404-1),当路径419-1上的值为逻辑低电平时,mux 409-1在路径410-1上转发路径408-1中的值。
110.mux 411-1在路径406-1上接收逻辑低电平并在路径410-1上接收mux 409-1的输出,并在路径412-1上转发逻辑低电平和mux的输出410-1之一作为输出(mux选择输出)基于路径417上的选择信号special_case_re的逻辑值。该信号special_case_re用于指示在稳态下具有零相位差的输入时钟中的抖动。因此,当该信号special_case_re为逻辑高电平时,mux 411-1在路径412-1上转发路径406-1上的逻辑低电平。当该信号special_case_re为逻辑低电平时,mux 411-1在路径412-1上转发路径410-1中的值。
111.mux 413-1在路径416-1上接收逻辑低电平并在路径412-1上接收mux 411-1的输出,并在路径414-1上转发逻辑低电平和mux的输出412-1之一作为输出(mux 选择输出)基于路径419上的选择信号rstn_i的逻辑值。该信号rstn_i表示芯片复位或上电复位。因此,当该信号rstn_i为逻辑高电平时,mux 413-1在路径414-1上转发路径416-1上的逻辑低电平。当该信号rstn_i为逻辑低电平时,mux 413-1在路径414-1上转发路径412-1中的值。
112.触发器415-1由该信号clk_dig_tdc计时。该触发器415-1在其输入处接收路径414-1上的输入信号并在路径311-1上生成输出信号unique_count1_q。在一个实施例中,该触发器415-1被实现为正沿触发触发器。
113.该与门418-2接收路径421-1上的反相器420-1的输出和路径232上的信号window_identifier,并生成路径419-1上的与运算结果。
114.窗口标识符块320接收该信号unique_count1_q和unique_count2_q,并在路径232上生成信号window_identifier。在本发明的实施例中,窗口标识符块320被实现为与门。因此,窗口标识符块320实现以下逻辑:window_identifier=(unique_count1_q && unique_count2_q)。在说明性实施例中,该信号window_identifier在该信号clk_dig_tdc的一个时钟周期之后被取消生效。因此,该信号window_identifier的脉冲宽度等于该信号clk_dig_tdc的一个时钟周期,该信号window_identifier信号的频率等于两个选定输入时钟信号(clk_in_1和该输入时钟信号clk_in_2)频率中较慢的一个信号的频率(在频率整数倍相关的时钟的情况下)。
115.块405-1、407-1、409-1、411-1和413-1一起实现以下逻辑:if (window_identifier && !unique_count1)
unique_count1_q = 0else if (unique_count1)unique_count1_q = 1上面的表达式(window_identifier && !unique_count1)包含运算符&&和!分别代表与运算符和非运算符。因此,当该信号window_identifier的值为逻辑高电平且该信号unique_count1的值为逻辑低电平时,表达式(window_identifier && !unique_count1)将被评估为1,否则为0。
116.块405-2、420-2、418-2、407-2、409-2、411-2、413-2和415-2将以分别类似于块405-1、420-1、418-1、407-1、409-1、411-1、413-1和415-1的方式运行,为简洁起见在此不再赘述。
117.下面用示例波形来说明唯一计数发生器和窗口标识符块运行以确定窗口的方式。
118.9.为具有相同频率的一对输入时钟生成unique-count信号和window_identifier信号图5为本发明实施例中为具有相同频率的一对输入时钟生成(路径410、311中的)唯一计数信号和信号window_identifier(232)的方式的时序图(未按比例)。图5显示了该信号clk_dig_tdc、clk_in_1、count_1_1、count1_q、unique_count1、unique_count1_q、clk_in_2、count_1_2、count2_q、unique_count2、unique_count2_q和window_identifier的示例波形。在该说明性实施例中,对应于输入时钟信号(clk_in_1和该输入时钟信号clk_in_2)的计数被假定为36位宽。图5所示的clk_in_1和该输入时钟信号clk_in_2之间的具体计数值和相位差未按比例绘制,仅用于说明生成唯一计数值和window_identifier信号的方式。数据波形(count_1_1, count1_q、count_1_2、count2_q、running_count_diff、pos_min、neg_max、acc_pos_q、acc_neg_q中“x”的值指示出于该说明目的的“无关”值。
119.在t510时刻接收的(count_1_1信号的)值289对应于该信号clk_in_1的上升沿re11出现时间的数字表示,而值310(在t512时刻接收到的信号count_1_2)的值对应于该信号clk_in_2的上升沿re21出现时间的数字表示。由相应输入时钟信号clk_in_1和该输入时钟信号clk_in_2采样的计数器(在计数逻辑电路105中,未示出)在输入时钟信号clk_in_1和该输入时钟信号clk_in_2的相应上升沿提供相应的计数值count_1_1和count_1_2。如上所述,对应于每对输入时钟信号的计数器是同步的,即从相同的初始值(例如零)开始计数并以相同的速率递增。因此,计数器代表相同时间尺度上的时刻。
120.对应于该信号clk_in_1的上升沿的计数被设置为在时刻t510、t518和t526时刻接收到。因此,该信号count_1_1被设置为在t510-t518之间具有值289,在t518-t526之间具有值373,在t526-t532之间具有值457。该信号count1_q是信号count_1的值,但被count1_q发生器305-1延迟了该信号clk_dig_tdc的一个时钟周期。因此,虽然该信号count_1从t510时刻开始具有值289,但该信号count1_q被设置为从t512时刻(在clk_dig_tdc的一个周期之后)开始具有值289。因此,该信号count1_q被设置为在t512-t520之间具有值289,在t520-t528之间具有值373,在t528-t532之间具有值457。
121.当该信号count_1_1的值不等于该信号count1_q的值时,使信号unique_count1生效。换言之,当该信号clk_in_1的计数与其在前一个时钟周期该信号clk_dig_tdc中的值相比发生变化时,该信号unique_count1被设置为逻辑高电平。因此,当该信号count_1_1的值
不等于该信号count1_q时,unique_count1 (401-1)被设置为仅在时间间隔t510-t512,t518-t520和t526-t528生效。
122.如上所述,unique_count1_q (311-1)基于以下逻辑确定:if (window_identifier && !unique_count1)unique_count1_q = 0else if (unique_count1)unique_count1_q = 1
ꢀ……………
(逻辑1.1)基于在当前时刻之前一个时钟周期的该信号window_identifier和该信号unique_count1的值来评估上述逻辑。因此,在t512时刻,考虑评估的该信号window_identifier的值是逻辑低电平(时间间隔t510-t512中的值),考虑评估的该信号unique_count1的值是逻辑高电平。因此,该块unique_1-发生器310-1评估逻辑1.1并将该信号unique_count1_q从t512时刻开始设置为逻辑高电平。
123.对应于该信号clk_in_2的上升沿的计数被设置为在时刻t512、t520和t528接收到。因此,该信号count_1_2被设置为在t512-t520之间具有值310,在t520-t528之间具有值394,在t528-t532之间具有值478。该信号count2_q是该信号count_2的值,但被count_2_q-发生器305-2将其延迟了该信号clk_dig_tdc的一个时钟周期。因此,虽然该信号count_1_2从t512时刻开始具有值310,但该信号count2_q被设置为从t514时刻(在该信号clk_dig_tdc的一个周期之后)开始具有值310。因此,该信号count2_q被设置为在t514-t522之间具有值310、在t522-t530之间具有值394和在t530-t532之间具有值478。
124.当该信号count_1_2的值不等于该信号count2_q的值时,该信号unique_count2被生效。换言之,当该信号clk_in_2的计数与其在该信号clk_dig_tdc之前的时钟周期中的值发生变化时,该信号unique_count2被设置为逻辑高电平。因此,当该信号count_1_2的值不等于该信号count2_q时,该信号unique_count1被设置为仅在时间间隔t512-t514,t520-t522和t528-t530生效。
125.如上文关于图4所述,该信号unique_count2_q基于以下逻辑确定:if (window_identifier && !unique_count2)unique_count2_q = 0elseif(unique_count2)unique_count2_q = 1
ꢀ…………
(逻辑1.2)如上面关于该信号unique_count1_q所指出的,上述逻辑是基于在当前时刻之前一个时钟周期的该信号window_identifier和unique_count2的值来评估的。因此,在t512时刻,考虑评估的该信号window_identifier的值是逻辑低电平(时间间隔t510-t512中的值),考虑评估的该信号unique_count2的值是逻辑低电平。因此,该块unique_2-发生器310-2评估逻辑1.2,并且该信号unique_count2_q从t512时刻开始保持在逻辑低电平。
126.类似地,在t514时刻,对于逻辑1.2的评估,该信号window_identifier的值是逻辑低电平并且该信号unique_count2的值是逻辑高电平。因此,该块unique_2-发生器310-2评估上述逻辑1.2并且从t514时刻开始将该信号unique_count2_q设置为逻辑高电平。
127.当该信号unique_count2_q在t514时刻被设置为逻辑高电平时,因为该信号unique_count1_q和unique_count2_q都处于逻辑高电平,该信号window_identifier也被
设置为逻辑高电平。如上所述,该信号window_identifier在t516时刻,即在该信号clk_dig_tdc的一个时钟周期之后,被取消生效。
128.在t516时刻,对于该信号unique_countl_q的确定,该信号window_identifier的值是逻辑高电平,并且该信号unique_count1的值是逻辑低电平。因此,该信号unique_count1_q从t516时刻开始设置为逻辑低电平。
129.在t516时刻,对于该信号unique_count2_q的确定,该信号window_identifier的值是逻辑高电平,并且该信号unique_count2的值是逻辑低电平。因此,该信号unique_count2_q从t516时刻开始设置为逻辑低电平。
130.该信号unique_count1_q、unique_count2_q和window_identifier的值以类似的方式针对各个时刻生成,直到t532时刻,如图5所示。
131.因此,该信号window_identifier被设置为识别窗口的边界,每个窗口对应于输入时钟的一对连续沿(在图5中为clk_in_1)。
132.具有整数相关倍数的频率的一对输入时钟(路径410、311上的)生成唯一计数信号和信号window_identifier的方式描述如下。
133.10.为具有整数相关频率的一对输入时钟生成唯一计数信号和window_identifier信号图6是为本发明实施例中,一对具有整数相关倍数的频率的输入时钟生成唯一计数信号(路径410、311)和信号window_identifier的方式的时序图(未按比例)。换句话说,一个输入时钟(例如clk_in_1)的频率是另一个输入时钟(例如clk_in_2)的频率的m倍,其中m是大于等于2的整数。
134.在图6中,m被设置为8。因此,该信号clk_in_1的频率是该信号clk_in_2的频率的8倍。因此,该信号clk_in_1的8个上升沿(e11到e18)被设置为存在于该信号clk_in_2的2个连续上升沿(e21、e22)之间。
135.图6示出了该信号clk_dig_tdc、clk_in_1、count_1_1、count1_q、unique_count1、unique_count1_q、clk_in_2、count_1_2、count2_q、unique_count2、unique_count2_q和window_identifier的示例波形。在该说明性实施例中,对应于输入时钟信号(clk_in_1和该输入时钟信号clk_in_2)的计数被假设为36位。
136.这里要注意,输入时钟的上升沿相对于该测量时钟信号clk_meas不同步,或者在计数逻辑电路105或该信号clk_dig_tdc中使用。因此,该信号clk_dig_tdc的最多3个周期的不确定性可能存在于上升沿的出现和相应计数的到达之间。例如,对应于该信号clk_in_1的上升沿e11的该信号count_1_1被设置为在t610接收到,略晚于上升沿的实际出现时刻。
137.对应于该信号clk_in_1的上升沿的计数被设置为在时刻t610、t616、t618、t620、t622、t624、t626、t628和t630接收。因此,该信号count_1_1被设置为在t610-t616之间具有值297、在t616-t618之间具有值381、在t618-t620之间具有值465、在t620-t622之间具有值549、在t622-t624之间具有值633、在t624-t626之间具有值717、在t626-t628之间具有值801、在t628-t630之间具有值885和在t630-t636之间具有值969。该信号count1_q是count_1_1的值,但被count1_q发生器305-1延迟了该信号clk_dig_tdc的一个时钟周期。因此,虽然该信号count_1_1从t610时刻开始具有值297,但该信号count1_q被设置为从t612时刻(该信号clk_dig_tdc的一个周期之后)开始具有值297。因此,该信号count1_q的每个值被
设置为相对于图6中的该信号count_1_1的相应值延迟了一个该信号clk_dig_tdc的周期。
138.当该信号count_1_1的值不等于该信号count1_q的值时,使信号unique_count1生效。在时间间隔t610-t612中,该信号count_1_1的值为297,而该信号count1_q的值为214,因此该信号unique_count1被设置为在时间间隔t610-t612内生效。当该信号count_1_1的对应值在该时间间隔内不等于该信号count1_q的值时,该信号unique_count1的每个相应值在该时间间隔内被设置为逻辑高电平。
139.在t610时刻之前,该信号unique_count1_q被设置为具有逻辑高电平。根据上述逻辑1.1确定unique_count1_q。逻辑1.1基于当前时刻前一个时钟周期的该信号window_identifier和unique_count1的值进行评估。因此,在t612时刻,考虑评估的该信号window_identifier的值是逻辑低电平(时间间隔t610-t612中的值),考虑评估的unique_count1的值是逻辑高电平。因此,unique_1-发生器310-1评估上述逻辑并在t612时刻继续将使该信号unique_count1_q保持在逻辑高电平。
140.在t614时刻,对于该信号unique_count1_q的确定,该信号window_identifier的值是逻辑高电平并且unique_count1的值是逻辑低电平。因此,unique_1-发生器310-1评估上述逻辑并从t614时刻开始取消该信号unique_count1_q的生效。
141.当该信号count_1_2的值不等于该信号count1_q的值时,使信号unique_count2生效。因此,该信号unique_count2被设置为仅在时间间隔t610-t612和t630-t632中被生效。
142.该信号unique_count2_q 的确定可以以类似于该信号unique_count1_q 的方式来完成。因此,该信号unique_count2_q被设置为在时间间隔t612-t614内(当考虑评估的window_identifier的值为逻辑低电平,考虑评估的该信号unique_count2的值为逻辑高电平时)被生效。类似地,该信号unique_count2_q也在时间间隔t632-t634中被生效。
143.在t612时刻,当该信号unique_count2_q被设置为逻辑高电平时,因为该信号unique_count1_q和unique_count2_q都处于逻辑高电平,window_identifier也进入逻辑高电平。如上所述,该信号window_identifier在t614时刻,即在该信号clk_dig_tdc的一个时钟周期之后被取消生效。类似地,该信号window_identifier在时间间隔t632-t634内再次被生效。
144.频率为整数相关倍数的一对输入时钟的相位差是较慢时钟的沿出现与较快时钟的最近沿之间的时间。因此,该信号window_identifier脉冲被设置为在图6中的该信号clk_in_2(较慢时钟)的上升沿出现时生成,从而识别窗口的边界以在每个窗口结束时生成相应的输出.在确定输入之间的相位差时考虑计数值的翻转。如相关领域中众所周知的,计数器具有有限的宽度并且可以计数只能达到由计数器宽度确定的某个最大值(称为满量程值)。当计数器的值达到其满量程值时,就会发生翻转事件。在这之后,计数器复位并再次从零开始计数。
145.如果对应于输入时钟的计数器之一已经翻转而另一个计数器没有翻转,这可能导致减法单元330中的计算错误。为了防止这样的错误,翻转事件需要被处理。翻转事件由rollover 1-发生器315-1、rollover 2-发生器315-2和翻转块325处理。
146.接下来参考图7描述在本发明的实施例中处理翻转的方式。
147.11.翻转的处理
图7为在本发明实施例中处理计数值翻转的方式的时序图。具体来说,该图包含该信号clk_in_1、count_1_1、count1_q、rollover_1、count1_sub, clk_in_2, count_1_2、count2_q、rollover_2、count2_sub、running_count_diff和window_identifier的波形。其中,clk_in_1,count_1_1、count1_q、clk_in_2、count_1_2和count2_q的波形分别对应图5和图6中的相同内容,此处为了简洁起见不再赘述。
148.为了便于理解,图7描绘了在本发明实施例中用于10位计数器的示例翻转处理。因此,当计数值达到1024时,就发生了翻转事件。虽然描述是针对10位计数器提供的,但是在其他实施例中可以使用具有其他宽度的计数器,这对于本领域熟练的技术人员来说,通过阅读本文是显而易见的。
149.在一个实施例中,当对应于该信号clk_in_1的计数值的最高有效位(most significant bit, msb)从前一个该信号clk_dig_tdc(未示出)中的值为1变化为在当前时钟周期中的值0,rollover1-发生器315-1确定翻转已经发生了。该rollover1-发生器315-1通过比较该信号count_1_1和count1_q的msb值来执行该确定。rollover2-发生器315-2将以类似于rollover1-发生器315-1的方式运行,以便确定对应于该信号clk_in_2的计数值是否发生了翻转。
150.在本发明的实施例中,翻转块325实现以下逻辑来处理翻转事件:if (rollover_1 == 0 && rollover_2 == 0)count1_sub = count1_qcount2_sub = count2_qelse if (rollover_1 == 0 && rollover_2 == 1)count1_sub = count1_qcount2_sub = count2_q (2^10
ꢀ‑
1)elseif (rollover_1 == 1 && rollover_2 == 0)count1_sub = count1_q (2^10
ꢀ‑
1)count2_sub = count2_qelse if (rollover_1 == 1 &&rollover_2 == 1)count1_sub = count1_qcount2_sub = count2_q
ꢀ……………
(逻辑2)当rollover_1和rollver_2都具有逻辑低电平时,表达式(rollover_1 == 0 && rollover_2 == 0)将评估为“1”,否则将评估为“0”。当rollover_1的值为逻辑低电平且rollver_2的值为逻辑高电平时,表达式(rollover_1 == 0 && rollover_2 == 1)将评估为“1”,否则评估为“0”。当rollover_1的值为逻辑高电平且rollver_2的值为逻辑低电平时,表达式(rollover_1 == 1 && rollover_2 == 0)将评估为“1”,否则将评估为“0”。当rollover_1和rollver_2的值为逻辑高电平时,表达式(rollover_1 == 1 && rollover_2 == 1)将评估为“1”,否则将评估为“0”。
151.参考图7,就在t713时刻之前,该信号count1_q和count_1_1均被设置为具有值895,而该信号count2_q和count_1_2均被设置为具有值960。因此,rollover_1 (316-1)和rollover_2 (316-2)处于逻辑低电平。翻转块325将评估逻辑2并确定应将该信号count1_sub的值设置为等于count1_q的值并且应将该信号count2_sub的值设置为等于count2_q的
值。因此,该减法单元330执行减法(895减960),并且该信号running_count_diff被设置为在时间间隔t713-t716中具有值
“‑
65”。
152.就在t719时刻之前,该信号count2_q被设置为具有值960,而该信号count_1_2被设置为具有值37。两个计数的二进制等效项如下所示:960:111100000037: 0000100101因此,该信号count_1_2的msb值已经从先前时钟周期中的1(由count2_q的值指示)变为当前时钟周期clk_dig_tdc中的0。因此,rollover 1发生器315-2在t719开始使信号rollover_2生效。
153.就在t719时刻之前,该信号count1_q和count_1_1都被设置为具有值995。因此,rollover 2发生器315-1在t719时刻使信号rollover_1生效。
154.在t719时刻,该翻转块325的输入相应地是逻辑低电平(对于rollover_1)和逻辑高电平(对于rollover_2)。该翻转块325评估逻辑2并生成输出:count1_sub = count1_q(在这种情况下为995)count2_sub = count2_q (2^10
ꢀ‑
1) = (37 1024
ꢀ‑ꢀ
1) = 1060。这在图7中的时间间隔t719-t723中进行了描述。
155.减法单元330接收该信号count1_sub和count2_sub并产生输出(995减去1060),即-65,如在时间间隔t719-t723中的该信号running_count_diff的波形。
156.就在t723时刻之前,该信号count1_q被设置为具有值995,而该信号count_1_1被设置为具有值72。因此,rollover1-发生器315-1确定count_1_1已更改(从前一个时钟周期中的1到该信号clk_dig_tdc的当前时钟周期中的0),并从t723时刻开始,使信号rollover_1生效。
157.在t723时刻,该翻转块325的输入相应地是逻辑高电平(对于rollover_1)和逻辑高电平(对于rollover_2)。该翻转块 325评估逻辑2并生成输出:count1_sub = count1_q(本例中为72)count2_sub = count2_q(本例中为37)减法单元330接收该信号count1_sub和count2_sub并生成输出(72减去37),即35,如在时间间隔t723-t724中该信号running_count_diff的波形。
158.当该信号window_identifier在两个输入(count_1_1和count_1_2)都发生翻转时,信号rollover_1和信号rollover_2均被失效。因此,虽然该信号window_identifier被设置为在t720时刻被失效,该信号rollover_2将继续保持生效。在t725时刻,当该信号window_identifier被失效时,该信号rollover_1和rollover_2被设置为失效。
159.以这种方式,rollover 1-发生器315-1、rollover 2-发生器315-2和翻转块325一起确保各个计数器的翻转事件不会导致相应的计算错误。
160.如上详细描述的计算单元的各个块使tdc 100能够生成表示一对周期性输入之间相位差的数字值,其频率为整数倍相关联,即,其频率相同或为整数相关倍数(例如,2倍、3倍等)。该tdc 100为上述场景中的每一个确定相位差的方式将在下面参考示例图进行说明。
161.12.确定具有相同频率的一对输入时钟之间的相位差
图8a为tdc 100确定具有相同频率的一对时钟之间的相位差的方式的示例时序图(未按比例)。图8a显示了该信号clk_dig_tdc、clk_in_1、count_1_1、count1_q、unique_count1、unique_count1_q、clk_in_2、count_1_2、count2_q、unique_count2、unique_count2_q和window_identifier的示例波形。其中,该信号clk_dig_tdc、clk_in_1、count_1、count1_q、unique_count1、unique_count1_q、clk_in_2、count_1_2、count2_q(306-2)、unique_count2、unique_count2_q和window_identifier的波形对应图6所示,此处为简洁起见不再赘述。
162.另外,图8a示出了该信号running_count_diff、pos_min、neg_max、acc_pos_q和acc_neg_q的示例波形。数据波形中的“x”值(count_1_1、count1_q、count_1_2、count2_q、running_count_diff、pos_min、neg_max、acc_pos_q、acc_neg_q)表示出于本说明目的的无关值。数据波形pos_min中的值max1表示计数信号(count_1_1和count_1_2)的最大正值,即在这种情况下为(2
36-1)。
163.该信号clk_in_1的上升沿r11到r13被设置为在各个时刻t810、t818和t826发生。因此,数字核心110接收该信号count_1_1的值289、373和457,对应于该信号clk_in_1的每个上升沿。
164.类似地,该信号clk_in_2的上升沿r21到r23被设置为发生在相应的时刻t812、t820和t828。因此,数字核心110接收该信号count_1_2的值310、394和478,对应于该信号clk_in_2的每个上升沿。因此,在该说明性实施例中,该信号clk_in_2被设置为相对于该信号clk_in_1相位滞后(大约90度)。
165.尽管与输入时钟信号(clk_in_1和该输入时钟信号clk_in_2)的上升沿相对应的计数信号(count_1_1和count_1_2)被设置为与相应的上升沿同步接收,在实践中,计数可能会稍晚于发生该输入时钟信号clk_in_1和该输入时钟信号clk_in_2的相应上升沿。
166.响应于该信号count_1_2在t812时刻改变其值(到310),该信号window_identifier在t814被生效持续该信号clk_dig_tdc的一个时钟周期。因此,从t816时刻开始,测量该输入时钟信号clk_in_1和该输入时钟信号clk_in_2之间的相位差。
167.该信号running_count_diff被设置为在各个时间间隔中具有以下值,基于持续时间中的count1_q减去count2_q的值(基于上述流水线延迟):t816-t818: running_count_diff = 289
ꢀ–ꢀ
310 =
ꢀ‑
21t818-t820: running_count_diff = 289
ꢀ–ꢀ
310 =
ꢀ‑
21t820-t822: running_count_diff = 289
ꢀ–ꢀ
310 =
ꢀ‑
21t822-t824: running_count_diff = 373
ꢀ–
310 = 63持续时间t816-t822内的相位差表示为该信号clk_in_2的上升沿r21与clk_in_1的上升沿r11之间的相位差,而持续时间t822-t824内的相位差表示为该信号clk_in_2的上升沿r12与该信号clk_in_1的上升沿r12之间的相位差。
168.在t818时刻,该正最小值发生器335在路径232 (此处信号为window_identifier)上接收逻辑高电平,在路径333(此处信号为running_count_diff)上接收值-21。因此,该正最小值发生器335在t818时刻将该信号pos_min的值设置为max1。
169.在t820时刻,该正最小值发生器335在路径232(window_identifier)上接收逻辑低电平,在路径333 (running_count_diff)上接收值-21。因此,该正最小值发生器335在
t820时刻保留该信号pos_min的当前值,即max1。以这种方式,该信号pos_min的值被设置为基于该信号window_identifier、running_count_diff的值和该信号pos_min的当前值而更新。
170.在t818时刻,该负最大发生器345在路径232 (window_identifier)上接收逻辑高电平,在路径333 (running_count_diff)上接收值-21。因此,该负最大发生器345将neg_max (346)的值设置为running_count_diff (333)的值,即-21。
171.在t820时刻,该负最大发生器345在路径232 (window_identifier)上接收逻辑低电平,在路径333 (running_count_diff)上接收值-21。因此,该负最大发生器345保留该信号neg_max的当前值,即在t820时刻的-21。以这种方式,该信号neg_max的值被设置为根据该信号window_identifier、running_count_diff的值和该信号neg_max的当前值而更新/保留。
172.当tdc 100在模式(3)(单次连续模式)下运行时,该输出发生器块290 (具体地,该单次数据发生器355)将该信号pos_min和neg_max的绝对最小值转发到路径155-1-5作为输出序列的输出,其中每个输出对应于由窗口标识符块320确定的相应窗口。因此,在上述示例中,值21将在路径155-1-5上输出。由于在该说明性实施例中计数器的时间分辨率为62.5皮秒,所以值为21表示输入时钟对之间的相位差为(21*62.5皮秒),即1312.5皮秒。使用如上所示的类似操作,tdc 100针对其他相位差值(超前或滞后)确定具有相同频率的周期性时钟输入之间的相位差。
173.接下来通过示例说明tdc 100确定具有整数相关倍数(2倍或以上)的频率的一对输入时钟之间的相位差的方式。
174.13.确定具有整数相关倍数的频率的一对输入时钟之间的相位差图8b为tdc 100测量具有整数相关倍数频率的一对时钟之间的相位差的方式的时序图(未按比例)。图8b显示了该信号clk_dig_tdc、clk_in_1、count_1_1、count1_q、unique_count1、unique_count1_q、clk_in_2、count_1_2、count2_q、unique_count2、unique_count2_q、window_identifier、running_count_diff、pos_min、neg_max、acc_pos_q和acc_neg_q的示例波形。上述波形对应于图8a中所示的波形,为简洁起见,此处不再赘述。在该说明性实施例中,对应于输入时钟信号(clk_in_1和该输入时钟信号clk_in_2)的计数被假定为36位。
175.如上文图6所述,该信号clk_in_1的频率被设置为是该信号clk_in_2的频率的8倍。因此,该信号clk_in_1的8个上升沿(d11到d18)被设置为存在于该信号clk_in_2的2个连续上升沿(d21、d22)之间。
176.此外,如上图6所述,该信号count_1_1和count_1_2的接收分别稍晚于对应于该输入时钟信号clk_in_1和该输入时钟信号clk_in_2的上升沿的出现。因此,在t854时刻接收到的该信号count_1_1对应于在t852时刻出现的该信号clk_in_1的上升沿d11,而在t854时刻接收到的该信号count_1_2对应于在t851时刻出现的该信号clk_in_2的上升沿d21。
177.响应于该信号count_1_2在t854时刻改变其值(到281),该信号window_identifier在t855时刻被生效持续该信号clk_dig_tdc的一个时钟周期。因此,从t856时刻开始(在该信号window_identifier被生效一个时钟周期之后),在较慢时钟信号clk_in_2中的两个连续的沿d21和d22之间的上升沿d21和较快时钟clk_in_1的每个上升沿(d11到
d18)之间测量相位差。
178.该信号running_count_diff被设置为在各个时间间隔中具有以下值,基于持续时间中(count1_q减去count2_q)的值(基于上述流水线延迟):t856-t859:running_count_diff = 297
ꢀ–ꢀ
281 = 16t859-t861:running_count_diff = 381
ꢀ–ꢀ
281 = 100t861-t863: running_count_diff = 465
ꢀ–ꢀ
281 = 184t863-t865:running_count_diff = 549
ꢀ–ꢀ
281 = 268t865-t867:running_count_diff = 633
ꢀ–ꢀ
281 = 352t867-t869: running_count_diff = 717
ꢀ–ꢀ
281 = 436t869-t874:running_count_diff = 801
ꢀ–ꢀ
281 = 520t874-t877:running_count_diff = 885
ꢀ–ꢀ
281 = 604因此,该信号running_count_diff被设置为具有8个不同的值,每个值分别表示该信号clk_in_2的上升沿d21与对应于(时钟信号clk_in_1的)上升沿d11到d18其中一个的相位差。
179.在t857时刻之前,作为该信号clk_in_2的两个连续上升沿之间的先前(未示出)最小相位差的结果,该信号pos_min被设置为具有值17。在t857时刻,正最小值发生器335接收到该信号running_count_diff为16的值和路径232 (window_identifier)上的逻辑高电平。因此,该正最小值发生器335在t857时刻将该信号pos_min更新为该信号running_count_diff的值,即16。在t857时刻和t876时刻之间,由于该信号running_count_diff的值都没有超过当前值16,因此正最小值发生器335将该信号pos_min的值保持为其当前值,即16。
180.在t857时刻之前,该信号neg_max被设置为具有一个较大负值,为-2
36-1
。从t857时刻开始,因为所有相位差值均为正值,负最大值发生器345使该信号neg_max 保持为该较大负值,即-2
36-1

181.在t857时刻,该信号window_identifier再次被生效,以指示该信号clk_in_2的下一个上升沿(d22)的出现。可以观察到,值16是两个 该信号window_identifier脉冲之间测量的所有8个相位差值中的最小相位差。因此,该输入时钟信号clk_in_1和该输入时钟信号clk_in_2之间的相位差在t875时刻被确定为16。如上所述,频率为整数倍数的一对输入时钟的相位差是较慢时钟的沿出现与较快时钟的最近沿出现的时间间隔。
182.因此,当tdc 100在模式(3)(单次连续模式)下运行时,该输出发生器块290(具体地,该单次数据发生器355)在路径155-1-5上转发该信号pos_min和neg_max的绝对最小值。因此,在上面的示例中,值16将在路径155-1-5上输出。由于在本说明性实施例中计数器的时间分辨率为62.5皮秒,因此值16表示输入时钟对之间的相位差为16x62.5皮秒,即1000皮秒。
183.根据本发明的另一方面,tdc 100累加输入时钟信号(clk_in_1和该输入时钟信号clk_in_2)之间的预定(由用户提供)数量的相位差,并对累加值求平均值(即,累积值除以相位差样本的数量),以便潜在地提高可以确定相位差的分辨率。下面举例说明这种累加的实现方式。
184.14.相位差样本的累积
图9为在本发明实施例中相位差样本的累积的时序图(未按比例)。具体来说,该图显示包含该信号running_acc_data、nsample_done、running_nsample、accum_valid_data和 data_valid等的波形。其中,路径155-1-1、155-1-2、155-1-3 和155-1-4 上的信号可用于tdc 100的模式(1)和(2)(如上所述)中。
185.如之前关于图3b所指出的,运行累加器数据发生器365生成信号running_acc_data和running_nsample。其中,running_acc_data表示每个窗口结束时的累积相位差值。
186.该信号running_acc_data在输入时钟信号(clk_in_1和 clk_in_2)具有小频率(例如,1hertz)并且用户已编程了一个相对高的数字(例如,1024)个要累积的预定数量的相位差样本的情况下是理想的。因此,每个累积周期将持续1024秒。在这种情况下,在输出路径155-1-1 (accum_valid_data)上累积的数据可用之前,用户需要等待1024秒(在累积周期开始之后)。同时,如果用户希望检查中间的累加值(比如在累加周期开始后大约3秒或10秒),用户可以通过在任何所需数量的窗口的末尾读取路径155-1-3 (running_acc_data)上可用的累加数据来做到这一点。
187.参考图9,示出了两个累积循环,一个在时间间隔t910-t925之间,下一个在t925-t935之间。因此,信号nsample_done在时刻t920和t932被生效。
188.累积数据在t925时刻(在持续时间t910-t925中的第一个累积循环结束时)在路径155-1-1上可用,并保持在该值(累积器有效数据1)直到下一个累积周期完成(在这种情况下,直到t935时刻)。在t925时刻,信号data_valid也被生效以指示路径155-1-1上可用的数据是有效的。如果用户在时间间隔t925-t935期间读取路径155-1-1上的输出,则向用户提供在t925更新的值(累加器有效数据1)。
189.在模式(1)中,参考图8a,当累加周期在t830时刻结束时(基于相位差样本的预定数量,作为用户输入提供),累加器有效数据发生器375确定该信号acc_pos_q和acc_neg_q的绝对最小值,并提供路径155-1-1(accum_valid_data)上的值。因此,从t830时刻开始直到下一个累积周期结束,该信号accum_valid_data被设置为值21。
190.在模式(2)中,参照图8b,在t857时刻之前,该信号acc_pos_q被设置为具有值655作为先前累积的结果(未示出)。在t855时刻,该信号window_identifier被生效,因此在t857时刻,该信号pos_min的值被添加到当前累加值。因此,从t857时刻开始,该信号acc_pos_q被设置为具有值655 17,即672。在t878时刻,在该信号window_identifier被生效于t875时刻之后,将该信号pos_min值添加到当前累计值。因此,从t878时刻开始,该信号acc_pos_q被设置为具有值672 16,即688。
191.继续参考图8b,在t857时刻之前,信号acc_neg_q被设置为具有较大的负值-2
36-1
作为先前累积的结果(未示出)。在t855时刻,该信号window_identifier被生效,因此在t857时刻,该信号neg_max的值被添加到当前累加值。因此,从t857时刻开始,该信号acc_neg_q被设置为具有值-68,719,476,734。
192.因此,当累加周期在t875时刻结束时(基于相位差样本的预定数量,作为用户输入提供),累加器有效数据生成器375确定该信号acc_pos_q和acc_neg_q的绝对最小值,并提供路径155-1-1 (accum_valid_data)上的值。因此,从t878时刻开始直到下一个累积周期结束,该信号accum_valid_data被设置为值672。
193.该信号running_nsample的值在每次该信号window_identifier(未示出)被生效
时递增。该信号running_acc_data中的每个值也会在每次该信号window_identifier被生效时(在每个窗口结束时)更新。因此,如果用户希望检查累积周期的开始和结束之间的累积值,用户可以读取路径155-1-3上的running_acc_data。路径155-1-4上可用的running_nsample信号表示路径155-1-3上可用的累积样本数。
194.例如,参考图9,如果用户在t915时刻读取信号running_acc_data,信号running_nsample表示已经累积了2个样本并且该信号acc_pos_q和acc_neg_q的绝对最小值在在路径155-1-3上可用,即running_acc_data。
195.在模式(1)中,参考图8a,正累加器340和负累加器350分别累加该信号pos_min和neg_max的值,如图8a所示。对于在路径155-1-3上作为输出提供的运行累加器数据,确定该信号acc_pos_q和acc_neg_q的瞬时值的绝对最小值。因此,该信号running_acc_data在持续时间t818-t826中被设置为值21,在持续时间t826-t832中被设置为值42。在模式(2)中,参考图8b,该信号running_acc_data在持续时间t857-t878中被设置为值655,从t878开始被设置为值672。
196.以这种方式,tdc 100以累加器模式(1)和(2)提供累加数据。tdc 100在连续单次运行模式下产生输出的方式继续描述如下。
197.15.单次连续模式输出图10为计算单元150在单次连续运行模式(模式(3))中提供输出的方式的时序图(未按比例)。具体而言,图10包括该信号clk_dig_tdc、count_1_1、count_1_2、running_count_diff、window_identifier、pos_min、neg_max和single_shot_data的波形。
198.计数data10到data16分别对应于该信号clk_in_1(未示出)的上升沿,而计数data20到data25分别对应于该信号clk_in_2(未示出)的上升沿。该信号running_count_diff被计算为diff0到diff11,其中每个差值表示对应输入时钟之间的计数差异(如图8a和图8b详细描述的)。该信号pos_min和neg_max的值,虽然未示出,但也如图8a和图8b详细描述的那样确定。
199.单次数据发生器 355在路径336上接收该信号pos_min、在路径346上接收该信号neg_max和在路径333上接收该信号running_count_diff,并在路径115上生成信号single_shot_data。在每个窗口结束时(由window_identifier确定),单次数据发生器355确定该信号pos_min和neg_max的绝对最小值,并在路径115上提供上述绝对最小值。这种运行模式可能适用于输入时钟具有相同频率,并且输入时钟的平均频率保持不变,但瞬时相位差连续变化/波动的情况。
200.在模式(4)中,计算单元150在脉冲输入上运行,如上所述。因此,单次数据发生器355将该信号running_count_diff作为脉冲之间的一次性相位差转发,并在路径115上提供相位差,即single_shot_data。
201.以此方式,本发明的各方面使tdc能够测量周期性输入之间的相位差。
202.如上所述实现的tdc 100可以集成到更大的设备或系统中,简要描述如下。
203.16.系统图11为根据本发明的各个方面实现的包含tdc的示例系统的框图,该tdc如上文详细描述。系统1100被设置为包含同步以太网(synchronous ethernet, synce)计时卡(1110和1120)和线卡1至n,其中为了简单起见仅示出了线卡1130和线卡1150。线卡1130被设置为
包含抖动衰减器pll 1140和synce物理层(physical layer, phy)发送器1145。线卡1150被设置为包含抖动衰减器pll 1160和synce phy发送器1155。图11中的组件可以与synce网络标准一致地运行。
204.如相关领域中众所周知的,synce是一种基于phy的技术,用于在基于数据包的以太网网络中实现同步。通过物理层传输的synce时钟信号应可追溯到外部主时钟(例如,来自诸如计时卡1110或计时卡1120)。因此,以太网数据包相对于主时钟被重新定时,然后在物理层中传输。因此,数据包(例如,在路径1131和路径1132上)被重新定时和发送,而没有任何时间标识信息被记录在数据包中。数据包可以由相应的应用程序生成,例如互联网协议电视(internet protocol television, iptv)、互联网协议语音(voice over internet protocol, voip)等。
205.因此,线卡1130在路径1131上接收分组,并且在数据包已经与主时钟重新定时(同步)之后在路径1146上转发该数据包。类似地,线卡1150在路径1151上接收数据包,并在数据包已经与主时钟重新定时(同步)之后在输出1166上转发该数据包。
206.主时钟(1111/clock-1)由计时卡1110生成。计时卡1120生成冗余时钟(1121/clock-2),其在主时钟1111故障时,由线卡1130和线卡1150使用。主时钟1111和冗余时钟1121经由背板(附图标记1170)提供给线卡1130和线卡1150中的每一个。
207.在线卡1130中,抖动衰减器pll 1140包含tdc 100作为相位检测器,用于检测输入时钟clock-1/clock-2中选择的一个和输出时钟1141之间的相位差,tdc 100如上所述。pll 1140生成输出时钟1141,用于同步(重新计时)在路径1131上接收的数据包,并在路径1146上作为重新计时的数据包转发。
208.类似地,在线卡1150中,抖动衰减器pll 1160包含tdc 100作为相位检测器,用于检测输入时钟clock-1/clock-2中选择的一个之间和输出时钟1161的相位差。如上所述,该抖动衰减器pll 1160接收时钟1111和1121,详细描述如上。该抖动衰减器pll 1160产生输出时钟1161,用于同步(重新定时)在路径1151上接收的数据包并在路径1166上作为重新定时的数据包转发。当失去锁相时,抖动衰减器pll 1160被设计为以上面详细描述的方式提供相位锁定。
209.17.结论在整个说明书中对“一个实施例”、“一实施例”或类似语言的引用意味着结合实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在一个实施例中”、“在一实施例中”和类似用法的出现可以但不一定都指代相同的实施例。
210.在图1a、图1b、图2、图3a、图3b和图4中,尽管终端/节点被设置为直接连接到(即,连接到)各种其他终端,但是应该理解,附加组件(适用于特定环境)也可能存在于路径中,因此可以将连接视为“电耦合”到相同的连接端子。
211.虽然上面已经描述了本发明的各种实施例,但是应当理解,它们仅作为示例,而不是作为对本发明的限制。因此,本发明的广度和范围不应受到任何上述实施例的限制,而应仅根据所附权利要求及其等同物来定义。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献