快速时钟检测
背景技术
[0001] 大多数数字系统依靠时钟信号来运行。例如,几乎所有现代计算平台——例如,移动设备、台式计算机和数据中心中的机架式计算节点——都依赖于系统时钟信号来执行指令,从而使它们能够执行其预期功能。
[0002] 典型的时钟信号由一个包括石英晶体的电路生成,以确保非常准确和稳定的振荡。当正常工作时,如此产生的时钟信号在分别对应于“高”状态和“低”状态的两个相反状态相位之间振荡。通常情况下,时钟信号以固定的时钟频率振荡,其中一个振荡周期对应于一个固定的时钟时段,其持续时间取决于固定的时钟频率。在大多数系统中,时钟信号设计为以50%的占空比进行振荡。也就是说,在每个时钟周期内,时钟信号被设计为在一半的时钟时段内呈现稳定的高状态,而在另一半的时钟周期内呈现稳定的电平状态。这些状态以严格交替的方式从一个时钟周期重复到下一个时钟周期。在一些系统中,时钟信号可以设计为以50%以外的占空比振荡。
[0003] 在任何这样的系统中,当时钟完全停止振荡(时钟“停止”)时,会发生一种类型的时钟异常。另一种类型的时钟异常发生在时钟突然且暂时地表现出不同于预期占空比的占空比(时钟“毛刺(glitch)”)时。当时钟开始以比预期频率更高的频率(“快速时钟”)振荡时,会发生另一种类型的时钟异常。在数字系统中,任何这样的异常都会引起关注,因为它们的发生可能会导致系统出现意外行为,并可能对旨在利用时序的安全攻击造成漏洞。
[0004] 因此,希望检测时钟异常是否以及何时发生并对其作出快速反应。
附图说明
[0005] 图1是示出根据实施例的示例时钟异常检测系统的框图。
[0006] 图2是示出根据实施例利用图1的时钟异常检测系统的示例主机系统的框图。
[0007] 图3‑5是示出示例时钟信号的时序图。
[0008] 图6是示出根据实施例的时钟停止低检测器的框图。
[0009] 图7是示出根据实施例的时钟停止高检测器的框图。
[0010] 图8是示出根据实施例的利用图6的时钟停止低检测器和图7的时钟停止高检测器的时钟停止检测系统的框图。
[0011] 图9是示出利用图6的时钟停止低检测器实现的图7的时钟停止高检测器的示例性实施例的框图。
[0012] 图10是示出使用图7的时钟停止的高位检测器实现的图6的时钟停止的低位检测器的示例性实施方案的框图。
[0013] 图11是示出根据实施例的用于时钟异常检测的第一示例方法的流程图。
[0014] 图12是示出根据实施例的用于时钟异常检测的第二示例方法的流程图。
[0015] 图13是示出根据实施例的用于时钟异常检测的第三示例方法的流程图。
[0016] 图14是示出使用下降沿触发脉冲发生器实现的图6的时钟停止低检测器的示例性实施例的框图。
[0017] 图15是示出图14的实施例的操作的时序图。
[0018] 图16是示出使用上升沿触发脉冲发生器实现的图6的时钟停止低检测器的示例性实施例的框图。
[0019] 图17是示出图16的实施例的操作的时序图。
[0020] 图18和图19分别是示出在图14和图16的时钟停止低检测器的输出上可能发生假断言的第一条件和第二条件的时序图。
[0021] 图20是示出可以消除图18和图19的假断言的条件的时序图。
[0022] 图21和图22是示出图14和图16的时钟停止低检测器的示例性实施例的框图,每个时钟停止低检测器根据实施例使用高相位扩展器和时序约束的边沿触发脉冲发生器来实现。
[0023] 图23是示出图21和图22的实施例的操作的时序图。
[0024] 图24是示出根据实施例的高相位扩展器的示例实施方式的示意图。
[0025] 图25是示出图24的高相位扩展器的操作的时序图。
[0026] 图26是示出根据实施例的下降沿触发脉冲发生器的示例实施方式的示意图。
[0027] 图27是示出图26的下降沿触发脉冲发生器的操作的时序图。
[0028] 图28是示出根据实施例的上升沿触发脉冲发生器的示例实施方式的示意图。
[0029] 图29是示出图28的上升沿触发脉冲发生器的操作的时序图。
[0030] 图30是示出根据实施例的使用级联单位脉冲实现的示例下降沿触发脉冲发生器的框图。
[0031] 图31是示出图30的下降沿触发脉冲发生器的操作的时序图。
[0032] 图32是示出根据实施例的具有动态校准的示例时钟停止低检测器的框图。
[0033] 图33是示出根据实施例的具有动态校准的示例时钟停止高检测器的框图。
[0034] 图34是示出根据实施例使用图32和图33的检测器实现的具有动态校准的示例时钟停止检测系统的框图。
[0035] 图35是示出根据实施例的图32的下降沿触发脉冲发生器和校准单元的示例实施方式的框图。
[0036] 图36是示出图35的复位逻辑的示例实施方式的示意图。
[0037] 图37是示出图35的粘性逻辑的示例实施方式的示意图。
[0038] 图38是示出根据实施例的使用动态校准的用于时钟异常检测的示例方法的流程图。
[0039] 图39是示出根据实施例的图38的监测步骤的示例实施方式的流程图。
[0040] 图40是示出根据实施例的图38的测量步骤的示例实施方式的流程图。
[0041] 图41是示出根据实施例的用于生成定时脉冲的示例步骤序列的流程图。
[0042] 图42是示出适合于在一些实施例中使用的使用NFET和上拉电阻器实现的NOR门的示例类的示意图。
[0043] 图43是示出适合于在一些实施例中使用的使用PFET和NFET而不使用上拉电阻器实现的NOR门的示例类的示意图。
[0044] 图44是示出适合于在一些实施例中使用的使用NFET和上拉电阻器实现的反相器的示例类的示意图。
[0045] 图45是示出适合于在一些实施例中使用的使用PFET和NFET而不使用上拉电阻器实现的反相器的示例类的示意图。
[0046] 图46是示出根据实施例的示例快速时钟检测电路的框图,此处示出使用短低相位检测器实现。
[0047] 图47是示出根据实施例的示例快速时钟检测电路的框图,此处示出使用短高相位检测器实现。
[0048] 图48是示出根据实施例的示例快速时钟检测电路的框图,此处示出使用短低相位检测器和短高相位检测器来实现。
[0049] 图49和图50是分别示出短高相位检测器和短低相位检测器的框图,其中每个都使用另一个的实例来实现。
[0050] 图51是示出根据实施例的用于检测时钟信号中的快速时钟条件的示例方法的流程图。
[0051] 图52是示出根据实施例的示例方法的流程图,用于根据在图51中检测的快速时钟条件断言快速时钟检测信号。
[0052] 图53是示出根据实施例的用于响应于图52的快速时钟检测信号来复位子系统的示例方法的流程图。
[0053] 图54和图55是示意性地示出使用边沿触发脉冲发生器和与(AND)门实现的图46、图48或图49的短低相位检测器的框图。
[0054] 图56是示出图54和图55的短低相位检测器的功能的时序图。
[0055] 图57是示出根据实施例的结合动态校准的短低相位检测器的框图。
[0056] 图58是示出图57的脉冲选择逻辑的示例实施方式的逻辑图。
[0057] 图59是示出图58的三态单元的示例实施方式的逻辑图。
[0058] 图60是示出图57的错误检测逻辑的示例实施方式的逻辑图。
[0059] 图61是示出图60的错误检测逻辑的功能的时序图。
[0060] 图62是示出根据实施例的结合校准的短高相位检测器的框图。
[0061] 图63是示出图62的错误检测逻辑的示例实施方式的逻辑图。
[0062] 图64是示出根据实施例的快速时钟检测电路的框图,此处显示使用图57的校准的短低相位检测器和图62的校准的短高相位检测器实现。
[0063] 图65是示出对图57、图58和图62的脉冲选择逻辑的保护带修改的逻辑图。
[0064] 图66是示出图65的脉冲选择逻辑的一部分的简化实施方式的逻辑图。
[0065] 图67是用于结合保护带的实施例的示例快速时钟检测阈值的表格。
[0066] 图68是示出根据实施例的时钟异常检测电路的框图,此处示出使用快速时钟检测电路和时钟停止检测电路两者来实现。
[0067] 图69是示意性地示出图68的时钟异常检测电路的示例实施方式的框图,其中根据实施例将快速时钟检测电路与时钟停止检测电路组合。
具体实施方式
[0068] 术语
[0069] 本公开通过示例和说明的方式描述了多个实施例。其目的是所有描述的实施例的特征和特点可以按照与本文所包含的教导、建议和目标一致的任何方式进行组合。因此,诸如“在一个实施例中”、“在一个实施例中”等短语,当用于描述特定上下文中的实施例时,并不旨在将所描述的特征或特征仅限制于出现在该上下文中的实施例。
[0070] 短语“基于”或“至少部分地基于”指的是可以直接或间接用于做出某些决定或执行某些计算的一个或更多个输入。在此使用这些短语并不旨在排除在进行所述决定或执行所述计算时使用附加的或其他的输入。相反,如此描述的决定或计算可以仅基于所提及的输入或者基于那些输入以及其他输入。
[0071] 如本文所用的短语“配置为用于”、“可操作用于”等表示所引用的项目在操作时可以执行所描述的功能。在这个意义上,一个项目可以被“配置为用于”执行一个功能,或者可以“可操作用于”执行一个功能,即使在当该项目没有运行并且因此当前没有执行该功能时。在此使用短语“配置为用于”或“可操作用于”并不一定意味着所描述的项目已经以某种方式相对于先前状态进行了修改。
[0072] 如本文所用的“耦合”是指项目之间的连接。这种连接可以是直接的,也可以是通过与其他中间项目的连接而是间接的。
[0073] 本文使用的术语,例如“包括”、“包含”及其变体,意指“包括但不限于”。
[0074] 如本文所用的诸如“一(a)”、“一个(an)”和“该(the)”之类的用语旨在用作单数和复数指代物。因此,本文使用的词语“一”和“一个”通常可以解释为“一个或更多个”,并且本文使用的冠词“该”通常可以解释为“该一个或更多个”。
[0075] 如本文所使用的术语“断言”、“被断言”等是指对应于给定电路中的布尔“真”值的电压电平。这种电压电平可以是低电压电平或高电压电平,这取决于与特定电路有关的设计惯例。例如,在遵循“断言‑低”设计惯例的电路的上下文中,断言节点将对应于在节点上建立低电压电平。在遵循“断言‑高”设计惯例的电路中,情况则正好相反。断言‑低和断言‑高的设计惯例是相反的,但却是等同的。因此,本文根据一个这样的设计惯例提供的示例或描述应当被解释为同样适用于另一个设计惯例。
[0076] 时钟异常检测电路和主机系统
[0077] 图1是示出根据实施例的示例时钟异常检测电路100的框图。该电路具有时钟信号输入102,用于耦合到任何类型的时钟信号——例如,上面描述的那些时钟信号中的任何一个或下面关于图3‑5所描述的那些时钟信号中的任何一个。该电路耦合到如104所示的电源和如106所示的接地返回路径。电源为电路提供具有电源电压电平的电源电压,如图中用符号Vdd指示的。该电路提供异常检测输出108。时钟异常检测电路内的时钟停止检测逻辑(将在下文进一步描述)耦合到时钟信号输入并且可操作以响应于检测到时钟信号中的异常来断言异常检测输出。在各种实施例中,它可以这样做而不参考除了耦合到时钟信号输入的时钟信号之外的任何时钟。
[0078] 图2示出了根据实施例的利用图1的时钟异常检测系统的示例主机系统200。主机系统200可以对应于包括一个或更多个子系统(例如子系统1‑n)的任何系统,其响应于时钟信号102而操作。例如,任何子系统可以对应于中央处理单元(“CPU”),包括一个或更多个图形处理单元(“GPU”)的图形子系统、存储器控制器、或通常存在于计算设备或旨在与计算设备一起运作的附加卡或外设中的任何其他子系统。这种系统的时钟信号可以由容纳在主机系统内的晶体时钟电路202生成,或者时钟信号可以在别处生成并耦合到主机系统。每个子系统以及时钟异常检测电路都可以从公共Vdd节点或Vdd“轨(rail)”获取电力。
[0079] 在所示实施例中,在图中标记为“ad”的异常检测输出耦合到复位单元204的输入。
复位单元提供一个或更多个复位输出,在图中标记为rst1到rstn,其被耦合到子系统的复位输入。在这样的实施例中,复位单元操作以响应于异常检测输出的断言来断言复位输出。它可以以任何适当的方式这样做。在一些实施例中,它可以根据可能取决于子系统的类型及其互连的复位序列来这样做,以实现整个主机系统的受控复位。在其他实施例中,它可以同时断言每个复位输出。在更进一步的实施例中,异常检测输出可以替代地直接应用于任何一个或更多个子系统的复位输入。在任何这样的实施例中,每个子系统可以响应于其复位输入的断言而从操作状态转变到复位状态。异常检测输出或任何复位输出上的断言持续时间可能会根据给定主机系统的设计而有所不同。
[0080] 时钟信号术语
[0081] 诸如上述那些的时钟信号可以采取多种形式。出于解释的目的,图3‑5示出了几个示例时钟信号。时钟信号300、400、500中的每一个在正常操作期间呈现周期302、402、502。
一个时钟周期对应一个时钟周期长度(clock period)(“周期时间(cycle time)”)。如上所述,给定时钟信号的时钟周期长度或周期时间的持续时间取决于时钟信号振荡的频率。例
9 ‑9
如,以1GHz频率振荡的时钟信号呈现出每秒10个周期并且呈现出具有10 秒持续时间的时钟周期长度或周期时间。
[0082] 每个时钟周期包括两个相反状态的相位304/306、404/406、504/506。每个周期中的两个相位是相反状态的相位,即其中一个对应于具有“高”电压电平的时钟状态(“高相位”或“高时钟状态”),而另一个对应于具有“低”电压电平的时钟状态(“低相位”或“低时钟状态”)。如本文所用的,“高”和“低”是相对术语。高电压电平可以但不必基本等于Vdd,而低电压电平可以但不必基本等于接地。取决于用于给定数字系统的设计惯例,高电压电平可能对应于布尔“真”值,而低电压电平可能对应于布尔“假”值,反之亦然。
[0083] 时钟信号的每个相位都有一个起始或开始,并且每个相位都有一个结束。例如,相位304、404、504各自具有起始或开始308、408、508,并且各自具有结束310、410、510。类似地,相位306、406、506各自具有起始或开始310,410、510,并且每个都具有结束312、412、
512。
[0084] 如本文所使用的时钟“边沿”指的是时钟信号中从一个时钟状态到另一个时钟状态的转变。取决于对应的转变是从低状态到高状态(“上升沿”)还是从高状态到低状态(“下降沿”),时钟边沿可以具有两个方向之一。例如,时钟相位304、404的开始308、408各自对应于相应时钟信号的上升沿,而时钟相位304、404的结束310、410各自对应于相应时钟信号的下降沿。
[0085] 在相反状态相位之间振荡的时钟信号中,先前相位的结束可以等同于紧随先前相位的后续相位的开始或起始。在实施例中,可以使用多种技术来检测任何时钟相位的开始或起始,例如通过检测时钟边沿,或通过感测时钟信号中的高电压电平或低电压电平,或两者兼而有之。
[0086] 本文使用的短语“占空比”是指时钟信号的高相位持续时间与时钟信号的周期长度之间的比率。时钟信号300是具有50%占空比的时钟信号的示例,因为相反状态相位304、
306中的每一个具有相同的持续时间。因此,高相位304的持续时间是周期长度302的一半。
可以说时钟信号400具有70%的占空比,因为高相位404占据时钟周期长度402的70%。可以说时钟信号500具有30%的占空比,因为高相位506占据时钟周期长度502的30%。下面要描述的实施例可以与具有任何占空比的时钟信号一起使用。
[0087] 如本文所用的“相位实例”是指时钟信号的任何相位的任何一次出现。出于说明的目的,时钟信号300的六个相位实例在图3中被标记。高相位304代表时钟信号的第一相位实例,而低相位306代表时钟信号的第二相位实例。类似地,相位314、316、318和320分别代表时钟信号的第三、第四、第五和第六相位实例。在这个意义上,每个时钟信号包括一系列的时钟相位实例。此外,可以说相位304、314和318对应于时钟信号的高相位的第一、第二和第三实例,而相位306、316和320可以说对应于时钟信号的低相位的第一、第二和第三实例。
[0088] 时钟停止检测:示例结构和方法
[0089] 图6‑8是示意性地示出了上述时钟停止检测逻辑的若干示例实施方式的框图。
[0090] 在图6的示例中,时钟停止检测逻辑600是使用时钟停止低检测器602来实现的。时钟停止低检测器被耦合到时钟信号输入604并提供时钟停止低输出606。当检测器感测到时钟信号保持在低时钟状态的时间超过预期的低相位持续时间(时钟异常)时,时钟停止低输出被断言。在所示实施例中,时钟停止检测输出608直接耦合到时钟停止低输出。
[0091] 在图7的示例中,时钟停止检测逻辑700使用时钟停止高检测器702来实现。时钟停止高检测器被耦合到时钟信号输入704并提供时钟停止高输出706。当检测器感测到时钟信号保持在高时钟状态的时间超过预期的高相位持续时间(时钟异常)时,时钟停止高输出被断言。在所示实施例中,时钟停止检测输出708直接耦合到时钟停止高输出。
[0092] 如本领域技术人员将理解的,给定时钟信号的预期低相位持续时间或预期高相位持续时间将取决于时钟信号的时钟周期长度及其占空比。
[0093] 在图8的示例中,时钟停止检测逻辑800使用时钟停止低检测器602和时钟停止高检测器702两者来实现。与逻辑600和700一样,逻辑800具有时钟信号输入804和时钟停止检测输出808,但是逻辑800还包括用于基于时钟停止低检测器和时钟停止高检测器的相应输出断言时钟停止检测输出的电路。该电路可以以多种方式实现。在一些实施例中,它可以使用一个或更多个布尔逻辑电路来实现,该电路耦合到时钟停止低输出和时钟停止高输出并且被配置为在时钟停止低输出或时钟停止高输出中的任何一个被断言时,断言时钟停止检测输出。例如,布尔逻辑可以包括时钟停止低输出和时钟停止高输出的逻辑NOR或逻辑OR。
后一种实现方式在所示实施例中示出并且由OR门810表示。
[0094] 如本领域技术人员将理解的,可以以各种方式实现诸如检测器602的时钟停止低检测器和诸如检测器702的时钟停止高检测器。事实上,如果需要,一个可以使用另一个来实现。例如,如图9所示,时钟停止高检测器可以通过将时钟停止低检测器的时钟信号输入反相(如图中的反相器902所示),或者通过将时钟信号输入耦合到在别处产生的时钟信号的反相版本来实现。类似地,如图10所示,时钟停止低检测器可以通过将时钟停止高检测器的时钟信号输入反相(如图中的反相器1002所示),或者通过将时钟信号输入耦合到在别处产生的时钟信号的反相版本来实现。
[0095] 在各种实施例中,图6‑10的时钟停止检测输出中的任何一个都可以构成诸如图1‑
2所示的异常检测输出,因为它们中的每一个都响应于检测到至少一种类型的时钟异常而被断言。
[0096] 图11‑13是示出根据实施例的用于时钟异常检测的第一组示例方法的流程图。在一些实施例中,在图11‑13的方法中描述的一些或所有功能可以在硬件结构中实现,例如在本文描述的任何硬件结构中。在这样的实施例中,方法中描述的功能可以代表将由相应的硬件结构实现的行为。
[0097] 现在参考图11,方法1100开始于步骤1102,其中感测诸如上述任何那些的时钟信号。在步骤1104和1106中,响应于检测到时钟信号的低相位实例的开始,启动第一定时器。
如上所述,可以以多种方式检测低相位实例的开始。在所示实施例中,通过在步骤1104检测时钟信号的下降沿来检测低相位实例的开始。第一定时器的持续时间被设计为至少与低相位实例的预期持续时间一样长。在一些实施例中,第一定时器的持续时间可以基本上等于低相位实例的预期持续时间。在这些和其他实施例中,第一定时器的持续时间可以被设计为小于或等于时钟信号的周期时间的预期持续时间。在步骤1108和1110中,如果第一定时器在感测到低相位实例的结束之前到期,则断言时钟停止低检测信号。如上所述,可以以多种方式检测任何时钟相位的结束。在所示实施例中,通过在步骤1108检测时钟信号中的上升沿来检测低相位实例的结束。如果在第一定时器到期之前感测到低相位实例的结束,则该方法将在步骤1104继续进行。
[0098] 步骤1112‑1118类似于步骤1104‑1110,除了它们与时钟信号的高相位实例有关。
在步骤1112和1114中,响应于感测到时钟信号的高相位实例的开始,启动第二定时器。在所示实施例中,这通过在步骤1112中检测时钟信号的上升沿来实现。在步骤1116和1118中,如果第二定时器在感测到高相位实例的结束之前到期,则断言时钟停止高检测信号。在所示实施例中,通过在步骤1116检测时钟信号的下降沿来感测高相位实例的结束。如果在第二定时器到期之前感测到高相位实例的结束,则该方法在步骤1112继续进行。第二定时器的持续时间被设计为至少与高相位实例的预期持续时间一样长。在一些实施例中,第二定时器的持续时间可以基本上等于高相位实例的预期持续时间。在这些和其他实施例中,第二定时器的持续时间可以被设计为小于或等于时钟信号的周期时间的预期持续时间。
[0099] 在各种实施例中,方法1100可以仅包括步骤1104‑1110,或仅包括步骤1112‑1118。
在其他实施例中,可以包括两组步骤。在这样的实施例中,步骤1104‑1110可以与步骤1112‑
1118并发地执行,或者它们可以在步骤1112‑1118之前或之后执行。在任何这样的实施例中,由步骤1104‑1110检测到的低相位可以或可以不发生在与由步骤1112‑1118检测的高相位相同的时钟信号周期内。在预期时钟信号表现出50%占空比的实施例中,第一和第二定时器的持续时间可以相等。在更进一步的实施例中,第一定时器和第二定时器可以对应于相同的定时器。
[0100] 图12示出了根据实施例的用于时钟异常检测的另一示例方法1200。该方法开始于步骤1202,感测时钟停止低检测信号和时钟停止高检测信号,例如方法1100中描述的那些。
响应于感测时钟停止低检测信号的断言(步骤1204),该方法断言时钟停止检测信号(步骤
1208)。类似地,响应于感测到时钟停止高检测信号的断言(步骤1206),该方法断言时钟停止检测信号(步骤1208)。在各种实施例中,步骤1204和1206可以并发地执行,或者它们可以按顺序执行。
[0101] 图13示出了根据实施例的用于时钟异常检测的另一示例方法1300。该方法开始于步骤1302,感测诸如方法1200中描述的时钟停止检测信号。响应于感测到时钟停止检测信号的断言(步骤1304),该方法在步骤1306复位主机系统的一个或更多个子系统。这可以在各种实施例中以不同方式实现。例如,一个或更多个子系统可以由时钟停止检测信号直接复位,或者它们可以通过由时钟停止检测信号的断言激活的复位单元以更受控的方式复位。在更进一步的实施例中,可以组合方法1200和1300并且可以消除步骤1208、1302的时钟停止检测信号,使得该方法响应于步骤1204中描述的时钟停止低检测信号或步骤1206中描述的时钟停止高检测信号的断言而复位主机系统的一个或更多个子系统。
[0102] 脉冲持续时间作为定时器
[0103] 适用于实施例中的定时器可以以任何合适的方式实现。在一些实施例中,可以使用一个或更多个脉冲发生器来实现这样的定时器。在这些实施例中,启动定时器的步骤可以包括生成具有与定时器的期望持续时间相对应的持续时间的脉冲,并且确定定时器是否在时钟信号的给定相位实例结束之前到期的步骤已经发生的可以包括将脉冲的状态与时钟信号的状态进行比较(或者,取决于实施例并且在适当时,与时钟信号的反相、与时钟信号的相位扩展版本、或与相位时钟信号的反相的相位扩展版本相比较)。
[0104] 在后一类实施例中,可以使用一个或更多个边沿触发脉冲发生器和一个或更多个布尔逻辑电路来实现时钟停止低检测器或时钟停止高检测器或两者。为了说明这一点,下面的讨论将展示时钟停止低检测器的示例实施方式。本领域技术人员在参考了本公开内容后将理解相同或相似的原理也可以应用于实现时钟停止高检测器。此外,如本领域技术人员参考本公开内容的人将理解的,本文描述为利用一个或更多个下降沿触发脉冲发生器实现的任何实施例可等效地使用上升沿触发脉冲发生器来实现。
[0105] 现在参考图14,时钟停止低检测器1400包括下降沿触发脉冲发生器1402和布尔逻辑电路1404。如图所示,该检测器在其clk输入处耦合到时钟信号。当由时钟信号的下降沿触发时,脉冲发生器在脉冲输出1406处产生一个脉冲。如果时钟信号表现正常,则下降沿应标志着时钟信号的低相位实例的开始。脉冲发生器被设计成使得所产生脉冲的持续时间将至少与低相位实例的预期持续时间一样长。布尔逻辑电路(所示实施例中的NOR门)被配置为在时钟停止低输出1408处指示脉冲是否在时钟信号出现上升沿之前(即在触发脉冲的低相位实例结束之前)结束。
[0106] 检测器1400的行为在图15的时序图中示出。因为NOR门1404的一个输入被耦合到时钟信号,而NOR门的另一输入被耦合到边沿触发脉冲发生器的脉冲输出,只要时钟信号或脉冲输出为高,csl输出1408就保持为低。例如,时钟信号的下降沿1502触发脉冲1504。脉冲的持续时间至少与相位实例1506的预期正常持续时间一样长,因此脉冲输出至少保持为高直到出现上升沿1508,这表示低相位实例1506的结束。在正常时钟操作期间,时钟信号或输出脉冲中的至少一个将csl输出保持在其低、未断言状态。然而,在时间1510,时钟信号表现异常并保持在低相位的时间超过预期的低相位持续时间。在这种情况下,输出脉冲终止,而时钟信号保持在其低相位,如在1512处所能看到的。由于时钟信号和脉冲输出在时间1510之后均为低,因此NOR门在1514断言csl输出。
[0107] 图14的实施例的结构已经是作为示例方式而不是作为限制呈现的。在其他实施例中,可以使用不同的实现方式。例如,时钟停止低检测器也可以使用与图14所示不同的布尔逻辑来实现。例如,在采用断言低设计惯例的电路中,可以使用OR门代替NOR门。此外,这种检测器可以使用上升沿触发脉冲发生器而不是下降沿触发脉冲发生器来实现。图16提供了后一类实施例的说明性示例。
[0108] 现在参考图16,时钟停止低检测器1600与图14的实施方式类似,除了下降沿触发的脉冲发生器被替换为上升沿触发的脉冲发生器1602,以及除了上升沿触发的脉冲发生器的输入被耦合到时钟信号的反相版本而不是时钟信号,如反相器1607所表示。与实施例
1400一样,实施例1600有脉冲输出1606和csl输出1608。NOR门1604的一个输入被耦合到时钟信号,而NOR门的另一个输入被耦合到脉冲输出。
[0109] 检测器1600的行为在图17的时序图中示出。从时序图中可以看出,实施例1600以与实施例1400相同的方式起运作。时钟信号的下降沿1702等同于反相时钟信号中的上升沿
1703。上升沿1703触发输出脉冲1704,其持续时间至少与时钟信号的低相位实例1706的预期正常持续时间一样长。在时钟信号的正常操作期间,在脉冲输出保持为高时,将出现下一个上升沿,如1708所示。然而,如果时钟信号保持其低相位的时间超过预期时间,如时间
1710所示,输出脉冲将在时钟信号保持为低时终止,如1712所示。那时,NOR门1604将在1714处断言相应的csl输出,指示时钟异常。
[0110] 时钟停止检测:用于消除假断言的通用时序约束
[0111] 成功的实施例可以使用图14和图16的时钟停止检测器来设计,而不需要更多。然而,如果在此类实施例中未考虑某些时序变化,则可能导致在某些条件下发生不期望的行为。具体地,图18和图19的时序图示出了第一条件和第二条件,如果存在,它们可能会导致假断言发生在图14和图16的时钟停止低检测器中的任一个的输出上。
[0112] 如图18所示,第一条件发生在边沿触发脉冲发生器产生的脉冲持续时间短于相应时钟相位的预期正常持续时间时。例如,在图示中,时钟信号的下降沿1802导致由边沿触发脉冲发生器产生脉冲1804,但该脉冲的持续时间没有时钟信号的相应正常低相位1806那么长。结果是脉冲在时间1807结束,而时钟信号保持在其低相位。因此,时钟停止低信号在
1810处短暂变为高,直到时钟信号的下一相位的开始出现在时间1808。csl输出的这种短暂断言是假断言,因为断言发生在时钟信号表现正常时。
[0113] 如图19所示,第二条件发生在边沿触发脉冲发生器产生的脉冲开始相对于相应时钟相位的开始延迟时发生。例如,在图示中,时钟信号的下降沿1902(或者,在一些实施例中,更早的下降沿)导致产生脉冲1904,但相对于该脉冲应对应的相位1906的开始,该脉冲的开始被延迟了。在这种情况下,由于时钟信号和脉冲输出在时钟下降沿之后和脉冲开始之前的时间期间都为低电平,csl输出在1910被短暂地断言。这个短暂的断言也是假断言,因为当这个时序序列存在时,即使时钟信号表现正常,断言也会发生。
[0114] 图20的时序图示出了可用于消除图18和图19的假断言的一般时序约束,前提是确保约束拖延时钟异常检测器的所有预期操作条件。
[0115] 通过确保由边沿触发脉冲发生器产生的脉冲将至少与在时钟异常检测器的所有预期操作条件下的相应时钟相位的预期正常持续时间一样长,一般可以消除假断言1810。
这在图20中示出了,其中产生的脉冲2004的持续时间略长于时钟信号的相应正常低相位
2006的持续时间(见括号2005)。如果脉冲持续时间也小于所有预期操作条件下时钟信号的预期正常周期时间,那么当时钟信号的下一个下降沿发生在2009时,脉冲发生器将再次可用于生成新脉冲。在这些条件下消除假断言1810,因为当时钟信号表现正常时,时钟信号的下一相位将在2012开始,然后脉冲在2013终止。因此,NOR门1404或NOR门1604的输入中的至少一个将在任何具有正常持续时间的低相位实例结束时为高电平。
[0116] 假断言1910通常可以通过将时钟信号的相位扩展版本耦合到NOR门输入来消除,在图14和16的实施例中,NOR门输入直接耦合到时钟信号。时钟信号的相位扩展版本的示例由图20的时序图中的信号2014说明。相位扩展版本标记为“相位扩展clk”。所示的时钟信号的相位扩展版本与时钟信号相同,除了相位扩展时钟信号中的所有下降沿2003相对于时钟信号中的对应下降沿2002有所延迟(参见括号2005)。在应用这种方法的实施例中,NOR门的一个输入可能被耦合到脉冲输出,而另一个输入可能被耦合到时钟信号的相位扩展版本。
在这些条件下,将消除假断言1910,因为下降沿2003被延迟了足够长以允许相应的脉冲
2004开始的时间。因此,在任何低相位实例开始时,NOR门的至少一个输入将是高电平,这防止了假断言。
[0117] 当采用时,图20中所示出的定时保护装置有效地消除了图18‑19的假断言。然而,请注意,在输出脉冲显著长于相应时钟相位的预期持续时间的实施例中,可能会在检测到时钟异常之前引入等待时间(latency),如括号2015所示。能够减少或消除这种等待时间的实施例将在下面进一步的部分中描述。
[0118] 图21和图22中显示了以其他方式满足图20中说明的时序约束的两个示例性实施例。时钟停止低检测器2100和2200分别类似于时钟停止低检测器1400和1600,具有以下区别。首先,在实施例2100和2200的每一个中,都增加了高相位扩展器电路2101。其次,边沿触发脉冲发生器2102、2202中的每一个被设计为产生一个脉冲,在时钟异常检测器电路的所有预期操作条件下,该脉冲的持续时间至少与时钟信号的正常预期的低相位持续时间一样长,但不长于时钟信号的正常预期的周期时间。因此,边沿触发脉冲发生器是“时序约束的”。在这两个实施例中,高相位扩展器电路的输入被耦合到时钟信号输入,并且相位扩展器输出2103被耦合到NOR门(2104、2204)的顶部输入。因此,两个实施例都以图23的时序图所示出的方式运作。从时序图中可以看出,响应时钟信号的下降沿2302生成输出脉冲2300,但相位扩展器输出(clk’)在足够长以允许脉冲开始的时间内保持高电平,如括号2303所指示的。类似地,输出脉冲2300的终止的发生晚于正常低相位实例2306的终止的发生(见括号
2307),但在时钟信号的正常发生的下一个下降沿2308之前。
[0119] 图21‑22的实施例可有效地消除上述假断言,前提是它们在时钟异常检测器的所有预期操作条件下如所描述的那样起作用。然而,确保这种情况可能会带来与电路中所谓的“PVT变化”相关的某些挑战。为了解释这一点,现在将更详细地描述电路中PVT变化的概念。
[0120] PVT变化
[0121] 初始化“PVT”代表词语工艺、电压和温度。相位“PVT变化”是指所考虑的电路的相应三个条件中的任何一个或更多个的变化。
[0122] 工艺变化描述了由制造工艺生产的任何一个单元相对于由相同制造工艺生产的其他单元将表现出一些差异的现实。例如,半导体产品的一个副本中的一个或更多个晶体管或其他电路元件的物理尺寸可能与同一半导体产品的另一副本中的相应电路元件的尺寸略有不同。这些差异会对单个单元的操作产生微妙的影响。例如,工艺变化可能导致一个单元中的开关电路比在相同温度和电压条件下操作的类似单元中的相应开关电路略快。
[0123] 电压变化是指在操作期间施加到给定半导体单元的电源电压的变化。例如,该短语指的是图1中所示的Vdd电源电压的电平的变化。任何给定的半导体产品在一个电源电压电平下的性能可能与在另一个电源电压电平上的性能不同。例如,电路元件在较高的电源电压下工作时,比在较低的电源电压下工作时表现出更快的开关速度,这是常见的现象。
[0124] 温度变化是指半导体单元的工作温度的变化。半导体单元的工作温度可以基于多种因素而变化,包括例如环境空气温度、电源电压、工作负载以及半导体单元操作的主机系统环境中是否存在热管理解决方案。工作温度的变化,就像电源电压的变化一样,会导致任何给定的半导体单元的性能特性发生变化。
[0125] 鉴于上述情况,大多数半导体产品被设计成在可能的工艺、电压和/或温度工作点(“PVT工作点”)的范围内表现出一组可预测的性能特性。因此,给定的半导体产品可以被设计为在最慢的PVT工作点展示一组指定的最慢时序特性,以及在最快的PVT工作点展示一组指定的最快时序特性。系统设计人员可以使用这些规范围绕这样的半导体产品创建成功的解决方案,前提是该解决方案被设计为能够容忍产品的最慢和最快时序特性,并且所设计的解决方案将使产品在指定的电压和温度条件的范围内运行。在这种特定的电压和温度条件范围内,半导体产品可以在“较慢”或“较快”的PVT工作点上运行,具体取决于运行期间任何给定时刻的占优条件。相应地,半导体产品的时序特性可以随着占优条件的变化而在较慢和较快的时序特性之间变化。
[0126] 实施例中用于适应PVT变化的技术
[0127] 技术和示例实施例将在可用于适应PVT变化的本节和以下部分中进行描述。例如,这样的技术可以用于确保图23中所示出的时序约束在异常检测器电路的所有预期PVT工作点上保持不变。
[0128] 图24示出了高相位扩展器电路2101的实施例。在示例实施方式中,OR门2402驱动相位扩展器输出2403。相位扩展器输出进而提供时钟信号的相位扩展版本,在图中标记为clk’。OR门的底部输入耦合到时钟信号,而OR门的顶部输入耦合到时钟信号的延迟版本。时钟信号的延迟版本是通过延迟元件2404发送时钟信号(图中标记为clk)而得到的。结果如图25的时序图所示。从时序图中可以看出,clk’的上升沿与clk的上升沿重合,而clk’的下降沿相对于clk的下降沿有延迟。因此,时钟信号的每个高相位实例在clk’中相对于clk中的相应的高相位实例被扩展。相位扩展的持续时间等于延迟元件引入的延迟量。
[0129] 图26示出了下降沿触发脉冲发生器2600的示例实施方式。在该示例实施方式中,NOR门2602驱动脉冲输出。NOR门的底部输入耦合到时钟信号(clk),而NOR门的顶部输入耦合到时钟信号的反相和延迟版本(延迟的inv clk)。延迟由延迟元件2604提供。结果如图27的时序图所示,其中clk的每个下降沿产生一个脉冲,其持续时间与延迟元件引入的延迟量相对应,如2700所示。
[0130] 图28示出了上升沿触发的脉冲发生器2800的示例实施方式。脉冲发生器2800与脉冲发生器2600相同,除了在脉冲发生器2800中,AND门驱动脉冲输出。AND门的底部输入耦合到时钟信号(clk),而AND门的顶部输入耦合到时钟信号的反相和延迟版本(延迟的inv clk)。如在图26的实施例中,延迟是由延迟元件2604提供的。结果如图29的时序图所示,其中clk的每个上升沿产生一个脉冲,其持续时间与延迟元件引入的延迟量相对应,如2900所示。
[0131] 在一些实施例中,可以使用图26或图28的边沿触发脉冲发生器中的一个来设计表现出与图23有关的行为的边沿触发脉冲发生器,并将高相位扩展器2101应用于边沿触发脉冲发生器的输出。在时钟信号的正常操作期间,由发生器2600或2800中的任一个所产生的脉冲将不会超过时钟信号的相应正常相位的持续时间。这是因为这些实施例产生的脉冲是从时钟信号中得到的。然而,在对脉冲输出施加高相位扩展器的情况下,脉冲可以被扩展,从而使扩展的脉冲持续时间超过时钟信号相应正常相位的持续时间,这与图23的示例时序一致。在其他实施例中,可以使用其他技术来设计具有关于图23描述的行为的边沿触发脉冲发生器。此类技术中的一类是采用单位脉冲的级联,这将在下面进一步描述。
[0132] 级联单位脉冲
[0133] 在各种实施例中,可以使用单位脉冲的级联来实现边沿触发脉冲发生器,如图30的示例所大致说明的。在图30的示例中,下降沿触发脉冲发生器3000包括单个下降沿触发单位脉冲发生器26001至2600n的级联。例如,可以根据上述实施例2600来实现每个级联单位脉冲发生器。每个单位脉冲发生器在被触发时会产生一个相应的边沿检测脉冲,在图中标记为ed1至edn。每个边沿检测脉冲被耦合到高相位扩展器,在图中标记为30021至3002n,使得每个高相位扩展器输出代表相应边沿检测脉冲的高相位扩展版本。这些高相位扩展边沿检测脉冲在本文中被称为“单位脉冲”,因为可以组合两个或更多个这样的脉冲以在脉冲发生器的脉冲输出3004处形成更长的脉冲。高相位扩展器3002的输出构成单位脉冲输出,在图中标记为单位脉冲1至单位脉冲n。脉冲合成电路3006耦合在单位脉冲输出和脉冲输出
3004之间,并且可操作以通过合成从单位脉冲输出得到的信号来产生输出脉冲。只要单位脉冲在时间上彼此重叠,脉冲合成电路可以作为单位脉冲输出的逻辑NOR或逻辑OR来实现。
因此,在所示实施例中示出了多输入的OR门,其在输出3004上提供断言高电平脉冲。在其他实施例中,可以使用其他实施方案来实现单位脉冲或单位脉冲合成电路,或两者都实现。例如,在需要输出3004上的断言低信号的系统中,可以使用多输入NOR门代替多输入OR门。
[0134] 级联单位脉冲发生器中的第一个的触发输入直接耦合到时钟信号。其他级联单位脉冲发生器中的每一个的触发输入通过对应的双输入OR门的输入之一耦合到级联中的先前脉冲发生器的输出,在图中标记为30082至3008n。每个OR门的另一个输入被耦合到图中标记为30102至3010n的高相位扩展器对级联系列之一的输出。每个OR门的输出构成“触发”输出信号,其作为触发输入提供给脉冲发生器2600中的相应一个。凭借OR门3008,每个高相位扩展器3010的输出充当级联边沿触发脉冲发生器的相应一个的“禁用”信号,如图所示。只要禁用信号被断言,每个禁用信号就会防止相关的单位脉冲发生器触发。这是因为在OR门的一个输入处的禁用信号的高电平状态会阻止相关的脉冲发生器看到可能在OR门的另一个输入处出现的任何下降沿。
[0135] 第一高相位扩展器3010的输入直接耦合到时钟信号。其他每一个的输入通过OR门
3008以菊花链方式耦合到先前高相位扩展器的输出。在时钟信号的上升沿出现时以及在随后的整个高时钟相位实例中,所有禁用信号都将凭借着它们与时钟信号的菊花链耦合而被断言。然而,在时钟信号的下降沿出现时,并且在随后的整个低时钟相位实例中,禁用信号将依次变为未断言,从禁用2(disable2)开始,然后是禁用3(disable3),依此类推,直到时钟信号的下一个上升沿出现。只要边沿检测脉冲ed1长于与高相位扩展器30102相关的延迟,则单位脉冲发生器26002将在ed1的下降沿触发。类似地,只要脉冲ed2比与高相位扩展器30103相关的延迟长,则单位脉冲发生器26003将在ed2的下降沿触发,以此类推通过级联。
[0136] 现在参考图31的时序图,可以选择与每个高相位扩展器3002相关联的延迟以确保对应的单位脉冲将保持高至少直到随后的单位脉冲开始,如时序图中的括号3100所示。以这种方式,单位脉冲将在OR门3006的输入处相互重叠。结果是在时序图底部所示的脉冲输出信号3004被连续断言,而单位脉冲的级联保持在进行中。脉冲输出3004因此代表各个重叠单位脉冲输出的“组合”。
[0137] 如本文所使用的术语,输出脉冲的“截断”是指基于某些条件的发生来终止脉冲,而不是允许脉冲根据其设计的最大持续时间来终止。在图30和在31的示例中,输出脉冲
3004的设计最大持续时间对应于每个单位脉冲1‑n的合成持续时间。因此,如果时钟信号上出现下降沿并且时钟信号无限期地保持低电平,则级联中的每个单位脉冲都将击发(fire),并且输出脉冲将持续其设计的最大持续时间。另一方面,如果上升沿发生在时钟信号上,而单位脉冲的级联仍在进行,那么输出脉冲的持续时间将被"截断",因为所有的禁用信号将响应上升沿而被断言。在这种情况下,禁用信号的断言在其完成之前有效地中断了单位脉冲的级联,导致了持续时间短于其设计的最大持续时间的输出脉冲。
[0138] 诸如实施例3000的实施方案可用于在时钟异常检测器电路的PVT工作点的整个预期范围内确保图23的时序约束,如下所述。输出脉冲3004的最大持续时间将根据脉冲发生器运行的速度而变化。并且,由于上述原因,脉冲发生器运行的速度将根据脉冲发生器在任何给定时刻的PVT工作点而变化。脉冲持续时间在脉冲发生器的最快指定PVT工作点处将比在脉冲发生器的较慢PVT工作点处短。考虑到这种PVT变化,可以选择级联中的单位边沿触发脉冲发生器的数量,使得复合输出脉冲的持续时间,如果不被截断,将长于低时钟相的预期正常持续时间(或至少与其一样长),即使在异常检测器电路的最快指定PVT工作点也是如此。这将确保消除假断言1800。此外,虽然最大输出脉冲持续时间在较慢的PVT工作点会更长,但实际脉冲持续时间不会超过正常低时钟相位实例的持续时间。这是因为,如果在上升沿时单位脉冲的级联仍在进行中,则时钟的下一个上升沿的出现有效地截断了复合输出脉冲,如所期望的那样。因此,图20和图23的时序约束在所有预期的PVT工作点都得到了满足。
[0139] 即使在不将输出脉冲实现为单位脉冲的组合的实施例中,如图30的实施例那样,仍可按上述方式采用响应于感测到下一个时钟相位实例的开始(或等同于当前时钟相位实例的结束)而截断输出脉冲的技术,以将检测器电路的预期PVT变化考虑在内。
[0140] 动态校准
[0141] 可以采用上述任何技术和实施例来确保异常检测电路在PVT工作点的预期范围内的正确功能。尽管如此,上述每个实施方案在检测到时钟停止条件之前,都可能表现出等待时间。特别地,上述每个实施例在某些条件下可能表现出由图20中的括号2015所指示的等待时间。例如,考虑一个异常检测器,其中输出脉冲(例如,输出脉冲1406、1606、2105、2205中的任何一个)具有设计的最大持续时间,该持续时间基本上等于异常检测器的最快预期PVT工作点的预期正常时钟相持续时间。当检测器实际上在最快的预期PVT工作点工作时,这种异常检测器可能会表现出最小的检测等待时间2015。然而,当同一检测器在较慢的PVT工作点上工作时,检测等待时间2015将增加。由于上述原因,这种等待时间是不可取的。
[0142] 现在将描述另一类技术和实施例,可以采用这些技术和实施例来大大降低检测等待时间2015。这些技术和实施例使用本文所称的“动态校准”。动态校准指的是响应于给定异常检测电路的当前PVT工作点来调整输出脉冲(例如输出脉冲1406、1606、2105、2205中的任一个)的最大持续时间的技术。也就是说,当采用动态校准时,输出脉冲的最大持续时间是在异常检测电路工作时被调整的。在采用动态校准的异常检测电路中仍可采用上述输出脉冲截断技术,但在任何这样的检测器中,由于动态校准过程,非截断输出脉冲的持续时间(即输出脉冲的最大持续时间)在检测器运行期间可能会发生变化。
[0143] 当检测器的非截断输出脉冲持续时间被动态校准以便其持续时间与正常时钟相位实例的持续时间紧密对应时,在异常检测电路的预期PVT工作点范围内的任何PVT工作点,检测等待时间2015将被相称地减少。
[0144] 图32和图33示出了根据实施例的采用动态校准的两个示例时钟停止检测电路。电路3200用作时钟停止低检测器。电路3300用作时钟停止高检测器。每个电路都有一个用于感测时钟信号(clk)或时钟信号的反相(clk_b)或两者的输入。例如,在所示实施例中,电路
3200具有clk输入3204和clk_b输入3206。电路3300具有clk输入3304和clk_b输入3306。在其他实施例中,每个电路可以具有用于感测clk或clk_b的单个输入并且可以根据需要在内部反转信号。各个电路具有输出3205、3305。当被断言时,输出指示已检测到时钟异常。
[0145] 每个实施例包括高相位扩展器3208、3308、边沿触发脉冲发生器3210、3310和校准单元3212、3312。在所示实施例中,高相位扩展器和边沿触发脉冲发生器中的每一个被耦合到clk或被耦合到clk_b,如图所示,而每个校准单元都被耦合到clk和clk_b。高相位扩展器和边沿触发脉冲发生器可以根据上述任何示例来实施。在一些实施例中,高相位扩展器可以根据高相位扩展器2101来实现,并且每个边沿触发脉冲发生器可以根据边沿触发脉冲发生器3000来实现。在其他实施例中,可以使用其他实施方式。下面将进一步描述校准单元的示例实施方式。
[0146] 在实施例3200、3300中的每一个,校准单元可操作以测量第一时钟相位实例的持续时间。例如,校准单元3212可操作以测量时钟信号的高相位实例的持续时间,而校准单元
3312可操作以测量时钟信号的低相位实例的持续时间。(取决于上下文,高相位实例或低相位实例中的任一个都可以称为“第一”相位实例。)
[0147] 同时,在实施例3200、3300中的每一个,高相位扩展器和边沿触发脉冲发生器可操作用于监测第二时钟相位实例的持续时间。例如,高相位扩展器3208和边沿触发脉冲发生器3210可操作以监测时钟信号的低相位实例的持续时间,而高相位扩展器3308和边沿触发脉冲发生器3310可操作以监测时钟信号的高相位实例的持续时间。(取决于上下文,低相位实例或高相位实例中的任一个都可以称为“第二”相位实例。)
[0148] 校准单元被耦合到边沿触发脉冲发生器,如在3214、3314处所示,并且布尔逻辑电路3216、3316被耦合到高相位扩展器和边沿触发脉冲发生器的输出,也如所示。通过这些耦合,如果第二时钟相位实例的监测持续时间已经超过第一时钟相位实例的测量持续时间,则每个检测器电路都可操作以断言其各自的输出3205、3305。
[0149] 在所示实施例中,第一时钟相位实例是相对于第二时钟相位实例的相反状态时钟相位,并且第二时钟相位实例紧跟在第一时钟相位实例之后。因此,第一和第二时钟相位实例构成时钟信号的一个周期。因此,所示实施例适合于当时钟信号表现出50%的占空比以使得每个低相位的预期持续时间与每个高相位的预期持续时间相同时使用。
[0150] 在其他实施例中,第一和第二时钟相位实例可以对应于在时钟的不同周期中出现的相同时钟相位的单独的实例。后面的实施例适合于当时钟信号通常表现出不同于50%的占空比时使用。各种不同的实施例也是可能的。例如,在一些实施例中,第一和第二时钟相位实例可以对应于在时钟的不同周期中出现的相反状态时钟相位实例。
[0151] 在一些实施例中,上述测量和监测功能可以在时钟信号的每个周期中执行,而在其他实施例中,测量和监测功能可以周期性地而不是在时钟信号的每个周期中执行。
[0152] 在图32的实施例中,高相位扩展器用于生成时钟信号的相位扩展版本,其中第一时钟相位实例被延长,并且边沿触发脉冲发生器用于响应第二时钟相位实例的开始而生成定时脉冲。校准单元用于基于第一时钟相位实例的测量持续时间来控制定时脉冲的最大持续时间。在所示实施例中,检测器的输出包括定时脉冲和时钟信号的相位扩展版本的逻辑NOR。在其他实施例中,输出可以包括相同的两个信号的逻辑OR。当校准单元使定时脉冲的持续时间基本上等于第一时钟相位实例的持续时间时,括号2015指示的检测等待时间被最小化。
[0153] 时钟停止检测器3200、3300中的每一个的内部实现方式可以是基本上相同的,除了通过反转到相应检测器的clk和clk_b输入,一个检测器变得可操作以测量和监测其状态与由另一个检测器测量和监测的状态相反的相位实例。即,在所示实施例中clk和clk_b反转的情况下,一个检测器测量低相位实例并监测高相位实例,而另一个检测器测量高相位实例并监测低相位实例。因此,由于clk输入和clk_b输入在所示的两个检测器之间是颠倒的,检测器3300可用于测量和监测与检测器3200不同的相位实例。
[0154] 图34示出了示例实施例,该示例实施例包括图32和图33的时钟停止检测器中的每一个中的一个。异常检测电路3400包括具有校准的时钟停止高检测器3300和具有校准的时钟停止低检测器3200,如图所示。电路3400提供时钟停止检测输出3402。时钟停止检测输出的状态可以基于两个时钟停止检测器电路的输出。在所示实施例中,时钟停止检测输出包括时钟停止检测器csh和csl的相应输出的逻辑OR,如3404所示。在其他实施例中,时钟停止检测输出可以包括两个输出的逻辑NOR。
[0155] 在进一步的实施例中,诸如复位单元204的复位电路可以耦合到图34的时钟停止检测输出,以响应于时钟停止检测输出的断言而断言主机系统的一个或更多个子系统的复位输入。
[0156] 示例校准单元
[0157] 图35示出了图32的下降沿触发脉冲发生器和校准单元的实施例。与上一段中给出的描述一致,图33的下降沿触发脉冲发生器和校准单元可以以与图35所示的实施例相同的方式实施,除了clk输入和clk_b输入颠倒。在所示实施例中,脉冲发生器3210用作监测单元,而电路3212用作校准单元。
[0158] 脉冲发生器3210可以与图30中所示的脉冲发生器3000相同,除了图30的实施例中的两输入OR门3008中的每一个被图35的实施例中的三输入OR门3508取代,如图所示。每个三输入OR门的第三输入耦合到由校准单元提供的对应的断言低使能信号。断言低使能信号在图中被标记为~enb_2至~enb_n。回顾脉冲发生器3000的讨论,高相位扩展器3010的输出构成“禁用”信号,在这个意义上,每个禁用信号在为高电平时防止对应的一个边沿触发脉冲发生器2600击发。每个断言低使能信号~enb_2至~enb_n以相同的方式起作用。即,当给定的~enb信号为低电平时,使能对应的边沿触发单位脉冲发生器2600,因为脉冲发生器将能够看到出现在相关OR门3508的顶部输入处的下降沿。然而,当相同~enb信号为高电平时,相应的边沿触发单位脉冲发生器2600被禁用,因为~enb信号的高电平状态防止单位脉冲发生器看到出现在相关OR门3508的顶部输入处的下降沿。
[0159] 校准单元3212可操作以通过响应于高时钟相位实例的开始而发起单位测量脉冲级联mp 1至mp n以及通过响应于高时钟相位实例的结束而中断单位测量脉冲级联来测量高时钟相位实例的持续时间。OR门3509的功能与图30中的OR门3008相同,下降沿触发脉冲发生器3506的功能与图30中的脉冲发生器2600相同,而高相位扩展器3510的功能与图30中的高相位扩展器3010相同。每次级联单元测量脉冲之一出现在脉冲发生器3506的输出上时,对应的粘性逻辑单元3520的输出从未断言状态转变为断言状态。(在所示实施例中,粘性逻辑输出遵循断言低设计惯例。)因此,使能信号~enb_2至~enb_n中的每一个由粘性逻辑单元中的对应一个的输出驱动。凭借这种布置,当单元测量脉冲的级联中断时其输出被断言的粘性逻辑单元的数量指示在高时钟相位实例的未定期间发生的单元测量脉冲的总数。该总数在本文中被称为单位测量脉冲的“累积”数。
[0160] 在任何给定监测相位期间,通过组成单元定时脉冲3002的级联来产生定时脉冲
3504,该单元定时脉冲3002是由那些已经被先前测量相位使能的单位脉冲发生器2600产生的。如前段所述,如此使能的单位脉冲发生器2600的数量将对应于在先前测量相位期间累积的单位测量脉冲的数量。
[0161] 在异常检测器的任何PVT工作点,校准单元的时序可以与监测单元的时序相同。这是因为校准单元的每个高相位扩展器3510可以与监测单元的高相位扩展器3010相同或基本相同,并且校准单元的每个下降沿触发单位脉冲发生器3506可以与监测单元的下降沿触发单位脉冲发生器2600相同或基本相同。如上所述,当任何给定的低时钟相位实例被监测单元监测时,只有那些已由校准单元使能的单位脉冲发生器2600才会击发。因为粘性逻辑单元的输出决定了哪些单位脉冲发生器2600被使能,用于监测任何低时钟相位实例的定时脉冲3504的最大持续时间将对应于先前高相位实例的测量持续时间,如所期望的那样。此外,由于如此建立的动态校准,并且由于上述原因,括号2015的异常检测延迟将在异常检测器的每个PVT工作点处被最小化,也是如所期望的那样。
[0162] 示例复位逻辑和示例粘性逻辑
[0163] 在每个高相位实例的开始,复位逻辑3507断言一个复位信号,该复位信号耦合到每个粘性逻辑单元,如图所示。该复位信号使每个粘性逻辑单元转换到其未断言状态,从而可以测量高相位实例的持续时间。
[0164] 图36示出了图35的复位逻辑单元3507的示例实施方式。从图中可以看出,该单元可以以与图28的上升沿触发脉冲发生器相同的方式实施,以便在时钟信号(clk)的每个上升沿在复位输出3600上产生一个脉冲。
[0165] 图37示出了图35的粘性逻辑单元的示例实施方式。每个粘性逻辑单元的数据输入
3702被耦合到下降沿触发脉冲发生器3506中对应的一个的输出,而每个粘性逻辑单元的复位输入被耦合到复位信号3600。由复位逻辑3507产生的脉冲应该足够长,以使NOR门3704的输出通过反相器3706和NOR门3708传播,从而使得NOR门3704的两个输入将变为低电平。此时NOR门3704的顶部输入也将变低,因为每个下降沿触发脉冲发生器3506的触发输入由clk_b驱动。因此,测量脉冲输出mp 2至mp n将为低电平。在复位脉冲3600终止之后,粘性逻辑输出3700将保持未断言(高),直到在数据输入处出现上升沿。在数据输入处出现上升沿后,输出3700将转换到其断言状态(低),并将保持该状态直到下一次复位。
[0166] 时钟停止检测:使用动态校准的示例方法
[0167] 图38是示出根据实施例的用于使用动态校准的时钟异常检测的一类示例方法的流程图。例如,可以使用上述结构中的一种或多种来实施这些方法。方法3800在步骤3802处开始于感测诸如上述任何那些的时钟信号。在步骤3804到3808,测量时钟信号的第一相位的持续时间。在步骤3810至3814,监测第二相位的持续时间。监测相位的开始晚于测量相位的开始时间。在步骤3812,确定所监测的第二相位的持续时间是否已经超过第一相位的测量持续时间。如果是这样,则在步骤3816断言第一时钟停止检测信号。但是如果在第二相位的持续时间超过第一相位的测量持续时间之前检测到第二相位的结束(步骤3814),则该方法在步骤3806恢复。在一些实施例中,测量的第一相位和监测的第二相位可以是相反状态相位。在这样的实施例中,第二相位可以紧跟在第一相位之后。
[0168] 在一些实施例中,该方法还可以包括步骤3818至3830。在这样的实施例中,可以在步骤3818至3822中测量第二相位的持续时间,并且可以在步骤3824至3822中监测第三相位的持续时间。监测的第三相位的开始晚于测量的第二相位的开始。在步骤3826,确定所监测的第三相位的持续时间是否已经超过所测量的第二相位的持续时间。如果是这样,则在步骤3830断言第二时钟停止检测信号。但如果在被监测的第三相位的持续时间超过第二相位的测量持续时间之前检测到被监测的第三相位的结束(步骤3828),则该方法在步骤3820恢复。在一些实施例中,测量的第二相位和监测的第三相位可以是相反状态相位。在这样的实施例中,第三相位可以紧跟在第二相位之后。
[0169] 在一些实施例中,监测步骤序列3810至3814,或监测步骤序列3824至3828,或两个监测步骤序列,可以以图39中的3900处所示的方式实施。在步骤3902,通过发起定时脉冲的生成来开始监测一个相位的持续时间。该定时脉冲可以具有基于先前发生相位的测量持续时间的持续时间。在步骤3904,将定时脉冲的状态与时钟信号、时钟信号的反相、时钟信号的相位扩展版本或时钟信号的反相的相位扩展版本中的一个或更多个进行比较。在步骤
3906,确定定时脉冲是否在时钟信号的下一相位开始之前终止。如果是这样,则该方法可以在步骤3816或3830断言时钟停止检测信号(参见路径A)。但是,如果时钟信号的下一相位在定时脉冲终止之前开始(步骤3908),则该方法可以在适当的情况下在步骤3806或3820中的任一处恢复(参见路径B)。
[0170] 在上述任何实施例中,测量步骤序列3804至3808,或测量步骤序列3818至3822,或两个测量步骤序列,可以以图40中的4000处所示的方式实施。在步骤4002,通过发起单位测量脉冲的级联来开始测量一个相位的持续时间。在步骤4004中,允许单元测量脉冲的级联进行直到检测到相位结束。当检测到相位结束时,在步骤4006中断单元测量脉冲的级联,从而确定截至中断时已经发生的单元测量脉冲的累积数量。
[0171] 在这样的实施例中,上述监测步骤序列中的任一个可以包括图41中所示的序列
4100。在序列4100中,在步骤4102将包括在单位定时脉冲级联中的单位定时脉冲的数量设置为等于在步骤4006中确定的累积单位测量脉冲的数量。在步骤4104,监测相位开始于发起单元定时脉冲的级联。级联单位定时脉冲被组合以生成用于监测当前相位的持续时间的复合定时脉冲。
[0172] 时钟停止检测:检测可异常
[0173] 如上所述的所有异常检测器实施例都能够检测时钟停止条件,如已经解释过的。
[0174] 还应注意,上述所有异常检测器实施例都能够检测电源电压Vdd中的过压条件。例如,如果电源电压增加到超出异常检测器被设计运作的PVT工作点的范围,这种条件可以被检测为时钟异常。当这种过压条件发生时,时钟信号本身的频率以及相应时钟相位的预期持续时间将不会改变。这是因为,时钟信号的频率由晶体基准确定,如上文关于晶体时钟电路202所描述的。然而,异常检测电路表现出的时序将响应于Vdd的增加而变得更快。因此,在定时脉冲的最大持续时间已被设计为对应于检测器的最快预期PVT工作点的异常检测器实施例中,在快于预期PVT工作点的操作将导致定时脉冲短于时钟信号的相应相位。因此,异常检测器将在此类条件下断言其输出,这将有效地将过压条件标记为时钟异常。
[0175] 应当进一步指出,上述采用动态校准的所有异常检测器实施例都能够检测时钟“毛刺”异常(即,其中时钟信号突然且暂时地表现出不同于预期的占空比的占空比的条件)。例如,在时钟信号预计表现出50%占空比的系统中,这种毛刺将导致时钟信号的一个相位实例比时钟信号的先前相位实例具有更长的持续时间。凭借上述动态校准过程,较长相位实例的监测持续时间将超过较短相位实例的测量持续时间,这将导致异常检测器断言其输出。因此,将根据需要检测和标记时钟毛刺。
[0176] 布尔逻辑电路的示例实施方式
[0177] 在本文描述的任何实施例中,各种布尔逻辑电路可以根据各种常规技术中的任何一种来实现。图42至图45以示例而非限制的方式示出了几种这样的技术。
[0178] 图42示出了使用n型场效应晶体管(“NFET”)4202和上拉电阻器4204实现的多输入NOR门。可以在这样的实施例中提供反相器元件4206作为输出驱动器。
[0179] 图43示出了仅使用NFET 4302和p型场效应晶体管(“PFET”)
[0180] 4304实现的相同多输入NOR门,没有上拉电阻器。
[0181] 图44示出了使用NFET 4402和上拉电阻器4404实现的反相器元件。如在图42的NOR门实施方式中,在这样的实施例中可以提供反相器元件4406作为输出驱动器。
[0182] 图45示出了仅使用PFET 4502和NFET 4504实现的相同反相器元件,没有上拉电阻器。
[0183] 许多这样的变化是可能的。因此,本领域技术人员将很容易理解,根据本文所述实施例可以单独或组合使用这些和其他常规构件单元以及其他。
[0184] 快速时钟检测:示例结构和方法
[0185] 也可以采用上述技术中的一些技术,并在下面讨论一些修改,以检测快速时钟条件(即,时钟信号开始以比预期的频率更快的频率振荡或以其他方式表现出一个或更多个具有比预期持续时间更短的相位实例)。
[0186] 图46和图47是说明包括快速时钟检测逻辑4601、4701的时钟异常检测电路4600、
4700的两个示例实施例的框图。在两个实施例中,时钟异常检测逻辑包括用于耦合到诸如上文所描述的时钟信号中的任一个的时钟信号的时钟信号输入4604、4704。快速时钟检测逻辑4601包括短低相位检测器4602,其耦合到时钟信号输入并被配置为检测时钟信号的短低相位。快速时钟检测逻辑4701包括短高相位检测器4702,其耦合到时钟信号输入并被配置为检测时钟信号的短高相位。时钟信号的短相位是具有比预期持续时间短的时钟信号的任何相位实例。因此,短低相位检测器在检测到其持续时间短于时钟信号的预期低相位持续时间的时钟信号的低相位实例时断言短低相位检测输出4606(“slp”)。类似地,短高相位检测器在检测到其持续时间短于时钟信号的预期高相位持续时间的时钟信号的高相位实例时断言短高相位检测输出4706(“shp”)。在任一实施例中,相应的短相位检测输出可以构成快速时钟检测逻辑的快速时钟检测输出4608、4708(“fcd”)。
[0187] 图48是说明包括复合快速时钟检测逻辑4800的时钟异常检测电路的示例实施例的框图。该快速时钟检测逻辑是复合的,因为它包括短低相位检测器和短高相位检测器。如在图46和图47的实施例中,电路4800具有用于耦合到时钟信号的时钟信号输入4804并提供快速时钟检测输出4808。然而,在实施例4800的情况下,快速时钟检测输出可以包括短低相位检测器和短高相位检测器各自输出的逻辑OR或逻辑NOR。前一种情况在这里用OR门4810来说明。在所示实施例中,当短低相位检测器输出或短高相位检测器输出被断言时,快速时钟检测输出4808将被断言。
[0188] 通常,可以使用短低相位检测器来实现短高相位检测器,反之亦然。例如,图49是说明通过在时钟信号输入上提供反相器4902使用短低相位检测器实现的短高相位检测器的框图,使得时钟信号的高相位和低相位的读出在短低相位检测器的输入处颠倒。类似地,图50是说明使用短高相位检测器实现的短低相位检测器的框图。如在图49的实施例中,提供反相器5002以颠倒在短高相位检测器的输入处的时钟信号的高相位和低相位的读出。
[0189] 在任何实施例中,并且一般来说,短相位高相位检测器或短低相位检测器可以使用持续时间小于或等于时钟信号的相应预期相位持续时间的定时器来实现。因此,短低相位检测器可使用其持续时间小于或等于时钟信号的预期低相位持续时间的定时器来实现,而短高相位检测器可使用其持续时间小于或等于时钟信号的预期高相位持续时间的定时器来实现。在这样的实施例中,可以提供电路以响应于时钟信号进入第一时钟状态并因此进入时钟信号的第一监测相位而启动定时器。如果时钟信号的第一监测相位在第一定时器到期之前结束,则可以提供相应的错误检测电路来断言第一快速时钟检测输出。(第一时钟状态和对应的第一监测相位可以对应于时钟信号的低电平状态或时钟信号的电平高状态。)
[0190] 图51是说明用于检测时钟信号中的快速时钟条件的示例方法的流程图。该图还说明了上述快速时钟检测实施例的示例行为。方法5100开始于步骤5102,感测诸如上述任何时钟信号的时钟信号。该时钟信号在正常操作期间表现出预期的占空比。例如,在一些实施例中,时钟信号在正常操作期间可以表现出50%的占空比。在其他实施例中,时钟信号可以在正常操作期间表现出50%占空比以外的占空比。在任何实施例中,响应于感测到时钟信号的第一相位实例的开始,例如通过检测时钟信号的下降沿(步骤5104),启动第一定时器(步骤5106)。第一定时器的定时器持续时间小于或等于时钟信号的第一相位实例的预期持续时间。如果在第一定时器到期之前感测到第一相位实例的结束,例如通过检测时钟信号的上升沿(步骤5108),则可以断言第一快速时钟检测信号(步骤5110)。否则,该方法可以在步骤5104恢复以监测时钟信号的后续相位实例。
[0191] 在进一步的实施例中,该方法可以包括监测时钟信号的两个不同相位实例,其中两个监测的相位实例对应于时钟信号的相反状态。这样的实施例可以包括步骤5112‑5118,其中响应于感测到时钟信号的第二相位实例的开始,例如通过检测时钟信号的上升沿(步骤5112),启动第二定时器(步骤5114)。第二定时器的定时器持续时间小于或等于时钟信号的第二相位实例的预期持续时间。如果在第二定时器到期之前感测到第二相位实例的结束,例如通过检测时钟信号的下降沿(步骤5116),则可以断言第二快速时钟检测信号(步骤
5118)。否则,该方法可以在步骤5112恢复以监测时钟信号的后续相位实例。
[0192] 在一些实施例中,第一定时器和第二定时器可以是相同的定时器。在其他实施例中,第一定时器和第二定时器可以是不同的定时器。因此,在一些实施例中,步骤5104‑5110可以相对于步骤5112‑5118顺序地执行,而在其他实施例中,步骤5104‑5110可以相对于步骤5112‑5118并发地执行。
[0193] 类似地,在一些实施例中,第一和第二快速时钟检测信号可以是不同的信号,而在其他实施例中,第一和第二快速时钟检测信号可以对应于单个信号。图52示出了一类实施例5200,其中第一和第二快速时钟检测信号是不同的信号。在步骤5202,监测短低相位检测信号和短高相位检测信号的状态。如果断言短低相位检测信号(步骤5204),则可以在步骤
5208断言快速时钟检测信号。如果断言短高相位检测信号(步骤5206),则可以在步骤5208断言快速时钟检测信号。根据实施例的类型,步骤5204和5206可以同时或顺序地执行,或者可以省略两个步骤之一。
[0194] 进一步的实施例可以包括复位与主机系统相关联的一个或更多个子系统,如图53中以示例方式说明的。在示例方法5300中,在步骤5302感测快速时钟检测信号的状态。被感测到的快速时钟检测信号可以对应于例如本文描述的任何快速时钟检测信号或输出。如果快速时钟检测信号被断言(步骤5304),则主机系统的一个或更多个子系统可以被复位(步骤5306)。复位可以直接完成,例如通过将快速时钟检测信号耦合到子系统的复位输入,或者可以间接完成,例如通过采用如上所述的中间复位单元204。对于第一和第二快速时钟检测信号不同的实施例,如果第一或第二快速时钟检测信号中的任一个被断言,则可以触发复位。
[0195] 正如将在下面更详细地描述的那样,一些实施例可以包括设置将用于监测时钟信号的给定相位实例的定时器的持续时间的步骤,其中定时器的持续时间是基于时钟信号的先前相位实例的实际持续时间而设置。例如,定时器的持续时间可以基于时钟相位实例的测量持续时间来设置,该时钟相位实例发生在将由定时器监测的时钟相位实例之前。这样的实施例可以用于适应硬件中的PVT变化,这也将在下面进一步详细描述。其他实施例可以基于一个或更多个固定定时器。接下来将描述后面的实施例。
[0196] 快速时钟检测:一般的定时器和错误检测
[0197] 在实施例中使用的定时器可以采取多种形式。举例来说,图54和图55是说明短低相位检测器的框图,其中定时器是使用边沿触发脉冲发生器实现的。在低电平短相位检测器5400的情况下,定时器使用下降沿触发脉冲发生器5402来实现。在低电平短相位检测器
5500的情况下,定时器使用上升沿触发脉冲发生器5502来实现,并添加了一个反相器5507,它在脉冲发生器的输入端对时钟信号的读出进行反相。
[0198] 注意,用于实现图14‑29中的时钟停止检测器的边沿触发脉冲发生器产生一个脉冲,其持续时间大于或等于时钟信号的预期相位持续时间。与这些相反,脉冲发生器5402、
5502可以被设计为产生脉冲5406、5506,其持续时间小于或等于时钟信号的预期相位持续时间。
[0199] 短相位检测器5400、5500还包括响应于检测到快速时钟条件而断言快速时钟检测输出5408、5508的错误检测电路。错误检测电路可以采用多种形式。在实施例5400、5500中,错误检测电路可以包括两个信号的逻辑AND或逻辑NAND:1)脉冲发生器的输出5406;2)时钟信号的至少一个版本。图54和图55说明前一种情况,其中AND门5404、5504中的每一个具有耦合到时钟信号的一个输入和耦合到脉冲发生器的输出的另一个输入。在每种情况下,AND门的输出都包括短低相位检测信号。
[0200] 图56是说明图54和图55所表示的实施例类别的示例行为的时序图。现在参考图
56,时钟信号的周期5602对应于正常时钟周期,其中时钟信号的两个相位都表现出预期的相位持续时间。周期5604对应于异常周期,其中低相位表现出比预期更短的低相位持续时间。在时钟周期5602期间,响应于指示时钟信号的低相位开始的时钟下降沿,定时器脉冲(脉冲发生器的输出上的“脉冲输出”信号)在5606开始。如上所述,定时器脉冲5606的持续时间被设计为小于或等于时钟信号的低相位的预期持续时间。因为周期5602是正常时钟周期,所以定时器脉冲在不迟于下一个时钟相位5610的开始的时间5608终止。因此,短低相位检测输出5408、5508对于时钟周期5602中的低相位实例不被断言。
[0201] 类似地,在时钟周期5604期间,响应于指示时钟周期5604的低相位开始的时钟下降沿而生成定时器脉冲5612,如图所示。如此产生的定时器脉冲可以与定时器脉冲5606具有相同的持续时间。在这个周期中,由于时钟周期的低相位比预期的短,下一个时钟相位的开始发生在时间5614,也就是在定时器脉冲5612终止之前。(定时器脉冲的终止表示定时器已到期。)因此,在时钟信号和脉冲输出信号都为高电平的时间期间,短低相位检测输出
5408、5508被断言,如5616所示。如果需要时,可以添加粘性逻辑来捕获并保持短低相位检测输出的断言,直到发出系统复位信号。
[0202] 一般而言,短高相位检测器可以以类似于图54‑56的短低相位检测器的方式实施,针对相应时钟相位的相反读出和高时钟相位的预期持续时间(如果高时钟相位的预期持续时间不同于低时钟相位的预期持续时间)进行适当调整。
[0203] 快速时钟检测:一般的保护带
[0204] 在进一步的实施例中,可能希望在定时器持续时间和将由定时器监测的对应相位实例的预期持续时间之间添加保护带。保护带有助于避免假断言,否则假断言可能是由于定时器脉冲的终止和定时器正在监测的时钟相位的结束之间的紧密时序造成的。这种保护带的数量对应于脉冲持续时间和相应的预期时钟相位持续时间之间的差异。在上述实施例中,可以通过设计边沿触发脉冲发生器来添加这样的保护带,使得其输出脉冲的持续时间将严格小于要监测的时钟相位的预期持续时间。在其他实施例中,例如将在下文进一步描述的那些,保护带可以以不同方式实施。
[0205] 快速时钟检测:使用动态校准的实施例
[0206] 如上所述,一些快速时钟检测实施例可以包括设置用于监测给定相位实例的定时器的持续时间的步骤,其中定时器持续时间是基于先前相位实例的实际持续时间来设置的。在这些和其他实施例中,定时器功能可以使用级联单位脉冲以类似于以上关于时钟停止检测器所描述的方式来实现。这样的实施例有助于促进基于时钟信号的先前相位实例的实际持续时间来设置定时器的持续时间。即,对应于时钟信号的监测相位的定时器的持续时间可以基于时钟信号的先前相位的测量持续时间来设置。后面的实施例采用“动态校准”,即用于监测给定时钟相位实例的定时器的持续时间随着系统运行而动态调整。相对于基于固定定时器的实施例,采用动态校准的实施例增加了快速时钟检测的鲁棒性,因为动态校准的实施例能够适应一定范围的PVT变化。
[0207] 图57是示意性示出采用动态校准的短低相位检测器5700的示例实施例的框图。该检测器适用于本文所述的任何时钟异常检测系统。例如,它可用于实现短低相位检测器
4602。
[0208] 请注意,在图57(和本文提供的任何其他附图)中围绕功能块绘制的边界仅是为了便于解释。在各种实施例中,对应于图示的功能可以以与图示中所示的边界所指示的分组不同的方式分布在物理单元之间。在给定的应用程序中,这些功能也可以组合成单个物理或逻辑单元。
[0209] 短低相位检测器5700包括定时器单元5702和校准单元5704。定时器单元可操作以监测时钟信号5706的低相位实例的持续时间。校准单元可操作以测量时钟信号的先前相位实例的持续时间。定时器单元可操作以基于校准单元的一个或更多个输出5705来设置定时器的持续时间。在所示实施例中,校准单元输出5707和5709可以是相同的,除了它们各自的断言电平。例如,输出5707(在图中标记为enb<1‑n>)可以对应于上面讨论的断言低电平输出3520,并且输出5709(在图中标记为en<1‑n>)可以对应于相同信号的断言高电平对应物。
在其他实施例中,可以使用不同的断言电平,并且可以以任何方便的方式产生各种断言电平。例如,校准单元的粘性逻辑可以被修改以产生断言低电平输出和断言高电平输出,或者脉冲选择逻辑可以被修改以接收信号5707并在内部将它们反转。许多其他变化也是可能的。
[0210] 注意,如本文所用,“先前”仅表示由校准单元测量的时钟相位实例在时间上比由定时器单元监测的时钟相位实例在时间上出现得更早。在图57的实施例中,由校准单元测量的先前相位实例紧接在由定时器单元监测的低相位实例之前。因此,在所示实施例中:1)由校准单元测量的相位实例对应于时钟信号的高相位实例,因为时钟信号的高相位实例将紧接在时钟信号的任何低相位实例之前;以及2)测量和监测的相位实例对应于时钟信号的单个周期,因为相位实例对应于相反的时钟状态,并且其中一个紧接在另一个之前。诸如所示出的实施例可适用于在正常操作期间表现出50%占空比的时钟信号。
[0211] 在其他实施例中,测量的相位实例不需要紧接在被监测的相位实例之前并且不需要对应于相对于被监测的时钟状态的相反时钟状态。例如,如果需要,可以添加存储器元件,使得测量的相位实例对应于相对于监测的相位实例的不同的时钟周期。在这样的实施例中,测量的时钟相位实例可以对应于相对于监测的时钟相位实例的相反时钟状态(例如,可以在先前时钟周期测量“高”状态,而在随后的时钟周期监测“低”状态),或者测量的时钟相位实例可以对应于与监测的时钟相位实例相同的时钟状态(例如,可以在先前时钟周期测量“低”状态,而在随后的时钟周期监测另一个“低”状态)。后面的实施例可以适用于例如在正常操作期间不表现出50%占空比的时钟信号。
[0212] 定时器单元5702包括级联下降沿触发脉冲发生器(“FETPG”)5708、脉冲选择单元
5710和错误检测单元5712。这三个单元共同提供定时器功能、比较功能和错误检测功能。校准单元5704可以以与上面关于校准单元3212描述的方式类似的方式实现。级联FETPG 5708可以以与上面关于级联下降沿触发脉冲发生器3210描述的方式类似的方式实现。在这样的实施例中,校准单元的输出5705可以对应于使能信号3214。因此,校准单元可以包括校准脉冲发生器3506的级联,并且定时器(即,本例中的级联FETPG 5708)可以包括监测脉冲发生器2600的级联。各个级联脉冲发生器中的每一个可以在其击发时及如果击发时产生单个单位脉冲。
[0213] 在所示实施例中,脉冲选择单元5710和短低相位误差检测单元5712共同包括比较电路,该比较电路可操作用于将在时钟信号的先前相位期间击发的校准脉冲发生器的数量(N)和在时钟信号的监测相位期间击发的监测脉冲发生器的数量(n)进行比较。在时钟信号的先前相位期间击发的校准脉冲发生器的数量(N)可以由使能输出enb<1‑n>指示。在时钟信号的监测相位期间击发的监测脉冲发生器的数量(n)可以由级联FETPG单元5708内的单位脉冲发生器的单位脉冲输出(unit_pulse<1‑n>)指示。在各种实施例中,这些单位脉冲信号可以对应于单位脉冲发生器本身的输出或其相位扩展版本。
[0214] 如果错误检测单元确定n