高分辨率相位检测器的制造方法

文档序号:7542850阅读:166来源:国知局
高分辨率相位检测器的制造方法
【专利摘要】提供了高分辨率相位检测器。提供了用于时钟相位检测的方法和系统。生成第一时钟信号的经延迟版本的集合。第一时钟的经延迟版本的集合用来将第二时钟信号采样,在与第一时钟信号相对应的域中产生采样的序列。在采样的序列内定位至少一个边沿指示。
【专利说明】高分辨率相位检测器【技术领域】
[0001]本发明涉及电路,并且更具体地,涉及时钟相位检测。
【背景技术】
[0002]许多数字系统具有多个时钟域。因此,当信号从一个时钟域移动到另一个时钟域时,其必须被同步以避免亚稳定性和同步失败。如果两个时钟具有固定的频率,那么两个时钟之间的相位关系是周期性的,以两个时钟的拍频。通过利用该周期性的相位关系,周期性的同步器能够比不得不处置跨时钟中的至少一个以可变频率运行的时钟域的同步器更简单、具有更低时延和更低的故障概率。
[0003]当时钟中的至少一个以可变频率运行时,同步器的设计更复杂。典型地,使用异步的先入先出(FIFO)利用周期性的时钟来同步时钟域之间的信号传递。FIFO存储器引发大量面积开销。FIFO还添加延迟的若干循环作为格雷码输入,并且FIFO的输出指针必须通过多个触发器来同步以可靠地跨时钟域传送信号。
[0004]因此存在对于解决与现有技术相关联的这些和/或其他问题的需求。

【发明内容】

[0005]提供了用于时钟相位检测的方法和系统。生成第一时钟信号的经延迟版本的集合。第一时钟的经延迟版本的集合用来将第二时钟信号采样,在与第一时钟信号相对应的域中产生第二时钟采样的序列。在第二时钟采样的序列内定位至少一个边沿指示。
【专利附图】

【附图说明】
[0006]图1A示出根据一个实施例的、用于在时钟信号采样的序列内定位边沿指示的方法的流程图。
[0007]图1B示出根据一个实施例的、用于使用边沿指示来检测相位的方法的流程图。
[0008]图2A示出根据一个实施例的高分辨率相位检测器。
[0009]图2B示出根据一个实施例的、图2A的时钟延迟单元。
[0010]图2C示出根据一个实施例的、图2A的时钟采样单元。
[0011]图2D示出根据一个实施例的、图2A的边沿检测单元。
[0012]图2E示出根据一个实施例的、图2A的相位单元。
[0013]图2F示出根据一个实施例的、图2A的周期单元。
[0014]图3A示出根据一个实施例的、两个时钟信号的波形。
[0015]图3B示出根据一个实施例的、两个时钟信号的其他波形。
[0016]图4示出根据一个实施例的、用于确定相位和周期的方法的流程图。
[0017]图5A示出根据一个 实施例的另一高分辨率相位检测器。
[0018]图5B示出根据一个实施例的、图5A的开环时钟延迟单元。
[0019]图5C示出根据一个实施例的、图5A的时钟采样单元。[0020]图?示出根据一个实施例的、图5A的周期计算单元。
[0021]图5E示出根据一个实施例的、图5A的相位单元。
[0022]图5F示出根据一个实施例的、图5A的周期单元。
[0023]图5G示出根据一个实施例的、用于确定相位和周期的方法的另一流程图。
[0024]图6A示出其中可实现各先前实施例的各架构和/或功能性的示例性集成电路。
[0025]图6B示出其中可实现各先前实施例的各架构和/或功能性的示例性系统。
【具体实施方式】
[0026]智能手机、平板电脑、膝上型电脑和其他移动设备中使用的处理器有时降低提供给一个或多个集成电路设备的供电电压以降低功耗并延长电池再充电之间的时间。集成电路设备还可基于不同运行模式改变对设备内的不同电路的电源电压电平。随着电源电压电平的降低,取决于特定电源电压电平的任何时钟信号可以以较低频率运行。当电源电压电平增加时,时钟信号的频率也增加。因为时钟频率可根据电源电压电平而变化,所以无法依靠依赖不同时钟域之间的固定关系的常规同步技术用于在时钟中的至少一个具有可变频率的时钟域之间传送信号。
[0027]虽然时钟频率可响应于变化的电源电压电平而变化,但是本文所描述的技术也可应用到时钟频率出于其他原因而变化的情况。例如,时钟频率可随着温度变化而变化或作为编程的结果而变化。
[0028]关于本描述,第一时钟域是信号可从其中所采样的任何类型的系统的时钟域。例如,第一时钟域可以是中央处理单元(CPU)、图形处理单元(GPU)、存储器控制器和/或具有时钟域的任何其他系统的时钟域。第一时钟域可包括具有特定频率或可以变化的频率的第一时钟信号。第二时钟域可包括具有特定频率或可以变化的频率的第二时钟信号。从第二域传送到第一域的信号被同步到第一时钟域。
[0029]低时延同步器可被设计为使用两个时钟域之间的相对相位,而不是使用使用异步的先入先出缓冲区(FIFO)在时钟域之间传递信号的常规同步器。假定第一时钟信号在接收时钟域中并且第二时钟信号在传送时钟域中,相对相位用来确定传送时钟域中的信号何时可在接收时钟域中被采样。本文所进一步描述的高分辨率相位检测器可配置为当一个或两个时钟信号具有变化的频率时跟踪频率瞬态并生成两个时钟域之间的相对相位和周期。高分辨率相位检测器使用是本地或接收的时钟(clkr)的第一时钟信号并从传送时钟域(clkt)接受第二时钟信号。高分辨率相位检测器输出将相位值(Phase)和周期值(Period)编码的两个信号。phase值表示在clkr单位区间(UI)从clkt上的最后的跃迁到clkr上的最后的跃迁的时间。period值表示在clkr UI在clkt上的最后两次跃迁之间的时间。
[0030]图1A示出根据一个实施例的、用于在时钟信号采样的序列内定位边沿指示的方法100的流程图。在步骤105,生成第一时钟信号的经延迟版本的集合。第一时钟信号的每个经延迟版本是第一时钟信号的不同相位。在步骤110,使用第一时钟信号的经延迟版本的集合将第二时钟信号采样以在第一时钟域中产生采样的序列。随后,在步骤115,在采样的序列内,至少一个边沿指示被定位。边沿指示是采样的序列中的采样的上升或下降的跃迁。至少一个边沿指示可用来计算相位和周期值。
[0031]图1B示出根据一个实施例的、用于使用边沿指示检测相位的方法130的流程图。完成步骤105、110和115以提供至少一个边沿指示。在步骤120,处理最新的边沿指示以计算表示第二时钟信号相对于第一时钟信号的的相位的相位值。在步骤125,处理两个最新的边沿指示以计算表示第二时钟信号和第一时钟信号之间的相对周期的周期值。
[0032]图2A示出根据一个实施例的高分辨率相位检测器200。高分辨率相位检测器200包括时钟延迟单元210、时钟采样单元220、边沿检测单元230、相位单元240和周期单元250。高分辨率相位检测器200接收第一时钟信号Clk201以及第二时钟信号Clk202,并生成两个值,phase (相位)203和period (周期)204。phase203和period204值每个由多位信号编码。phase203的值表不第二时钟相对于第一时钟的相位。period204的值表不第二时钟和第一时钟之间的相对周期。第一时钟和第二时钟中的至少一个可随时间变化。高分辨率相位检测器200被设计为随着第一时钟和/或第二时钟的频率变化连续地测量相位和周期。
[0033]图2B示出根据一个实施例的、图2A的时钟延迟单元210。一系列N个延迟元件211产生N个均匀分布的不同时钟相位、Clk201的经延迟版本,具体为Clk_dO、Clk_dl、Clk_d2、Clk_d3、…Clk_dN。相位比较器215将延迟配置为延迟元件211按其延迟各自的输入信号(Clk201和Clk201的经延迟版本),以确保时钟相位跨越Clk201的一个周期,即使得Clk201=Clk_d0与Clk_dN具有相同相位。因为相位比较器215控制由延迟元件211所引入的延迟,所以时钟延迟单元210是闭环延迟电路。可通过增加由时钟延迟单元210所生成的Clk201的经延迟版本的数目来增加高分辨率相位检测器200的分辨率。
[0034]图2C是根据一个实施例的、图2A的时钟采样单元220。时钟采样单元220包括多个触发器222和相对应的多个同步器224。时钟采样单元220接收由时钟延迟单元210所生成的Clk201的经延迟版本并在Clk201的域中产生第二时钟信号Clk202的采样的序列。Clk201的每个经延迟版本,Clk_dO、Clk_dl、…Clk_dN用来将Clk202采样,在触发器222的输出产生采样的序列225。采样225随后被同步器224重新定时(以将采样225与Clk201对齐)和同步(因为Cl`k202是异步信号),以产生Clk202的采样的序列,Clk_sO、Clk_sl、Clk_s2、Clk_s3、…Clk_sN。同步器224典型地包括一个或多个触发器、数量足够多以达到低同步故障概率。例如,串行的4或5个触发器使故障概率小于10_4°。
[0035]图2D示出根据一个实施例的、图2A的边沿检测单元230。边沿检测单元230包括AND (与)门231的阵列、边沿标识单元232、和多个编码器234。边沿检测单元230接收由时钟采样单元220所产生的采样的序列Clk_sO、Clk_sl、…Clk_sN。采样的序列Clk_s0、Clk_sl、…Clk_sN被输入到AND门231的阵列以在采样的序列内定位边沿指示,例如上升的跃迁。换句话说,AND门231的阵列检测由第一时钟信号Clk201所采样的第二时钟信号Clk202的上升沿。在一个实施例中,边沿检测单元230可配置为定位是下降的跃迁或下降和上升的跃迁二者的边沿指示。
[0036]如果在Clk201的经延迟版本elicit和Clldi之间出现Clk202的上升沿,那么跃迁信号233ti=Clk_si和~Clk_SH的一个或多个位为真,其中i范围从O到 N。例如,对于i范围从O到N=8,当在Clk_d3和Clk_d4之间出现Clk202的上升沿并且在Clk_d7和Clk_d8之间出现Clk202的下降沿时,Clk_Si信号是000011110并且跃迁信号233将值000010001编码。如果位中的任何一个为真,那么跃迁信号233ti被输入到边沿标识单元232,边沿标识单元232在跃迁信号233的序列中找到为真的第一位和为真的第二位(从tN开始)。为真的第一位和为真的第二位的独热(one-hot)编码在依次被编码器234编码成m=log2 (N) -bit (位)的二进制信号 first235 和 second237 的信号 first_oh 和 second_oh上输出。跃迁信号233和/或first_oh和second_oh信号可被视为边沿指示。first235和seCond237值被编码为信号并指示边沿指示的定位,作为自tN的第一和第二跃迁分别出现的若干位位置。例如,当跃迁信号233将值000010001编码时,first235和second237的值分别是000000001和000010000。信号分别将也由编码器234所产生的值first_v236和second_v238编码以指示是否找到第一和第二跃迁。
[0037]图2E示出根据一个实施例的、图2A的相位单元240。相位单元240从边沿检测单元230接收值first235和first_v236并生成相位203值。相位单元240包括相位寄存器244、增量器242和多路复用器246。如果检测到跃迁,例如f irst_v236被确立(为真),那么first235等于相位值。first235是从Clk201的上升沿到Clk202的最新跃迁的测量(以时间为单位)。当first_v236被确立时,多路复用器246选择first235值作为输出一下一相位。当未检测到跃迁时,例如first_v236未被确立,那么多路复用器246选择incrementedphase (经增量的相位)245作为下一相位。incremented phase245值由增量器242计算为相位203增量ONE。常量ONE表示Clk201的一个周期。
[0038]next_phase值输入到输出phase203信号的相位寄存器244。可转译下面的代码(Verilog)以生成在相位单元240中示出的逻辑的至少一部分,具体来讲,以将输入(next_phase)提供给相位寄存器244:
[0039]assign next_phase=first_v?first:phase+'ONE;
[0040]图2F示出根据一个实施例的、图2A的周期单元250。周期单元250包括周期寄存器254、减法器252和两个多路复用器256和258。周期单元250从边沿检测单元230接收 first235、first_v 236、second237 和 second_v238 并从相位单兀 240 接收 incrementedphase245并生成period204输出信号。如果检测到第二跃迁,例如second_v238被确立(为真),那么second235等于周期值。如果未检测到跃迁,例如f irst_v236和second_v238均未被确立,那么next_period(和period204)不改变。否则,如果检测到两个跃迁,例如first_v236和second_v238均被确立,那么next_period通过从先前跃迁的相位second237减去first235来计算。如果仅检测到一个跃迁,例如first_v236被确立,那么next_period通过从先前跃迁的相位incremented phase245减去f irst235来计算。换句话说,如果在Clk201的相同周期中检测到第二跃迁,那么从最后跃迁的相位SeCond237中减去当前相位first235,否则,从最后跃迁的相位incremented phase245中减去当前相位first235。
[0041]当检测到第二跃迁时,也检测到第一跃迁。当SeCOnd_v238被确立时,多路复用器256选择second237值作为减法器252的输入。当未检测到第二跃迁时,多路复用器256选择incremented phase245作为减法器252的输入。减法器从输入减去first235值以生成输出。当检测到第一跃迁时,多路复用器258选择减法器252的输出作为下一周期。否则,多路复用器258选择周期寄存器254的输出作为下一周期并且periOd204值不改变。
[0042]可转译下面的Verilog以生成周期单元250中示出的逻辑的至少一部分,具体来讲以将输入(next_period)提供给周期寄存器254:
[0043]assign next—period=first_v?
[0044](second—v?second:(phase+'ONE))-first): period;[0045]next_period值被输入到输出period204信号的周期寄存器254。
[0046]在一个实施例中,当Clk201是IGHz并且延迟元件211可被跨工艺电压温度变化修整到62.5ns时,N=16并且m=4,并且常量ONE是010000。当N的值是2的幂时由边沿检测单元230所实施的计算被简化。phase203和period204用二进制点右边的m个位以固定点表示法(fixed-point notation)来表示。相位寄存器244和周期寄存器254需要包括足够的位以将Clk202的最大可能周期编码。例如,如果最慢可能Clk202具有比Clk201的周期长5倍的周期,那么要求二进制点左边的三个位。
[0047]由于重新定时和同步所要求的延迟,phase203和period204的值反映已过去固定数目的Clk202循环的Clk201的相位和周期。例如当同步器224具有四个循环的延迟并且由触发器222引入一个循环的重新定时延迟时,phase203和period204值表示已过去五个Clk201循环的Clk202的状态。使用period204 (以及period204可能的衍生物)预测在Clk201的下一循环的、Clk202的相位的快速同步器设计一向前预测Clk201的六个循环。
[0048]图3A示出根据一个实施例的、两个时钟信号Clk201和Clk202的波形。第二时钟Clk202的频率比第一时钟Clk201的频率快。信号从与Clk202相对应的第二时钟域传送到与Clk201相对应的第一时钟域。如所示,Clk202的周期302比Clk201的周期301短。因此,应通过边沿检测单元230在每个时钟周期301内检测用于Clk202的至少一个边沿指示。如所示,Clk202的两个边沿出现在周期301内。在时钟201的最新的边沿305,与周期301内的第一边沿指示相对应的first235值通过边沿检测单元230来计算。在时钟201的最新的边沿305,与周期301内的第二边沿指示相对应的SeCond237值也通过边沿检测单元230来计算。
[0049]在一个实施例中,边沿检测单元230配置为计算与第三边沿指示相对应的第三值。第三值可用来计算当Clk201和Clk202中的至少一个正在平滑改变时相对周期的斜率。斜率可由同步单元用来预测未来相位和未来周期的更精确的值。提前一个或多个时钟预测phase203和period204的值是有用的,因为由于高频相位检测器200的时延,当前phase203和period204对于过去的Clk201的若干时钟循环是有效的。
[0050]图3B示出根据一个实施例的、两个时钟信号Clk201和Clk202的波形的另一示例。传送时钟Clk202的频率比接收时钟Clk201的频率慢。如所示,Clk202的周期312比Clk201的周期311长。因此,在Clk201的一些周期期间,边沿检测单元230可能检测不到用于Clk202的边沿指示。
[0051]在最旧的边沿323,与在周期312的开始的第一边沿指示相对应的first310值由边沿检测单元230来定位并且f irst235-B值由边沿检测单元230来计算。在该示例中假定first235-B值等于延迟211的7个单位。因此,下一相位由相位单元240设定为7并且下一周期被计算为与N=16加和的phase203和first310之间的差。phase203和period204在时钟边沿324更新。在下一边沿324,没有边沿指示由边沿检测单元230来定位,并且下一相位由相位单元240更新为增加了 N=16的phase203,使得phase203更新到7+16=23。period204 未改变。
[0052]在最新的边沿325,与在周期312的结束的另一第一边沿指示相对应的first235-A值由边沿检测单元230来定位并且first235_A由边沿检测单元230来计算。在该示例中假定该附加的first235-A值等于延迟211的6个单位。因此,下一相位由相位单元240设定为6并且下一周期被计算为与N=16加和的phase203与first235_A之间的差,即 23+16-6=33。phase203 和 period204 在时钟边沿 325 更新。
[0053]图4示出根据一个实施例的、用于确定phase203和period204的方法400的流程图。在步骤405,Clk201的经延迟版本的集合由时钟延迟单元210来生成。在步骤410,由时钟采样单元220使用Clk201的经延迟版本的集合来将Clk202采样,以在Clk201的域中产生采样的序列225。随后,在步骤415,边沿检测单元230定位采样的序列225内的任何边沿,例如上升、下降、或上升和下降。
[0054]在步骤420,相位单元240确定边沿检测单元230是否检测到第一边沿指示,并且如果否,那么在步骤425phase203更新到增加了 Clk201的一个周期的phase203,例如phase+ONE。当边沿检测单元230未检测到第一边沿指示时,period204不改变。否则,当检测到第一边沿指示时,在步骤430,相位单元240将phase203设定为等于由边沿检测单元230生成的first235信号。在步骤435,周期单元250确定边沿检测单元230是否检测到第二边沿指示,并且如果是,那么在步骤440周期单元250将period204设定为等于second237信号。否则,在步骤445,周期单元250将period204更新到phase203与Clk201的一个周期的和与first235信号之间的差。
[0055]图5A示出根据一个实施例的高分辨率相位检测器500。高分辨率相位检测器500包括开环时钟延迟单元510、时钟采样单元220、时钟采样单元520、边沿检测单元230、周期计算单元530、相位单元540以及周期单元550。高分辨率相位检测器500接收第一时钟Clk201以及第二时钟Clk202,并生成两个值phase503和period504。
[0056]图5B不出根据一个实施例的、图5A的开环时钟延迟单兀510。与闻分辨率相位检测器200相比,开环时钟延迟单元510在高分辨率相位检测器500中替换了时钟延迟单元210。一系列的N个延迟元`件511产生N个时钟相位,例如Clk202的经延迟版本,具体为Clk_dO、Clk_dl、Clk_d2、Clk_d3、…Clk_dN。不同于时钟延迟单元210,N个时钟相位不必均匀分布,因为开环时钟延迟单元510不包括相位比较器215来控制延迟元件511中的每一个将Clk202延迟的量以生成Clk202的经延迟版本。延迟元件511的数目应足够高,使得Clk202的至少一个周期被采样。
[0057]图5C示出根据一个实施例的、图5A的时钟采样单元520。时钟采样单元520包括多个触发器522。时钟采样单元520接收由时钟延迟单元210生成的Clk201的经延迟版本并产生第一时钟信号Clk201的采样的序列。实施将第一时钟信号采样来计算以由一个延迟元件511所引入的延迟为单位的Clk201的周期。每个时钟相位Clk_d0、Clk_dl、…Clk_dN用来将Clk201采样,在触发器522的输出产生第一时钟采样的序列,例如Clk_pl、Clk_p2、Clk_p3、…Clk_pN。
[0058]图示出根据一个实施例的、图5A的周期计算单元530。周期计算单元530包括AND门531的阵列、边沿标识单元532以及编码器534。周期计算单元530接收由时钟采样单元520所产生的第一时钟采样Clk_pl、Clk_p2、…Clk_pN的序列。第一时钟采样Clk_p1、Clk_p2、…Clk_pN的序列被输入到AND门531的阵列,以定位第一时钟采样的序列内的上升的跃迁,例如边沿。换句话说,AND门531检测由第一时钟信号201的经延迟版本所采样的第一时钟信号201的上升沿。AND门531生成可用来计算Clk201的周期的跃迁信号533。接收Clk_pl和Clk_p2中的至少一个的AND门531可被边沿标识单元532忽略以确保不将亚稳定的信号采样。在一个实施例中,周期计算单元530可配置为定位下降的跃迁或下降和上升的跃迁二者。
[0059]如果Clk201的上升沿出现在Clk201的经延迟版本CIIcIh和Clldi之间,那么跃迁信号SSSti=Cll^pi和~CII^Ph的一个或多个位为真,其中i范围从O到N。跃迁信号533\被输入到在跃迁信号533的序列中找到第一个I (其中I是为真的位)的边沿标识单元532。在其处检测到第一边沿的位置的二进制编码是rperiod535—以一个延迟511的延迟为单位的Clk301的周期。
[0060]图5E示出根据一个实施例的、图5A的相位单元540。相位单元540包括相位寄存器544、加法器542、多路复用器546以及相位除法器548。相位单元540从边沿检测单元230接收first235和first_v236并从周期计算单兀530接收rperiod535并生成phase503输出信号。在相位单元540中使用值rperiod535代替相位单元240中的常量ONE。并且,由相位单元540所产生的相位的值除以rperiod535用于由快速周期性同步器使用。
[0061]first235是从Clk201的上升沿到Clk202的最新跃迁的测量(以时间为单位)。如果检测到跃迁,例如first_v236被确立,那么first235给定相位值。当first_v236被确立时,多路复用器546选择first235值作为输出,即下一相位。当未检测到跃迁时,例如first_v236未被确立,多路复用器546选择incremented phase (经增量的相位)545作为下一相位。incremented phase545值由加法器542计算为增加了 rperiod535的预除法器相位。
[0062]next_phase值被输入到输出预除法器相位信号的相位寄存器544。可转译下面的Verilog以生成相位单元540中示出的逻辑的至少一部分,具体来讲以将输入(next_phase)提供给相位寄存器544:
[0063]assign next_phase=first_v?first:`[0064]predivider_phase+rperiod;
[0065]相位寄存器544的输出,例如预除法器相位,在相位除法器548内除以rperiod535以产生phase503值。
[0066]图5F示出根据一个实施例的、图5A的周期单元550。周期单元550包括周期寄存器554、减法器557、两个多路复用器556、多路复用器558以及除法器552。周期单元550从边沿检测单兀 230 接收 first235、first_v236、second237 以及 second_v238,从周期计算单兀530接收rperiod535,以及从相位单兀540接收incremented phase545并生成period504输出信号。
[0067]如果没有跃迁被检测到,例如first_v236和second_v238 二者均未被确立,那么next_period (和period504)不改变。否则,如果检测到两个跃迁,例如first_v236和second_v 二者均被确立,那么通过从先前跃迁的相位second237减去first235来计算next_period。如果仅检测到一个跃迁,例如first_v236被确立,那么通过从先前跃迁的相位即incremented phase545减去first235来计算next_period。换句话说,从最后跃迁的相位一如果在Clk201的相同周期中检测到第二跃迁那么从SeCond237、否则从incremented phase545中减去当前相位first235。用于除法器548和552的位的数目通过rperiod535中的位的数目来确定,例如如果N=16则4位。注意,N可以是任何整数值。
[0068]当检测到第二跃迁时,也检测到第一跃迁。当SeCOnd_v238被确立时,多路复用器556选择second237值作为到减法器557的输入。当未检测到第二跃迁时,多路复用器556选择incremented phase245作为到减法器557的输入。减法器从输入减去first235值以生成输出。当检测到第一跃迁时,多路复用器558选择减法器252的输出作为下一周期。否贝丨J,多路复用器558选择周期寄存器554的输出作为下一周期并且period504值不改变。
[0069]可转译下面的Verilog以生成周期单元550中所示出的逻辑的至少一部分,具体来讲以将输入(next_peri0d)提供给周期寄存器554:
[0070]assign next_period=first_v?
[0071](second_v?second:(phase+rperiod))-first): period;
[0072]next_period值被输入到周期寄存器544。周期寄存器544的输出,例如预除法器周期,在周期除法器552内除以rperiod535以产生period504值。
[0073]图5G示出根据一个实施例的、用于使用开环高分辨率相位检测器500确定phase503和period504的方法560的另一流程图。在步骤565,Clk201的经延迟版本的集合由开环时钟延迟单元510来生成。在步骤570,由时钟采样单元220使用Clk201的经延迟版本的集合来将Clk202采样,以在Clk201的域中产生采样的序列225。随后,在步骤575,边沿检测单元230定位采样的序列225内的任何边沿,例如上升、下降、或上升和下降。
[0074]在步骤572,由时钟采样单元520使用Clk201的经延迟版本的集合将Clk201采样,以在Clk201的域中产生第一时钟采样的序列525。随后在步骤574,周期计算单元530定位第一时钟采样的序列525内的边沿,例如上升、下降、或上升和下降,并确定rperiod535,例如Clk201的周期。步骤572和574中的一个或多个可以与步骤570和575中的一个或多个并行地实施。
[0075]在步骤580,相位单元540确定边沿检测单元230是否检测到第一边沿指示,并且如果否,那么在步骤585,phase503更新到phase503增加Clk201的一个周期的和除以Clk201的一个周期,例如(phase+rperiod) /rperiod。当边沿检测单元230未检测到第一边沿指示时,period504不改变。否则,当检测到第一边沿指示时,在步骤590,相位单元540将phase503设定为等于由边沿检测单元230生成的first235信号除以rperiod535。在步骤595,周期单元550确定边沿检测单元230是否检测到第二边沿指示,并且如果是,那么在步骤598,周期单元550将period504设定为等于second237信号除以rperiod535。否则,在步骤598,周期单元550将period504更新到phase503和Clk201的一个周期的和与first235信号之间的差除以Clk201的一个周期(即rperiod535)。
[0076]图6A示出其中可实现各先前实施例的各架构和/或功能性的示例性集成电路设备650。集成电路设备650包括逻辑单元655、同步器660以及逻辑单元665。逻辑单元655接收时钟202并生成与时钟202同步的输出。输出由同步器660所接收并使用由高分辨率相位检测器200或500所计算的phase203和period204值从时钟202的时钟域被传送到时钟201的时钟域。同步到时钟201的时钟域的经传送的输出由逻辑单元665所接收。
[0077]图6B示出其中可实现各先前实施例的各架构和/或功能性的示例性系统600。如所示,提供了系统600,其包括至少一个连接到通信总线602的中央处理器601。可使用任何合适的协议来实现通信总线602,所述协议诸如PCI (外围部件互连)、PC1-ExpreSS、AGP (加速图形端口)、超传输、或任何其他总线或点对点通信协议。系统600还包括主存储器604。控制逻辑(软件)和数据存储在可采取随机存取存储器(RAM)形式的主存储器604中。[0078]系统600还包括输入设备612、图形处理器606、以及显示器608,即常规CRT (阴极射线管)、IXD (液晶显示器)、LED (发光二极管)、等离子显示器等等。可从输入设备612例如键盘、鼠标、触摸板、扩音器等等来接收用户输入。在一个实施例中,图形处理器606可包括多个着色器模块、光栅模块等。前述模块中的每一个实际上可位于单个半导体平台以形成图形处理单元(GPU)。
[0079]在本描述中,单个半导体平台可以指唯一单一的基于半导体的集成电路或芯片。应注意的是,术语单个半导体平台还可以指具有增加的连接性的多芯片模块,其仿真片上操作并在利用常规中央处理单元(CPU)和总线实现方案上做出大量改进。当然,各模块也可根据用户意愿分开安置或以半导体平台的各种组合来安置。图6B中所示出的集成电路中的一个或多个可包括高分辨率相位检测器200和/或500用于在不同时钟域之间传送信号。
[0080]系统600还可包括二级存储610。二级存储610包括例如硬盘驱动器和/或表示软盘驱动器、磁带驱动器、压缩光盘驱动器、数字通用光盘(DVD)驱动器、记录设备、通用串行总线(USB)闪存的可移动存储驱动器。可移动存储驱动器以公知的方式从可移动存储单元读或写到可移动存储单元。
[0081]计算机程序或计算机控制逻辑算法可存储在主存储器604和/或二级存储610中。这种计算机程序当被执行时使能系统600实施各种功能。存储器604、存储610和/或任何其他存储是计算机可读介质的可能的示例。
[0082]在一个实施例中,可在以下内容的上下文中实现各种先前图示的架构和/或功能性:中央处理器601、图形处理器606、具有中央处理器601和图形处理器606 二者的至少一部分能力的集成电路(未示出)、芯片集(即被设计为用于实施相关功能等的单元来工作和销售的集成电路组)和/或就此而言的任何其他集成电路。
[0083]并且,可在以下内容的上下文中实现各种先前图示的架构和/或功能性:通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、专用系统和/或任何其他期望的系统。例如,系统600可采取台式计算机、膝上型计算机、服务器、工作站、游戏控制台、嵌入式系统和/或任何其他类型的逻辑的形式。并且,系统600可采取各种其他设备的形式,包括但不限于个人数字助理(PDA )设备、移动电话设备、电视等。
[0084]进一步地,虽然未示出,但系统600可耦连到网络(例如电信网络、局域网(LAN)、无线网络、诸如互联网的广域网(WAN)、对等网络、电缆网络等等)用于通信目的。
[0085]虽然上文已描述各种实施例,但应理解的是,仅通过示例而非限制的方式对其加以呈现。因此,优选实施例的宽度和范围不应被任何上文所描述的示例性实施例所限制,而仅应根据下面的权利要求及其等同物来加以限定。
【权利要求】
1.一种方法,包括: 生成第一时钟信号的经延迟版本的集合; 使用所述第一时钟信号的经延迟版本的集合将第二时钟信号采样,以在与所述第一时钟信号相对应的域中产生第二时钟采样的序列;以及 在所述第二时钟采样的序列内定位至少一个边沿指示。
2.根据权利要求1所述的方法,其中所述第一时钟信号的经延迟版本的集合使用开路延迟环路来生成。
3.根据权利要求2所述的方法,进一步包括: 使用所述第一时钟信号的经延迟版本的集合将所述第一时钟信号采样,以在所述与所述第一时钟信号相对应的域中产生第一时钟采样的序列;以及 在所述第一时钟采样的序列内定位第一边沿指示。
4.根据权利要求3所述的方法,进一步包括基于所述第一时钟采样的序列内的所述第一边沿指示计算所述第一时钟信号的周期。
5.根据权利要求1所述的方法,进一步包括处理所述至少一个边沿指示以计算表示所述第二时钟信号相对于所述第一时钟信号的相位的相位值。
6.根据权利要求5所述的方法,其中所述至少一个边沿指示包括是最新的边沿的第一边沿,并且所述至少一个边沿指示的所述处理包括将下一相位值设定到所述第一边沿的定位。
7.根据权利要求5所述的方法,进一步包括: 生成所述第一时钟信号的经延迟版本的第二集合; 使用所述第一时钟信号的经延迟版本的第二集合将所述第二时钟信号采样,以在所述与所述第一时钟信号相对应的域中产生第二时钟采样的第二序列;以及 将下一相位值计算为所述相位值加上第二集合中的所述第一时钟信号的数个经延迟版本。
8.根据权利要求1所述的方法,进一步包括处理所述至少一个边沿指示以计算表示所述第二时钟信号和所述第一时钟信号之间的相对周期的周期值。
9.根据权利要求8所述的方法,其中所述至少一个边沿指示包括第一边沿和第二边沿,其中所述第一边沿比所述第二边沿更新,并且所述至少一个边沿指示以计算所述周期值的所述处理包括将下一周期值设定为所述第二边沿的定位。
10.根据权利要求8所述的方法,其中所述至少一个边沿指示包括仅第一边沿,并且进一步包括: 处理所述至少一个边沿指示以计算表示所述第二时钟信号相对于所述第一时钟信号的相位的相位值;以及 将下一周期值计算为所述相位值加上所述集合中的所述第一时钟信号的数个经延迟版本与所述第一边沿的定位之间的差。
11.根据权利要求1所述的方法,其中所述第一时钟信号的经延迟版本的集合使用闭合延迟环路来生成。
12.根据权利要求1所述的方法,进一步包括处理第一边沿指示和第二边沿指示以计算表示所述第二时钟信号和所述第一时钟信号之间的相对周期的周期值。
13.根据权利要求1所述的方法,其中所述第一时钟信号的频率随时间变化。
14.根据权利要求1所述的方法,其中所述第一时钟信号的所述频率响应于供电电压的变化而变化。
15.根据权利要求1所述的方法,其中所述第二时钟信号的频率随时间变化。
16.—种集成电路,包括: 第一电路,其运行在与第一时钟信号相对应的第一时钟域中; 第二电路,其运行在与第二时钟信号相对应的第二时钟域中; 相位检测器,其配置为: 生成所述第一时钟信号的经延迟版本的集合; 使用所述第一时钟信号的经延迟版本的集合将所述第二时钟信号采样,以在与所述第一时钟信号相对应的域中产生第二时钟米样的序列;以及在所述第二时钟采样的序列内定位至少一个边沿指示。
17.根据权利要求16所述的集成电路,其中所述相位检测器包括配置为生成所述第一时钟信号的经延迟版本的集合的开路延迟环路。
18.根据权利要求16所述的集成电路,其中所述相位检测器进一步配置为进一步处理所述至少一个边沿指示以计算表示所述第二时钟信号相对于所述第一时钟信号的相位的相位值。
19.根据权利要求16所述的集成电路,其中所述相位检测器进一步配置为处理所述至少一个边沿指示以计算表示所述第二时钟信号和所述第一时钟信号之间的相对周期的周期值。
20.根据权利要求16所述的集成电路,其中所述相位检测器包括配置为生成所述第一时钟信号的经延迟版本的集合的 闭合延迟环路。
【文档编号】H03L7/085GK103812474SQ201310556324
【公开日】2014年5月21日 申请日期:2013年11月11日 优先权日:2012年11月13日
【发明者】威廉·J·达利, 斯蒂芬·G·特尔 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1