CN105794110B - 防止时序违规 - Google Patents

防止时序违规 Download PDF

Info

Publication number
CN105794110B
CN105794110B CN201480065551.4A CN201480065551A CN105794110B CN 105794110 B CN105794110 B CN 105794110B CN 201480065551 A CN201480065551 A CN 201480065551A CN 105794110 B CN105794110 B CN 105794110B
Authority
CN
China
Prior art keywords
signal
latch
level
clock
combinational logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480065551.4A
Other languages
English (en)
Other versions
CN105794110A (zh
Inventor
亚尼·梅基佩
劳里·科斯基宁
马修·特恩奎斯特
马库斯·希恩卡里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
At Processor Cos Code
Original Assignee
Minima Processor Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Minima Processor Oy filed Critical Minima Processor Oy
Publication of CN105794110A publication Critical patent/CN105794110A/zh
Application granted granted Critical
Publication of CN105794110B publication Critical patent/CN105794110B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00369Modifications for compensating variations of temperature, supply voltage or other physical parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/01Shaping pulses
    • H03K5/04Shaping pulses by increasing duration; by decreasing duration
    • H03K5/06Shaping pulses by increasing duration; by decreasing duration by the use of delay lines or other analogue delay elements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/19Monitoring patterns of pulse trains

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Logic Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

一种装置,包括时钟,其适于提供如果未检测到时序违规在第一电平与第二电平之间周期地交替的时钟信号;第一锁存器,其适于被计时为使得当时钟信号处于第一电平时,其使第一信号通过;第二组合逻辑,其适于基于通过第一锁存器的第一信号而输出第二信号;第二锁存器,其适于被计时为使得当时钟信号处于第二电平时其使第二信号通过;检测部件,其适于检测第一信号和第二信号中的至少一个的顺序违规;时间拉伸部件,其适于在检测到时序违规的情况下将时钟拉伸,使得时钟以一定延迟在第一电平与第二电平之间交替。

Description

防止时序违规
技术领域
本发明涉及一种与管线数字逻辑的时序有关的装置、方法以及计算机程序产品。更特别地,本发明提供了一种用以避免错误时序违规和缓解时序违规的机制。
背景技术
缩写
CLK 时钟
FW 固件
HW 硬件
LL 逻辑锁存器
SW 软件
TB 时间借用
TED 时序错误检测
TEP 时序错误预防
在现在的数字逻辑系统中,尝试在减少功率消耗的同时增加操作效率。在此类系统中,时序违规(包括时序错误)可由于例如(局部)电压降、温度变化、门长度的变化、晶体管的掺杂浓度变化及其它半导体元件、交叉耦合噪声等而发生。并且,数字逻辑电路的不同部分中的不同制造过程全局或局部拐角可导致时序违规。为了避免由于过慢的组合逻辑而引起的时序违规,通常应用时序裕度。
在本申请中,在有时序违规时,理解以下行为(参见图1):
数字逻辑(也称为逻辑电路)包括一个或多个组合逻辑,诸如图1中的fA和fB。组合逻辑的操作结果被存储在相应(1位)寄存器中,诸如寄存器A、寄存器B。寄存器可以是锁存器或触发器或其两者的混合。其根据时钟CLK工作(被计时或门控)。在图中,短划线箭头指示计时。触发器对于时钟的(上升或下降)边沿处的数据输入而言是透明的。如果时钟具有预定义状态(高或低),则锁存器对于数据输入而言是透明的。当时钟从此状态渡越到另一状态时,实际数据输入被存储并保持在锁存器中直至时钟再次渡越到预定义状态为止。在下文中,考虑锁存器。
如果数字逻辑正确地工作,则组合逻辑fA对输入信号X进行工作以获得fA(X)。如果锁存器A在时钟的第一循环处(在时钟的某个电平处,诸如高)对于输入数据而言是透明的,则其在时钟保持在某个电平的同时使fA(X)通过,并且当时钟渡越到反相电平(例如低)时存储fA(X)。如果存在后续组合逻辑和锁存器,例如图1中所示的fB和锁存器B,则组合逻辑fB将对fA(X)进行操作,获得fB(fA(X))。当锁存器B对于数据输入而言透明时(如果时钟再次地处于某个电平),此结果在时钟的第二循环处被存储在锁存器B中。
然而,如果当锁存器变得对于数据输入而言透明时组合逻辑A还没有结束其操作,则锁存器A将在时钟渡越到反相电平时存储可能不同于fA(X)的值。这称为时序违规。如果寄存器A的输出不同于fA(X),则时序违规可导致时序错误。因此,后续组合逻辑可对“错误”输入进行工作,使得其不获得fB(fA(X))。
可用TED来检测时序违规。例如,已知时序违规检测的以下方法:
平行于主锁存器,诸如上述示例的锁存器A或锁存器B,实现相对于主锁存器A(或B)以固定延迟计时的慢锁存器A'(或B')。组合逻辑fA(或fB)的输出也被馈送到锁存器A'(或B')中。在锁存器A'(或B')的数据输入时间之后比较这两个锁存器A和A'(或B和B')的输出。如果输出是相同的,则不存在时序违规。然而,如果输入在固定延迟期间改变(由于组合逻辑fA或fB分别地对于锁存器A或锁存器B而言太慢),则两个锁存器A和A'(或B和B')的输出相互不同。因此,输出的比较显示发生了时序违规。在这种情况下,时序违规不可超过固定延迟。
可用来检测时序错误的其它已知错误检测方法是例如
-N+M冗余(可以实现TED是锁存器电平N+M的自变量);
-信息冗余技术(Hamming和Hsiao代码);以及
-算法技术(奇偶校验、循环冗余校验)。
如果发生时序违规,则其可例如由用以重新执行的机制来修正,这是因为某些寄存器可由于时序违规而具有已损坏数据。
克服用于慢组合逻辑的时序违规的另一方式是时间借用(TB)。在例如K.Chae、C.H.Lee以及S.Mukhopadhyay在IEEE,978-1-4244-9021-9(2011)中的“Timing errorprevention using elastic clocking”中描述的时间借用中,其中在一个组合逻辑(例如,fA)中检测到时序违规的循环可从用于后续组合逻辑(例如fB)的后续循环借用时间。如果组合逻辑B足够块,则补偿其输入的延迟并克服时序违规。
然而,如果组合逻辑B不够快,则时序违规(信号的延迟时间)可传播,使得在下一状态可发生另一时序违规。时序违规甚至可在后续循环中累积,最终导致毁灭性错误。为了缓解此类累积,Chae等人也描述了时间拉伸。根据时间拉伸,如果检测到时序违规,则用时间借用来将其缓解,其中,除时间借用之外,还将时钟推迟。例如,从其借用时间的时钟周期被延长诸如π/2或者甚至π之类的正相移。因此,从其借用时间的时钟周期从拉伸的时钟重新获得时间。如果借用和拉伸适当地相互匹配,则可避免累积。可将时间拉伸视为到执行时间窗中的缓慢逻辑步进。
如果在此情形中在每个循环处检测到时序违规,并且每个循环被延长例如π/2的相移(25%的延迟),则系统的总体操作频率从1/T降低至1/(T+T/4),其中,T是时钟周期,即降低20%。如果每个循环被延长例如π的相移(50%的延迟),则系统的总体操作频率从1/T下降至1/(T+T/2),即33%。
P.N.Whatmough、S.Das以及D.M.Bull在IEEE International Solid-StateCircuits Conference、pages 428—430(2013)中的“A low power 1GHz Razor FIRAccelerator with time-borrow tracking pipeline and approximate errorcorrection in 65nm CMOS”中描述了TB跟踪。在TB跟踪中,跟踪在后续时钟周期中是否可以在后续组合逻辑中成功地解决时序违规。如果在后续步骤中并未解决时序违规,则因此修改源电压。根据Whatmough等人的电路提供了基于内插的近似误差修正。因此,要求连续信号。
在任何情况下,时序违规的修正可使系统减慢,并且需要附加逻辑(意指功率消耗和半导体面积)。因此,优选地防止时序违规。
另一方面,如果组合逻辑fB过快,则在锁存器B处可发生另一时序违规,有时也称为“错误时序违规”。这在图2中针对图1的逻辑电路示出。
第一行示出了在高与低之间交替的时钟信号CLK。假设当CLK为高时,锁存器是打开的。组合逻辑fA适当地操作,即当时钟CLK为低时,即当锁存器A闭合时(图2的第二行),采用新状态。因此,锁存器A在CLK变成高时使fA(X)通过,并且当CLK再次地变成低时存储fA(X)(T21,图2的第三行)。
在图2的第四行中,示出了组合逻辑fB的适当操作。即,组合逻辑fB在CLK为低时结束其操作,如上文针对fA所讨论的。此时间可与T23相同或不同,其中,fA的输出改变其状态。因此,当CLK再次变成高时(T24,图2的第五行),锁存器B存储fB(fA(X))。
现在让我们假设组合逻辑fB过快,即组合逻辑fB已结束其对fA(X)的操作,而时钟仍处于其中锁存器B针对数据输入是打开的高状态(T22,图2的第六行)。因此,锁存器B是打开的,并且将在组合逻辑B结束其操作之后(在T22处,即在时钟的第一个半周期期间)立即使fB(fA(X))通过(图2的第七行)。因此,如果CLK在第一周期结束时渡越至低,则锁存器B存储fB(fA(X)),但其应在第一信号中存储(并输出)fB(fA(X-1)),其中,X-1是前一周期的输入信号。
如从图2可以看到的,锁存器B的内容在其中过快的组合逻辑fB已结束的时间(T22)与其中CLK在第二周期中切换成高的时间(T24)之间的过快操作(图2的线7)和适当操作(图2的线5)这两个情况而言是不同的。这可导致时序错误。
错误时序违规不能被延迟的锁存器检测到,如上文针对时序违规所述。因此,逻辑电路应被设计成使得不发生错误时序违规。然而,可使用渡越检测来检测锁存器的输入在其透明阶段期间的变化。
可使用缓冲器来避免错误时序违规。图3示出了其中在组合逻辑fB与锁存器B之间提供缓冲器31的示例。在图3的底部中,示出了相应信号:
组合逻辑fA适当地操作,即到锁存器A的输入(图3中的D1)在时钟CLK的低阶段处改变,其中锁存器A关闭(T31)。另一方面,组合逻辑fB过快。因此,在其输出D2处,fB(fA(X))出现,同时锁存器A和B仍是打开的(CLK:高,T32)。缓冲器31被插在组合逻辑fB的输出D2与锁存器B的输入D2'之间。如果缓冲器31被适当地确定尺寸,则D2'在锁存器B被关闭期间(CLK:低;T33,参见图3的底部的第三行)变成fB(fA(X))。Q1和Q2分别地指定锁存器A和B的输出。
图4示出了用于避免错误时序违规的另一示例。作为根据图3的插入组合逻辑fB与锁存器B之间的缓冲器31的替代,插入时钟缓冲器41以使用于锁存器B的CLK信号延迟。因此,如在图4的底部处可看到的,锁存器B在组合逻辑fB在T41处已结束其操作时关闭。因此,锁存器B将仅在CLK再次地为高时存储fB
在某些示例中,图3的缓冲器31和图4的时钟缓冲器41两者都存在。
发明内容
本发明的目的是改善现有技术。特别地,目的是避免错误时序违规并缓解时序违规。
根据本发明的第一方面,提供了一种装置,包括:时钟,其适于提供时钟信号,其中,如果未检测到时序违规,则该时钟信号周期地在第一电平与不同于第一电平的第二电平之间交替;第一锁存器,其适于被计时为使得当时钟信号处于第一电平时,其使第一信号通过;第二组合逻辑,其适于基于通过第一锁存器的第一信号而输出第二信号;第二锁存器,其适于被计时为使得当时钟信号处于第二电平时其使第二信号通过;检测部件,其适于检测在时钟信号处于第一电平时的第一锁存器处的第一信号与在时钟信号处于第二电平时的第二锁存器处的第二信号中的至少一个的时序违规;以及拉伸部件,其适于在检测到时序违规的情况下将时钟拉伸,使得时钟与根据周期在第一电平与第二电平之间交替的时间相比以一个延迟在第一电平与第二电平之间交替。
该检测部件可以是检测电路。时间拉伸装置可以是时间拉伸电路。
在所附装置权利要求中定义了第一方面的更多细节。
根据本发明的第二方面,提供了一种方法,包括:当时钟信号处于第一电平时使第一信号通过第一锁存器;基于通过第一锁存器的第一信号而输出第二信号;当时钟信号处于第二电平时使第二信号通过第二锁存器;检测在时钟信号处于第一电平时的第一锁存器处的第一信号和在时钟处于第二电平时的第二锁存器处的第二信号中的至少一个的时序违规;如果检测到时序违规,则将时钟拉伸,使得时钟与根据周期在第一电平与第二电平之间交替的时间相比以一个延迟在第一电平与第二电平之间交替;其中,如果未检测到时序违规,则时钟信号以所述周期在第一电平与不同于第一电平的第二电平之间交替。
第二方面的方法可以是防止时序违规的方法。
根据本发明的第三方面,提供了一种包括一组指令的计算机程序产品,该指令当在装置上执行时被配置成促使所述装置执行根据第二方面的方法。可将计算机程序产品体现为计算机可读介质。
根据本发明的某些实施例,实现了以下优点中的至少一个:
-避免错误时序违规;
-改善系统性能;
-减少或者甚至消除缓冲器;
-节省半导体面积;
-改善能量效率;
-高效地缓解时序违规。
应理解的是可以单独地或以组合方式将任何的上述修改应用于其参考的各方面,除非其被明确地说明为不包括替换。
附图说明
根据将结合附图来理解的本发明的优选实施例的以下详细描述,更多细节、特征、目的以及优点是显而易见的,在所述附图中:
图1草绘了示例性逻辑电路;
图2示出了图1的逻辑电路的时序图;
图3示出了用于缓解错误时序违规的常规逻辑电路(上)和逻辑电路的时序图(下);
图4示出了用于缓解错误时序违规的常规逻辑电路和逻辑电路的时序图(下);
图5示出了在本发明的某些实施例中使用的时钟的时序图;
图6a示出了根据本发明的实施例的装置;
图6b示出了根据本发明的实施例的装置;
图7a示出了根据本发明的实施例的装置;
图7b示出了根据本发明的实施例的装置;
图8示出了根据本发明的实施例的方法;
图9示出了根据本发明的实施例的系统;以及
图10示出了根据本发明的实施例的系统。
具体实施方式
在下文中,参考附图来详细地描述本发明的某些实施例,其中实施例的特征可以被相互自由地组合,除非另外描述。然而,应明确地理解的是某些实施例的描述仅仅是以示例的方式给出的,并且其绝不意图被理解为使本发明局限于公开细节。
此外,应理解的是所述装置被配置成执行相应方法,但在某些情况下仅描述装置或者仅描述方法。
图6a示出了本发明的实施例。根据本实施例,连续地布置多个逻辑组合F1、F2、...,其中,在两个接续组合逻辑之间,布置锁存器LL1、LL2、...。每个组合逻辑Fn(n=1、2、...)将其操作的结果存储在相应锁存器LLn(n=1、2、...)中。后续组合逻辑对在先前组合逻辑的输出端与其输入端之间布置的锁存器中所存储的结果进行操作。
在某些实施例中,并未在组合逻辑Fn中的任何一个与组合逻辑Fn将其输出存储到的其相应锁存器LLn之间布置缓冲器。也就是说,每个组合逻辑被直接地连接到其相应锁存器。然而,在其它实施例中,在至少一个组合逻辑与其相应锁存器之间布置对应缓冲器。
锁存器被计时(门控)。当相应时钟处于预定义状态(例如HIGH)时,每个锁存器是打开的。由CLK0对奇数编号的锁存器进行计时,并且由CLK1对偶数编号的锁存器进行计时。因此,交替地布置具有其选通的反向时序的锁存器。
锁存器LL1至LL4中的至少一个被连接到时序错误检测部件TED。如果其在所连接的锁存器处检测到时序错误,则其至少针对后续半周期减慢时钟CLK0和CLK1(时钟拉伸)。否则,可不将时钟拉伸。
在图5中示出了在本发明实施例中使用的CLK0和CLK1的信号。CLK0与CLK1反相。也就是说,每当CLK0为高时,CLK1为低,并且每当CLK0为低时,CLK1为高。高和/或低时段的持续时间可取决于是否检测到时序错误。
通常,时钟提供时钟信号和反向时钟信号两者。因此,可从同一时钟提供CLK0和CLK1两者。替换地,一个时钟信号(例如CLK1)可由反相从另一时钟信号(例如CLK0)生成。然而,时钟信号CLK0和CLK1也可由不同的时钟提供,如果其被适当地同步的话。
图6b示出了替换实施例。其中,所有锁存器都被同一时钟信号(例如CLK)计时。然而,当CLK出于一个状态(例如,高)时,奇数编号的锁存器是打开的,并且当CLK处于另一状态(例如低)时偶数编号的锁存器是打开的。因此,时钟的选通的时序也交替地反相。否则,图6b的逻辑电路对应于图6a的逻辑电路。特别地,锁存器中的至少一个被连接到时序错误检测部件,使得如果检测到时序错误,则可将时钟拉伸。在这些实施例中,不要求用于反相时钟信号的布线。另一方面,奇数编号的锁存器被与偶数编号的锁存器不同地配置。
根据图6a和6b的两者的实施例,当偶数编号的锁存器关闭时,奇数编号的锁存器是透明的,并且当偶数编号的锁存器是透明的时,奇数编号的锁存器关闭。因此,实现的是,不能发生错误时序违规,如从下文可看到的:
假设组合逻辑F2过快,即F2在LL1仍打开的同时提供其结果。在那时,LL2是关闭的。因此,组合逻辑F3对前一周期的F2的结果进行工作。然后,LL1被关闭并存储组合F1的结果,并且LL2打开,因此将F2的结果作为输入传输到F3。
在图6a、6b的实施例中,由于缓慢组合逻辑而引起的任何锁存器处的时序违规被TED检测到并通过时间拉伸而被缓解。并且,在检测到时序违规时,可在检测到时序违规时或者如果时序违规的平均频率在某个范围之外的话,可修改其它参数,例如局部温度、电源电压、偏压、时钟频率以及电流。例如,可对本发明实施例应用TB、TED以及时间拉伸(也称为时序错误预防)的组合。
在本发明实施例的背景下,如果组合逻辑在其相应(后续)锁存器打开(变得透明)之前未提供其结果,则该组合逻辑是缓慢的。如果应用由延迟锁存器进行的TED(如上文所述),则务必以小于π的相位延迟将其相应地计时到主锁存器。
可有利地结合时间借用来使用本发明的实施例。让我们假设组合逻辑F1略微过慢,即在LL1被关闭时并未提供其结果,而仅是在其变得透明之后提供结果。另一方面,如果组合逻辑F2过快,如在前一段中所述,则F1和F2所需的总时间可足够短,使得F3的输入(即LL2的输出)是正确的。
图7a示出了根据本发明的实施例的装置。图8示出了根据本发明的实施例的方法。根据图7a的装置可执行图8的方法但不限于这种方法。图8的方法可由图7a的装置执行但不限于用此装置执行。
该装置包括时钟71、锁存器72、组合逻辑73、反相时钟74、锁存器75以及TED部件76。锁存器72和75是相同类型的(即如果相应时钟处于一个状态(例如高),则其是透明的,并且如果相应时钟处于另一状态(例如低),则被关闭)。
锁存器72被时钟71计时,并且锁存器75被时钟74计时。时钟中的每一个在相应的两个状态(相应高和低状态)之间交替。时钟71相对于锁存器72的时序与反相时钟74相对于锁存器75的时序反相。即,如果锁存器72被打开以使数据通过,则锁存器75被关闭,并且如果锁存器72被关闭,则锁存器75被打开以使数据通过。例如,如果锁存器72和75是同一类型的,则时钟71和时钟74可对应于同一时钟的时钟信号输出和反相时钟信号输出。
在锁存器72处,由TED部件76来检测是否发生时序违规。例如,TED部件76可包括并联到锁存器72的“慢锁存器”(即被以相对于锁存器72的固定延迟而计时)和用以将慢锁存器的内容与锁存器72的内容相比较的比较部件,如在现有技术章节中所述。如果是这样,则TED部件76将时钟71和74拉伸例如诸如π或π/2之类的相移。因此,在下一组合逻辑74处可使将其结果输入到锁存器72中的第一组合逻辑的时序违规整平。
图7b示出了根据本发明的实施例的另一装置。根据图7b的装置可执行图8的方法但不限于这种方法。图8的方法可由图7b的装置执行但不限于用此装置执行。
该装置包括时钟71、锁存器72、组合逻辑73、锁存器78以及TED部件76。
图7b的装置对应于图7a的装置,具有以下差异:锁存器72和78两者都是由同一时钟71计时。因此,TED部件76仅将这一个时钟拉伸,如果其在锁存器72处检测到时序违规的话。另一方面,锁存器72和78是反相类型的:如果时钟71处于一个状态(例如高,HIGH),则锁存器72是透明的且锁存器78被关闭,并且如果时钟71处于另一状态(例如低,LOW),则锁存器72被关闭且锁存器78是透明的。
图7a和7b的两个实施例的操作彼此相对应,并且因此其被共同地描述,也是相对于图8的方法。
如果时钟71处于预定义电平(例如高),则锁存器72使输入信号(第一信号,例如fA(x))通过,并且当时钟渡越到另一电平(例如低)时将其存储(S80)。在那时,锁存器75(78)针对输入信号被关闭。
如果在锁存器72处检测到时序违规(S81:是),则时钟至少针对下一个半周期被拉伸(S82)例如一个正相移。否则(S81:否),可不拉伸时钟。
组合逻辑73对由锁存器72提供的信号(即通过锁存器72或存储在其中)进行工作并提供输出信号(第二信号,例如fB(fA(X)))(S83)。优选地,组合逻辑73在锁存器75(78)打开之前结束其操作,否则在某些实施例中,将检测到时序违规。
组合逻辑73可包括任何种类的逻辑单元,诸如AND门、NAND门、OR门、NOR门、逻辑反相器、加法器、半加法器等。组合逻辑可具有一个或多个输入端子和一个或多个输出端子,其输出端子中的一个被连接到锁存器75(78)。
当锁存器75(78)由于时钟74处于相应状态而针对信号输入是打开的时,锁存器(75)(78)使组合逻辑的输出信号通过(S84),并且当时钟74渡越到另一状态时将其存储。在此时间期间,锁存器72针对信号输入被关闭。
在某些实施例中,替换地或者除了TED部件76之外,可对锁存器75(78)应用用于检测时序违规并在检测到时序违规的情况下将时钟拉伸的相应TED部件。
根据当对应选通信号分别地是高或低时锁存器为打开的假设来描述示例和实施例。然而,在某些实施例中,可将高和低信号互换。
如果根据本发明实施例的时序而言过于缓慢的组合逻辑组合要在具有非常快速的组合逻辑的管线中被结合,则作为第一选项,可将时钟减慢,使得该慢组合逻辑足够快速。然而,这使整个逻辑管线减慢。
作为第二选项,可将慢组合逻辑分离成在之间具有交替门控锁存器的各部分。这称为“重新定时(retiming)”。例如,如果组合逻辑被分成两半,则理论上,每一半所需的时间是完整的慢组合逻辑所需时间的一半。
作为第三选项,例如,如果重新定时由于某种原因而是不可能或不期望的,则可考虑以下各项:
可将根据本发明实施例的逻辑电路嵌入构建逻辑管线的较大逻辑电路中,其中,逻辑管线的至少一个部分常规地工作,使得此部分的所有锁存器是同时打开的,而在包括本发明实施例的部分中,选通的时序对于后续锁存器而言是交替的。
在图9中示出了具有相同类型的锁存器和反相时钟CLK0和CLK1(相应实施例可包括反相类型的锁存器和单个时钟,如上文所讨论的)的实施例。
组合逻辑F92被嵌入在锁存器LL91(到F92的输入)和LL92(F92的输出)之间,其具有其选通的相同时序。也就是说,LL91、F92以及LL92是逻辑管线的常规部分。
另一方面,其中存储了组合逻辑F93的结果的锁存器LL93被与锁存器LL92(F93的输入)反相地计时。也就是说,LL92、F93和LL93是对应于本发明的实施例的部分。因此,至少在LL92处执行时序错误检测(和相应时钟拉伸,如果需要的话),但是也可在某些或所有其它锁存器处执行。
优选地,常规部分包括组合逻辑,诸如具有用于常规部分的适当处理时间的F92,如在现有技术章节中所讨论的。也就是说,优选地,这些组合逻辑要求超过时钟的半个周期时间且小于其整个周期时间。因此,这些组合逻辑对于根据本发明实施例的时序而言过慢。另一方面,根据本发明实施例的组合逻辑(诸如F93)优选地要求小于时钟的半个周期时间。这些组合逻辑对于锁存器的常规时序而言过快,并且如果被集成在常规部分中可引起错误时序违规。
较大的逻辑电路可包括一个或多个常规部分和本发明的一个或多个实施例。如果存在多个常规部分,则不同部分中的选通的时序可以是相同的(即,例如所有锁存器在CLK=高时是打开的),或者在不同部分中的时序可以是不同的(例如,一个常规部分中的所有锁存器在CLK=高时是打开的,并且另一常规部分中的所有锁存器在CLK=低时是打开的),其中,包括本发明实施例的部分处于具有选通的不同时序的常规部分之间。因此,增强了设计方面的灵活性,这是因为包括本发明实施例的部分中的锁存器的数目可以是奇数编号的的或偶数编号的。
每个常规部分和包括本发明实施例的每个部分包括至少两个锁存器。然而,一部分的开始和结尾处的锁存器也可属于前面或后续部分(例如图9中的锁存器LL92)。
因此,可在不减慢时钟的情况下将相对慢的组合逻辑与管线中的快组合逻辑组合。
在本发明的某些实施例中,可将慢组合逻辑以以下方式与快组合逻辑组合,如图10中所示:
F102是来自输入锁存器LL101的输入信号被输入到的慢组合逻辑。F102将其计算的结果输出到锁存器LL102。因为F102是慢的,所以在锁存器LL102处可能频繁地发生时序错误。然而,在锁存器LL102处未检测到时序错误。
F103是快组合逻辑。其如此快,以致于在组合逻辑F103将其计算结果输出到的锁存器LL103处常常将发生错误时序违规(因为由快组合逻辑进行的计算花费时钟CLK的小于一半周期)。然而,锁存器LL103被与锁存器LL102反相地计时(这或者因为反相时钟CLK、CLK1,如果锁存器LL102和LL103是相同计时类型的话;或者因为锁存器LL102和LL103是反相计时类型,如果其被连接到同一时钟的话)。因此,如上文概述的,在锁存器LL103处不能发生错误时序违规。
在此组合中,慢组合逻辑F102可从快组合逻辑F103借用时间,使得在锁存器LL103处不(或几乎不)发生时序违规。可通过锁存器LL103处的信号的TED和时钟拉伸来检测其余时序错误,如上文所述。请注意,虽然可主要在锁存器LL102处发生时序违规,但其并不是在那里而是在锁存器LL103处被检测到。
在此组合中,可节省半导体面积和能量,因为只须在快组合逻辑的输出锁存器处执行时序错误检测。
用于慢组合逻辑F102处的时序违规的发生的术语“频繁地”意味着在给定标称时钟频率下且在指定操作条件(诸如电压,温度)下,在其输入锁存器LL101变得透明时相对于到慢组合逻辑中的第一采样信号输入的时序违规以超过50%、优选地超过80%、更优选地超过90%且更优选地超过98%的概率发生。
用于快组合逻辑F103处的错误时序违规的发生的术语“常常地”意味着在给定标称时钟频率下且在指定操作条件下,在其输入锁存器LL102变得透明时相对于到快组合逻辑中的第二采样信号输入的错误时序违规以超过50%、优选地超过80%、更优选地超过90%且更优选地超过98%的概率发生。
描述了其中反相时钟信号与时钟信号反相的实施例。在本申请的上下文中,反相与时钟的时序相关。反相时钟信号的振幅可以与时钟信号的振幅相反(即相应高和低电平是相同的),但是不需要与时钟信号的振幅相反。例如,可使反相时钟信号的高和低电平中的一者或两者相对于时钟信号的相应电平移位某(些)个偏压。并且,可将反相时钟信号的高和低电平中的一者或两者相对于时钟信号的对应电平简化(衰减)大于1或小于1的某个因数。在某些实施例中,可将施加偏压和放大(衰减)进行组合。
上文所述的每个TED部件不限于慢锁存器和用于时序错误检测的比较部件。在本发明的实施例中,可采用用以检测时序违规或时序错误的任何已知方法。
上文所述的每个TED部件在两个反相时钟的情况下可连接到两个时钟以将其拉伸,或者可仅连接到时钟中的一个,如果反相时钟永久性地同步的话。
锁存器和组合逻辑的布置的描述与其信号流相关。组件的几何布置可对应于信号流,但是也可与之不同。
如果并未另外说明或者从上下文显而易见,两个实体不同的陈述意指其提供不同功能。并不一定意指其是基于不同的硬件。也就是说,在本描述中描述的每个实体可以是基于不同的硬件,或者实体中的某些或全部可以是基于同一硬件。
可将时钟、锁存器以及组合逻辑中的每一个布置在单独基板上,或者可将某些或所有组件布置在同一基板上。
可将时钟、锁存器以及组合逻辑中的每一个实现为硬件、软件、固件或其混合物。可将软件体现为计算机可读介质。
应理解的是上文描述的内容是目前被视为本发明的优选实施例的内容。然而,应注意的是优选实施例的描述仅仅是以示例的方式给出的,并且在不脱离由所附权利要求定义的本发明的范围的情况下可进行各种修改。

Claims (14)

1.一种用于防止时序违规的装置,包括:
时钟,其适于提供时钟信号,其中,如果未检测到时序违规,则该时钟信号以一个周期在第一电平与不同于第一电平的第二电平之间交替;
第一锁存器,其适于被计时为使得当时钟信号处于第一电平时其使第一信号通过,并且当时钟处于第二电平时针对第一信号被关闭;
第二组合逻辑,其适于基于通过第一锁存器的第一信号而输出第二信号;
第二锁存器,其适于被计时为使得当时钟信号处于第二电平时其使第二信号通过,并且当时钟处于第一电平时针对第二信号被关闭;
其中,第一锁存器适于被计时为使得当时钟处于第二电平时第一锁存器针对第一信号被关闭;
其中,第二锁存器适于被计时为使得当时钟处于第一电平时第二锁存器针对第二信号被关闭;
其中,第一锁存器和第二锁存器被共同地计时,并且其中,用于第一锁存器和第二锁存器的时钟信号是同步的;
检测部件,其适于检测在时钟信号处于第一电平时的第一锁存器处的第一信号与在时钟信号处于第二电平时的第二锁存器处的第二信号中的至少一个的时序违规;并且
时间拉伸部件,其适于在检测到时序违规的情况下将共同用于第一锁存器和第二锁存器的时钟拉伸,使得时钟与根据所述周期在第一电平与第二电平之间交替的时间相比以一个延迟在第一电平与第二电平之间交替。
2.根据权利要求1所述的装置,还包括
第一组合逻辑,其适于输出第一信号。
3.根据权利要求1所述的装置,其中
第二组合逻辑适于在第二输出端处输出第二信号,并且第二锁存器被直接地连接到第二输出端。
4.根据权利要求2所述的装置,其中
第二组合逻辑适于在第二输出端处输出第二信号,并且第二锁存器被直接地连接到第二输出端;并且
第一组合逻辑适于在第一输出端处输出第一信号,并且第一锁存器被直接地连接到第一输出端。
5.根据权利要求1或2所述的装置,其中
所述时钟适于提供时钟信号和反相时钟信号,其中,当时钟信号处于第一电平时,反相时钟信号处于第一反相电平,并且当时钟信号处于第二电平时,反相时钟信号处于不同于第一反相电平的第二反相电平;以及
所述第一锁存器适于检查时钟信号是否处于第一电平,且如果时钟信号处于第一电平则使第一信号通过;并且所述第二锁存器适于检查反相时钟信号是否处于第二反相电平,且如果时钟信号处于第二反相电平则使第二信号通过。
6.根据权利要求5所述的装置,其中
第一电平与第二反相电平相同;和/或
第二电平与第一反相电平相同。
7.根据权利要求1或2所述的装置,其中
所述时钟适于在时钟输出端处输出时钟信号,以及以下各项中的至少一个
所述第一锁存器被直接地连接到时钟输出端,并适于检查时钟信号是否处于第一电平,并且如果时钟信号处于第一电平,则使第一信号通过;以及
所述第二锁存器直接地连接到时钟输出端,并且所述第二锁存器适于检查时钟信号是否处于第二电平,并且如果时钟信号处于第二电平,则使第二信号通过。
8.根据权利要求5所述的装置,其中
所述时钟适于在时钟输出端处输出时钟信号,以及以下各项中的至少一个
所述第一锁存器被直接地连接到时钟输出端,并适于检查时钟信号是否处于第一电平,并且如果时钟信号处于第一电平,则使第一信号通过;以及
所述时钟适于在反相时钟输出端处输出反相时钟信号,所述第二锁存器直接地连接到反相时钟输出端,并且第二锁存器适于检查反相时钟信号是否处于第二反相电平,并且如果反相时钟信号处于第二反相电平,则使第二信号通过。
9.根据权利要求1或2所述的装置,包括
多个组合逻辑,其由至少一个奇数编号的组合逻辑和包括第二组合逻辑的至少一个偶数编号的组合逻辑组成;
多个锁存器,其由包括第一锁存器的奇数编号的锁存器和包括第二锁存器的偶数编号的锁存器组成;其中
除第一锁存器之外的每个奇数编号的锁存器适于使从所述至少一个奇数编号的组合逻辑中的对应一个输出的相应信号通过,并且所述第一锁存器适于使第一信号通过;
每个偶数编号的锁存器适于使从所述至少一个偶数编号的组合逻辑中的对应一个输出的相应信号通过;
所述至少一个奇数编号的组合逻辑中的每一个适于基于通过直接在前一个偶数编号的锁存器的信号而输出相应信号;
所述至少一个偶数编号的组合逻辑中的每一个适于基于直接在前一个奇数编号的锁存器中通过的信号而输出相应信号;
每个奇数编号的锁存器适于当时钟信号处于第一电平时使由对应的奇数编号的组合逻辑输出的相应信号通过;
每个偶数编号的锁存器适于当时钟信号处于第二电平时使由对应的偶数编号的组合逻辑输出的相应信号通过。
10.根据权利要求1或2所述的装置,还包括
α锁存器,其适于当时钟信号处于第一电平时使α信号通过;
β组合逻辑,其适于基于通过α锁存器的α信号而输出β信号;
β锁存器,其适于当时钟处于第一电平时使β信号通过;其中
所述α信号包括通过第二锁存器的第二信号;和/或
所述第一信号包括通过β锁存器的β信号。
11.根据权利要求2所述的装置,还包括
输入锁存器,其适于被计时为使得当时钟处于第二电平时其使输入信号通过;其中
所述第一组合逻辑适于基于通过输入锁存器的输入信号而输出第一信号;
所述检测部件适于当时钟处于第二电平时检测第二锁存器处的第二信号的时序违规;
所述第一锁存器未被操作连接到用于当时钟处于第一电平时检测第一锁存器处的第一信号的时序违规的部件;
所述第一组合逻辑是慢的,使得如果在时钟从第二电平交替到第一电平的情况下第一采样信号被输入到第一组合逻辑中,则基于第一采样信号的第一信号的时序违规在第二锁存器处频繁地发生;以及
第二组合逻辑是快的,使得如果在时钟从第一电平交替到第二电平的情况下第二采样信号被输入到第二组合逻辑中,则第二组合逻辑以超过50%的概率在时钟交替到第一电平之前提供第二信号。
12.根据权利要求1或2所述的装置,其中
所述第一锁存器适于当时钟从第一电平交替到第二电平时存储第一信号并且保持第一信号直至时钟再次交替到第一电平为止;和/或
所述第二锁存器适于当时钟从第二电平交替到第一电平时存储第二信号并且保持第一信号直至时钟再次交替到第二电平为止。
13.一种用于防止时序违规的方法,包括
当时钟信号处于第一电平时使第一信号通过第一锁存器;
当时钟信号处于第二电平时,针对第一信号关闭第一锁存器;
基于通过第一锁存器的第一信号而输出第二信号;
当时钟信号处于第二电平时使第二信号通过第二锁存器;
当时钟信号处于第一电平时,针对第二信号关闭第二锁存器;
将第一锁存器计时为使得当时钟处于第二电平时第一锁存器针对第一信号被关闭;
将第二锁存器计时为使得当时钟处于第一电平时第二锁存器针对第二信号被关闭;
其中,第一锁存器和第二锁存器被共同地计时,并且其中,用于第一锁存器和第二锁存器的时钟信号是同步的;
检测在时钟信号处于第一电平时的第一锁存器处的第一信号和在时钟处于第二电平时的第二锁存器处的第二信号中的至少一个的时序违规;并且
如果检测到时序违规,则将共同用于第一锁存器和第二锁存器的时钟拉伸,使得时钟与根据一个周期在第一电平与第二电平之间交替的时间相比以一个延迟在第一电平与第二电平之间交替;其中
如果未检测到时序违规,则时钟信号以所述一个周期在第一电平与不同于第一电平的第二电平之间交替。
14.一种用于防止时序违规的计算机可读介质,其包括一组指令,该组指令当在装置上执行时被配置成促使该装置执行根据权利要求13所述的方法。
CN201480065551.4A 2013-10-02 2014-10-02 防止时序违规 Active CN105794110B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13187094.1 2013-10-02
EP13187094.1A EP2858244A1 (en) 2013-10-02 2013-10-02 Preventing timing violations
PCT/EP2014/071134 WO2015049328A1 (en) 2013-10-02 2014-10-02 Preventing timing violations

Publications (2)

Publication Number Publication Date
CN105794110A CN105794110A (zh) 2016-07-20
CN105794110B true CN105794110B (zh) 2020-03-17

Family

ID=49328352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480065551.4A Active CN105794110B (zh) 2013-10-02 2014-10-02 防止时序违规

Country Status (6)

Country Link
US (1) US9774329B2 (zh)
EP (2) EP2858244A1 (zh)
JP (1) JP6578287B2 (zh)
KR (1) KR20160104614A (zh)
CN (1) CN105794110B (zh)
WO (1) WO2015049328A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2525864B (en) * 2014-05-06 2021-04-07 Advanced Risc Mach Ltd Clock frequency reduction for an electronic device
US10587248B2 (en) 2017-01-24 2020-03-10 International Business Machines Corporation Digital logic circuit for deterring race violations at an array test control boundary using an inverted array clock signal feature
JP2020530217A (ja) * 2017-06-22 2020-10-15 ミニマ プロセッサー オイ タイミングイベント検出
CN108766485A (zh) * 2018-05-31 2018-11-06 夏月石 一种半导体存储器的存储单元电路及设计方法
US11133794B1 (en) 2020-09-14 2021-09-28 Nvidia Corp. Signal calibration circuit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369814A (zh) * 2008-09-19 2009-02-18 华为技术有限公司 数字锁相环和消除毛刺的方法
US8130019B1 (en) * 2008-10-15 2012-03-06 Octasic Inc. Clock signal propagation method for integrated circuits (ICs) and integrated circuit making use of same
CN102402242A (zh) * 2010-09-10 2012-04-04 三星半导体(中国)研究开发有限公司 时钟管理单元
CN101268615B (zh) * 2005-09-23 2012-06-06 英特尔公司 用于迟滞时序转变检测的方法和装置
CN102638251A (zh) * 2011-02-14 2012-08-15 南亚科技股份有限公司 检测和防止设定失败的电路及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829716B2 (en) * 2000-06-16 2004-12-07 International Business Machines Corporation Latch structure for interlocked pipelined CMOS (IPCMOS) circuits
JP4748896B2 (ja) * 2001-08-10 2011-08-17 ルネサスエレクトロニクス株式会社 同期型データ転送処理装置
JP5173216B2 (ja) * 2006-04-18 2013-04-03 パナソニック株式会社 半導体集積回路システム、半導体集積回路、オペレーティングシステム及び半導体集積回路の制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101268615B (zh) * 2005-09-23 2012-06-06 英特尔公司 用于迟滞时序转变检测的方法和装置
CN101369814A (zh) * 2008-09-19 2009-02-18 华为技术有限公司 数字锁相环和消除毛刺的方法
US8130019B1 (en) * 2008-10-15 2012-03-06 Octasic Inc. Clock signal propagation method for integrated circuits (ICs) and integrated circuit making use of same
CN102402242A (zh) * 2010-09-10 2012-04-04 三星半导体(中国)研究开发有限公司 时钟管理单元
CN102638251A (zh) * 2011-02-14 2012-08-15 南亚科技股份有限公司 检测和防止设定失败的电路及方法

Also Published As

Publication number Publication date
US20160241241A1 (en) 2016-08-18
WO2015049328A1 (en) 2015-04-09
JP6578287B2 (ja) 2019-09-18
CN105794110A (zh) 2016-07-20
JP2016536941A (ja) 2016-11-24
EP3053269B1 (en) 2023-06-14
EP3053269A1 (en) 2016-08-10
US9774329B2 (en) 2017-09-26
KR20160104614A (ko) 2016-09-05
EP2858244A1 (en) 2015-04-08

Similar Documents

Publication Publication Date Title
CN105794110B (zh) 防止时序违规
Choudhury et al. TIMBER: Time borrowing and error relaying for online timing error resilience
US7653850B2 (en) Delay fault detection using latch with error sampling
US7409631B2 (en) Error-detection flip-flop
US10024916B2 (en) Sequential circuit with error detection
US8395417B2 (en) Digital noise filter
US8301970B2 (en) Sequential circuit with error detection
Beer et al. Metastability in better-than-worst-case designs
US11929746B2 (en) Method and arrangement for protecting a digital circuit against time errors
WO2011109713A2 (en) Error detecting/correcting code enhanced self-checked/corrected/timed nanoelectronic circuits
US10372868B2 (en) Error resilient digital signal processing device
TW201928959A (zh) 用於確保在數位暫存器電路的第二級處的有效資料的方法及安排
US9419592B2 (en) Variability resistant circuit element and signal processing method
US9112489B2 (en) Sequential logic circuit and method of providing setup timing violation tolerance therefor
US8103941B2 (en) Low overhead soft error tolerant flip flop
WO2006115474A1 (en) Error recovery within processing stages of an integrated circuit
Lechner et al. A robust asynchronous interfacing scheme with four-phase dual-rail coding
US20230008476A1 (en) Error detection and correction method and circuit
US8552765B2 (en) Adaptive multi-stage slack borrowing for high performance error resilient computing
Friesenbichler et al. A comprehensive approach for soft error tolerant four state logic
Liu et al. Error-resilient sequential cells with successive time borrowing for stochastic computing
Gardiner et al. C-element Latch Scheme with Improved Fault Tolerance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170123

Address after: Oulu

Applicant after: At the processor companies code

Address before: The city of Espoo, Finland

Applicant before: Aalto University Foundation

Applicant before: Finnish National Technical Research Center joint-stock company

GR01 Patent grant
GR01 Patent grant