CN101727519A - 用于检错和纠错的两阶段定时停滞技术 - Google Patents
用于检错和纠错的两阶段定时停滞技术 Download PDFInfo
- Publication number
- CN101727519A CN101727519A CN200910205256A CN200910205256A CN101727519A CN 101727519 A CN101727519 A CN 101727519A CN 200910205256 A CN200910205256 A CN 200910205256A CN 200910205256 A CN200910205256 A CN 200910205256A CN 101727519 A CN101727519 A CN 101727519A
- Authority
- CN
- China
- Prior art keywords
- signal
- circuit
- error
- register
- relevant block
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1497—Details of time redundant execution on a single processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/04—Clock gating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
本发明涉及用于检错和纠错的两阶段定时停滞技术。本发明的一个实施例提供一种用定时错误检测和纠正机制扩充电路设计的系统。这一系统首先将电路分割为由独立时钟源钟控的一组块,并且在这一组块之间集成错误信号传播电路。对于相应块,该系统确定将实施为双倍数据采样寄存器的一组内部寄存器,并且用双倍数据采样寄存器取代确定的一组内部寄存器,其中给定的双倍数据采样寄存器被配置成在它检测到定时错误时生成错误信号。然后,该系统将两阶段纠错电路集成到相应块中,其中当被双倍数据采样寄存器通知定时错误时,两阶段纠错电路被配置成停滞相应块中的寄存器。
Description
技术领域
本发明主要地涉及用于检测和纠正电路中的错误的技术和系统。具体而言,本发明涉及用于扩充电路设计以检测和纠正定时错误的技术和系统。
背景技术
半导体制作技术的发展通过制作更小晶体管并且将这些晶体管更近地压缩在一起,已经引起每一半导体器件的晶体管数目剧增。然而,这些新设计实践可能使制作的集成电路(IC)更容易受到可能影响IC性能的物理故障或者寄生效应。回应这些潜在危险,常常只要有可能就设计具有冗余、检错和纠错的IC以使这些电路更稳健。然而,与这样的检错和纠错电路关联的性能和布局开销可能使它们在新电路设计中难以广泛应用。
具体而言,针对制造的IC的定时延迟错误在用于IC的初始设计循环期间难以估计和防止。这些错误在不能在对寄存器进行采样以捕获产生的结果之前完成针对给定输入矢量的计算时出现。在一些场合中,定时延迟错误可能由于随机制造错误而出现在制造的IC中,此时可能丢弃有故障的IC。然而,当在一批制造的IC内遇到定时延迟错误时,可以降低用于IC的时钟频率以允许IC正确地操作,但是以牺牲为IC设计的操作性能水平为代价。
另一方面,制造的IC可以在比针对它的电路设计而预测的频率更高的频率工作。当设计和实施给定电路时,该电路一般被设计成在保守的用于过程和环境变量的值的集合(即,设计拐角)内操作。另外,通常填补由分析算法和模型所生成的针对电路的定时预测,以解决它们不能对一些物理、电和/或逻辑效应进行建模。这些预测产生如下设计裕度,该设计裕度是在制造的电路与分析结果之间的定时中的差异,并且它是对性能预测对于设计过程而言有多保守的测量。当由于大设计裕度而引起所假设的最坏情况的场景无法用硅具体实现时,该大设计裕度的结果是超裕度设计的电路,这是所不希望的。普遍做法是在宽范围的功率和时钟频率参数之下测试制作的IC以确定IC的实际工作参数。通常一旦IC经历定时错误就发现IC的一个断点。
已经开发用于检测和纠正定时错误的诸多解决方案,并且这些方案中的多种方案基于双倍数据采样寄存器(DDSR)。DDSR是如下的经过修改的触发器(FF),该FF能够通过使用比标准寄存器更迟地对数据进行采样的额外“阴影”锁存器、然后比较两个采样数据的差异,来检测延迟错误。如果DDSR的“阴影”锁存器采样到与DDSR的常规锁存器不同的值,则DDSR确定它已经检测到错误。一旦DDSR已经检测到错误,错误信号就传播到设计中的可以纠正错误的逻辑。
然而,利用DDSR来实施检错电路的现有系统常常要求存在对电路的专门化流水线组织,并且通过刷新流水线和重放指令/数据来进行纠错。用于执行检错和纠错的两种常用DDSR解决方案包括:
·通过停滞(stall)时钟以允许利用来自“阴影”锁存器的正确值取代不正确的值或者通过停滞修改的流水线设计中的数据,在原处纠错。
·在检测到电路流水线中的错误之后刷新该流水线,并且允许电路流水线重新计算结果。
这些实施可能对给定的电路设计引起大量物理开销,并且可能在刷新流水线以进行纠错时引入显著性能损失。第一种解决方案可能对可以用检错和纠错能力扩充什么类别的电路设定严格限制,因为它要求简易流水线。另外,它也由于它的纠错机制和修改的电路流水线而引起大量电路开销。第一种解决方案通常用于定制电路设计,其中检错和纠错适用于设计的特定部分。没有广泛使用第二种解决方案以用检错和纠错能力扩充一般的ASIC设计,因为它无论何时检测错误都可能引起大量性能开销。
发明内容
本发明的一个实施例提供用于用定时错误检测和纠正机制扩充电路设计的方法和装置。这一系统首先将电路分割为由独立时钟信号钟控的一组块并且在这一组块之间集成错误信号传播电路。对于相应块,该系统确定将实施为双倍数据采样寄存器的一组内部寄存器,并且用双倍数据采样寄存器取代确定的一组内部寄存器,其中给定的双倍数据采样寄存器被配置成在它检测到定时错误时生成错误信号。然后,该系统将两阶段纠错电路集成到相应块中,其中在被双倍数据采样寄存器通知定时错误时,两阶段纠错电路被配置成停滞相应块中的寄存器。该系统还将根据全局时钟信号和错误信号来生成局部时钟信号的定时电路集成到相应块中。
在对这一实施例的一种变化中,该系统通过配置相应块的内部寄存器以在两阶段纠错电路的第一或者第二停滞阶段期间停滞来将两阶段纠错电路集成到相应块中。另外,该系统配置输入缓存器以在第一停滞阶段期间对相应块的输入信号源的信号值进行采样和保持。该系统配置输入复用器以在第二停滞阶段期间选择输入缓存器的输出信号,并且除此之外选择用于相应块的输入信号源,从而输入复用器的输出信号耦合到相应块的主输入信号。该系统还配置第一输出寄存器以在两阶段纠错电路的第二停滞阶段期间停滞,其中第一输出寄存器的输出信号耦合到相应块的主输出信号。类似地,该系统配置第二输出寄存器以在两阶段纠错电路的第一或者第二停滞阶段期间停滞,其中第二输出寄存器的输出信号耦合到第一输出寄存器的输入信号。
在又一变化中,两阶段纠错电路针对在双倍数据采样寄存器通知定时错误之后的时钟循环激活第一停滞阶段。
在又一变化中,两阶段纠错电路针对在第一停滞阶段之后的时钟循环激活第二停滞阶段。
在对这一实施例的一种变化中,该系统通过首先选择检错覆盖范围来确定将实施为双倍数据采样寄存器的一组寄存器,该检错覆盖范围指定相应块中将实施为双倍数据采样寄存器的寄存器的比例。然后,该系统确定相应块中在所需频率难以设计的关键路径,并且从确定的关键路径选择多个寄存器,从而所选寄存器的比例落在所选检错覆盖范围内。
在对这一实施例的一种变化中,该系统通过使用第一逻辑电路来组合由相应块的双倍数据采样寄存器生成的错误信号生成针对相应块的块级错误信号,来在一组块之间集成错误信号传播电路,其中第一逻辑电路在由双倍数据采样寄存器生成的至少一个错误信号的信号值是错误值时将错误值传播到块级错误信号上。另外,错误信号传播电路通过使用第二逻辑电路来组合来自该一组块的块级错误信号来生成全局错误信号,其中第二逻辑电路在至少一个块级错误信号的信号值是错误值时将错误值传播到全局错误信号上。
在又一变化中,相应块的定时电路基于块级错误信号、全局错误信号和全局时钟信号的信号值来生成局部时钟信号。为此,定时电路在块级错误信号和全局错误信号的信号值不是错误值时将全局时钟信号传播到局部时钟信号上。另外,定时电路在块级错误信号或者全局错误信号中的至少一个的信号值是错误值时阻止全局时钟信号的时钟信号转变传播到局部时钟信号上。
附图说明
图1图示了根据本发明一个实施例的用检错和纠错系统扩充的电路,该电路包括多个电路块和耦合到该电路块的多个通信信号。
图2图示了根据本发明一个实施例的扩充电路块。
图3图示了根据本发明一个实施例的扩充电路的全局错误传播电路。
图4A图示了根据本发明一个实施例的局部错误传播电路。
图4B图示了根据本发明一个实施例的全局错误传播电路。
图4C图示了根据本发明一个实施例的定时电路。
图4D图示了根据本发明一个实施例的局部错误传播电路。
图4E图示了根据本发明一个实施例的全局错误传播电路。
图4F图示了根据本发明一个实施例的定时电路。
图5A图示了根据本发明一个实施例的四级布尔AND运算。
图5B图示了根据本发明一个实施例的用于四级布尔AND运算的晶体管电路实施。
图6图示了根据本发明一个实施例的用于扩充电路的多个传播路径。
图7呈现了根据本发明一个实施例的用于扩充电路以检测和纠正定时错误的过程的流程图。
图8呈现了根据本发明一个实施例的用于配置扩充电路块以检测和纠正定时错误的过程的流程图。
图9呈现了根据本发明一个实施例的用于检测和纠正定时错误的过程的流程图。
图10图示了根据本发明一个实施例的有助于扩充电路以检测和纠正定时错误的示例计算机系统。
表1说明了根据本发明一个实施例的示例性纠错过程。
具体实施方式
呈现以下描述以使本领域技术人员能够实现和利用本发明,并且在特定应用及其要求的上下文中提供该描述。本领域技术人员将容易清楚对公开的实施例的各种修改,并且这里限定的一般原理可以适用于其它实施例和应用而不脱离本发明的精神实质和范围。因此,本发明不限于所示实施例而是将被赋予以与这里公开的原理和特征一致的最广范围。
在本具体实施方式中描述的数据结构和代码通常存储于计算机可读存储介质上,该介质可以是能够存储用于由计算机系统使用的代码和/或数据的任何设备或者介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储设备(比如盘驱动器)、磁带、CD(光盘)、DVD(数字多功能盘或者数字视频盘)或者现在已知或者以后开发的能够存储计算机可读介质的其它介质。
可以将具体实施方式这一节中描述的方法和过程实施为能够存储于如上所述的计算机可读存储介质中的代码和/或数据。当计算机系统读取和执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行体现为数据结构和代码的并且存储于计算机可读存储介质内的方法和过程。
另外,可以在硬件模块中包括下文描述的方法和过程。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)和现在已知或者以后开发的其它可编程逻辑器件。当激活硬件模块时,硬件模块执行硬件模块内包括的方法和过程。
概述
本发明的实施例提供一种用于利用执行检错和纠错操作的逻辑架构扩充电路设计的方法和系统。这些方法可服从电子设计自动化(EDA)工具和流程,并且可以由包括处理器、存储器和用于存储指令的存储设备的计算机系统实施,这些指令在由计算机系统执行时造成计算机系统执行用于利用对电路设计执行检错和纠错操作的逻辑来扩充电路设计的方法。用于利用检错和纠错能力扩充电路设计的方法和系统在下文中称为扩充系统。另外,由扩充系统修改以实现检错和纠错能力的电路在下文中称为扩充电路。
在本发明的一些实施例中,扩充电路能够纠正某些类型的定时诱发错误而对电路的表现(behavior)影响最少。另外,扩充系统旨在于克服与用检错和纠错能力扩充电路设计关联的诸多复杂问题。例如,错误恢复操作可以使电路的一个部分变得与电路的其余部分不同步(即,落后一个时钟循环)。另外,对快速电信号可以如何跨微芯片传播的物理限制使得用检错和纠错能力扩充快速和大型电路设计这一任务变得复杂。这是因为需要检测错误,并且需要生成错误信号和跨微芯片传播错误信号,以防止检测到的错误传播,所有这些都在后续时钟转变之前。当对完整电路设计施加纠错时,从时钟源到DDSR的传播延时可能妨碍DDSR及时生成错误信号以在数据源处阻止后续上升时钟沿。
在本发明的一些实施例中,扩充系统将时钟停滞(门控)和原处纠错电路并入到电路设计中,以管理与用检错和纠错能力扩充完整设计关联的复杂问题。这些实施例将电路设计分割为多个独立钟控的电路块,其中每个电路块实施如下两阶段时钟停滞技术,该技术允许电路从任何数目或者序列的局部延迟错误中恢复,并且响应于在任何电路块的纠错操作跨电路块执行隐式重新同步操作。
图1图示了根据本发明一个实施例的用检错和纠错能力扩充的示例电路100。扩充电路100由扩充系统创建以用检错和纠错能力扩充电路设计,并且扩充电路包括多个电路块102-106和耦合到电路块102-106的多个块间通信信号(例如,块间通信信号108)。
在本发明的一些实施例中,扩充系统向扩充电路100提供一种用以在错误恢复操作之后重新同步电路块的机制,其中时钟延迟朝着电路边界传播。这一电路边界包括能够与电系统的其它电路部件传递时钟延迟的握手机制110-112。因此,当来自独立钟控的电路块内的错误恢复操作造成时钟停滞而朝着扩充电路100的电路边界传播时,电路100的握手机制110-112向其它电路部件通知电路边界是接受还是提供新数据。
扩充电路架构
在本发明的一些实施例中,扩充电路设计包括将以下部件并入到扩充电路中:用于执行检错的DDSR、用于跨电路块传播错误信号的电路、用于从检测到的错误恢复并且用于同步独立钟控电路块的电路、以及在电路设计的电路边界处的握手机制。在这些实施例的一些变化中,扩充电路采用已经存在于电路设计的异步I0中的握手机制。在其它变化中,扩充电路可以将存在于电路设计的内部块内的握手协议扩展到电路设计的边界处的握手机制上。
在一些实施例中,扩充系统可以用来扩充广泛的多种流水线式电路设计,并且不限于可刷新(flushable)的流水线。另外,扩充系统可以用来扩充比其它检错/纠错技术能够管理的电路设计更大的电路设计。扩充系统提供的性能归因于电路如何分割为块,其中每个块具有独立门控的时钟源。当扩充电路检测到电路块内的错误时,它触发相同电路块内的纠错操作,并且利用后续时钟循环以执行电路块之间的重新同步。
在一些实施例中,用检错和纠错能力扩充电路设计影响用于电路设计的面积、功率、性能和设计方法。影响水平依赖于若干高级设计决策。第一决策要求选择DDSR覆盖范围:转换成DDSR以执行检错的寄存器的比例。用于电路设计的更大DDSR覆盖范围造成更大功率/面积开销,这反过来可能有碍于通过用检错和纠错能力扩充电路设计而提供的优点。另一方面,更小DDSR覆盖范围需要用于准确地确定应当转换成用于执行检错的DDSR的理想寄存器候选的高级工具和方法。
第二决策要求选择一种用于将DDSR插入到电路设计中的方法。有两种基本DDSR插入方式:在优化电路设计之前通过将电路分割为块来预先规划,或者用于在设计过程后期更改电路实施的工程设计改变订单(ECO)方式。前者能够使用电路优化结果以检测可以从检错中受益最多的电路块中的最坏情况的路径,然后扩充分割的电路设计以将DDSR插入到这些最坏情况的路径中。在本发明的一些实施例中,一种扩充系统执行如下组合式方法,该方法在设计过程早期执行与用检错和纠错能力来扩充电路设计相关联的一些决策(例如,在电路优化过程之前执行时钟门控和/或电路块分割),而在设计过程后期执行一些实施操作(即,在电路合成之后进行DDSR插入和/或电路扩充操作)。
第三决策要求确定用于用检错和纠错能力扩充电路设计的目的。在本发明的一些实施例中,可以扩充电路以实施可以容易地移至动态频率和/或本体偏置(body bias)的动态电源变化。这可能造成扩充电路遇到跨大量电路路径的定时错误,因此要求扩充电路实施大DDSR覆盖范围。在本发明的其它实施例中,可以扩充电路以确保在所需频率难以设计的多个电路路径内的适当功能性。
在本发明的一些实施例中,电路设计者可以针对典型设计裕度优化电路设计,并且依赖于由扩充系统并入到电路设计中的检错和纠错能力,以处理可能在最坏情况的运行期情景中经历定时错误的电路路径。这一方法对于多数应用而言需要极少量DDSR,因此对电路功率和面积具有很小影响。这一方式可以用来减少第一代电路设计的面市时间或者适度地增加电路设计的性能。
电路块流水线
当逻辑块的功能不能在一个时钟周期内执行时,常常使用流水线式架构来实施电路设计。众所周知电路流水线包括通过钟控的寄存器来耦合成序列的多个有顺序的元件,其中有顺序的元件可以并行或者串行执行。在信号与有顺序的元件之间的流水线距离是在信号与前述有顺序的元件之间的任何可能路径上需要穿越的有顺序的元件的最小数目。对通过流水线的距离的这一定义可以用来确定在电路块的输入管脚与给定寄存器之间的距离或者在给定寄存器与块的输出管脚之间的距离。在下文中,符号FFi,j指代与电路块的任何输入管脚有最小距离i而与电路块的任何输出管脚有最小距离j的寄存器。类似地,符号表示FFi,-指代无论寄存器与输出管脚的距离如何都与输入管脚有最小距离i的一组寄存器。另外,符号表示F F-,j指代无论寄存器与输入管脚的距离如何都与输出管脚有最小距离j的一组寄存器。
图2图示了根据本发明一个实施例的扩充电路块200。电路块200实施扩充电路的独立钟控的块,并且包括电路块202、输入复用器204、输入缓存器205、第一输入寄存器206、在电路块202中的多个DDSR(例如,DDSR 208)和寄存器(例如,寄存器210)、第一输出寄存器214和第二输出寄存器212。电路块200的寄存器206-214形成具有最少三级的流水线。在这一流水线中,第一输入寄存器206是FF0,-的成员,并且可以实施为普通寄存器或者DDSR。另外,第一输出寄存器214是FF-,0的成员,第二输出寄存器212是FF-,1的成员,而输出寄存器212-214没有实施为DDSR。在一些实施例中,寄存器212-214可以是来自电路块202的初始寄存器流水线的寄存器。在一些其它实施例中,寄存器212-214可以是在用于电路块202的初始电路设计没有实施具有最少三级的寄存器流水线时扩充到电路块202上的寄存器。
电路块200接受全局时钟信号220和全局错误信号236,并且生成多个时钟信号以在进行纠错的同时控制寄存器206-214的定时。第一输出寄存器214由局部时钟221触发,第二输出寄存器212和寄存器206-210由时钟222触发,而输入缓存器205偶尔由时钟223触发。另外,电路块200在纠错操作期间生成扩充电路的其它块可以用来将它们本身与电路块200同步的块级错误信号。以下段落描述由扩充系统用来创建以下电路部件的技术,该电路部件用于生成时钟信号221-223、用于控制用于输入复用器204的选择信号226、以及用于生成块级错误信号234。
两阶段时钟停滞技术
在本发明的一些实施例中,扩充系统将两阶段时钟停滞技术并入到扩充电路中,其中扩充电路实施可以独立地时钟门控的多个电路块200。在一些实施例中,两个时钟停滞阶段规定电路块200如何响应检测到的错误如下:
阶段I:检测到错误的所有电路块200针对在检错之后的时钟循环取得立即停滞。
阶段II:没有检测到错误的其余电路块200针对在立即停滞之后的时钟循环取得时钟停滞。
第一时钟停滞阶段保证在执行纠错之前没有传播错误(纠错在与检测到错误相同的时钟循环中开始)。纠正的值可能占用一个附加时钟循环来传播,在某些寄存器处这需要时钟停滞以保证错误值没有被锁存。需要第二阶段以在电路块执行纠错操作之后重新同步单独钟控的块。
在下文中,与检错和纠错操作关联的时钟循环标记如下:E1表示在电路块200检测到第一错误时的时钟循环,而E2-E4表示由扩充电路用来执行纠错的时钟循环。类似地,没有检测到错误(并且没有执行纠错操作)的扩充电路具有按以下对应顺序来标记的对应时钟循环,该对应顺序为:NE1、NE2、NE3和NE4。例如,如果在第二扩充电路中没有发现错误,则用于第一扩充电路的NE1将等效于用于第二扩充电路的E1。
另外,时钟循环在下文中称为在时钟的采样转变时开始,而恰在后续采样转变之前结束。由寄存器在给定时钟循环期间锁存的信号在相同时钟循环期间传播到一些其它寄存器的输入,并且在后续时钟循环期间锁存这些输入。将DDSR插入到电路块200中取代标准寄存器引入在功率、面积和性能方面的开销。在一些应用中,有可能的是针对特定寄存器插入检错和纠错逻辑的益处可能没有大到足以使该开销具有合理性。因此,本发明的实施例没有提倡在整个给定电路设计内用DDSR取代寄存器。代替的是,针对电路块200的关键部分以DDSR作为目标。在扩充系统的一些应用中,可以存在不需要任何DDSR的多个块。然而,即使当电路块200无需DDSR用于检错时,仍然用两阶段时钟停滞技术实施它,因而它可以与扩充电路的其它电路块重新同步。
扩充电路表现
在本发明的一些实施例中,用于扩充电路设计的方法可以设定关于如何用DDSR对扩充电路的电路块200进行实施和扩充的若干条件。这些条件可以包括:
·C1-驱动电路块200的时钟信号222与驱动扩充电路中的其它块的时钟信号分离,并且可以被阻止一个时钟循环(尽管,电路块200仍然可以使用输入缓存器205上的时钟信号223来接收和缓存传入输入矢量)。
·C2-DDSR取代不属于FF-,0或者FF-,1的寄存器。
·C3-去往FF0,-的输入矢量缓存到输入缓存器205中,并且输入复用器204在当前输入信号源228与输入缓存器205之间选择。在一种对这些实施例的变化中,输入缓存器205可以由全局时钟220钟控。在另一变化中,输入缓存器205由时钟信号223钟控,这通过仅针对在检错之后的时钟循环生成时钟脉冲来减少功率消耗。
·C4-在阶段I的停滞中(在E2期间),对于适用电路块,停滞除了FF-,0和输入缓存器之外的整个电路块200(即,停滞时钟信号222,但是没有停滞时钟信号221和223)。
·C5-在阶段II的停滞中(在E3期间),对于适用块,停滞整个电路块200。在对这一实施例的一些变化中,这通过停滞全局时钟信号220来实现。在其它变化中,这通过停滞电路块200的时钟信号221-223来实现。
·C6-组合来自电路块200的DDSR的错误信号(例如,DDSR错误224)以形成块级错误信号234,并且组合来自扩充电路的一组电路块的块级错误信号以形成全局错误信号236。在本发明的一些实施例中,全局错误信号236传播回到用于全局时钟信号220的源,以在阶段II的停滞期间停滞每个独立钟控的块。
·C7-输入复用器204在经历阶段I停滞操作的电路块中在停滞操作之后的时钟循环期间选择输入缓存器205的输出。除此之外,输入复用器204选择用于所有其它电路块的输入信号源228。
在一些实施例中,电路块200的表现可能受到与扩充系统实施的检错和纠错能力关联的若干性质的影响。这些性质包括:
·P1-当停滞寄存器时该寄存器没有锁存错误。
·P2-如果错误不可检测则它不存在(例如,其中未采用DDSR的寄存器)。
·P3-在紧接在停滞操作之后的时钟循环期间没有检测到定时错误(例如,在停滞需要1.5×T时其允许安排信号2T,T是时钟周期)。
三个块性质P1-P3表明扩充电路块200在E1至E3期间在多于一个时钟循环中没有经历错误,并且电路块200在E3期间没有经历错误。以下段落通过展示系统在E3结束时的稳定状态与在NE2结束时的稳定状态相同来确定扩充电路从检测到的错误中正确地恢复出来。实质上,系统在检测到错误之后在三个时钟循环内从错误中完全地恢复,并且仅耗用一个时钟循环用于该恢复过程。这一展示针对在检测到错误之后的时钟循环来说明块的信号如何表现,然后将这些信号值与对应无错情况的信号值相对照。
表1说明了当两个电路块在后续全局时钟时段中检测到错误时的示例性纠错过程。这一例子与包括输入握手机制H1、三个电路块(即,B1-B3)和输出握手机制H2的扩充电路关联。在本例中,电路块B2在时钟时段T1期间检测到定时错误,并且启动纠错过程。
纠错过程的阶段I在时钟时段T2期间发生,其中电路块B2被停滞以执行局部纠错操作。这一停滞操作向电路块B2提供它从定时错误中恢复所需要的额外时间。纠错过程的阶段II在时钟时段T3期间发生,其中电路块B1和B3以及握手机制H1-H2被停滞,以将它们与电路块B2同步。作为纠错过程的结果,电路块B2的寄存器在全局时钟时段T2结束时锁存正确值,并且电路块B2在全局时钟时段T3结束时与扩充电路的其余部分再次同步。
也在本例中,电路块B3在时钟时段T2期间经历定时错误。然而,由于在时钟时段T3期间停滞电路块B3,所以它具有充足时间来从定时错误中恢复。这一停滞操作防止电路块B3检测到定时错误(即,性质P3),并且防止它启动新纠错过程。
表1
在一些实施例中,仅存在几种在扩充电路中可以遇到的块类型与块性质P1-P3一致:
·类型I-在E1期间检测错误的电路块(例如,表1的电路块B2)。
·类型II-在E2期间检测错误的电路块(例如,表1的电路块B3)。
·类型III-在E1、E2或者E3期间没有检测到任何错误的电路块(例如,表1的电路块B1)。
电路块在E1期间操作如下:
·类型I电路块:
-块锁存与NE1值对应的相同值,并且锁存一些错误。
-块在最后两级寄存器没有经历错误。
·类型II和III电路块:
-所有信号值对应于NE1值,因为所有操作在这一点正确,并且所有寄存器都被正常地钟控。
电路块在E2期间操作如下:
·类型I电路块:
-停滞除了寄存器FF-,0之外的所有寄存器。
-局部地纠正所有错误,因而所有停滞的寄存器保留与NE1对应的正确值。
-没有传播错误(即,目标寄存器没有锁存错误),因为没有DDSR向钟控的寄存器馈送,并且没有DDSR直接地馈送输出(即,DDSR向可以停滞的FF-,1和FF-,0馈送)。
-FF-,0锁存与NE2值对应的正确值,该值是由FF-,1寄存器在先前时钟节拍(tick)传播的。
-块输入值对应于NE2值。然而,FF0,-没有接受输入矢量(即,FF0,-被停滞)。
-输入值由输入缓存器锁存(即,输入缓存器保持与NE2对应的输入信号)。
·类型II电路块:
-独立钟控的块锁存与NE2对应的相同值(其中存在一些错误)。
-独立钟控的块在块的输出没有经历错误(即,输出信号值对应于NE2)。
·类型III电路块:
-所有信号值对应于NE2信号值,因为所有操作在这一点都是正确的,并且正常地钟控所有寄存器。
电路块在E3期间操作如下:
·类型I电路块:
-钟控所有寄存器。
-FF-,0锁存与NE2值对应的值,因为它的输入没有改变(即,FF-,1继续锁存来自先前时钟循环的值)。
-块输入值改变成与NE3值对应的值(即,所有块的输出在先前时钟节拍期间起动NE2信号值)。
-已经在E1期间停滞的所有寄存器(其锁存与NE1值对应的值)现在由于停滞而锁存与NE2值对应的值。
-作为一种特殊情况,FF0,-通过锁存输入缓存器的输出来锁存与NE2值对应的值。
·类型II电路块:
-停滞所有寄存器(包括FF-,0),这造成锁存的值对应于正确NE2值。
-块输入值对应于NE3值,但是没有处理它们。
·类型III电路块:
-停滞所有寄存器,这造成锁存的值对应于正确NE2值。
-块输出值没有改变。
-输入值改变成NE3信号值,但是没有处理它们。
针对跨时钟循环E1-E3的时钟停滞操作而呈现的表现说明了在E3期间类型I-III的电路块包含与正确NE2值对应的信号值。另外,假如握手机制保证电子系统的其它电路部件期望与正确NE2值对应的输入值,则扩充电路将这些信号值正确地传播到这些其它电路部件中任何一个的输入。
错误信号传播
图3图示了根据本发明一个实施例的扩充电路300的全局错误传播电路308。扩充电路300包括接收全局时钟信号304并且生成多个块级错误信号(例如,块级错误306)的多个电路块(例如,电路块302)。这些块级错误信号传播到全局错误传播电路308,该电路使用这些块级错误信号以生成全局级错误310,并且将全局级错误信号310传播到电路块。
在一些情形中,多个独立钟控的电路块可能同时(即,在跨多个独立钟控的块的对应时钟循环内)或者跨多个时钟循环经历错误。在这两种情况中的任一情况下,扩充电路将来自经历错误的所有电路块的错误信号及时传播到所有其它电路块,以停滞时钟信号的后继采样转变。
图4A图示了根据本发明一个实施例的局部错误传播电路400。局部错误传播电路400。局部错误传播电路400存在于独立钟控的电路块内,并且可以通过组合多个DDSR错误404-406与布尔AND逻辑门402来生成针对电路块的块级错误信号408。在这一实施例中,DDSR错误信号404-406是去往局部错误传播电路400的活跃-低输入信号,而块级错误408是活跃-低输出信号。为了适应生成活跃-高错误信号的DDSR,来自DDSR的错误信号可以通过将活跃-高错误信号反相以生成活跃-低错误信号,来耦合到局部错误传播电路400的输入。
图4B图示了根据本发明一个实施例的全局错误传播电路420。全局错误传播电路420存在于扩充电路内,并且可以通过组合多个块级错误424-426与布尔AND逻辑门422来为扩充电路的独立钟控的电路块生成全局级错误信号428。在这一实施例中,块级错误信号424-426是去往全局错误传播电路420的活跃-低输入信号,而全局级错误428是活跃-低输出信号。
图4C图示了根据本发明一个实施例的定时电路440。扩充电路通过产生用于相应电路块的局部时钟信号448来对独立钟控的电路块内的全局时钟信号444进行门控。定时电路440存在于独立钟控的电路块内,并且通过将全局时钟444、全局错误445和块级错误446与布尔AND逻辑门442进行组合来生成用于电路块的局部时钟信号448。在这一实施例中,全局错误445和块级错误446是去往定时电路440的活跃-低输入信号,并且在DDSR检测到错误时造成局部时钟448保持为低。在上升时钟沿门控输入值的DDSR在下降时钟沿之后生成错误信号而输入时钟保持为低。因此,定时电路440在全局时钟444为低时接收错误信号445-446,并且在DDSR断言错误信号之时防止全局时钟444上的上升时钟沿传播到局部时钟448。为了适应在下降时钟沿对输入信号进行门控的寄存器(例如,在上升时钟沿之后生成错误信号的DDSR),DDSR的时钟输入可以耦合到通过将局部时钟448反相而生成的时钟信号。
图4D图示了根据本发明一个实施例的局部错误传播电路450。局部错误传播电路450存在于独立钟控的电路块内,并且可以通过组合多个DDSR错误信号454-456与布尔OR逻辑门452来生成针对电路块的块级错误信号458。在这一实施例中,DDSR错误信号454-456是去往局部错误传播电路450的活跃-高输入信号,而块级错误458是活跃-高输出信号。为了适应生成活跃-低错误信号的DDSR,来自DDSR的错误信号可以通过将活跃-低错误信号反相以产生活跃-高错误信号来耦合到局部错误传播电路450的输入。
图4E图示了根据本发明一个实施例的全局错误传播电路460。全局错误传播电路460存在于扩充电路内,并且可以通过组合多个块级错误464-466与布尔OR逻辑门462来为扩充电路的独立钟控的电路块生成全局级错误信号468。在这一实施例中,块级错误信号464-466是去往全局错误传播电路460的活跃-高输入信号,而全局级错误468是活跃-高输出信号。
图4F图示了根据本发明一个实施例的定时电路470。扩充电路通过为相应电路块产生局部时钟信号478来对独立钟控的电路块内的全局时钟信号474进行门控。定时电路470存在于独立钟控的电路块内,并且通过组合全局时钟474、全局错误475和块级错误476与布尔OR逻辑门472来生成用于电路块的局部时钟信号478。在这一实施例中,全局错误475和块级错误476是去往定时电路470的活跃-高输入信号,并且在DDSR检测到错误时造成局部时钟478保持为高。在下降时钟沿门控输入值的DDSR在上升时钟沿之后生成错误信号,而同时输入时钟保持为高。因此,定时电路470在全局时钟474为高时接收错误信号475-476,并且在DDSR断言错误信号时防止全局时钟474上的下降时钟沿传播到局部时钟478。为了适应在上升时钟沿门控输入信号的寄存器(例如,在下降时钟沿之后生成错误信号的DDSR),DDSR的时钟输入可以耦合到通过将局部时钟478反相而生成的时钟信号。
图5A图示了根据本发明一个实施例的四级布尔AND运算500。通过布尔逻辑门(例如,逻辑门502-504)的多层NAND-NOR配置来实施布尔AND运算500。在对这一实施例的一些变化中,布尔AND运算500可以实施为具有少数逻辑级的宽逻辑门。这一实施提供最佳性能,因为逻辑门的晶体管就一个逻辑门的典型扇出而言具有恒定输出负载,并且用于1到0的输入信号转变的关键路径通过NAND和NOR逻辑门的并行晶体管(例如,图5B的网络532-534)传播。在布尔AND运算500的四层实施中,逻辑门的第一层接受与用于布尔AND运算500的输入对应的多个输入信号(例如,输入信号506),而第四层实施为单个布尔NOR逻辑门,该逻辑门生成与用于布尔AND运算500的输出对应的输出信号508。
图5B图示了根据本发明一个实施例的实施四级布尔AND运算500的晶体管电路520。上拉网络530和下拉网络532一起实施布尔NAND逻辑门502。类似地,上拉网络534和下拉网络536一起实施布尔NOR逻辑门504。
在本发明的一些实施例中,优化用于布尔AND操作500的CMOS(互补金属氧化物半导体)实施以便传播错误信号的使能(enabling)转变。对于在信号转变从逻辑值1转变成逻辑值0时发生的使能转变,通过晶体管电路520的时间关键路径通过上拉网络530和下拉网络536传播。换而言之,时间关键路径通过逻辑门502-504中的并联晶体管之一传播,由此避免一般较慢的晶体管栈。因此,可以通过偏置CMOS电路来针对使能输入转变优化用于逻辑门502-504的CMOS实施。为了这样做,栈晶体管网络(例如,下拉网络532和上拉网络534)可以被配置成比并联晶体管网络(例如,上拉网络530和下拉网络536)更弱的拉动。这一优化是可能的,因为实施布尔AND操作的逻辑门无需平衡的延迟。
在本发明的一些实施例中,可以基于用于实施布尔AND操作500的类似技术来实施四级布尔OR运算。例如,可以通过将第一级布尔NOR逻辑门的输出信号耦合到第二级布尔NAND逻辑门的输入信号,来实施二级布尔OR运算。另外,可以基于上述用于实施布尔NAND逻辑门502和布尔NOR逻辑门504的技术,来构造用于四级布尔OR运算的布尔NAND和布尔NOR逻辑门的CMOS实施。通过这样做,针对布尔OR运算的CMOS实施被优化,以便传播在错误信号从逻辑值0转变成逻辑值1时活跃-高错误信号发生的使能转变。
下文按照四扇出(FO4)延迟来表达通过门和互连的延迟。FO4延迟是载有四个同尺寸反相器的反相器的延迟。在用失衡上拉和下拉网络实施逻辑门的情况下,该延迟是针对0到1和1到0的信号转变的延迟的平均。
针对检错和纠错电路的物理约束
图6图示了根据本发明一个实施例的用于扩充电路600的多个传播路径602-604。错误信号传播路径604反映DDSR错误信号622在它传播回到DDSR 620时穿越的路径。错误信号传播路径604穿越块级错误信号624和局部时钟信号628,并且传播的值还受扩充电路600的全局时钟信号626影响。逻辑传播路径602反映在信号通过寄存器606-612的流水线传播时通过逻辑614-618的延迟。
这些传播路径对扩充电路设定两个定时约束。第一约束应用于电路设计的扩充电路块而不是整个芯片。在这一配置之下,局部错误信号与局部独立门控的时钟源争相停止后继采样转变。下文将该约束场景称为“块内”约束。第二约束涉及到在扩充电路块生成全局错误信号,并且在一个时钟周期内将全局错误信号传播回到扩充电路的独立钟控的块。下文也将第二约束称为“块间”约束。
在以下段落中,为时钟和错误信号导出传播约束。这些传播约束对应于多个电路设计假设,并且导出的约束值可以随着不同假设而因电路设计而变化。这些传播约束可以影响用于电路块的可能尺度,由此在用检错和纠错能力扩充电路设计时影响如何将电路设计分割为多个独立钟控的块。
块内约束源于如下观察:由于不能使用DDSR来实施局部钟控电路块的最后两级寄存器,所以该块需要至少三个流水线级以将DDSR包括到块流水线中。因此,该块必须具有足以支持三级流水线的复杂度,其中一个理想传播延迟大于3T(T是时钟周期)。
将电路的定时约束与电路的物理尺度约束相联系要求考虑信号传播速度可以怎样随着不同类别的电路而变化。例如,以下假设允许计算通过相对稠密的逻辑的信号传播速度:
1.将逻辑门以直线对准,
2.某一白空间与单元之比(例如,33%),
3.将成为FO4延迟的平均门延迟。
这些假设将它们本身运用于计算在FO4上通过逻辑的信号传播速度,该信号传播速度以CW单位(通常为微米)表达:
S逻辑=1.33×CW。
类似地,本发明的一些实施例可以根据实际时钟树信息来计算通过时钟分布的信号传播速度,而其它实施例可以基于一些预定假设来计算信号传播速度。例如,可以基于通过另一类电路的速度来近似通过时钟分布的信号传播速度:为了接近最佳延迟而插入反相器的传输线。
众所周知存在介于16于40个FO4延迟之间的任意流水线级的延迟,其中更小延迟提供更大胆的电路设计(即,更接近定制设计性能)。为了使电路设计适应具有这些延迟的流水线级,因而针对错误信号传播的延迟加上时钟分布延迟应当少于8到20个FO4延迟。根据前一节,可以有把握地认为错误信号传播少于4个FO4延迟。因此,块应当小到足以可以在4到16个FO4延迟内传播时钟分布。换而言之,考虑在时钟源处于中心的情况下使用曼哈顿路由来实施的方块,时钟信号需要在少于4到16个FO4时间内越过块的宽度。同时,穿过逻辑的信号可能经历比48到120个FO4延迟更大的延迟(即,至少三个流水线级)。可以就通过相应电路类别的信号在允许时间内越过的距离方面来记下物理约束。在示例性电路中,时钟信号具有约4到16个FO4的时间来越过比通过逻辑的信号可以在48到120个FO4的时间越过的距离更大的距离,这意味着:
距离时钟>距离逻辑
这里使用符号表示“S时钟”来记下时钟信号传播的速度,而使用符号表示“4...16(FO4)”来记下针对时钟信号的4到16个FO4时间的近似延迟。类似地,这里使用符号表示“S逻辑”来记下通过逻辑传播逻辑信号的速度,而使用符号表示“48...120(FO4)”来记下用于传播信号的48到120个FO4时间的近似延迟。使用这一符号表示,时钟信号之间行进的距离与通过逻辑的信号所行进的距离之间的关系意味着:
S时钟×4...16(FO4)>S逻辑×48...120(FO4)。
观察到高性能设计有更高要求,时钟信号的传播速度与逻辑信号的传播速度之间的约束采用以下形式:
S时钟/S逻辑>12。
方法效果
在本发明的一些实施例中,扩充系统向扩充电路提供可以用于诸多应用的进行检错和纠错的能力:
1.可以设计电路以在给定功率/性能裕度内操作,并且能够在最坏情况的设计裕度参数之下可靠地工作。因此,扩充系统使电路能够获得比未用检错和纠错能力扩充的电路更好的功率/性能权衡。另外,通过制造的如下电路来改善电路设计的制作产量,这些电路利用由扩充系统并入到电路设计中的自纠正性质。
2.可以通过更早终止电路优化过程来改善电路设计的面市时间。可以通过用检错和纠错能力扩充电路设计的关键路径,而不是对这些关键路径进行优化以使它们能够在设计裕度内操作,来节省时间。在不仅可以按照实际松弛值而且可以按照变得关键的概率对关键路径进行排序时,这一方法变得引人关注。例如,可以用检错和纠错能力扩充由信号噪声引入明显延迟的长路径,而不是执行侵犯方(aggressor)对准以使侵犯方引入的噪声电平最小。有可能的是可以在用检错和纠错能力扩充时允许所有芯片作为正常操作模式进入检错/纠错循环。
3.扩充电路可以与可变电源、频率和本体偏置组合以使基本电路设计的性能最高。在对这些实施例的一些变化中,扩充系统可以通过在电路设计中创建如下岛状物来扩充电路设计,可以独立地调节这些岛状物以使制造的电路的功率消耗最小。因为可以预先确定错误位置,并且可以将针对各种性能参数的调节预先编程到扩充电路中,这一扩展是可能的。在更多变化中,这一设计方式可以用来应对扩充电路的老化。
4.对于可以提供多个产品副品(spin)的公司,扩充系统可以扩充电路设计以使初始产品副品的风险最小,并且可以在已经验证性能或者已经优化电路设计之后被去除。
在本发明的一些实施例中,扩充系统可以作为对给定电路设计进行扩充的多个EDA工具能力而存在。在对这些实施例的一些变化中,第一工具能力允许电路优化过程将DDSR插入到电路设计中而不是需要加大电路设计尺寸或者必须对电路设计重新定时。从功率/性能观点来看,制造的电路应当在错误率最小的情况下工作。然而,并入过多DDSR和依赖于其纠错能力的电路设计为了实现最优功率或者性能等级而经历过多错误的可能性高。另外,假如DDSR与标准寄存器相比具有更大尺寸和功率消耗,假如一些电路实现也需要最少延迟缓存器,并且假如扩充电路将需要额外逻辑,则用DDSR扩充电路设计会增加电路的制造和运行期成本。因此,选择一组最优的寄存器以使用DDSR来进行实施需要一种静态定时分析工具,其能够在电路路径变得关键的概率方面来区分它们的优先级。
这一第一工具能力涉及给定电路设计的产量(即,给定关键路径可能影响的制造芯片的比例)、与逻辑概率(即,在将两个数相乘时最高有效位(MSB)有多频繁地切换)关联的效果以及侵犯方对准概率(即,如果给定路径仅在5个或者更多侵犯方对准时才变得关键则可以确定它具有低的权重)。在对这些实施例的一些变化中,无需这一工具功能以产生准确路径优先级从而提升高效工具运行期,而在其它实施例中,这一工具被配置为产生准确路径优先级从而保证检错和纠错能力的最佳性能。
在本发明的一些实施例中,第二工具能力以遵循前述定时约束C1-C7的方式将电路设计自动地分割为独立钟控的块。在这些实施例的一些变化中,这一第二工具能力在分割电路设计时利用分级电路设计的模块边界作为向导。
在本发明的一些实施例中,扩充电路的块级独立门控的时钟和定时约束进一步设置对时钟树合成工具和对布局布线(place-and-route)工具的更多约束。重要的是这两种工具使给定块内的块传播延迟最小,并且优化单元布置以使块面积最小。
图7呈现如下流程图,该流程图图示了根据本发明一个实施例的为了扩充电路以检测和纠正定时错误而由计算机系统执行的过程。该系统从将电路分割为一组块开始(操作702)。接着,该系统将错误信号传播电路集成到扩充电路中以耦合来自这一组块的错误信号(操作704)。然后对于相应电路块(操作706),该系统确定将被实施为DDSR的一组寄存器(操作708)并且用DDSR取代该寄存器集合(操作710)。该系统还将两阶段纠错电路集成到相应电路块中(操作712),并且将定时电路集成到相应电路块中(操作714)。注意可以同时或者按任何顺序执行操作708-714。
图8呈现如下流程图,该流程图图示了根据本发明一个实施例的用于配置扩充电路的电路块以检测和纠正定时错误而由计算机系统执行的过程。该系统同时或者按任何顺序执行多个操作802-812。在一个操作中,该系统配置电路块的多个内部寄存器,以在第一或者第二停滞阶段期间停滞(操作802)。在第二操作中,该系统配置电路块的输入缓存器,以在第一停滞阶段期间对信号值进行采样和保持(操作804)。在第三操作中,该系统配置输入复用器,以在第二停滞阶段期间选择输入缓存器的输出(操作806)。在第四操作中,该系统配置输入复用器以在电路块不在第二停滞阶段中时选择输入信号源(操作808)。在第五操作中,该系统配置第一输出寄存器以在第二停滞阶段期间停滞(操作810)。在第六操作中,该系统配置第二输出寄存器以在第一或者第二停滞阶段期间停滞(操作812)。
图9呈现如下流程图,该流程图图示了根据本发明一个实施例的由扩充电路执行的用于检测和纠正定时错误的过程。扩充电路首先确定第一电路块的DDSR是否检测到错误(操作902)。如果没有检测到错误,则扩充电路触发第一电路块中的输入复用器,以选择用于电路块的输入信号源(操作904)。否则,如果检测到错误,则扩充电路在检错之后的时钟循环期间启动第一停滞阶段。在这一第一停滞阶段期间,扩充电路停滞第一电路块中除了第一输出寄存器之外的所有寄存器,并且触发第一电路块中的输入缓存器以锁存输入信号值(操作906)。然后,扩充电路在第一停滞阶段之后的时钟循环期间启动第二停滞阶段。在这一第二停滞阶段期间,扩充电路停滞除了第一电路块之外的所有电路块中的所有寄存器、停滞第一电路块中的第一和第二输出寄存器、并且触发第一电路块的输入复用器,以选择输入缓存器的输出信号(操作908)。
计算机系统
图10图示了根据本发明一个实施例的有助于扩充电路检测和纠正定时错误的示例性计算机系统。
计算机系统1002包括处理器1004、存储器1006和存储设备1008。另外,计算机系统1002可以耦合到显示设备1010和输入设备1011。
存储设备1008存储操作系统1012、电路扩充系统1014、电路设计1018、多个覆盖目标1020、多个项目配置1022和扩充电路1024。在一个实施例中,IC扩充系统1014包括图形用户接口(GUI)模块1016。
在操作期间,将IC扩充系统1014从存储设备1008加载到存储器1006中并且由处理器1004执行。电路扩充系统1014将电路设计1018以及多个覆盖目标1020和多个项目配置1022作为输入,并且生成包括定时错误检测和纠正能力的扩充电路1024。
已经仅出于示例和描述的目的而呈现了对本发明实施例的前文描述。本意并非让它们穷举本发明或者将本发明限于公开的形式。因而,本领域技术人员将清楚许多修改和变化。此外,本意并非让上述公开内容限制本发明。本发明的范围由所附权利要求限定。
Claims (20)
1.一种用于扩充电路以检测和纠正定时错误的方法,所述方法包括:
将所述电路分割为一组块,其中相应块由局部时钟信号来钟控;
在所述一组块之间集成错误信号传播电路;以及
对于相应块:
确定将实施为双倍数据采样寄存器的一组内部寄存器,其中给定的双倍数据采样寄存器被配置成在它检测到定时错误时生成错误信号;
用双倍数据采样寄存器取代所确定的一组内部寄存器;
将两阶段纠错电路集成到所述相应块中,其中在被双倍数据采样寄存器通知定时错误时,所述两阶段纠错电路被配置成停滞所述相应块中的寄存器;以及
将根据全局时钟信号和所述错误信号来生成所述局部时钟信号的定时电路集成到所述相应块中。
2.根据权利要求1所述的方法,其中将所述两阶段纠错电路集成到所述相应块中包括:
配置所述相应块的内部寄存器以在所述两阶段纠错电路的第一或者第二停滞阶段期间停滞;
配置输入缓存器以在所述第一停滞阶段期间对所述相应块的输入信号源的信号值进行采样和保持;
配置输入复用器以在所述第二停滞阶段期间选择所述输入缓存器的输出信号,并且除此之外选择用于所述相应块的输入信号源,其中所述输入复用器的输出耦合到所述相应块的主输入信号;
配置第一输出寄存器以在所述两阶段纠错电路的所述第二停滞阶段期间停滞,其中所述第一输出寄存器的输出信号耦合到所述相应块的主输出信号;以及
配置第二输出寄存器以在所述两阶段纠错电路的所述第一或者第二停滞阶段期间停滞,其中所述第二输出寄存器的输出信号耦合到所述第一输出寄存器的输入信号。
3.根据权利要求2所述的方法,其中所述两阶段纠错电路针对在双倍数据采样寄存器通知定时错误之后的时钟循环激活所述第一停滞阶段。
4.根据权利要求3所述的方法,其中所述两阶段纠错电路针对在所述第一停滞阶段之后的时钟循环激活所述第二停滞阶段。
5.根据权利要求1所述的方法,其中确定将实施为双倍数据采样寄存器的一组寄存器包括:
选择检错覆盖范围,所述检错覆盖范围指定相应块中将实施为双倍数据采样寄存器的寄存器的比例;
确定所述相应块中在所需频率难以设计的关键路径;以及
从所述确定的关键路径选择多个寄存器,使得选择的寄存器的比例落在所述选择的检错覆盖范围内。
6.根据权利要求1所述的方法,其中在所述一组块之间集成错误信号传播电路包括:
通过使用第一逻辑电路来组合由相应块的所述双倍数据采样寄存器生成的所述错误信号,从而生成针对相应块的块级错误信号,其中所述第一逻辑电路在由所述双倍数据采样寄存器生成的至少一个所述错误信号的信号值是错误值时,将错误值传播到所述块级错误信号上;以及
通过使用第二逻辑电路来组合来自所述一组块的块级错误信号来生成全局错误信号,其中所述第二逻辑电路在至少一个所述块级错误信号的信号值是错误值时将错误值传播到所述全局错误信号上。
7.根据权利要求6所述的方法,其中所述相应块的所述定时电路基于所述块级错误信号、所述全局错误信号和所述全局时钟信号来生成所述局部时钟信号;
其中所述定时电路在所述块级错误信号和所述全局错误信号的信号值不是错误值时将所述全局时钟信号传播到所述局部时钟信号上;以及
其中所述定时电路在所述块级错误信号或者所述全局错误信号中的至少一个的信号值是错误值时阻止所述全局时钟信号的时钟信号转变传播到所述局部时钟信号上。
8.一种用于扩充电路以检测和纠正定时错误的设备,所述设备包括:
分割装置,用于将所述电路分割为一组块,其中相应块由局部时钟信号钟控;
第一集成装置,用于在所述一组块之间集成错误信号传播电路;以及
对于相应块:
确定装置,用于确定将实施为双倍数据采样寄存器的一组内部寄存器,其中给定的双倍数据采样寄存器被配置成在它检测到定时错误时生成错误信号;
取代装置,用于用双倍数据采样寄存器取代所述确定的一组内部寄存器;
第二集成装置,用于将两阶段纠错电路集成到所述相应块中,其中在被双倍数据采样寄存器通知定时错误时,所述两阶段纠错电路被配置成停滞所述相应块中的寄存器;以及
第三集成装置,用于将根据全局时钟信号和所述错误信号来生成所述局部时钟信号的定时电路集成到所述相应块中。
9.根据权利要求8所述的设备,其中所述第二集成装置包括:
第一配置装置,用于配置所述相应块的内部寄存器以在所述两阶段纠错电路的第一或者第二停滞阶段期间停滞;
第二配置装置,用于配置输入缓存器以在所述第一停滞阶段期间对所述相应块的输入信号源的信号值进行采样和保持;
第三配置装置,用于配置输入复用器以在所述第二停滞阶段期间选择所述输入缓存器的输出信号,并且除此之外选择用于所述相应块的输入信号源,其中所述输入复用器的输出耦合到所述相应块的主输入信号;
第四配置装置,用于配置第一输出寄存器以在所述两阶段纠错电路的所述第二停滞阶段期间停滞,其中所述第一输出寄存器的输出信号耦合到所述相应块的主输出信号;以及
第五配置装置,用于配置第二输出寄存器以在所述两阶段纠错电路的所述第一或者第二停滞阶段期间停滞,其中所述第二输出寄存器的输出信号耦合到所述第一输出寄存器的输入信号。
10.根据权利要求9所述的设备,其中所述两阶段纠错电路针对在双倍数据采样寄存器通知定时错误之后的时钟循环激活所述第一停滞阶段。
11.根据权利要求10所述的设备,其中所述两阶段纠错电路针对在所述第一停滞阶段之后的时钟循环激活所述第二停滞阶段。
12.根据权利要求8所述的设备,其中所述确定装置包括:
第一选择装置,用于选择检错覆盖范围,所述检错覆盖范围指定相应块中将实施为双倍数据采样寄存器的寄存器的比例;
关键路径确定装置,用于确定所述相应块中在所需频率难以设计的关键路径;以及
第二选择装置,用于从所述确定的关键路径选择多个寄存器,从而选择的寄存器的比例落在所述选择的检错覆盖范围内。
13.根据权利要求8所述的设备,其中第一集成装置包括:
第一生成装置,用于通过使用第一逻辑电路来组合由相应块的所述双倍数据采样寄存器生成的所述错误信号,从而生成针对相应块的块级错误信号,其中所述第一逻辑电路在由所述双倍数据采样寄存器生成的至少一个所述错误信号的信号值是错误值时,将错误值传播到所述块级错误信号上;以及
第二生成装置,用于通过使用第二逻辑电路来组合来自所述一组块的块级错误信号来生成全局错误信号,其中所述第二逻辑电路在至少一个所述块级错误信号的信号值是错误值时将错误值传播到所述全局错误信号上。
14.根据权利要求13所述的设备,其中所述相应块的定时电路基于所述块级错误信号、所述全局错误信号和所述全局时钟信号来生成所述局部时钟信号;
其中所述定时电路在所述块级错误信号和所述全局错误信号的信号值不是错误值时将所述全局时钟信号传播到所述局部时钟信号上;以及
其中所述定时电路在所述块级错误信号或者所述全局错误信号中的至少一个的信号值是错误值时阻止所述全局时钟信号的时钟信号转变传播到所述局部时钟信号上。
15.一种用于检测和纠正电路中的定时错误的装置,所述装置包括:
错误信号传播电路,配置成生成全局错误信号;以及
从所述电路分割的一组块,其中相应块由局部时钟信号钟控,并且其中所述相应块包括:
实施为双倍数据采样寄存器的一组内部寄存器,其中给定的双倍数据采样寄存器被配置成在它检测到定时错误时生成错误信号;
两阶段纠错电路,其中在被双倍数据采样寄存器通知定时错误时,所述两阶段纠错电路被配置成停滞所述相应块中的寄存器;以及
定时电路,其根据全局时钟信号和所述错误信号来生成所述局部时钟信号。
16.根据权利要求15所述的装置,其中所述两阶段纠错电路被配置成:
在所述两阶段纠错电路的第一或者第二停滞阶段期间停滞所述相应块的内部寄存器;
触发输入缓存器以在所述第一停滞阶段期间对所述相应块的输入信号源的信号值进行采样和保持;
触发输入复用器以在所述第二停滞阶段期间选择所述输入缓存器的输出信号,并且除此之外选择用于所述相应块的输入信号源,其中所述输入复用器的输出耦合到所述相应块的主输入信号;
在所述两阶段纠错电路的所述第二停滞阶段期间停滞第一输出寄存器,其中所述第一输出寄存器的输出信号耦合到所述相应块的主输出信号;以及
在所述两阶段纠错电路的所述第一或者第二停滞阶段期间停滞第二输出寄存器,其中所述第二输出寄存器的输出信号耦合到所述第一输出寄存器的输入信号。
17.根据权利要求16所述的装置,其中所述两阶段纠错电路针对在双倍数据采样寄存器通知定时错误之后的时钟循环激活所述第一停滞阶段。
18.根据权利要求17所述的装置,其中所述两阶段纠错电路针对在所述第一停滞阶段之后的时钟循环激活所述第二停滞阶段。
19.根据权利要求15所述的装置,其中所述错误信号传播电路包括:
第一电路,配置成生成针对相应块的块级错误信号,其中所述第一电路的输入信号耦合到由所述相应块的所述双倍数据采样寄存器生成的所述错误信号;以及
第二电路,配置成生成全局错误信号,其中所述第二电路的输入信号耦合到来自所述一组块的块级错误信号。
20.根据权利要求19所述的装置,其中所述相应块的所述定时电路包括被配置成生成所述局部时钟信号的第三电路,其中所述第三电路的输入信号耦合到所述块级错误信号、所述全局错误信号和所述全局时钟信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/256,338 US8042010B2 (en) | 2008-10-22 | 2008-10-22 | Two-phase clock-stalling technique for error detection and error correction |
US12/256,338 | 2008-10-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727519A true CN101727519A (zh) | 2010-06-09 |
CN101727519B CN101727519B (zh) | 2013-08-14 |
Family
ID=42108169
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009202677675U Expired - Lifetime CN201765591U (zh) | 2008-10-22 | 2009-10-21 | 用于扩充电路设计以检测和纠正定时错误的设备 |
CN2009102052565A Active CN101727519B (zh) | 2008-10-22 | 2009-10-21 | 用于检错和纠错的两阶段定时停滞技术 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009202677675U Expired - Lifetime CN201765591U (zh) | 2008-10-22 | 2009-10-21 | 用于扩充电路设计以检测和纠正定时错误的设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8042010B2 (zh) |
CN (2) | CN201765591U (zh) |
TW (1) | TWI476615B (zh) |
WO (1) | WO2010047870A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10031995B2 (en) | 2015-09-18 | 2018-07-24 | International Business Machines Corporation | Detecting circuit design flaws based on timing analysis |
CN109800495A (zh) * | 2019-01-14 | 2019-05-24 | 深圳忆联信息系统有限公司 | 基于ddr phy物理实现的时钟树优化方法和装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8205182B1 (en) * | 2007-08-22 | 2012-06-19 | Cadence Design Systems, Inc. | Automatic synthesis of clock distribution networks |
US8042010B2 (en) * | 2008-10-22 | 2011-10-18 | Synopsys, Inc. | Two-phase clock-stalling technique for error detection and error correction |
US8914759B2 (en) * | 2012-12-31 | 2014-12-16 | Synopsys, Inc. | Abstract creation |
US8977998B1 (en) * | 2013-02-21 | 2015-03-10 | Altera Corporation | Timing analysis with end-of-life pessimism removal |
US9251300B2 (en) * | 2013-10-25 | 2016-02-02 | Altera Corporation | Methods and tools for designing integrated circuits with auto-pipelining capabilities |
US9569582B2 (en) | 2014-01-03 | 2017-02-14 | International Business Machines Corporation | Template matching for resilience and security characteristics of sub-component chip designs |
US9369263B1 (en) | 2015-06-30 | 2016-06-14 | International Business Machines Corporation | Calibration of sampling phase and aperature errors in multi-phase sampling systems |
US9996656B2 (en) | 2016-06-27 | 2018-06-12 | International Business Machines Corporation | Detecting dispensable inverter chains in a circuit design |
US11244046B2 (en) * | 2019-09-16 | 2022-02-08 | Nuvoton Technology Corporation | Data-sampling integrity check using gated clock |
TWI758978B (zh) * | 2020-11-30 | 2022-03-21 | 創意電子股份有限公司 | 時脈樹的修正裝置及其修正方法 |
US11741278B2 (en) * | 2022-01-03 | 2023-08-29 | International Business Machines Corporation | Context projection and wire editing in augmented media |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4462072A (en) * | 1981-04-03 | 1984-07-24 | Honeywell Information Systems Inc. | Clock system having a stall capability to enable processing of errors |
US4616335A (en) * | 1983-06-30 | 1986-10-07 | International Business Machines Corporation | Apparatus for suspending a system clock when an initial error occurs |
US4679195A (en) * | 1985-04-10 | 1987-07-07 | Amdahl Corporation | Error tracking apparatus in a data processing system |
US4916697A (en) * | 1988-06-24 | 1990-04-10 | International Business Machines Corporation | Apparatus for partitioned clock stopping in response to classified processor errors |
JPH0719211B2 (ja) * | 1988-10-08 | 1995-03-06 | 日本電気株式会社 | クロック制御方式 |
US5473767A (en) * | 1992-11-03 | 1995-12-05 | Intel Corporation | Method and apparatus for asynchronously stopping the clock in a processor |
US7065665B2 (en) * | 2002-10-02 | 2006-06-20 | International Business Machines Corporation | Interlocked synchronous pipeline clock gating |
US6889311B2 (en) * | 2002-11-22 | 2005-05-03 | Texas Instruments Incorporated | Pipeline stage single cycle sliding alignment correction of memory read data with integrated data reordering for load and store instructions |
US6996735B2 (en) * | 2002-11-22 | 2006-02-07 | Texas Instruments Incorporated | Apparatus for alignment of data collected from multiple pipe stages with heterogeneous retention policies in an unprotected pipeline |
CN1759368A (zh) * | 2003-01-23 | 2006-04-12 | 罗切斯特大学 | 多时钟域微处理器 |
US7278076B2 (en) * | 2004-06-30 | 2007-10-02 | Intel Corporation | System and scanout circuits with error resilience circuit |
US7188284B2 (en) * | 2004-06-30 | 2007-03-06 | Intel Corporation | Error detecting circuit |
US20080115004A1 (en) * | 2006-11-15 | 2008-05-15 | International Business Machines Corporation | Clock Skew Adjustment Method and Clock Skew Adjustment Arrangement |
US8397098B2 (en) * | 2006-11-21 | 2013-03-12 | Via Technologies, Inc. | Method for countervailing clock skew and core logic circuit using the same |
GB2448118B (en) * | 2007-04-03 | 2011-08-24 | Advanced Risc Mach Ltd | Error recovery following erroneous execution with an instruction processing pipeline |
US8042010B2 (en) * | 2008-10-22 | 2011-10-18 | Synopsys, Inc. | Two-phase clock-stalling technique for error detection and error correction |
-
2008
- 2008-10-22 US US12/256,338 patent/US8042010B2/en active Active
-
2009
- 2009-08-04 TW TW098126259A patent/TWI476615B/zh active
- 2009-08-11 WO PCT/US2009/053453 patent/WO2010047870A1/en active Application Filing
- 2009-10-21 CN CN2009202677675U patent/CN201765591U/zh not_active Expired - Lifetime
- 2009-10-21 CN CN2009102052565A patent/CN101727519B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10031995B2 (en) | 2015-09-18 | 2018-07-24 | International Business Machines Corporation | Detecting circuit design flaws based on timing analysis |
CN109800495A (zh) * | 2019-01-14 | 2019-05-24 | 深圳忆联信息系统有限公司 | 基于ddr phy物理实现的时钟树优化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101727519B (zh) | 2013-08-14 |
WO2010047870A1 (en) | 2010-04-29 |
US8042010B2 (en) | 2011-10-18 |
US20100097107A1 (en) | 2010-04-22 |
CN201765591U (zh) | 2011-03-16 |
TWI476615B (zh) | 2015-03-11 |
TW201027379A (en) | 2010-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN201765591U (zh) | 用于扩充电路设计以检测和纠正定时错误的设备 | |
Flynn et al. | Low power methodology manual: for system-on-chip design | |
CN102160054B (zh) | 用于设计使用自适应电压和调节优化的集成电路的系统和方法 | |
US8584065B2 (en) | Method and apparatus for designing an integrated circuit | |
US7010763B2 (en) | Method of optimizing and analyzing selected portions of a digital integrated circuit | |
US7467367B1 (en) | Method and system for clock tree synthesis of an integrated circuit | |
US10496773B2 (en) | Network logic synthesis | |
US20140165022A1 (en) | Relative timing architecture | |
US20100153897A1 (en) | System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce leakage power in an electronic circuit and electronic design automation tool incorporating the same | |
US8539413B1 (en) | Frequency optimization using useful skew timing | |
US6263478B1 (en) | System and method for generating and using stage-based constraints for timing-driven design | |
Chan et al. | OCV-aware top-level clock tree optimization | |
US8776003B2 (en) | System and method for employing side transition times from signoff-quality timing analysis information to reduce leakage power in an electronic circuit and an electronic design automation tool incorporating the same | |
US20080005709A1 (en) | Verification of logic circuits using cycle based delay models | |
Xie et al. | Bound-based statistically-critical path extraction under process variations | |
JP2008065382A (ja) | Lsiの消費電力算出方法及びその算出プログラム | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
Brandt et al. | The model checking view to clock gating and operand isolation | |
Lam et al. | On applying erroneous clock gating conditions to further cut down power | |
Takahashi et al. | A method for reducing the target fault list of crosstalk faults in synchronous sequential circuits | |
US20130152034A1 (en) | System and method for reducing integrated circuit timing derating | |
Stok et al. | Design flows | |
Lin et al. | NBTI and leakage reduction using ILP-based approach | |
US20060048084A1 (en) | System and method for repairing timing violations | |
Wang et al. | RTL power optimization with gate-level accuracy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |