掌桥专利:专业的专利平台
掌桥专利
首页

一种时间数字转换器和系统

文献发布时间:2023-06-19 15:47:50



本发明基于申请号为202141044473、申请日为2021年9月30日、发明名称为“用于测量多个时钟之间相位差的时间数字转换器结构”的印度临时专利申请,申请号为17/662,662、申请日为2022年5月10日、发明名称为“用于时间数字转换器的计数器设计”的美国专利申请,申请号为17/662,667、申请日为2022年5月10日、发明名称为“用于测量周期性输入之间相位差的时间数字转换器”的美国专利申请,以及申请号为17/662,669、申请日为2022年5月10日、发明名称为“用于测量具有抖动的周期性输入之间相位差的时间数字转换器”的美国专利申请提出,并要求上述印度临时专利申请和三件美国专利申请的优先权,上述印度临时专利申请和三件美国专利申请的全部内容在此以引入方式并入本发明。

技术领域

本发明实施例一般涉及时间数字转换器(Time-to-Digital Converter,TDC),更具体地,涉及一种用于TDC的计数器设计。

背景技术

TDC一般用于测量一对事件之间的时间间隔,并将该时间间隔转换为数字值。该对事件通常是相应的一对输入信号的电压或逻辑电平变化。TDC在电子装置如锁相环(PhaseLock Loop,PLL)、时序卡、飞行时间(Time-of-Flight,ToF)测量装置(如辐射探测器、诊断装置)等中有应用。

TDC通常采用计数器。计数器是用于对信号的沿、脉冲或周期进行计数的电路,该信号通常是诸如测量时钟之类的周期性信号。测量时钟设置为对计数器的输入,并且计数器通常产生对应于测量时钟的每个沿、脉冲或周期的多位计数值。

用于TDC的计数器通常可能需要满足一个或多个期望的特征,例如高速、低功耗、最小化或完全消除在TDC的内部电路或在TDC中操作由计数器生成的计数值的其他电路的设计中存在的亚稳态问题等。

发明内容

本发明实施例涉及一种时间数字转换器,该时间数字转换器包括计数器和数字核心。该计数器用于生成表示第一时钟信号的关注跳变的数目的计数序列,且该计数器包括异步电路和同步电路,以分别生成该计数序列中每个计数的第一组位和第二组位。该数字核心用于处理该计数序列的计数对。

在一个实施例中,该第一组位表示每个计数中比该第二组位更高的有效位。

在一个实施例中,该计数对的第一计数表示第一输入信号上的第一事件,该计数对的第二计数表示第二输入信号上的第二事件。其中,该数字核心处理该计数对以确定发生该第一事件和发生该第二事件之间的时间差。

在一个实施例中,该计数对的第一计数表示第一输入信号上的第一事件,该计数对的第二计数表示该第一输入信号上的第二事件。其中,该数字核心处理该计数对以确定发生该第一事件和发生该第二事件之间的时间差。

在一个实施例中,该计数器包括精细计数器和粗略计数器,其中,该异步电路和该同步电路包括在该粗略计数器中。

在一个实施例中,该时间数字转换器还包括锁存逻辑。该锁存逻辑用于接收该第一输入信号和该第二输入信号。其中,该锁存逻辑用于在该第一事件发生时存储该第一计数,并将该第一计数转发到该数字核心,且该锁存逻辑用于在该第二事件发生时存储该第二计数,并将该第二计数转发到该数字核心。

在一个实施例中,该精细计数器包括延迟链和第一编码器。该延迟链用于生成第三组位,其中该第三组位中的每个位表示该第一时钟信号的多个相位中对应的一个相位。该第一编码器用于对该第三组位进行编码以生成第四组位。

在一个实施例中,该同步电路用于在该第一时钟信号的该多个相位之一的第一类型沿处增加第一粗略输出,该异步电路用于在该第一粗略输出的最高有效位的第一类型沿处增加第二粗略输出。其中,该粗略计数器还包括第一寄存器和第二寄存器。该第一寄存器用于在该第一时钟信号的该多个相位之一的第二类型沿处存储该第一粗略输出,作为第一复制粗略输出。该第二寄存器用于在该第一粗略输出的该最高有效位的第二类型沿处存储该第二粗略输出,作为第二复制粗略输出。

在一个实施例中,该第一事件是该第一输入信号的上升沿。其中,该锁存逻辑包括第三寄存器、第四寄存器、第五寄存器、第一多路复用器和第二编码器。该第三寄存器用于在该第一输入信号的该上升沿处存储该第三组位,其中该第一编码器用于从该第三寄存器的输出接收该第三组位以生成该第四组位。该第四寄存器,用于在该第一输入信号的该上升沿处存储该第一粗略输出。该第五寄存器用于在该第一输入信号的该上升沿处存储该第一复制粗略输出。该第一多路复用器用于基于该第四组位的最高有效位的值来转发所存储的第一粗略输出和所存储的第一复制粗略输出中的一个,作为第一多路复用器输出。该第二编码器用于对该第一多路复用器输出进行编码以生成第五组位。

在一个实施例中,该锁存逻辑还包括第二多路复用器、级联器、同步器、第六寄存器和第七寄存器。该第二多路复用器用于基于该第五组位的最高有效位的值来转发该第二粗略输出和该第二复制粗略输出中的一个,作为第六组位。该级联器用于级联该第四组位、该第五组位和该第六组位以生成第七组位,其中该第四组位、该第五组位和该第六组位分别是该第七组位的最低有效部分、中间部分和最高有效部分。该同步器用于使该第一输入信号相对于该第一时钟信号的该多个相位之一同步,以生成同步第一输入信号。该第六寄存器用于在该同步第一输入信号的上升沿处存储该第七组位,以生成第八组位。该第七寄存器用于在该数字核心的时钟的活动沿处存储该第八组位,以生成第九组位,其中该第九组位包括该第一计数。

本申请实施例还涉及一种系统,该系统包括线卡和第一时序卡。该线卡用于接收数据分组,该线卡参考选定时钟对该数据分组重新定时,并发送重新定时的分组。该第一时序卡用于生成第一时钟。其中,该线卡包括用于接收该第一时钟的锁相环,该锁相环用于提供基于该第一时钟的输出时钟作为该选定时钟。其中该锁相环包括作为相位检测器操作的时间数字转换器,该时间数字转换器为上面所描述的任一时间数字转换器。

附图说明

本发明的示例性实施例将参考下方简述的附图来描述。

图1是其中可以实现本发明若干方面的示例装置的框图。

图2是示出TDC生成表示事件发生时刻的数字值的方式的示例性时序图。

图3A是传统异步计数器的框图。

图3B是传统同步计数器的框图。

图4是本发明实施例中采用具有同步和异步部分计数器的TDC的框图。

图5是示出本发明实施例中的混合计数器的框图。

图6是在本发明实施例中采用混合计数器并且还缓解或避免亚稳态问题的TDC的计数逻辑的框图。

图7示出了具有条目的表格,该表格阐述了本发明实施例中针对粗略计数器的同步部分的输出实现多路复用器的选择逻辑的方式。

图8是用于说明本发明实施例中针对粗略计数器的同步部分的输出实现多路复用器的选择逻辑的方式的另一示图。

图9是用于说明本发明实施例中针对粗略计数器的异步部分的输出实现多路复用器的选择逻辑的方式的示意图。

图10是本申请实施例中系统的框图,根据本发明的各个方面实现的装置可以并入该系统。

图11示出了具有条目的表格,该表格阐述了本发明实施例中针对粗略计数器的异步部分的输出实现多路复用器的选择逻辑的方式。

图12是用于说明本发明实施例中针对粗略计数器的异步部分的输出实现多路复用器的选择逻辑的方式的另一示图。

在附图中,类似的附图标记通常表示相同的、功能上相似的和/或结构上相似的元件。首次出现元件的附图由相应附图标记中的最左数位表示。

具体实施方式

1、概述

根据本发明的一个方面的时间数字转换器(Time-to-Digital Converter,TDC)包括计数器和数字核心。该计数器用于生成计数序列,该计数序列表示第一时钟信号的周期的相应计数,这里的第一时钟信号的周期为直到该相应计数生成的对应时间点为止已经发生了的周期。该计数器包括异步电路和同步电路,以分别生成计数序列中每个计数的第一组位和第二组位。在一个实施例中,第一组位表示一个计数中比第二组位更高的有效位。该数字核心用于处理该计数序列的计数对。

在一个实施例中,数字核心可用于生成计数序列的计数对的差。该对计数的第一计数表示第一输入信号上的第一事件,该对计数的第二计数表示第二输入信号上的第二事件。该差表示发生第一事件和发生第二事件之间的时间差。

下面参考用于说明的示例对本发明的几个方面进行描述。然而,本领域技术人员将认识到,可以在没有一个或多个特定细节的情况下实施本发明,或可以使用其他方法、组件、材料等实施本发明。在其他实例中,未详细示出公知的结构、材料或操作以避免模糊本发明的特征。此外,所描述的特征/方面可以以各种组合实施,尽管为了简明起见,本文中仅描述了一些组合。

2、示例装置

图1是可以实现本发明的几个方面的示例性TDC 的框图。TDC 100示出为包含计数逻辑160和数字核心150。计数逻辑160又示出为包含计数器130和锁存逻辑140。图1中所示的TDC 100的具体细节仅为了说明,根据本发明的一些方面实现的TDC可以具有更多或更少的块,并且可以同时处理多于两个的输入或事件。

计数器130示出为接收测量时钟131(以下称为“meas-clk 131”)。在一个实施例中,计数器130用于对meas-clk131的连续脉冲的脉冲数(或相当于,周期数)或序列数(例如,一般为2,3,N,其中N为整数)进行计数,并在路径134(即信号“count-value”的传输路径)上提供各计数值。可选地或另外地,计数器130可以也能够用于对meas-clk 131的沿(上升和下降)的数量计数。一般而言,计数器130用于计算meas-clk131的关注跳变(transitions of interest)的数目,该关注跳变为上述提到的任何一个。meas-clk 131的频率决定了TDC 100表示在输入信号101(以下称为“clkin1101”)和输入信号102(以下称为“clkin2102”)中的一个或两个中发生事件的时刻的分辨率。频率越高,分辨率越好。例如,计数器130可以实现为增量计数器、减量计数器,或者诸如增加或减少大于1的整数的其他类型的计数、模N计数器,其中N是自然数等。基于计数器130的实现,可以相应地实现诸如锁存逻辑、数字核心等的其他电路以处理由计数器130生成的计数值。计数器130可用于在meas-clk 131的每个上升沿或每个下降沿处对信号count-value增量。计数器130可用于在复位(信号未示出)时输出零的计数值。然而,本文的描述是在用于对时钟的周期数进行计数的计数器的上下文中提供的。

锁存逻辑140接收输入信号clkin1101和clkin2102,每个输入信号可以是二进制(或通常是数字/离散)波形,例如周期性时钟信号。测量同一输入信号上的一对事件之间或两个输入信号之间经过的时间通常是所关注的。因此,例如,可以期望获得表示clkin1 101和clkin2 102之一的一对沿(表示事件)之间的时间间隔的数位。可选地,可能关注的是获得表示clkin1101的沿和clkin2102的最近沿之间的时间间隔的数位,相应的沿表示事件。

锁存逻辑140用于在对应事件发生时捕获(存储)路径134上的计数值,并在路径145(即信号“latched-count”的传输路径)上转发计数值到数字核心150。锁存逻辑140可以以已知的方式实现。

数字核心150接收latched-count,并处理锁存计数以生成表示clkin1 101和clkin2 102中的一个或两个信号中所关注的事件之间的时间间隔的数字值。例如,如图1所示,数字核心150确定clkin1101和clkin2 102之间的相位差,并提供该相位差作为路径151(即信号“phase-diff”的传输路径)上的输出。

需要说明的是,尽管计数逻辑160在图1中被示出为接收两个输入信号(即clkin1101和clkin2 102),但是通常计数逻辑160可以实现为接收更多或更少的输入。例如,计数逻辑160可实现为仅接收一个输入并生成表示由单个输入(例如沿)发送的关注的某个事件的数字值。在这种情况下,TDC 100可以具有多个计数逻辑160,每个计数逻辑160用于一个输入,并且数字核心150可以用于从所有这些计数逻辑160接收和处理锁存的计数值,以在路径151上生成关注的事件或关注的时间间隔的数字值。

图2是说明图1的TDC 100生成表示事件发生的时刻的数字值的方式的示例性时序图。这里示出了clkin1、clkin2、meas-clk、count-value和latched-value的示例波形。在图2的示例中,假定clkin1101和clkin2 102之间的相位差期望由TDC 100确定。

clkin1 101的上升沿在时刻t21和时刻t22发生,clkin2 102的上升沿时刻t23和时刻t24发生。计数器130以零的初始计数开始,并在meas-clk 131的每个上升沿处对count-value增量。因此,count-value随着meas-clk 131的每个上升沿而变化(增加),并且这些变化由count-value的散列波形指示。t21、t22、t23和t24处的count-value的值分别表示为C1、C2、C3和C4。因此,锁存逻辑140分别在t21、t22、t23和t24处锁存count-value的值C1、C2、C3和C4。锁存逻辑140在路径145上转发每个值C1、C2、C3和C4。数字核心150处理在路径145上接收的值以确定clkin1 101和clkin2 102之间的相位差作为C1和C2之间的差,或,C3和C4之间的差。

在一些相关技术中,计数器130要么实现为异步(纹波)计数器,要么实现为同步计数器,这两者在相关技术中都是公知的,并且它们的示例分别在图3A和图3B中示出。

图3A示出了一个3位(3级)异步增量计数器。计数器300由三个负沿触发的JK触发器构成。触发器(Flip-flop,FF)310、FF 320和FF 330中的每一个的J端和K端被连接到逻辑高电平305。clk 301表示测量时钟信号,并被施加到FF 310的(负沿触发的)时钟输入。FF310和FF 320的输出Q0和输出Q1分别连接到FF 320和FF 330的时钟输入。Q0、Q1和Q2是计数器300的输出,它们一起提供计数器300响应于clk301的振荡而产生的计数的当前值。Q0是计数器300的最低有效位(Least Significant Bit,LSB),Q2是计数器300的最高有效位(Most Significant Bit,MSB)。

图3B示出了一个3位(3级)同步增量计数器。计数器350由三个负沿触发的切换(T)触发器SFF(即SFF 360、SFF 370和SFF 380)构成。SFF 360的T输入端连接逻辑高电平355。clk351表示测量时钟信号,并被施加到所有三个触发器(即SFF 360、SFF 370和SFF 380)的(负沿触发的)时钟输入。SFF 360的输出SQ0连接到SFF 370的T输入端。SFF 360和SFF 370各自的输出SQ0和SQ1通过与门390,并且与门390的逻辑与输出作为SFF 380的输入。SQ0、SQ1和SQ2是计数器350的输出,它们一起提供计数器350响应于clk301的振荡而产生的计数的当前值。SQ0是计数器300的LSB,SQ2是计数器300的MSB。

异步计数器和同步计数器各有优缺点。例如,与同步计数器相比,异步计数器可能消耗相对较少的功率,并且还可能更容易实现,因为它们通常不需要额外的逻辑来生成随后的触发器或级的时钟输入。然而,异步计数器的最大操作频率(通常在最低有效位处的触发器时钟的频率)可以低于可比的同步计数器的最大操作频率。此外,当计数器的输出变化时发生由输入时钟信号(例如,图1的clkin1 101或clkin2 102)指定的事件(例如,上升沿)时,与锁存逻辑140锁存的值中的同步计数器相比,在TDC中使用异步计数器可能(以更宽/更长亚稳态窗口的形式)引起更大的亚稳态问题。

根据本发明的一个方面,如下文所述,利用具有同步部分(同步电路)和异步部分(异步电路)的(混合)计数器来实现TDC。

3、计数器设计

图4是在本发明实施例中采用具有同步和异步部分计数器的TDC的框图。TDC 400示出为包含计数逻辑460和数字核心150。数字核心150按照上文关于图1的描述实施。计数逻辑460示出为包含计数器490和锁存逻辑440。计数器490又示出为包含同步部分410和异步部分420,可以称为混合计数器。锁存逻辑440可以基本上类似于图1的锁存逻辑140来实现,为了简明起见,下面不再重复描述。

计数器490的同步部分410连接以接收meas-clk 131(与图1中相同)作为输入时钟信号。同步部分410对meas-clk131的周期数/脉冲数进行计数,且同步部分410包含连接以形成同步计数器的多个触发器(即,级),该同步计数器生成由路径415(即信号“count-val”的传输路径)上的计数器490产生的计数值的低阶位(Lower-order bits,LoB)414(即,较低有效位)。触发器(级)的数量,即同步部分410的位宽,例如可以基于计数器输出count-val的位宽和诸如计数器490的速度、功率消耗、总体复杂度等其他考虑以及TDC 400的目标应用来确定。计数器490的异步部分420连接以接收同步部分410的MSB412作为输入时钟,并对MSB 412的周期数/脉冲数进行计数。异步部分420包含连接以形成异步(或纹波)计数器的多个触发器(即,级),该异步(或纹波)计数器生成由路径415上的计数器490生成的计数值的高阶位(Higher-order bits,HoB)424(即,较高有效位)。触发器(级)的数量,即异步部分420的位宽,例如可以基于计数器输出count-val的位宽和诸如计数器490的速度、功率消耗、覆盖复杂性等其他考虑以及TDC 400的目标应用来确定。

尽管本文中将同步部分410和异步部分420描述为分别生成较低有效位和较高有效位,但在替代实施例中,异步部分420接收meas-clk并生成较低有效位,且同步部分410接收由异步部分420生成的计数的MSB并生成较高有效位。

同步部分410和异步部分420都可以用于在复位时(未示出)输出零的计数值。需要注意的是,虽然同步部分410和异步部分420被认为是增量计数器,它们在相应输入时钟(即meas-clk 131和MSB 412)的每个周期增加它们的计数,但它们也可以实现为减量计数器或模N计数器(其中N小于同步部分/异步部分的2^位宽(^表示操作的‘功率’))。一般而言,计数器490 的同步部分410和异步部分420用于对对应输入时钟信号(即meas-clk 131和MSB412)的“关注跳变”的数量进行计数。因此,通常,由同步部分410和异步部分420生成的仅需与相应输入时钟信号(即meas-clk131或MSB412)的时钟沿的数目、周期/脉冲的数目(或一系列多个连续周期的数目)成比例,尽管允许该计数溢出且再次从0开始,并且同步部分410和异步部分420可以以任何形式实现只要满足上述比例要求即可。然而,本文的描述是在用于对时钟的周期数进行计数的计数器的上下文中提供的。

数字核心150处理在路径445上接收的值以生成表示输入时钟信号(即clkin1 101和clkin2 102)中的一个或两个上的事件之间的时间关系的数字值。在一个实施例中,时间关系是clkin1 101和clkin2 102之间的相位差。

图5提供了计数器490的同步部分410和异步部分420的示例图示。作为诸如计数器490的混合计数器的示例的计数器500包含触发器SFF0510、SFF1520、SFF2530、RFF0540、RFF1550和RFF2560以及与门525。在该示例中,计数器500是6位计数器,并且输出位被示出为设置在标记为B0、B1、B2、B3、B4和B5的端子上。可以观察到,SFF0 510、SFF1 520和SFF2530形成同步计数器部分570(其对应于图4的同步部分410),而RFF0 540、RFF1 550和RFF2560形成异步计数器部分580(其对应于图4的异步部分420)。

同步计数器部分570示出为3位增量计数器,由三个负沿触发切换(T)的SFF0 510、SFF1 520和SFF2 530构成。SFF0 510的T输入端连接到逻辑高电平501。meas-clk 131被施加到所有三个触发器(即SFF0 510、SFF1 520和SFF2 530)的(负沿触发的)时钟输入。SFF0510的输出Q0连接到SFF1 520的T输入端。SFF0 510和SFF1 520的输出Q0和输出Q1分别通过与门525,并且与门525的逻辑与输出作为触发器530的T输入。B0、B1和B2是同步计数器的输出,且形成计数器490的较低有效位。

异步计数器部分示出为3位增量计数器,由三个负沿触发的JK触发器(即RFF0540、RFF1 550和RFF2 560)构成。RFF0 540、RFF1 550和RFF2 560的J输入端和K输入端都连接到逻辑高电平501。同步计数器部分570的最高有效位(即B2)被施加到RFF0 540的(负沿触发的)时钟输入。SFF0 510和SFF1 520的输出Q0和输出Q1分别连接到RFF1 550和RFF2560的时钟输入。B3、B4和B5是同步计数器的输出,且形成计数器490的较低有效位。

虽然同步计数器部分570和异步计数器部分580都示出为3位计数器,但是通常,这些计数器中的每一个的位宽都可以小于或大于3,并且这些计数器可以具有不同的位宽。

上述混合计数器设计实现了与现有技术中使用的仅同步计数器和仅异步计数器相关的优点和缺点的平衡。

如下面简要描述的,根据本发明的另一方面,TDC具有计数逻辑块,该计数逻辑块额外地解决了当计数器的输出变化时发生由输入信号指定的事件时锁存计数器输出中的亚稳态的潜在问题。另外,还描述了这种TDC中锁存逻辑的示例实现。

4、无亚稳态锁存逻辑

图6是在本发明实施例中采用混合计数器并且还缓解或避免亚稳态问题的TDC的计数逻辑的框图。可以代替图4中的计数逻辑460实现的计数逻辑600示出为包含环形振荡器(Ring Oscillator,RO)605、级联器607、5位同步负沿计数器610、寄存器615、28位异步负沿计数器620、寄存器625、缓冲器630、缓冲器631、缓冲器632、缓冲器634、寄存器650、编码器655、寄存器661、寄存器662、多路复用器(Multiplexer,MUX)660、编码器668、MUX 670、级联器680、寄存器685、寄存器686、寄存器687和寄存器688。形成锁存逻辑的组件/块由块690表示。5位同步负沿计数器610、寄存器615、28位异步负沿计数器620和寄存器625一起表示‘粗略计数器’,并对应于图4的计数器490。环形振荡器605形成‘精细计数器’。可替代地,可以将环形振荡器605和编码器655的组合视为精细计数器。在下面的描述中,粗略计数器用于对输入时钟616(以下称为“mclk[0] 616”)的周期数进行计数。然而,一般而言,粗略计数器或其部分可实现为对相应输入时钟mclk[0]和/或sync[4]的“关注跳变”的数目进行计数。

计数逻辑600生成表示输入时钟640(以下称为“clk-in 640”)的上升沿出现的时间的36位数字值。clk-in640可对应于图4的clkin1101和clkin2102中的任一个。在图6中,锁存逻辑690被示出以及描述为仅生成表示一个输入时钟的事件(此处为上升沿)的数字值,并且可以被修改或增强以适应更多的输入时钟。此外,计数器、环形振荡器等的特定类型和位宽仅以图示的方式提供,并且也可以使用其他类型、位宽等。下面结合图6、图7、图8和图9简要描述计数逻辑600的操作。

环形振荡器605包括三个延迟元件和一个反相器,并且用于生成主时钟(以下称为“mclk”)的四个相位。在替代实施例中,环形振荡器605可以使用其它构造块来实现,例如延迟锁定环路(Delay-Locked Loop,DLL),这对于本领域技术人员来说是显而易见的,并且环形振荡器605通常可以被视为延迟链。在一些实施例中,环形振荡器605是一个压控振荡器(即PLL的压控振荡器(Voltage-Controlled Oscillator,VCO),其在TDC 100外部或者与TDC 100结合使用)。一起被标记为606的四个输出是主时钟的四个相应相位[3:0]。四个相位mclk[3]、mclk[2]、mclk[1]和mclk[0]之间互相相隔45度,它们在mclk的一个周期内的二进制状态在图7中的700的列C1、列C2、列C3和列C4中示出。可以观察到,在mclk的一个周期中,存在4个相位的组合的8种不同状态。这8种状态的十进制值和编码值在列C5和C7中示出。级联器607级联四个相位。缓冲器630提供对四个相位值的缓冲。需要注意的是,仅通过图示的方式指出了特定数量的相位,还可以生成更多的相位,并且随后可以使用更多相位来提高TDC的分辨率。

寄存器650是一个4位存储元件,在clk-in640的上升沿处存储4相输出的值。编码器655将八种状态编码成图6的列C7中所示的3位编码值。因此,环形振荡器605和块607、650和655的组合可以以提供一个分辨率等于主时钟mclk周期的1/8的精细计数。在一个实施例中,mclk的频率是2GHz,因此,计数逻辑600生成计数689(以下称为“count[35:0] 689”)的分辨率是62.5皮秒(ps)。环形振荡器605和级联器607、寄存器650和编码器655的组合生成“精细计数”,并可以称为“精细计数器”。

5位同步负沿计数器610和28位异步负沿计数器620分别表示图4的同步部分410和异步部分420,并且一起表示(粗略)计数器490。粗略计数器输出可以表示事件的时刻的分辨率为(62.5x8),即500ps。在图6的示例中,5位同步负沿计数器610是一个5位计数器,它在mclk的每个下降沿(负沿)处递增其计数(第一个粗略输出)。因此,相位0,即mclk的mclk[0]示出为被提供给5位同步负沿计数器610内的所有触发器。5位同步负沿5位同步负沿计数器610生成一个5位计数值,即syncn[4:0]611。

28位异步计数器620接收5位同步负沿计数器610的MSB,即syncn[4]612,作为28位异步负沿计数器620中第一触发器(即,处于最低有效位位置的触发器)的时钟输入。28位异步负沿计数器620在syncn[4]612的每个下降沿(负沿)处递增其计数(第二粗略输出),并生成28位计数值,即asyncn[27:0]621。

为了克服上述亚稳态问题,syncn[4:0]611和asyncn[27:0]621分别存储在作为正沿触发存储组件的相应寄存器中。因此,寄存器615在mclk[0]616的上升沿处存储syncn[4:0]611,并且寄存器625在syncn[4]612的上升沿处存储asyncn[27:0]621。因此,当5位同步负沿计数器610和28位异步负沿计数器620在相应时钟的每个下降沿处更新其计数值时,更新的计数值随后在相应时钟的正/上升沿处存储半个时钟周期。寄存器615和寄存器625提供各自的输出syncp[4:0]617(第一复制粗略输出)和asyncp[27:0]626(第二复制粗略输出)。5位同步负沿计数器610、寄存器615、28位异步负沿计数器620和寄存器625的输出分别由缓冲器631、缓冲器632、缓冲器633和缓冲器634缓冲。也可以使用复制计数器代替寄存器615和寄存器625。

由于计数值是在相应时钟的正沿和负沿两者处被生成/存储,因此确保(或至少是高度可能的)至少一个计数值在clk-in 640的事件(此处为正沿)的时刻将是稳定且不变的。因此,仅需选择适当的计数值。对于5位同步负沿计数器610和寄存器615的输出,缓冲器631和632的输出在clk-in640的上升沿处分别被存储在寄存器661和寄存器662中,并且相应的输出syncp-L[4:0]666和syncn-L[4:0]667中合适的(稳定的)一个被选择为MUX 660的输出Smux[4:0]664。类似地,对于28位异步负沿计数器620和寄存器625的输出,缓冲器633和缓冲器634的输出分别在MUX 670处可用,并且合适的(稳定的)一个被选择作为MUX 670的输出。

需要注意的是,5位同步负沿计数器610和28位异步负沿计数器620的时钟输入处的相应时钟信号的沿类型(上升/正或下降/负)仅需与寄存器615和寄存器625的时钟输入处的相应时钟信号相反。因此,施加到寄存器615和寄存器625的特定沿类型也可以是相应时钟的上升沿,施加到5位同步负沿计数器610和28位异步负沿计数器620的边缘类型是相应时钟的下降边缘。

下面参照图7,图8和图9对确定MUX 660和MUX 670的输出的方式进行描述。

从图7中的700的列C6和C7中的值获取MUX 660的选择逻辑。在列C6中,选择输入fcount[2]663(即编码器655的输出的MSB)的值为0表示选择syncn-L[4:0]667作为MUX 660的输出。选择输入fcount[2] 663的值为1表示选择syncp-L[4:0]666作为MUX 660的输出。从图8可知这种选择的原因。

图8中的800包含行810、行820、行830、行840、行850和行860。mclk[0]616的一个周期也在图8中示出。在时刻t81和时刻t83,mclk[0] 616的两个上升沿示出为发生,并且在时刻t82,mclk[0] 616的下降沿示出为发生。5位同步负沿计数器610的输出将在下降沿(即t82处)改变,但在上升沿(即t81和t83处)是稳定的。寄存器615的输出将在上升沿(即t81和t83处)改变,但在下降沿(即t82处)是稳定的。

行810示出精细计数器的等价十进制的可能值(也在图7的列C5中示出),行850示出相应的编码精细计数(也在图7的列C7中示出)。行820示出应选择syncp-L[4:0]和syncn-L[4:0]中的哪个作为行810或行850中每个条目对应的MUX 660的输出。条目‘Neg’表示必须选择syncn-L[4:0],而条目‘Pos’表示必须选择syncp-L[4:0]。行830和行840分别示出syncn-L[4:0]和syncp-L[4:0]的示例计数值。行860示出了由精细计数和同步计数器组成的最终级联计数,表明通过正确的MUX选择逻辑获得了单调增加的计数。

为了防止或最小化亚稳态概率,从图8中可以明显看出,在mclk[0] 616的上升沿附近,必须选择syncn-L[4:0]作为MUX 660的输出,因为syncn-L[4:0]仅在mclk[0] 616的下降沿处改变,因而它将会是稳定的。类似地,在mclk[0] 616的下降沿附近,必须选择syncp-L[4:0]作为MUX 660的输出,因为syncp-L[4:0]仅在mclk[0] 616的上升沿处改变,因而它将会是稳定的。

从行850和列C7可以观察到,每当选择syncn-L[4:0]作为输出时,fcount[2:0]656的3位二进制值的MSB为0。当选择syncp-L[4:0]作为输出时,fcount[2:0]656的3位二进制值的MSB为1。因此,fcount[2] 663用于选择MUX 660的输出。

继续图6的描述,如上所述选择的MUX 660的输出在编码器668中编码,并且将编码的输出Scount[4:0]669提供给级联器680。编码器668需要从由28位异步负沿计数器620和寄存器625输出的计数对中选择稳定值。编码器668的编码逻辑以及用于选择将转发MUX670的两个输入中的哪一个作为输出的逻辑分别在图11和图12中的1100和1200中示出。1200的列C1列出了各种信号,并且这些信号的值在相应的行中。图11和图12的逻辑是不言自明的,基本上类似于用于选择将转发同步计数syncp-L[4:0] 666和syncn-L[4:0] 667中的哪一个作为MUX 660的输出的逻辑,为了简明起见,不再赘述。

MUX 670的输出是基于Scount[4]671确定的,为Scount[4:0]669的MSB,又是粗略计数器的同步部分的选定和编码的输出。使用Scount[4]671选择MUX 670的输出的原因与用于选择MUX 660的输出的选择逻辑类似,下面结合图9简要说明。MUX 670的输出(它是粗略计数器的异步部分的选定输出)被转发到级联器680。编码的精细计数fcount[2:0]656也被转发到级联器680。

图9示出了包含各种条目的900,并且与syncn[4] 612一起示出了用于选择MUX670的输出的逻辑。syncn[4] 612的两个上升沿示出为在t91和t93处发生,而两个下降沿示出为在t92和t94处发生。对于28位异步负沿计数器620的输出,缓冲器631和缓冲器632的输出分别在MUX 670处可用,并且合适的(稳定的)一个被选择作为MUX 670的输出。从图9中可以明显看出,在syncn[4] 612的上升沿附近,必须选择asyncn[27:0]作为MUX 670的输出,因为asyncn[27:0]仅在syncn[4] 612的下降沿处改变,因而它将会是稳定的。类似地,在syncn[4] 612的下降沿附近,必须选择asyncp[27:0]作为MUX 670的输出,因为asyncp[27:0]仅在syncn[4] 612的上升沿处改变,因而它将会是稳定的。800的前两行分别示出了asyncp[27:0]626和async[27:0]621的示例条目。第三行910指示要选择哪个输出。条目‘pos’指示寄存器625的输出将被选择为MUX 670的输出,而条目‘neg ’指示28位异步负沿计数器620的输出将被选择为MUX 670的输出。900的第四行指示在clk-in的相应上升沿处选择的特定计数值。Scount[4]671的值用于选择MUX 670的输出,其中Scount[4]的逻辑电平0选择asyncn[27:0]作为输出,而逻辑电平1选择asyncp[27:0]作为MUX 670的输出。

需要注意的是,当5位同步负沿计数器610和28位异步负沿计数器620用于对相应的时钟信号(即syncn [4:0] 611和sync[4] 612)的每个沿(上升和下降)进行计数时,用于避免上述亚稳态的技术是不适用的。

级联器680将所接收的输入级联以形成单个36位计数值,其中精细计数fcount[2:0]在最低有效位置,Scount[4:0]在中间,以及MUX 670的28位输出在最高有效位置。需要注意的是,使用同步电路来生成粗略计数器的较低有效位,并且使用异步电路来生成粗略计数器的较高有效位,使得MUX 660以及编码器668的选择逻辑的实现更简单,因为由于使用同步电路,亚稳态窗口(用于改变粗略计数器的同步部分的输出的最大持续时间)更小。换句话说,使用异步部分来生成粗略计数器的较低有效位将使这种逻辑更复杂。一般而言,上述方法简化了锁存逻辑690的实现方式。

clk-in640相对于时钟域同步(与mclk[0]616同步),在该时钟域上,TDC 600通过使clk-in 640通过触发器887和触发器888(它们一起形成同步器)来操作,每个触发器由mclk[0] 616定时。clk-in 640的同步版本用作寄存器685的时钟输入,并且级联器680的输出在同步版本的上升沿处被存储在寄存器685中。clk-dig-tdc681从mclk[0]616导出,并且相对于mclk[0]616同步,clk-dig-tdc681表示基于数字核心150操作的时钟信号。寄存器685的输出存储在寄存器686中的clk-dio-tdc681的有效沿处。寄存器686的输出是由计数逻辑600生成的最终36位计数,即count[35:0]689。count[35:0] 689可由数字核心诸如图4的数字核心150处理以生成表示clk-in 640中的事件之间的时间关系的数字值或clk-in640中的事件与另一个或多个输入信号之间的时间关系的数字值。环形振荡器605、5位同步负沿计数器610、寄存器615、28位异步负沿计数器620和寄存器625的组合也可被视为计数逻辑600的计数器。

当不关注上述亚稳态时,编码器655、5位同步负沿计数器610和28位异步负沿计数器620的输出可以级联以形成count[35:0] 689。在这样的实施例中,寄存器615、寄存器625、寄存器661和寄存器662以及MUX 660和MUX 670可能不会被实施。

如上所述实施的TDC 100可并入下面简要描述的较大装置或系统中。

5、系统

图10是如上文详细描述的包含PLL的示例系统的框图,PLL结合了具有根据本发明各个方面实现的计数器和计数逻辑的TDC。系统1000示出为包含同步以太网(SyncE)时序卡1010和同步以太网(SyncE)时序卡1020和线卡1至线卡N,为了简单起见,仅示出两个线卡,即线卡1030和线卡1050。线卡1030示出为包含抖动衰减器PLL 1040和SyncE PHY发送器1045。线卡1050示出为包含抖动衰减器PLL 1060和SyncE PHY发送器1065。图10的组件可以按照同步以太网(SyncE)网络标准运行。如相关技术中所熟知的,SyncE是用于在基于分组的以太网中实现同步的基于物理层(PHY)的技术。通过物理层传输的SyncE时钟信号应当可以(例如,从时序卡(诸如SyncE时序卡1010或SyncE时序卡1020))追溯到外部主时钟。因此,以太网分组相对于主时钟被重新定时,然后在物理层中进行传输。因此,数据分组(例如,在路径1031和路径1132上)被重新定时并发送,而没有任何时间戳信息被记录在数据分组中。分组可以由相应的应用生成,例如互联网协议电视(Internet Protocol Television,IPTV)、互联网协议语音(Voice over Internet Protocol,VoIP)等。

因此,线卡1030在路径1031上接收分组,且在分组已经与主时钟重新定时(同步)之后在输出1046上转发分组。类似地,线卡1050在路径1051上接收分组,并在分组已经与主时钟重新定时(同步)之后在输出1066上转发分组。

主时钟1011(以下称为“clock-1 1011”)由SyncE时序卡1010生成。SyncE时序卡1020生成冗余时钟1021(以下称为“clock-2 1021”),当clock-1 1011发生故障时,线卡1030和线卡1050将使用clock-2 1021。clock-1 1011和clock-2 1021经由背板1070提供给线卡1030和线卡1050。

在线卡1030中,抖动衰减器PLL 1040包含TDC(例如包含如上详细描述但图10中未示出的计数逻辑的TDC 400),TDC用于检测其输入时钟之间的相位差,并接收clock-1 1011和clock-2 1021。PLL 1040生成输出时钟1041,该输出时钟1041用于同步(重新定时)在路径1031上接收并作为在路径1046上重新定时的分组转发的分组。

类似地,在线卡1050中,抖动衰减器PLL 1060包含用于检测其输入时钟之间的相位差并接收clock-1 1011和clock-2 1021的TDC(例如包含如上详细描述但图10中未示出的计数逻辑的TDC 400)。PLL 1060生成输出时钟1061,该输出时钟1061用于同步(重新定时)在路径1051上接收并作为在路径1066上重新定时的分组转发的分组。

6、结论

整个说明书中,引用“一个实施例”、“一实施例”或类似的语言意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,短语“在一个实施例中”、“在一实施例中”的出现以及贯穿该说明书的类似语言可以但不一定都指同一实施例。

虽然在图1、图4、图5、图6和图10的图示中,尽管端子/节点被示出为与各种其它端子直接连接(即,“连接到”),但是应当理解,在路径中也可以存在(适合于特定环境的)其他组件,因此,这些连接可以被视为与相同的连接端子“电耦合”。

在本应用中,电源和接地端子被称为恒定参考电位。

尽管上面已经描述了本发明的各种实施例,但是应当理解,它们仅通过示例而不是限制的方式来呈现。因此,本发明的宽度和范围不应受上述实施例中的任何实施例的限制,而应仅根据以下权利要求及其等同物来限定。

技术分类

06120114584320