用于满足控制信号的建立时间和保持时间的电路的制作方法

文档序号:20118716发布日期:2020-03-17 20:40阅读:434来源:国知局
用于满足控制信号的建立时间和保持时间的电路的制作方法



背景技术:

触发器和其它类型的计时同步组件的输出响应于时钟的有效沿(activeedge)而改变状态。相对于时钟沿的建立时间和保持时间的符合性允许触发器的输出正确地改变状态。建立时间是在时钟的有效沿之前输入数据信号必须处于其正确逻辑电平的时间量。保持时间是在时钟的有效沿之后输入数据必须保持处于其正确逻辑电平的时间量。

在给定的时钟信号周期内,输入数据必须在建立时间和保持时间两者期间保持稳定,并且因此输入数据仅可以在建立时间段和保持时间段之外的时钟信号部分期间改变状态。随着时钟频率增加并且因此每个时钟信号的周期减小,建立时间和保持时间表示时钟周期的更大部分,这意味着每个时钟周期中允许输入数据改变状态而不违反建立定时要求和保持定时要求的可用时间更少。



技术实现要素:

在一个实例中,一种电路包含多个串联耦合的延迟缓冲器和多个逻辑门。每个逻辑门包含第一输入和第二输入。每个逻辑门的所述第一输入耦合到所述延迟缓冲器中的对应一个延迟缓冲器。所述电路还包含多个触发器。每个触发器包含数据输入和数据输出。所述数据输入耦合到所述逻辑门中的对应一个逻辑门的输出,并且所述数据输出耦合到对应逻辑门之一的所述第二输入。

在另一个实例中,一种电路包含多个串联耦合的延迟缓冲器和多个逻辑门。每个逻辑门包含第一输入和第二输入。每个逻辑门的所述第一输入耦合到所述延迟缓冲器中的对应一个延迟缓冲器。所述电路还包含第一多个触发器和第二多个触发器。所述第一多个触发器中的每个触发器包含第一数据输入和第一数据输出。所述第一数据输入耦合到所述逻辑门中的对应一个逻辑门的输出,并且所述第一数据输出耦合到对应逻辑门之一的所述第二输入。所述第二多个触发器中的每个触发器包含第二数据输入和第二数据输出。所述第二数据输入耦合到所述多个逻辑门中的对应一个逻辑门的所述第一输入。

在又另一个实例中,一种集成电路(ic)包含延迟评估电路,所述延迟评估电路被耦合以接收时钟和控制信号并且生成多个位,所述位指示针对所述时钟与所述控制信号之间的可变延迟量的建立定时裕度和保持定时裕度。第一寄存器存储来自所述延迟评估电路的所述多个位。第二寄存器可以被编程为存储可编程延迟值。多路复用器耦合到所述延迟评估电路和所述第二寄存器。所述多路复用器从所述延迟评估电路接收多个经延迟控制信号并且响应于来自所述第二寄存器的选择信号而选择所述多个经延迟控制信号之一。

附图说明

图1显示了用于评估标记为sysref的控制信号与时钟信号之间的适当延迟的电路的实例。

图2显示了由图1的示例电路产生的可以从中确定适当延迟的数据。

图3显示了用于评估控制信号与时钟信号之间的适当延迟的电路的另一个实例。

图4显示了由图3的示例电路产生的可以从中确定适当延迟的数据。

图5显示了用于评估控制信号与时钟信号之间的适当延迟的电路的另一个实例。

图6显示了由图5的示例电路产生的可以从中确定适当延迟的数据。

图7显示了使用图1、3和5的示例电路中的任何示例电路的系统。

具体实施方式

本文描述的电路针对引入到输入信号中的不同程度的延迟提供输入信号相对于时钟沿的成功或不成功锁存的指示。基于输出指示,可以确定输入信号相对于时钟的延迟量的适当值。所描述的电路允许对含有所述指示的寄存器进行单次读取,可以根据所述读取确定适当的延迟值。

图1显示了延迟评估电路100的一个实例。延迟评估电路包含多个串联耦合的延迟缓冲器110a、110b、110c、110d、110e等。尽管此实例中显示了五个延迟缓冲器110a-110e(统称为延迟缓冲器110),但是可以包含任意数量的延迟缓冲器。延迟评估电路还包含多个触发器120a、120b、120c、120d、120e等。在此实例中,每个触发器120a-120e(统称为触发器120)为d触发器,并且可以使用多于或少于五个触发器。延迟评估电路100通常针对每个对应的延迟缓冲器110包含一个触发器120a-120e。

每个延迟缓冲器110在其输入与输出之间引入固定量的时间延迟。控制信号提供到第一延迟缓冲器110a的输入。延迟缓冲器可以是以某个延迟传递信号的任何无源或有源元件。例如,缓冲器可以用作延迟缓冲器,其中所述缓冲器可以为非反相的基于互补金属氧化物半导体(cmos)的电路、电流模式逻辑(cml)装置等。所述缓冲器可以包括n型金属氧化物半导体(nmos)/p型金属氧化物半导体(pmos)反相器的两个级,并且可以包含补偿,使得所述缓冲器的延迟不会随温度或电源的变化而变化。在某些情况下,延迟缓冲器具有静态延迟,而在其它情况下,延迟缓冲器可以具有可配置的延迟。在此实例中,控制信号为用于根据jesd204b标准使系统中的多个芯片同步的系统参考(sysref)信号。在其它实例中,控制信号可以是除了sysref之外的信号。sysref提供到延迟缓冲器110a,所述延迟缓冲器在其输出上产生sysref的经延迟版本。来自延迟缓冲器110a的经延迟sysref提供到延迟缓冲器串联链中的下一个延迟缓冲器110b的输入,并且延迟缓冲器110b向sysref添加另外的延迟。因此,延迟缓冲器110的输出为sysref提供不同程度的时间延迟。

在此实例中,每个触发器120包含数据输入(d)和输出(q)。每个触发器120的时钟输入接收时钟信号(clk)。在clk的有效沿(在所描述的实例中假设为上升沿)时,每个触发器120将存在于其d输入上的逻辑值锁存到其q输出上。图2显示了sysref相对于clk的不同经延迟版本(称为“经延迟sysref”)的定时图的实例。显示了clk的两个上升沿201和211以及11个不同的经延迟sysref。图2所示的整数延迟值1到11是指10个菊花链式连接的延迟缓冲器110的输出。在此实例中,延迟值1表示作为触发器120a的d输入的尚未通过图1中显示的任何延迟缓冲器的sysref。附图标记220表示延迟量最小的sysref(例如,未通过任何延迟缓冲器110的sysref),而附图标记225表示延迟量最大的sysref(例如,来自延迟缓冲器110串联链中的最后一个延迟缓冲器110的经延迟sysref)。在此实例中,sysref最初为低(l)电平并且被断言为高(h)电平,以根据jesd204b开始同步过程。由于存在各种延迟缓冲器110,所以sysref的上升沿跨所述各种延迟缓冲器在不同时间点处出现。图2还显示了相对于每个时钟沿201、211的建立时间204和保持时间206。

相对于时钟沿201,延迟量最小(延迟值1和2)的sysref在建立时间和保持时间期间稳定为高,并且因此与那些延迟缓冲器110a和110b相对应的触发器120a和120b将在其输出上锁存高(h),如图所示。接下来的两个经延迟sysref(对应于延迟值3和4)具有在建立时间或保持时间期间出现的上升沿并且因此违反相对于时钟沿201的建立定时裕度和保持定时裕度。如果建立定时裕度或保持定时裕度违反足够大,则与那些特定延迟缓冲器相对应的触发器120在其输出上锁存低(l),如图所示。剩余的经延迟sysref(与延迟值6到11相对应)在时钟沿201的建立时间204和保持时间206期间稳定为低并且因此也被其对应的触发器120锁存为低。总之,前两个经延迟sysref(延迟量最小的sysref)由其触发器锁存为h,并且剩余的经延迟sysref被锁存为l,这是因为所述sysref在整个建立时间和保持时间期间未稳定为高,或是因为所述sysref在整个建立时间和保持时间期间稳定为低。经锁存h逻辑电平和l逻辑电平是触发器110的经锁存q输出并且在图1中显示为q[0]、q[l]、q[2]等。

在clk的随后沿211处,与延迟值1-8相对应的经延迟sysref在时钟沿211的建立时间204和保持时间206期间稳定为高,并且因此由其对应的触发器120锁存为h。剩余的经延迟sysref(延迟值9到11)锁存为低,这是由于建立时间和/或保持时间违反(延迟值9和10就是这种情况),或是因为经延迟sysref在整个建立时间和保持时间期间稳定为低(延迟值11)。

图2中的附图标记230标识延迟值2和3的经延迟sysref。延迟值为2的sysref被锁存为逻辑高(h),因为所述sysref在时钟沿201的建立时间和保持时间期间稳定为高。由于上述建立时间或保持时间违反,延迟值为3的sysref被锁存为逻辑低(l)。类似地,附图标记235标识同样是一个被锁存为逻辑高而下一个被锁存为逻辑低的一对连续的经延迟sysref。sysref的这种连续高/低锁存提供对应延迟量(时钟沿201的延迟值2/3和时钟沿211的延迟值8/9)非常接近时钟沿的指示。基于来自触发器120的这些经锁存输出值,将为sysref实施的延迟量应大约处于延迟值2、3与延迟值8、9中间的某个位置。在此实例中,延迟值6是一个合适的选择。通过将sysref的延迟量设置为延迟值6(其对应于串联的延迟缓冲器链中的第六延迟缓冲器的输出;或者在延迟值1对应于未经延迟sysref的情况下对应于第五延迟缓冲器的输出),在clk的上升沿的建立时间和保持时间期间将不会出现sysref的上升沿。因此,不会发生建立定时或保持定时违反,并且因此sysref将被芯片正确锁存。如下所述,在一些实例中,触发器120的q输出被写入到寄存器中。然后可以读取所述寄存器,以确定适当量的sysref延迟。在确定了适当量的sysref延迟之后,可以对另一个寄存器进行编程,以引起对应于延迟缓冲器110的触发器120的输出,所述输出映射到所确定的延迟值,作为用于实现同步目的的sysref信号。

图1的实例的一个问题在于,触发器120的q输出随着clk的每个连续上升沿而改变状态,从而失去先前的状态。需要知道的是,在sysref变为高时出现的第一clk上升沿时,哪些触发器120锁存逻辑高以及哪些触发器120锁存逻辑低。然而,触发器120的那组高和低在下一个clk上升沿时丢失。图3显示了延迟评估电路300的实例,如果触发器的状态在下一个clk上升沿出现之前无法被读取,则所述延迟评估电路保存指示所需状态的信息。

图3的实例包含来自图1的延迟缓冲器110和触发器120。图中显示了一组逻辑门310和另一组触发器320(例如,d触发器)。逻辑门310包括逻辑门310a、310b、310c、310d和310e等,并且在所示实例中被实施为异或门(并且在本文中被称为异或门310),但是可以根据需要包含其它类型的逻辑门。在图3的实例中,所有触发器120和320都用同一时钟信号clk计时。对于每个延迟缓冲器110,所述电路包含对应的触发器120、异或门310和触发器320,如虚线框315所示。触发器320包含触发器320a、320b、320c、320d、320e等。每个触发器120的d输入可以耦合到延迟缓冲器110,如图所示,或者可以在延迟缓冲器110与相应触发器120的d输入之间包含另一个延迟元件(例如,一个输入静态地保持处于恒定电平(例如,0)的异或门)以匹配逻辑门310引入的延迟。

每个触发器320包含数据(d)输入和q输出。每个触发器320的q输出被指定为s位(s[0]、s[l]、s[3]等)。每个异或门310包含两个输入330和332,其中输入330耦合到对应的延迟缓冲器110,并且输入332耦合到对应触发器320的q输出,如图所示。在图3的实例中,每个异或门310在其输出334上生成信号,所述信号是对应经延迟sysref和对应触发器320的q输出的异或运算。异或门320的输出334提供到对应触发器320的d输入。因此,在每个上升clk沿时,触发器320将其对应的异或门310的输出锁存为q(s[n])输出。

只有当异或门的输入逻辑极性不同时,异或门才会产生逻辑h的输出。因此,如果对应异或门310的输入330、332中的一个输入为逻辑h,而输入330、332中的另一个输入为逻辑l,则每个触发器320将在其q输出上产生h;否则,如果输入330和332两者都为逻辑高或都为逻辑低,则异或门的输出以及因此触发器的经锁存q输出将为逻辑低。

最初,所有触发器320都被清零,使得其q输出为逻辑低。最初,sysref也为逻辑低。在此状态下,异或门310的两个输入都为低电平,并且所有s[n]位也为低电平。当sysref被断言为高电平时,异或门310中的一个或多个异或门(但可能不是全部)的输入330将在clk的下一个上升沿出现时为逻辑高。对于与输入330现在为逻辑高的所述异或门310相对应的触发器320,所述触发器的先前s[n]输出(即,刚好在clk的上升沿出现之前)仍为逻辑低。因此,所述特定异或门310将输出逻辑高,所述逻辑高将在clk的下一个沿出现时使对应的s[n]位为逻辑高。对于sysref的上升沿在clk沿出现之前没有时间到达的延迟缓冲器110,所述对应的异或门310将使其两个输入仍处于逻辑低电平,并且因此其对应的s[n]位也将保持处于逻辑低电平,即使在clk的下一个沿出现时也是如此。在sysref仍被断言为高时出现clk的另一个上升沿时,先前已经变为逻辑高的那些异或门310的输出334现在将变为逻辑低,因为到其异或门310的输入330的经延迟sysref信号输入为逻辑高,并且来自对应触发器320的先前锁存的s[n]位也为逻辑高。因此,当sysref为高时,sysref的上升沿已经到达对应延迟缓冲器110的那些触发器的s[n]位将在高与低之间切换。

图4显示了三个连续clk沿的s[n]位的实例。在sysref为高时第一次出现clk沿时,前两个触发器320a和320b(与最少量的sysref延迟相对应)在其s输出上锁存逻辑高sysref,而剩余的触发器320继续在其输出上生成逻辑低,如上所述。因此,对于clk的第一沿,s[0]和s[l]为逻辑高,并且s[2]到s[n]为逻辑低。

在clk的下一个(第二)沿出现时,s[0]位和s[l]位由于异或门的逻辑函数而切换为逻辑低。此外,s[2]到s[7]变为逻辑高,因为sysref的上升沿已经到达对应的延迟缓冲器110。位s[8]到s[n]仍为逻辑低,这是因为传播的sysref上升沿违反第二clk沿的建立裕度和保持裕度,或是因为sysref在第二clk沿的建立和保持期间仍然稳定为低。

在clk的第三沿出现时,位s[0]到s[7]切换为相反极性状态,并且位s[8]和s[9]变为逻辑高,因为sysref最终已经到达其对应的延迟缓冲器110。随着每个随后的时钟沿(在sysref为逻辑高时),s位在h与l之间来回切换。可以在这些数据中标识clk的沿。虚线410标识clk的第一沿的出现,并且虚线420标识clk的下一沿的出现。时钟沿由极性相反的两个连续的s位标识。可以将s位捕获到寄存器中,然后可以读取所述寄存器,以确定将关于sysref使用多少延迟,从而避免关于clk的建立和保持问题。适当的延迟量与对应于s[4]或s[5]的延迟相对应,以确保时钟沿410和420有足够的裕度。

图5显示了延迟评估电路500的另一个实例。图5的延迟评估电路500与图3的延迟评估电路类似,并且重复延迟缓冲器110、触发器120和320以及异或门310。然而,图5的示例延迟评估电路500增加了另一组逻辑门510a、510b、510c、510d、510e等(在此实例中,所述逻辑门被实施为异或门(统称为异或门510))和逻辑门520a、520b、520c、520d等(在此实例中,所述逻辑门被实施为或门(统称为或门520))。每个异或门510包含两个输入512和514(如针对异或门510b所示)。输入512和514耦合到相邻异或门310b和310c的输出。相邻异或门510的输出然后通过或门510或运算在一起,如图所示。使用或门520的输出而不是使用触发器320的q输出来标识clk的沿并且所述或门的q输出被指定为sysref_pos[n]。或门520产生的数据与图3的实例的数据类似,但是所述位不会随着clk的每个连续沿而在h与l之间切换。图6显示了clk的三个连续沿的sysref_pos[n]位。如图6所示,时钟沿通过虚线530和540标识,所述时钟沿在极性相反的两个sysref_pos位之间出现。适当的延迟量与对应于sysrefpos[5]或sysref_pos[6]的延迟相对应,以确保时钟沿530和540有足够的裕度。sysref_pos的最低有效位和最高有效位设置为逻辑高。

图7显示了用于为sysref确定适当延迟量以及将适当延迟量用于sysref的电路的实例。图7中的电路可以实施为公共管芯上的集成电路,并且包含延迟评估电路710、触发器725、寄存器720和730以及多路复用器740。延迟评估电路710可以为图1、3和5的电路中的任何电路。sysref和clk提供到延迟评估电路710。在延迟评估电路710为图5的电路的实例中,输出位712为sysref_pos[n]位,并且使用来自延迟评估电路710的延迟最多的sysref信号715(即,与最大延迟量相对应的触发器120的输出)锁存到触发器725中。触发器725的q输出然后写入到寄存器720中。寄存器720可以由外部电子装置读取。根据从寄存器720中读取的数据,可以确定要用于sysref的延迟量,如上所述。

在进行所述确定之后,延迟值被编程到寄存器730中。可以对寄存器720进行读取并且对寄存器730进行写入的接口可以是任何合适的接口,如串行外围接口(spi)。触发器120的q输出作为信号715提供到多路复用器740,并且多路复用器740选择经锁存的经延迟sysref之一作为输出sysref_sel信号,以供其它逻辑用于实现同步目的。写入到寄存器730的可编程延迟值表示到使多路复用器740的选择(select)信号。本文描述的延迟评估电路在sysref的下一次低到高转变之前复位(其d触发器被清零),以便能够正确捕获sysref的下一次断言。

可替代性,如果图3的电路被用作延迟评估电路710,则输出位712为s[n]位,而位715为触发器120的q输出位。此外,如果图1的电路被用作延迟评估电路710,则位712和715两者都为来自触发器120的q[n]位。

在权利要求的范围内,可以对所描述的实施例进行修改,并且其它实施例是可能的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1