跨时钟域的延迟同步

文档序号:1782911 发布日期:2019-12-06 浏览:18次 >En<

阅读说明:本技术 跨时钟域的延迟同步 (delay synchronization across clock domains ) 是由 R·金纳克 B·W·维布鲁根 J·E·麦格拉斯 于 2019-05-29 设计创作,主要内容包括:本发明公开了一种用于跟踪从第一时钟域发送到第二时钟域的信号中的延时的方法和装置。例如,在第一时刻,可以在第一时钟域处接收公共定时参考信号(SysRef),并且可以将延迟标记输入到将第一时钟域耦合第二时钟域到的先入先出数据结构(FIFO)中。在第二时刻,可以在第二时钟域处接收SysRef,并且可以在第二时钟域处启动定时器。在第三时刻,可以在第二时钟域从FIFO接收延迟标记,并且可以在最终计数时停止计数器。可以基于最终计数以及第二时刻和第一时刻之间的差异来确定FIFO延迟。(A method and apparatus for tracking delay in a signal transmitted from a first clock domain to a second clock domain is disclosed. For example, at a first time, a common timing reference signal (SysRef) may be received at a first clock domain, and a delay marker may be input into a first-in-first-out data structure (FIFO) that couples the first clock domain to a second clock domain. At a second time, SysRef may be received at the second clock domain and a timer may be started at the second clock domain. At a third time, a delay marker may be received from the FIFO at the second clock domain, and the counter may be stopped at the final count. The FIFO delay may be determined based on the final count and a difference between the second time and the first time.)

跨时钟域的延迟同步

行政权利

本发明部分地受到国防高级研究计划局授予的HR0011-16-3-0004号协议的行政支持。政府拥有本发明的某些权利。

技术领域

本公开的多方面一般涉及集成电路,具体涉及包括多个时钟域的系统中的延迟。

背景技术

结合多个数据转换器(例如模数转换器ADC和/或数模转换器ADC等)的电路可能需要数据流的精确同步,以及相关数据通路控制的同步控制。这种同步对于确保确定性地应用数据流处理可能是必要的。然而,这种电路可能包括许多独立的时钟域。这些时钟域之间的数据传输可能使定时同步复杂化。可能需要确保跨越这些独立时钟域的数据流的同步及减少延迟(latency)。

发明内容

本发明内容是为了以简化的形式介绍下面在

具体实施方式

中进一步描述的一些概念。本发明内容不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在限制所要求保护的主题的范围。

本发明公开的多方面涉及跟踪从第一时钟域发送到第二时钟域的信号中的延时。在一个示例中,公开了一种方法。该方法可以包括,在第一时刻,在第一时钟域接收公共定时参考信号(SysRef),并将延迟标记输入到将第一时钟域耦合到第二时钟域的先进先出数据结构(FIFO)中;在第二时刻,在第二时钟域接收SysRef并启动第二时钟域处的计数器;在第三时刻,从第二时钟域处的FIFO接收延迟标记,并在最终计数时停止计数器;并根据最终计数和第二时刻与第一时刻之间的差异确定FIFO延迟。

在另一个示例中,公开了一种延迟确定电路。该延迟确定电路可以包括第一时钟域上的发射器和第二时钟域上的接收器,接收器包括计数器和将第一时钟域耦合到第二时钟域的先入先出数据结构(FIFO)。发射器被配置为在第一时刻接收公共定时参考信号(SysRef)并将延迟标记输入FIFO。接收器被配置为:在第二时刻,接收SysRef并启动计数器。接收器还可以被进一步配置为:在第三时刻,从FIFO接收延迟标记,并在最终计数时停止计数器。然后,接收器根据最终计数和第二时刻与第一时刻之间的差异,确定FIFO延迟。

在另一个示例中,公开了一种延迟确定电路。该延迟确定电路可以包括一个或多个处理器以及一个存储器。存储器可以包含指令,当由一个或多个处理器执行时,指令使得延迟确定电路执行操作,该操作包括:在第一时刻,在第一时钟域接收公共定时参考信号(SysRef),并将延迟标记输入到将第一时钟域耦合到第二时钟域的先进先出数据结构(FIFO)中;在第二时刻,在第二时钟域接收SysRef并启动计数器;在第三时刻,在第二时钟域从FIFO接收延迟标记,并在最终计数时停止计数器,并根据最终计数和第二时刻与第一时刻之间的差异确定FIFO延迟。

附图说明

示例实施例通过示例的方式示出,其目的不是为了受到附图的限制。类似的数字在整个附图和说明书中涉及相同的元素。

图1示出了从第一时钟域到第二时钟域的示例数据流程,其可以实现本发明公开的一些方面。

图2示出了根据一些实施例实施的示例系统200,其可以跟踪从第一时钟域发送到第二时钟域的信号的延时。

图3A-3D示出了根据一些实施例实施的先进先出数据结构(FIFO)的部分,其中读指针可以正向或负向偏移以补偿FIFO延迟的不匹配。

图4是描述根据一些实施例实施的用于跟踪从第一时钟域发送到第二时钟域的信号中的延时的示例操作的说明性的流程图。

图5是示出在多个数据转换器中的每一个处接收SysRef的框图,其可以实现本发明公开的一些方面。

图6是根据一些实施例实施的PDL设置图,其示出了优选PDL值的选择。

图7A-7D示出了根据一些实施例实施的用于为多个数据转换器选择延时值的示例方法。

图8是描述根据一些实施例实施的用于对齐多个独立数据控制器的示例操作的说明性的流程图。

图9是根据一些实施例实施的示例时钟产生电路。

图10是描述根据一些实施例实施的用于产生具有可预测相位的时钟信号的示例操作的说明性的流程图。

具体实施方式

在以下说明中,阐述了许多具体细节以提供对本公开的透彻理解,如特定组件、电路和处理过程的示例。这里使用的术语“耦合”意味着直接耦合到或通过一个或多个中间组件或电路耦合。而且,在以下说明中,出于解释的目的,阐述了具体的术语和/或细节以提供对示例实施例的透彻理解。然而,对于本领域技术人员来说显而易见的是,可能不需要这些具体细节来实现示例实施例。在其他情况下,以框图形式示出了公知的电路和设备以避免使本发明公开意思模糊。本文描述的各种总线上提供的任何信号可以与其他信号时分复用并且通过一个或多个公共总线提供。另外,电路元件或软件块之间的互连可以显示为总线或单个信号线。每个总线可以替代地是单个信号线,并且每个单个信号线可以替代地是总线,并且单个线路或总线可以表示用于组件之间的通信的大量物理或逻辑机制中的任何一个或多个。示例实施例不应被解释为限于本文描述的特定示例,而是在其范围内包括由所附权利要求限定的所有实施例。

如上所述,数据流的精确同步在结合多个数据转换器(例如ADC和DAC)的电路中可能是重要的,在该电路中,数据流从一个时钟域跨越到另一个时钟域。这种跨越可以称为时钟域跨越或CDC。可以使用一个或多个先进先出数据结构(FIFO’s)或弹性缓冲器来提供这种同步。然而,使用这种电路元件可能引入延迟不确定性。例如,FIFO’s或弹性缓冲器可能表现出不同的延迟。JESD204B标准是作为解决该问题的一种手段而开发的。JESD204B标准的一个方面是公共定时参考信号的引入,称为SysRef。SysRef可以是提供给每个时钟域的周期信号,并且可以允许从一个时钟域上的发射器(TX)到不同时钟域上的接收器(RX)的数据传输,使得传输具有确定性延迟。

通常可以使用许多方法来提供该确定性延迟。例如,图1示出了用于确保从第一时钟域101到第二时钟域102的数据传输中的确定性延迟的系统100。更具体地,系统100可以包括第一时钟域101中的发射器(TX)110,其可以在数据流103中传输数据到第二时钟域102中的接收器(RX)。TX和RX中的每一个都可以接收公共定时参考信号SysRef。在TX 110处,预定数据字(data word)可以与SysRef相关联。例如,将该数据字表示为W0,即在时刻t0由TX110写入的数据字。在RX 120处,可以丢弃数据字直到接收到预定数据字W0。然后,可以填充RX 120的弹性缓冲器121,使得W0是添加到弹性缓冲器121的第一数据字。然后,RX 120可以在与SysRef相关联的时刻t1开始从弹性缓冲器121读取。例如,t1可以是SysRef信号的分数或整数个周期。因为在与SysRef相关联的时刻t0,在TX 110处写入W0,并且随后在另一个也与SysRef相关联的时刻t1,在RX 120处读取W0,所以总系统延迟可以是可预测的。然而,这种方法可能有几个缺点。例如,弹性缓冲器121必须能够包含从W0到达RX 120时到t1之间的所有TX数据。因为必须选择t1在RX 120的W0最新可能到达的时间之后,所以这样的弹性缓冲器可能很大,并且因此可能显著增加系统的功率和面积。此外,因为在这种方法中整个系统延迟是(t1-t0),这种方法直接增加了系统延迟。这种增加的功率/面积和增加的延迟可能是不可接受的。

因此,示例实施例提供用于将第一时钟域耦合到第二时钟域的FIFO或缓冲器中的延迟的确定。更具体地,示例实施例可以通过使用***的延迟标记来确定将第一时钟域耦合到第二时钟域的FIFO的延迟。图2示出了根据一些实施例实施的示例系统200,其可以跟踪从第一时钟域发送到第二时钟域的信号中的延时(delay)。需要注意的是,系统200可以耦合在第一时钟域和第二时钟域之间。数据发射器可以在第一时钟域中,并且可以将数据传输到第二时钟域中的接收器。为简单起见,发射器、接收器和数据流未在图2中示出,以聚焦于延迟的确定。如图2所示,TX时钟201可以是用于第一时钟域上的数据发射器的时钟,而RX时钟202可以是用于第二时钟域上的接收器的时钟。第一和第二时钟域中的每一个都可以接收SysRef 203。在第一时刻t1,在TX处接收SysRef。例如,可以使用TX触发器210在时刻t1生成信号,TX触发器210可以由TX时钟201计时。在时刻t1,可以将延迟标记***FIFO 220中。例如,延迟标记可以是预定信号,例如预定数据字。此外,在第二时钟域中,可以在第二时刻t2接收SysRef。例如,可以使用RX触发器230在第二时刻t2生成信号,RX触发器230可以由RX时钟202计时。在第二时刻t2,可以在计数器240处开始计数。FIFO 220可以以延时τ表征,其可以表示与FIFO 220相关联的延迟。在第三时刻t3,可以从FIFO 220读取延迟标记。在该第三时刻t3,可以在计数器240处停止计数。然后,计数器240处的计数可以反映第二时刻和第三时刻之间的经过时间的测量。然后可以基于计数器的最终计数值以及第一时刻和第二时刻确定FIFO的延迟τ。换一种说法:

tcount=t3-t2=t1+τ-t2

∴τ=tcount+(t2-t1)

其中tcount是计数器240的最终计数值。当测量该延迟时,可以通过添加适当数量的延时周期来补偿它(例如使用延时缓冲器或其他合适的延时电路)。或者,如下面进一步讨论的,可以通过调整FIFO本身中的一个或多个读指针位置来补偿延时。

示例实施例可以确定每一个将第一时钟域耦合到另一个时钟域的FIFO的FIFO延迟。例如,多个数据转换器可以各自耦合到一个接收器,如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。这种数据转换器通常用于涉及多输入多输出(MIMO)通信、波束成形、相控阵雷达等应用中。因为每个将接收器耦合到相应数据转换器的FIFO可能具有不同的FIFO延迟,所以示例实施例允许独立地确定每个FIFO延迟。此外,因为与图1中描述的方法相比,示例实施例需要的数据缓冲明显更少,并因此可以从相应的时间、功率和面积的减少中受益。

需要注意的是,当FIFO被配置为在每个时钟周期中使用多个读和写字时,确定FIFO延迟可能会稍微复杂一些。因此,在一些示例实施例中,这可以通过确保延迟标记被配置为仅标记单个预定字来补偿。例如,对于每个写时钟写入Nw个字且每个读时钟从Nr个字读取的FIFO,延迟标记可以标记Nw个字中的预定一个,例如第一个字W0。如上所述,该标记的字仍可以在第一时刻被***FIFO。然而,虽然若干周期后标记的字仍将与读时钟同步,但第三时刻不足以通过这样的多字FIFO测量延迟。相应地,在一些实施例中,可以确定修改的计数器值以用于测量延迟。更具体地,修改的计数器值可以给出为Nr*tcount+MarkedWordIndex,其中MarkedWordIndex是第一时刻在FIFO的读取侧***FIFO的标记的字的索引。

除了对齐数据之外,通常还需要在数据转换器之间同步数据通路控制的其他方面。例如,可以同步数控振荡器(NCO)复位时刻。对于采用JESD204B标准的系统或使用外部公共定时参考信号的另一种方案,可以通过使用SysRef在数据通路中发出事件来实现这种同步。但是,使用SysRef发出这样的一次性事件信号可能会导致产生其他错误。例如,可以从对齐后的SysRef漂移中引入不一致的延迟。与干净地产生和捕获这样的一次性事件信号有关的其他问题(例如由于信号完整性或随着接收和捕获事件信号的其他问题)可能发生。

在一些示例实施例中,FIFO可以被配置为将同步事件与数据一起传递,而不是使用SysRef来发出这样的事件。例如,用于确定FIFO延迟的上述延迟标记可以是诸如可以与数据一起传递的同步事件的示例。将这样的同步事件与数据一起传递可以允许同步操作,该操作对齐数据以确保事件的延迟与对齐数据的延迟匹配。将该同步事件与数据一起传递可以允许事件随着确定性的和数据对齐的延迟一起传播。此外,将事件信号与数据一起传递可以避免与SysRef漂移一起的,以及与当SysRef用于发出事件时可能导致的事件产生和捕获相关的上述问题。

如上所述,一些示例数据转换器可以包括DAC和ADC。例如,与DAC一起使用的实施例中,可以通过将数据总线加宽一位,以结合用于事件标记的位,而将同步事件与该数据一起传递。当数据和事件从FIFO中读出时,它们可以选择性地同步延时多个读时钟周期,以允许事件被延时以供随后的应用。例如,考虑所测量的延迟,这种延时可用于同步跨多个数据转换器的事件的应用。

对于ADC,传递事件更复杂,因为事件必须与数据的方向相反地传递。对于包含ADC的示例实施例,ADC的一个或多个FIFO指针可用于建立逆流传输。使用这样的FIFO指针来设置逆流传输可以允许事件以可预测的延迟传播。例如,传播到ADC中的事件的延迟可以匹配FIFO深度减去流数据的延迟。

如上所述,虽然在一些实施例中,补偿所确定的FIFO延迟可以包括在FIFO外部添加适当数量的延时周期。在一些其他实施例中,可以通过调整FIFO本身中的一个或多个读指针位置来补偿FIFO延迟。这样的实施例可以允许在不使用诸如延时缓冲器的附加电路的情况下补偿所确定的延迟。调整FIFO的读指针还可以允许单独补偿每个FIFO延迟,这可以补偿系统中每个FIFO之间的延迟的变化。例如,接收器可以经由多个FIFO耦合到多个数据转换器中的每一个。对这些FIFO中的每一个的读指针进行操作可以允许FIFO延迟的变化在每个FIFO处被单独补偿。

FIFO之间的延迟变化的一个来源涉及FIFO指针如何从重置条件中释放。图3A示出了根据一些实施例实施的FIFO的一部分300A,其中可以调整读指针以补偿FIFO延迟的不匹配。需要注意的是,虽然FIFO的一部分300A仅包括标记为0-7的8个数据位置,但是示例实施例可以与具有任意数个数据位置的FIFO一起使用。如图3A所示,写指针310A可指向数据位置,数据接下来(例如通过图1的TX 110)将被写入FIFO该数据位置中。读指针320A可以指向数据位置,该数据位置中的数据接下来(例如通过图1的RX 120)要从FIFO读取。需要注意的是,图3A示出了FIFO复位后不久的FIFO的一部分300A。在FIFO复位时,写指针310A和读指针320A均可以位于FIFO的位置0处。写指针310可以首先与数据从其被写入FIFO的时钟域同步的复位释放——例如,图2的TX时钟201。图3A示出了在已经释放写指针之后不久,但是在读指针320A已经从复位释放之前的FIFO的一部分300A。

随后,可以将信号从写指针的时钟域传输到读指针的时钟域,以从复位释放读指针。可以使用数据再同步器来执行该信号传输,因为两个时钟域是异步的。此释放所需的读取域时钟周期数的变化可能导致不同FIFO之间的FIFO延迟变化。图3B示出了根据一些实施例实施的FIFO的一部分300B。如图3B所示,不仅写指针310B已从复位释放,而且读指针320B也已被释放。

如上所述,示例实施例可以通过经由FIFO传递延迟标记来确定FIFO延迟,例如,如上述图2中所讨论的示例。在确定该FIFO延迟之后,在一些实施例中,读指针可以正向或负向偏移,以便补偿FIFO延迟中的已确定的差异。正向偏移读指针可以是其与写指针的距离已经以正向偏移增加的读指针。换句话说,这种正向偏移对应于增加的延时,并且可以用于代替向电路增加外部延时。图3C示出了根据一些实施例实施的FIFO的一部分300C,其中读指针已被正向偏移。如图3C所示,虽然与写指针310B的位置相比写指针310C未改变,但是读指针已经从写指针310C处正向偏移并位于偏移读位置330处,而不是位于默认读位置320C。这种正向偏移可用于确保多个数据转换器中的每一个都被同步。例如,如果三个数据转换器各自耦合到接收器,并且第一个数据转换器具有比其他两个数据转换器小一个读取时钟周期的FIFO延迟,则可以将正向偏移添加到第一个数据转换器的FIFO以确保每个数据转换器具有相同的延迟。

虽然可以使用正向读指针偏移来补偿FIFO延迟中的差异,但是它们使电路增加了额外的延时,这可能是不希望出现的。一些其他实施例可以负向偏移读指针以便补偿FIFO延迟的不匹配,而不是正向偏移读指针。例如,图3D示出了根据一些实施例实施的FIFO的一部分300D,其中读指针已被负向偏移。如图3D所示,虽然写指针310D与写指针310B的位置相比未改变,但读指针已经从写指针310D处负向偏移并且位于偏移读指针位置340处,而不是位于默认读指针位置320D。这种负向偏移可用于确保多个数据转换器中的每一个都被同步而不增加电路的延时。例如,如果三个数据转换器各自耦合到接收器,并且第一数据转换器具有比第二和第三数据转换器小一个读取时钟周期的FIFO延迟,第二和第三数据转换器可以负向偏移其FIFO读指针位置以匹配低延迟的第一数据转换器,而不是正向偏移第一数据转换器的FIFO。因此,可以同步三个数据转换器中的每一个而不会给电路引入额外的延迟。需要注意的是,应该在读指针和写指针之间保持间距,以避免破坏数据流。因此,可能存在最大允许的负向读指针偏移,以便确保该间距。

图4是根据一些实施例实施的用于跟踪从第一时钟域发送到第二时钟域的信号的示例操作400的说明性的流程图。操作400可以通过任何合适的设备(例如图1中的TX 110或RX 120)、通过图2的系统200、或使用其他合适的设备执行。第一时钟域可以包括将数据发送到包括在第二时钟域上的一个或多个数据转换器的设备。如图4所示,在第一时刻,可以在第一时钟域处接收公共定时参考信号(SysRef),并且可以将延迟标记输入到将第一时钟域耦合到第二时钟域的FIFO(402)。在第二时刻,可以在第二时钟域处接收SysRef并启动在第二时钟域的计数器(404)。在第三时刻,可以从第二时钟域处的FIFO接收延迟标记,并且可以在最终计数时停止计数器(406)。然后可以基于最终计数和第二时刻与第一时刻之间的差异,确定FIFO延迟(408)。

如上所述,诸如MIMO、波束成形、相控阵雷达等的应用可能需要使用多个数据转换器,并且流入到这些数据转换器的数据是对齐的。例如,这种数据转换器可以使用JESD204B标准,并且可以使用SysRef信号来同步它们各自的独立时钟域。为了在这些数据转换器中使用SysRef,必须在每个数据转换器处同步接收信号。可能出现的一个问题是数据转换器的本地时钟可能具有边沿,例如上升沿,其与SysRef信号的接收同时发生。例如,当时钟边沿与SysRef信号的接收同时发生时,亚稳态可能阻止数据转换器同步捕获SysRef。由于数据转换器位于独立的时钟域中,因此这些时钟边沿的定时可能因数据转换器而异。相应地,每个数据转换器可以设置延时,例如使用可编程延时线(PDL),以延时SysRef的接收以确保其被同步捕获。然而,因为SysRef用于数据转换器之间的同步,所以希望每个数据转换器的延时设置相似,使得SysRef接收的定时的差距最小化,同时确保同步的SysRef捕获。相应地,一些示例实施例允许为多个数据转换器中的每一个选择适当的延时设置。

图5是示出在多个数据转换器中的每一个处接收SysRef的框图500。需要注意的是,虽然图5示出了三个数据转换器,示例实施例也可以与任何数量的数据转换器一起使用。如图5所示,可以根据相应的延时501(1)-501(3)在每个数据转换器510(1)-510(3)处接收SysRef。如上所述,数据转换器510(1)-510(3)中的每一个可以具有独立确定的时钟信号,导致数据转换器之间的在关于哪些延时设置允许同步捕获SysRef上的差异。

相应地,示例实施例允许控制器针对每个数据转换器确定一组延时值(例如一组PDL设置),在该延时值下可以同步捕获SysRef。该控制器可以位于这些数据转换器之一上,或者可以替代地位于数据转换器的外部。因此,延时设置可以存储在例如硬件中、软件程序中,或者存储在耦合到数据转换器的应用程序或其他软件工具中。数据转换器可以循环通过每个延时值以确定同步捕获SysRef的一组延时值。如果延时值由PDL提供,则数据转换器可以循环通过每个PDL值并确定同步捕获SysRef的一组PDL值。在一些示例中,PDL值可以包括128个不同的值,或者另外的合适个数的延时值。

图6是根据一些实施方式的延时设置图600,其示出了对优选延时值的选择。如图6所示,延时图610描述了延时设置的范围,以及该范围中的每个延时设置是否允许同步捕获SysRef。图6中的每个框表示一种延时设置,并且标记为“A”的框对应于能同步捕获SysRef的延时设置,而标记为“B”的框对应于不能同步捕获SysRef的延时设置。因此,延时图610包括其中SysRef可以被同步捕获的三个连续范围的延时值——范围620、630和640。从这些连续范围的延时值中,可以选择一组优选延时值。例如,可以从每个连续范围的延时值中选择中心延时值,从而得到一组优选的延时值。例如,可以从延时范围620中选择第一优选延时值650,而可以分别从延时范围630和640中选择第二和第三优选延时值660和670。在图6和图7A-7D中,具有白色背景的延时设置(例如延时设置650)可以对应于是优选延时设置的延时设置。

在确定能同步捕获SysRef的一组延时设置,并选择优选的一组延时值之后,可以为多个数据转换器中的每一个选择优选的延时值,例如每个数据转换器510(1)-510(3)。例如,图7A示出了根据一些实施例实施的用于为多个数据转换器中的每一个选择延时值的示例方法700A。针对三个数据转换器中的每一个示出延时图。因此,延时图710、720和730是用于分别对应的第一、第二和第三数据转换器的延时图。关于方法700A,可以选择最接近中心点701的延时值作为每个数据转换器的延时。因此,可以选择第一选择延时711A作为延时图710的优选延时值,其最接近中心点701。类似地,可以从延时图720和730中选择第二选择延时721A和第三选择延时731A。需要注意的是,虽然每个所选择的延时是最接近中心点701的优选延时值,但是对于多个数据转换器,所选择的延时之间可能存在显著差异。例如,9个延时值将第二选择延时721A和第三选择延时731A分离。这可能是不希望发生的。这种分离可能通过在数据转换器接收SysRef的时刻中引入差距的方式损害数据转换器的同步。

图7B示出了根据一些实施例实施的用于为多个数据转换器选择延时值的另一示例方法700B。如图7B所示,对于第一数据转换器,可以选择最接近中心点701的优选延时值。因此,可以从第一数据转换器的延时图710中选择第一选择延时711B。然后,对于每个后续的数据转换器,所选择的延时可以是最接近先前选择的延时的优选延时值。因此,可以为第二数据转换器选择第二选择延时721B,因为它是最靠近第一选择延时711B的PDL图720中的优选延时值。然后,可以为第三数据转换器选择第三选择延时731B,因为它是它是最靠近第二选择延时721B的延时图730中的优选延时值。需要注意的是,与方法700A相比,方法700B可以使得所选择的延时值之间的变化较小。然而,虽然方法700B可以最小化随后选择的延时之间的差异(例如在第二选择延时和第三选择延时之间),该方法不考虑所选择的延时值的总跨度。例如,虽然第三选择延时731B是与第二选择延时721B最接近的优选延时值,但是在第一选择延时711B和第二选择延时721B之间PDL图730中存在另一个优选延时值,其可以使得所选延时之间的变化更小。

图7C展示根据一些实施例实施的用于为多个数据转换器选择延时值的另一示例方法700C。方法700C选择每个后续延时以最小化所选择的延时之间的总体变化。更具体地,如图7C所示,与方法700A-700B一样,第一数据转换器的所选延时可以是最接近中心点701的优选延时,换句话说,为第一数据转换器选择第一延时711C。对于每个后续数据转换器,选择延时以最小化所选延时之间的总体变化。该总体变化可以称为延时跨度或延时范围。因此,第二选择延时721C是最接近第一选择延时711C的延时图720的优选延时值,第三选择延时731C是延时图730的最小化所选延时之间的延时范围的优选延时值。更具体地,在延时图730的在中心点701右侧的两个优选延时值中,最右边的那个导致三个数据转换器中的延时范围为6,而第三选择延时731C导致的延时范围仅为4。因此,方法700C允许延时范围最小化,从而使数据转换器之间的SysRef接收能更好地同步。

在一些实施例中,可存储先前使用的延时值,且用于改进后续延时值的选择。例如,可能存在一组已知的合格延时值,已知这些延时值先前已导致数据控制器之间的合格对齐。在已知这样的一组已知合格延时值的示例实施例中,可以至少部分地基于这些已知的合格延时值来选取后续选择的延时值。例如,图7D示出了根据一些实施例实施的用于基于一组已知的合格延时值来选择多个数据转换器的延时值的方法700D。在图7D中,具有深灰色背景的每个框表示已知的合格延时值,因此,图7D示出了第一已知合格延时值712D、第二已知合格延时值722D和第三已知合格延时值732D。与方法700A-700C一样,可以选择第一数据转换器的延时值作为最接近中心点701的优选延时值。因此,可以为第一数据转换器选择第一选择延时711D。需要注意的是,第一选择延时711D具有比第一已知合格延时值712D小1的值。对于第二数据转换器,选择优选延时值,使得第一和第二所选延时值711D和721D之间的相对差异尽可能近地匹配第一和第二已知合格延时值712D和722D之间的相对差异。因此,由于第一和第二已知合格延时值712D和722D之间的相对差异是4个延时设置,因此为第二数据转换器选择延时以匹配该相对差异。因此,选择第二选择延时721D,因为第一选择延时711D和第二选择延时721D之间的相对差异与该相对差异匹配。类似地,对于第三数据转换器,选择优选延时值,使得第二和第三选定延时721D和731D之间的相对差异与第二和第三已知合格延时值722D和732D之间的相对差异相匹配。因此,由于第二和第三已知合格延时值722D和732D之间的相对差异是(-3),所以选择第三延时值731D以尽可能近地匹配该相对距离。该算法可以针对包括多于三个附加数据转换器的实施例类似地进行。

在一些实施例中,当不存储已知的合格延时值时,方法700C可以最先被使用。例如,当系统最初通电时,没有存储已知的合格延时值,并且方法700C可以用于选择延时值。在选择延时值之后,它们可以由控制器存储以供将来使用,作为已知合格延时值的集合。当随后选择延时值时,可以使用已知的合格延时值,例如在方法700D中用于选择延时。

图8是描述根据一些实施例实施的用于对齐多个独立数据转换器的示例操作800的说明性的流程图。操作800可以由多个数据转换器的控制器执行。如图8所示,每个数据转换器可以:根据相应的延时接收公共定时参考信号(SysRef)(802);确定在数据转换器处同步捕获SysRef的一组本地延时值(804);并确定优选延时值群,其包括所确定的一组本地延时值的子集(806)。对于第一数据转换器,可以从对应的第一优选延时值群中选择第一延时值(808)。对于每个其他的数据转换器,可以从相应的优选延时值群中选择延时值(810)。

如上所述,使用多个数据转换器(例如ADC和DAC)的应用可能需要数据流的精确同步和数据通路逻辑的同步控制,以确保数据流处理是确定性的。因为数据转换器可以在独立的时钟域上,所以可以使用诸如SysRef的公共定时参考信号来确保时钟域之间的数据传输具有确定性的延迟。然而,当数据转换器基于低频参考时钟本地地生成时钟时(例如使用锁相环或其他时钟倍频器),可能导致非确定性相位。

例如,考虑两个数据转换器,每个数据转换器使用PLL独立地产生时钟。每个数据转换器可以接收200MHz参考时钟信号和SysRef。每个PLL可以将200MHz参考时钟倍频到12GHz,然后除以2以产生6GHz信号。即使数据转换器和参考信号两者都匹配,每个PLL中的分频器也可能反相位通电,并导致两个数据转换器的采样时钟反相位相差180度。相应地,期望确保在数据转换器中本地生成的时钟的确定性相位。包括本地时钟生成的许多数据转换器不解决这种不确定性,并且虽然一些其他数据转换器认识到需要以确定性相位生成时钟,它们也经常具有局限性。例如,一些设备可能仅为具有规定的分频比、倍频比或输入/输出频率比的分频器提供确定性相位。

相应地,通过使用SysRef确定一个或多个同步分频器复位信号,示例实施例可以允许时钟产生电路在没有这些限制的情况下提供确定性相位,下文将进一步讨论。

图9展示根据一些实施例实施的示例时钟产生电路900。如图9所示,参考频率信号901和公共定时参考信号(SysRef)902可以输入到时钟产生电路900,时钟产生电路900还可以包括参考分频器(divider)910、参考采样器915、倍频器920、输出分频器930和输出采样器935。更具体地,参考频率信号901可以被提供给参考分频器910,并且分频的参考信号可以被提供给倍频器920,其可以包括一个或多个PLL或时钟倍频器。可以将倍频的信号提供给输出分频器930,输出分频器930可以输出输出频率信号903。为了确保输出频率信号903中的可预测相位,时钟产生电路900可以使用SysRef 902来为参考分频器910和输出分频器930中的每个生成同步复位脉冲。更具体地,时钟产生电路900可以使用参考采样器915和输出采样器935来确定同步复位脉冲。参考采样器915可以使用参考频率信号901对SysRef902进行采样,以产生用于复位参考分频器910的第一同步复位脉冲。然后可以将分频参考信号的相位锁定到SysRef 902。因此,之后倍频器920的输出可以具有可预测的相位。然后,输出采样器935可以使用倍频器920的输出对SysRef 902进行采样,以产生用于复位输出分频器930的第二同步复位脉冲。因此,输出频率信号903的相位也可以锁定到SysRef 902。换句话说,如时钟产生电路900所示,同步复位参考分频器910和输出分频器930确保了输出频率903的相位是可预测的,并锁定到SysRef 902。需要注意的是,尽管在图9中参考采样器915和输出采样器935作为触发器示出,在其他实施例中,这些设备可以包括用于对SysRef902进行采样的其他设备。

需要注意的是,时钟产生电路900中示出的实施例不限于与指定的分频比、倍频器比或输入/输出频率比一起使用,作为一些传统的数据转换器时钟产生电路。此外,尽管图9示出了倍频器和分频器的特定布置,其他实施例可以与包含示例同步分频器复位的倍频器和分频器的任何布置一起使用。

图10是描述用于产生时钟信号的示例操作1000的说明性的流程图。操作1000可以由任何合适的数据转换器执行,例如包含如图9所示的时钟产生电路900的数据转换器。参考图10,可以接收参考时钟信号(1002)。还可以接收公共定时参考信号(SysRef)(1004)。可以使用一个或多个分频器和一个或多个倍频器产生时钟信号(1006)。通过至少部分地基于SysRef同步地重置一个或多个分频器中的每一个,可以调整时钟信号以具有可预测的相位(1008)。

所属领域的技术人员将了解,可使用各种不同技术和方法来表示信息和信号。例如,在整个以上描述中可能涉及的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任意组合表示。

此外,所属领域的技术人员将了解,结合本文中所揭示的多方面而描述的各种说明性逻辑块、模块、电路和算法步骤可以电子硬件、计算机软件或两者的组合来实施。为了清楚地说明硬件和软件的这种可互换性,上面已经在功能方面对各种说明性的组件、块、模块、电路和步骤进行了总体描述。将此功能性以硬件还是软件实施取决于特定应用和整个系统的设计局限。技术人员可以针对每个特定应用以不同方式实施所描述的功能,但是这种实施决定不应被解释为导致超出本发明公开的范围的实施。

结合本文中所揭示的多方面而描述的方法、序列或算法可直接实施于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可以存储在RAM锁存器、闪存锁存器、ROM锁存器、PROM锁存器、EEPROM锁存器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中已知的任何其他形式的存储介质中。示例存储介质耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在替代方案中,存储介质可以是处理器的组成部分。

在前述说明书中,已经参考其具体示例实施例对示例实施例进行了描述。然而,显而易见的是,在不脱离如所附权利要求中阐述的本发明公开的更宽范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应被视为说明性意义而非限制性意义。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:复杂可程序逻辑装置及其运作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!