一种时间修复方法和装置与流程

文档序号:16245064发布日期:2018-12-11 23:29阅读:214来源:国知局
一种时间修复方法和装置与流程

本发明涉及但不限于集成电路技术领域,尤指一种时间修复方法和装置。

背景技术

在芯片的设计中,数字集成电路(integratedcircuit,简称为:ic)的主要设计为同步电路的设计,同步电路的核心器件为寄存器。

寄存器在正常工作时,要求寄存器的数据信号与寄存器的时钟信号之间的建立时间和保持时间需要满足一定的规范。也就是说,建立时间和保持时间共同作用于寄存器,要求数据信号的到达时间相对于寄存器的时钟信号的有效沿之间,必须处于一个合适的范围,不能太早也不能太晚。若在有效沿之前,数据信号的到达时间太晚,就会导致建立时间违例,这样,数据不能被正确存入寄存器中;若在有效沿之后,数据信号的到达时间太早,就会导致保持时间违例,此时,数据同样不能被正确存入寄存器中。现有技术中修复时间违例的方法为:在完成建立时间违例的修复后对保持时间违例进行修复,通过在修复过程中增大整个时序路径的延时来达到修复保持时间的目的,例如,在时序路径中插入合适的缓冲器,引入额外的延时。上述时间修复方法对于保持时间违例比较大且建立时间余量比较充分的电路来说,具有较好的修复效果。

然而,对于时序路径中存在保持时间违例,且建立时间余量不充足的电路来说,若采用现有技术中的时间修复方法,在修复保持时间违例的同时会在时序路径中加入额外的延时,加入的延时会使建立时间出现新的违例,导致时间修复失败。



技术实现要素:

为了解决上述技术问题,本发明实施例提供了一种时间修复方法和装置,以解决现有技术中的时间修复方法,在一些应用场景下无法有效的修复时间违例而导致修复失败的问题,从而提高了时间修复方法的适用范围。

第一方面,本发明实施例提供一种时间修复方法,包括:

判断在当前时序路径中插入缓冲器时,所述当前时序路径的建立时间余量是否小于预设余量阈值;其中,所述缓冲器用于对所述当前时序路径的保持时间违例进行修复;

当判断出所述建立时间余量小于所述预设余量阈值时,对所述当前时序路径的建立时间窗口进行调整。

在第一方面的第一种可能的实现方式中,所述对所述当前时序路径的建立时间窗口进行调整,包括:

计算在当前时序路径中插入所述缓冲器所需的最小建立时间余量;

根据计算出的建立时间余量对所述当前时序路径的建立时间窗口进行调整,调整后的建立时间余量大于或等于所述最小建立时间余量。

在第一方面的第二种可能的实现方式中,所述对所述当前时序路径的建立时间窗口进行调整,包括以下调整方式中的一种或多种:

将所述当前时序路径中标准单元替换为第一单元,所述第一单元的驱动大于所述标准单元;

通过分拆负载的方式降低所述当前时序路径中标准单元的负载数目;

将所述当前时序路径中标准单元替换为第二单元,所述第二单元与所述标准单元的驱动相同,且所述第二单元的运行速率大于所述第一单元的运行速率。

根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述对所述当前时序路径的建立时间窗口进行调整,包括:

选择用于对所述建立时间窗口进行调整的调整方式;

判断所选择的调整方式是否阻碍对所述保持时间违例的修复;

当判断出所选择的调整方式未阻碍对所述保持时间违例的修复时,通过所述选择的调整方式对所述建立时间窗口进行调整;

当判断出所选择的调整方式阻碍对所述保持时间违例的修复时,重新选择用于对所述建立时间窗口进行调整的调整方式,直到判断出所有调整方式均阻碍对所述保持时间违例的修复。

根据第一方面、第一方面的第一种到第三种可能的实现方式中任意一种,在第四种可能的实现方式中,所述方法还包括:

根据所述当前时序路径中保持时间违例的大小,计算修复所述保持时间违例所需的延时;

根据计算出的所述延时选择用于修复所述保持时间违例的缓冲器。

根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述对所述当前时序路径的建立时间窗口进行调整之后,所述方法还包括:

根据调整后的所述当前时序路径的建立时间余量和所述延时重新选择用于修复所述保持时间违例的缓冲器;

根据所述重新选择的缓冲器对所述当前时序路径的保持时间违例进行修复。

第二方面,本发明实施例提供一种时间修复装置,包括:

判断模块,用于判断在当前时序路径中插入缓冲器时,所述当前时序路径的建立时间余量是否小于预设余量阈值;其中,所述缓冲器用于对所述当前时序路径的保持时间违例进行修复;

调整模块,用于当所述判断模块判断出所述建立时间余量小于所述预设余量阈值时,对所述当前时序路径的建立时间窗口进行调整。

在第二方面的第一种可能的实现方式中,所述调整模块包括:

计算单元,用于计算在当前时序路径中插入所述缓冲器所需的最小建立时间余量;

调整单元,用于根据所述计算单元计算出的建立时间余量对所述当前时序路径的建立时间窗口进行调整,调整后的建立时间余量大于或等于所述最小建立时间余量。

在第二方面的第二种可能的实现方式中,所述调整模块对所述当前时序路径的建立时间窗口进行调整,包括以下调整方式中的一种或多种:

将所述当前时序路径中标准单元替换为第一单元,所述第一单元的驱动大于所述标准单元;

通过分拆负载的方式降低所述当前时序路径中标准单元的负载数目;

将所述当前时序路径中标准单元替换为第二单元,所述第二单元与所述标准单元的驱动相同,且所述第二单元的运行速率大于所述第一单元的运行速率。

根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述调整模块包括:

选择单元,用于选择用于对所述建立时间窗口进行调整的调整方式;

判断单元,用于判断所述选择单元选择的调整方式是否阻碍对所述保持时间违例的修复;

调整单元,用于当所述判断单元判断出所选择的调整方式未阻碍对所述保持时间违例的修复时,通过所述选择单元选择的调整方式对所述建立时间窗口进行调整;

所述选择单元,还用于当所述判断单元判断出所选择的调整方式阻碍对所述保持时间违例的修复时,重新选择用于对所述建立时间窗口进行调整的调整方式,直到判断出所有调整方式均阻碍对所述保持时间违例的修复。

根据第二方面、第二方面的第一种到第三种可能的实现方式中任意一种,在第四种可能的实现方式中,所述装置还包括:

计算模块,用于根据所述当前时序路径中保持时间违例的大小,计算修复所述保持时间违例所需的延时;

选择模块,用于根据所述计算模块计算出的所述延时选择用于修复所述保持时间违例的缓冲器。

根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,

所述选择模块,还用于在所述调整模块对所述当前时序路径的建立时间窗口进行调整之后,根据调整后的所述当前时序路径的建立时间余量和所述计算模块计算出的所述延时重新选择用于修复所述保持时间违例的缓冲器;

所述装置还包括:

修复模块,用于根据所述选择模块重新选择的缓冲器对所述当前时序路径的保持时间违例进行修复。

第三方面,本发明实施例提供一种时间修复装置,包括:存储器和处理器;

所述存储器,用于保存可执行指令;

所述处理器,用于执行所述存储器保存的所述可执行指令,进行如下操作:

判断在当前时序路径中插入缓冲器时,所述当前时序路径的建立时间余量是否小于预设余量阈值;其中,所述缓冲器用于对所述当前时序路径的保持时间违例进行修复;

当判断出所述建立时间余量小于所述预设余量阈值时,对所述当前时序路径的建立时间窗口进行调整。

在第三方面的第一种可能的实现方式中,所述处理器执行所述可执行指令时,还进行如下操作:

根据所述当前时序路径中保持时间违例的大小,计算修复所述保持时间违例所需的延时;

根据计算出的所述延时选择用于修复所述保持时间违例的缓冲器;

所述对所述当前时序路径的建立时间窗口进行调整之后,根据调整后的所述当前时序路径的建立时间余量和所述延时重新选择用于修复所述保持时间违例的缓冲器;

根据所述重新选择的缓冲器对所述当前时序路径的保持时间违例进行修复。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述处理器执行所述计算机可执行指令时,进行如下操作:

判断在当前时序路径中插入缓冲器时,所述当前时序路径的建立时间余量是否小于预设余量阈值;其中,所述缓冲器用于对所述当前时序路径的保持时间违例进行修复;

当判断出所述建立时间余量小于所述预设余量阈值时,对所述当前时序路径的建立时间窗口进行调整。

本发明实施例提供的时间修复方法和装置,通过判断在当前时序路径中插入缓冲器后,该当前时序路径的建立时间余量是否小于预设余量阈值,并且在判断出建立时间余量小于预设余量阈值时,对该当前时序路径的建立时间窗口进行调整,调整的原则可以为增加建立时间窗口的大小,以满足当前时序路径加入缓冲器后,建立时间余量符合预设余量阈值的要求;上述缓冲器用于对当前时序路径的保持时间违例进行修复;本发明实施例提供的技术方案,通过在修复保持时间违例的过程中,引入对建立时间窗口的调整的方式,使得本发明实施例提供的时间修复方法适用于时序路径中存在保持时间违例且建立时间余量不足的情况下,解决了现有技术中的时间修复方法,在一些应用场景下无法有效的修复时间违例而导致修复失败的问题,从而提高了时间修复方法的适用范围。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为时序路径中数据信号与时钟信号的关系示意图;

图2为本发明实施例提供的一种时间修复方法的流程图;

图3为本发明实施例提供的另一种时间修复方法的流程图;

图4为本发明实施例提供的又一种时间修复方法的流程图;

图5为本发明实施例提供的再一种时间修复方法的流程图;

图6为本发明实施例提供的再一种时间修复方法的流程图;

图7为本发明实施例提供的一种时间修复装置的结构示意图;

图8为本发明实施例提供的另一种时间修复装置的结构示意图;

图9为本发明实施例提供的又一种时间修复装置的结构示意图;

图10为本发明实施例提供的再一种时间修复装置的结构示意图;

图11为本发明实施例提供的再一种时间修复装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在描述本发明实施例提供的时间修复方法之前,先简单介绍电路中时序路径的一些基本概念。上述背景技术中已经说明电路中要求数据信号的到达时间相对于寄存器的时钟信号的有效沿之间,必须处于一个合适的范围,该范围具体指建立时间和保持时间与时钟信号有效沿的关系。如图1所示,为时序路径中数据信号与时钟信号的关系示意图。

建立时间是指在寄存器的时钟信号(clk)的有效沿到来之前,数据信号(data)必须保持稳定不变的时间,如果时序路径的延时太大,可能存在建立时间余量不够的情况,就会导致建立时间违例,这样,数据不能被正确存入寄存器中。

保持时间是指在寄存器的时钟信号的有效沿到来之后,数据信号必须保持稳定不变的时间,如果时序路的径延时太小,可能存在保持时间不够的情况,就会导致保持时间违例,此时,数据同样不能被准确存入寄存器中。

下面通过具体的实施例对本发明的技术方案进行详细说明,本发明以下各实施例中的时序路径为电路中的时序路径,该电路例如为数字集成电路中的同步电路。本发明提供以下几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图2为本发明实施例提供的一种时间修复方法的流程图。本实施例提供的时间修复方法适用于对电路中存在保持时间违例进行修复的情况中,该方法可以由时间修复装置执行,该时间修复装置通过硬件和软件结合的方式来实现,该装置可以集成在电路芯片的处理器中,供处理器调用使用。如图2所示,本发明实施例的方法可以包括如下步骤:

s110,判断在当前时序路径中插入缓冲器时,该当前时序路径的建立时间余量是否小于预设余量阈值;其中,所插入的缓冲器用于对当前时序路径的保持时间违例进行修复。

本发明实施例提供的时间修复方法,为对电路中存在的保持时间违例进行修复的方式。本发明实施例主要针对数字集成电路中的同步电路,由于同步电路的核心器件是寄存器,寄存器正常工作时,要求数据信号与时钟信号之间的建立时间和保持时间满足一定的要求。如图1所示,若建立时间余量太小(例如小于某一预设余量阈值),就会导致建立时间违例,若保持时间太小,即时钟信号有效沿到来之后,数据信号保持稳定不变的时间过短,则会导致保持时间违例;上述两种情况均会造成数据无法正确的存入寄存器中,从而无法保证电路性能。

对于电路中建立时间违例和保持时间违例的修复方式,通常可以先行修复建立时间违例,在此基础上对保持时间违例进行修复。本发明实施例主要说明在已修复建立时间违例的基础上,对保持时间违例进行修复的方式,保持时间违例的形成是由于电路中当前时序路径的延时太小,而导致保持时间不够。现有技术中,通过在当前时序路径中加入延时的方式,增加保持时间,从而达到修复保持时间违例的效果。上述时间修复方式对于保持时间违例比较大且建立时间余量比较充分的电路来说,具有较好的修复效果;但是,若当前时序路径中存在保持时间违例,且建立时间余量不充足,采用上述时间修复方法,在修复保持时间违例的同时会在当前时序路径中加入额外的延时,加入的延时会使建立时间出现新的违例,从而导致时间修复失败。

本发明实施例提供的方法,在对当前时序路径中插入缓存器前,可以先判断在当前时序路径中插入缓冲器后,建立时间余量是否满足插入缓冲器的要求,即插入缓冲器后,建立时间余量是否小于预设余量阈值,该预设余量阈值是时序路径发生建立时间违例的临界值,若建立时间余量小于预设余量阈值,则说明插入缓冲器后会导致建立时间违例,若建立时间余量大于或等于预设余量阈值,则说明插入缓冲器后不会导致建立时间违例,可以通过直接插入缓冲器的方式修复保持时间违例。

需要说明的是,本发明实施例中插入的缓冲器用于对当前时序路径的保持时间违例进行修复,该缓冲器可以是电路维护人员在修复保持时间违例的过程中,根据保持时间违例的大小确定的。

s120,当判断出建立时间余量小于预设余量阈值时,对该当前时序路径的建立时间窗口进行调整。

在现有技术中,若判断出建立时间余量小于预设余量阈值,即判断出在当前时序路径中插入缓冲器后,引入的延时会使建立时间出现新的违例,则认为当前时序路径中不能插入缓冲器,即不执行插入缓冲器的操作,结束修复流程,从而导致保持时间违例修复失败。

在本发明实施例中,当判断出建立时间余量小于预设余量阈值时,并不结束修复保持时间违例的操作,而是对当前时序路径的建立时间窗口进行调整,调整原则为增加当前时序路径中的建立时间余量,即增加建立时间窗口的大小,增加建立时间窗口的目的是为了满足当前时序路径加入缓冲器后,使得建立时间余量符合预设余量阈值的要求,即建立时间余量大于或等于预设余量阈值,从而可以通过在当前时序路径中加入缓冲器的方式对保持时间进行修复。本发明实施例提供的时间修复方法的适用范围较为广泛,对于时序路径中存在保持时间违例,且建立时间余量不充足的情况同样适用。

需要说明的是,本发明实施例的s110中,若判断出建立时间余量大于或等于预设余量阈值时,说明建立时间余量可以满足当前时序路径中引入延时的需要,即可以直接在当前时序路径中插入缓冲器。

本发明实施例提供的时间修复方法,通过判断在当前时序路径中插入缓冲器后,该当前时序路径的建立时间余量是否小于预设余量阈值,并且在判断出建立时间余量小于预设余量阈值时,对该当前时序路径的建立时间窗口进行调整,调整的原则可以为增加建立时间窗口的大小,以满足当前时序路径加入缓冲器后,建立时间余量符合预设余量阈值的要求;上述缓冲器用于对当前时序路径的保持时间违例进行修复;本发明实施例提供的方法,通过在修复保持时间违例的过程中,引入对建立时间窗口的调整的方式,使得本发明实施例提供的时间修复方法适用于时序路径中存在保持时间违例且建立时间余量不足的情况下,解决了现有技术中的时间修复方法,在一些应用场景下无法有效的修复时间违例而导致修复失败的问题,从而提高了时间修复方法的适用范围。

进一步地,现有技术中的时间修复方法,会导致时间修复过程中不必要的迭代和时序路径的修复,现有技术中需要进行额外的建立时间过修复和通过保持时间修复循环来进行最终时序收敛。本发明实施例提供的方法,通过在修复保持时间违例的过程中,引入对建立时间窗口的调整的方式,不需要再进行额外的建立时间过修复,减小了时间修复的迭代次数,提高了保持时间修复的效率和效果。

可选地,图3为本发明实施例提供的另一种时间修复方法的流程图。在上述实施例的基础上,本发明实施例中提供的方法可以包括:

s110,判断在当前时序路径中插入缓冲器时,建立时间余量是否小于预设余量阈值;当建立时间余量小于预设余量阈值时,执行s120,当建立时间余量大于或等于预设余量阈值时,执行s130。

s120,对当前时序路径的建立时间窗口进行调整。

s130,在当前时序路径中插入缓冲器。

本发明实施例中,对当前时序路径的建立时间窗口进行调整的实现方式,即s120的实现方式,可以包括:

s121,计算在当前时序路径中插入缓冲器所需的最小建立时间余量;

s122,根据计算出的建立时间余量对当前时序路径的建立时间窗口进行调整,调整后的建立时间余量大于或等于最小建立时间余量。

在本发明实施例中,调整当前时序路径中建立时间窗口的依据可以为:该建立时间窗口是否满足在当前时序路径中插入缓冲器后,额外引入的延时对建立时间余量的影响是否会导致建立时间出现违例。若插入缓冲器后,额外引入的延时对建立时间余量的影响不足以导致当前时序路径出现新的建立时间违例,则可以插入缓冲器;若插入缓冲器后,额外引入的延时对建立时间余量的影响会导致当前时序路径出现新的建立时间违例,则不能直接插入缓冲器,此时,可以计算当前时序路径中插入缓冲器所需的最小建立时间余量,该最小建立时间余量为在当前时序路径中插入缓冲器后,可以使得建立时间余量大于等于预设余量阈值的余量值。也就是说,只要调整后的建立时间窗口(调整后的建立时间余量)大于或等于该最小建立时间余量,插入缓冲器后,额外引入的延时对建立时间余量的影响不会造成当前时序路径出现新的建立时间违例。本发明实施例通过上述方式对当前时序路径的建立时间窗口进行调整后,可以执行插入缓冲器的操作,以修复保持时间违例。

可选地,在本发明实施例中,对当前时序路径的建立时间窗口进行调整,可以包括以下调整方式中的一种或多种:

方式一,将当前时序路径中标准单元替换为第一单元,该第一单元的驱动大于标准单元;

方式二,通过分拆负载的方式降低当前时序路径中标准单元的负载数目;

方式三,将当前时序路径中标准单元替换为第二单元,该第二单元与标准单元的驱动相同,且第二单元的运行速率大于第一单元的运行速率。

上述标准单元例如为电路中的功能性器件或者为缓冲器,在本发明实施例中,对保持时间违例的修复,可以针对当前时序路径的不同情况选择不同方法对建立时间窗口进行调整。例如,当当前时序路径上有驱动较小的标准单元时,可以将该标准单元替换为大驱动的单元(即上述第一单元),从而可以有效地调整建立时间窗口。再例如,当路径上标准单元的驱动已经很大,则换大驱动已无空间,可以通过复制逻辑分拆负载的方式,降低大驱动单元的负载数目,达到调整建立时间窗口的目的。再例如,对于驱动正常,负载正常的标准单元来说,可以通过选择相同驱动下运行速率更快的单元来替换标准单元,从而达到调整建立时间窗口的目的。在实际应用中,可以选择其中一种方式调整建立时间窗口,也可以选择多种方式的组合调整建立时间窗口。

需要说明的是,本发明实施例中不限制调整建立时间窗口的具体方式,上述三种方式和相应的应用场景仅是示意性的说明,只要是可以对实现路径中的建立时间窗口进行调整以满足插入缓冲器的目的的调整方式,均可以作为本发明实施例中调整建立时间窗口的方式。

可选地,图4为本发明实施例提供的又一种时间修复方法的流程图。基于上述实施例中对建立时间窗口进行调整的多种调整方式,本发明实施例中对当前时序路径的建立时间窗口进行调整的实现方式,即s120的实现方式,可以包括:

s123,选择用于对建立时间窗口进行调整的调整方式;

s124,判断所选择的调整方式是否阻碍对保持时间违例的修复;当判断出所选择的调整方式未阻碍对保持时间违例的修复时,执行s125;当判断出所选择的调整方式阻碍对保持时间违例的修复时,执行s126。

s125,通过选择的调整方式对建立时间窗口进行调整,即结束流程。

s126,判断是否已选择过每种调整方式;当判断出已选择过每种调整方式时,结束流程,即保持时间违例修复失败;当判断出有调整方式未选择时,返回执行s123,直到判断出已选择过所有的调整方式,且每种调整方式均阻碍对保持时间违例的修复,结束流程。

在实际应用中,对建立时间窗口进行调整的同时,需要综合考虑该调整操作对当前时序路径中保持时间的影响。也就是说,需要使得调整建立时间窗口的操作对保持时间没有负面影响,或者,调整建立时间窗口的操作所产生的正面影响可以覆盖对保持时间的负面影响,在上述情况下,可以对建立时间窗口进行相应的调整。然而,当调整建立时间窗口的操作对建立时间余量的有利程度小于对保持时间违例的有害程度时,则不能执行调整操作,需要重新选择其它的调整方式,直至无可用的调整方式可以选择,即保持时间修复失败。

可选地,图5为本发明实施例提供的再一种时间修复方法的流程图。在本发明上述各实施例的基础上,本实施例提供的时间修复方法,在s110之前还可以包括:

s100,根据当前时序路径中保持时间违例的大小,计算修复该保持时间违例所需的延时;

s101,根据计算出的延时选择用于修复该保持时间违例的缓冲器。

图5所示实施例以在上述图3所示流程的基础上为例予以示出,本发明实施例中修复保持时间违例的方法同样为插入缓冲器。首先,可以在电路的现有标准单元库中,对所有候选的缓冲器计算延时,还可以根据延时的大小从小到大对缓冲器进行排序,形成一个候选列表。随后,根据当前时序路径中保持时间违例的大小,计算出修复该保持时间违例所需的延时,并基于计算出的延时和上述候选列表,挑选合适的缓冲器,该缓冲器即为s110中插入当前时序路径中的缓冲器。需要说明的是,挑选的缓冲器可以为一个缓冲器,或者为多个缓冲器的组合。

可选地,本发明实施例在s120之后,还可以包括:

s140,根据调整后的当前时序路径的建立时间余量和延时重新选择用于修复保持时间违例的缓冲器;

s150,根据重新选择的缓冲器对当前时序路径的保持时间违例进行修复。

在本发明实施例中,完成建立时间窗口的调整后,可以基于调整后的建立时间余量和s100中计算出的修复保持时间违例所需的延时,重新选择合适的缓冲器,此时可以成功完成目标缓冲器的插入。

通过本发明实施例提供的时间修复方法,可以减少缓冲器插入失败而造成保持保持时间违例修复失败的几率,最大程度地提高保持时间违例的修复效果和效率,减少迭代的次数,加快保持时间违例的修复速度。

进一步地,图6为本发明实施例提供的再一种时间修复方法的流程图。本发明实施例提供的方法可以包括如下步骤,即s201~s210:

s201,计算所有候选的缓冲器的延时,并根据延时进行排序。

s202,根据当前时序路径中保持时间违例的大小,计算修复该保持时间违例所需的延时。

s203,根据计算出的延时选择用于修复该保持时间违例的缓冲器。

s204,判断在当前时序路径中插入缓冲器时,建立时间余量是否小于预设余量阈值;当判断出建立时间余量小于预设余量阈值时,执行s205;当判断出建立时间余量大于或等于预设余量阈值时,执行s209。

s205,选择用于对建立时间窗口进行调整的调整方式;该调整方式包括但不限于为上述实施例中的调整方式。

s206,判断所选择的调整方式是否阻碍对保持时间违例的修复;当判断出所选择的调整方式未阻碍对保持时间违例的修复时,执行s207;当判断出所选择的调整方式阻碍对保持时间违例的修复时,执行s208。

s207,通过选择的调整方式对建立时间窗口进行调整;随后返回执行s203。

s208,判断是否已选择过每种调整方式;当判断出已选择过每种调整方式时,结束流程,即保持时间违例修复失败;当判断出有调整方式未选择时,返回执行s205。

s209,在当前时序路径中插入缓冲器。

s210,判断保持时间违例是否修复成功;若未成功修复,则返回执行s203;若成功修复,则结束流程。

图7为本发明实施例提供的一种时间修复装置的结构示意图。本实施例提供的时间修复装置适用于对电路中存在保持时间违例进行修复的情况中,该时间修复装置通过硬件和软件结合的方式来实现,该装置可以集成在电路芯片的处理器中,供处理器调用使用。如图7所示,本实施例的时间修复装置10可以包括:判断模块11和调整模块12。

其中,判断模块11,用于判断在当前时序路径中插入缓冲器时,该当前时序路径的建立时间余量是否小于预设余量阈值;其中,所插入的缓冲器用于对当前时序路径的保持时间违例进行修复。

本发明实施例提供的时间修复装置,用于执行对电路中存在的保持时间违例进行修复的方式。本发明实施例主要针对数字集成电路中的同步电路,由于同步电路的核心器件是寄存器,寄存器正常工作时,要求数据信号与时钟信号之间的建立时间和保持时间满足一定的要求。同样如图1所示,若建立时间余量太小(例如小于某一预设余量阈值),就会导致建立时间违例,若保持时间太小,即时钟信号有效沿到来之后,数据信号保持稳定不变的时间过短,则会导致保持时间违例;上述两种情况均会造成数据无法正确的存入寄存器中,从而无法保证电路性能。

对于电路中建立时间违例和保持时间违例的修复方式,通常可以先行修复建立时间违例,在此基础上对保持时间违例进行修复。本发明实施例主要说明在已修复建立时间违例的基础上,对保持时间违例进行修复的方式,保持时间违例的形成是由于电路中当前时序路径的延时太小,而导致保持时间不够。现有技术中,通过在当前时序路径中加入延时的方式,增加保持时间,从而达到修复保持时间违例的效果。上述时间修复方式对于保持时间违例比较大且建立时间余量比较充分的电路来说,具有较好的修复效果;但是,若当前时序路径中存在保持时间违例,且建立时间余量不充足,采用上述时间修复方法,在修复保持时间违例的同时会在当前时序路径中加入额外的延时,加入的延时会使建立时间出现新的违例,从而导致时间修复失败。

本发明实施例提供的装置,在对当前时序路径中插入缓存器前,可以由判断模块11先判断在当前时序路径中插入缓冲器后,建立时间余量是否满足插入缓冲器的要求,即插入缓冲器后,建立时间余量是否小于预设余量阈值,该预设余量阈值是时序路径发生建立时间违例的临界值,若建立时间余量小于预设余量阈值,则说明插入缓冲器后会导致建立时间违例,若建立时间余量大于或等于预设余量阈值,则说明插入缓冲器后不会导致建立时间违例,可以通过直接插入缓冲器的方式修复保持时间违例。

需要说明的是,本发明实施例中插入的缓冲器用于对当前时序路径的保持时间违例进行修复,该缓冲器可以是电路维护人员在修复保持时间违例的过程中,根据保持时间违例的大小确定的。

调整模块12,用于当判断模块11判断出建立时间余量小于预设余量阈值时,对当前时序路径的建立时间窗口进行调整。

在现有技术中,若判断出建立时间余量小于预设余量阈值,即判断出在当前时序路径中插入缓冲器后,引入的延时会使建立时间出现新的违例,则认为当前时序路径中不能插入缓冲器,即不执行插入缓冲器的操作,结束修复流程,从而导致保持时间违例修复失败。

在本发明实施例中,当判断模块11判断出建立时间余量小于预设余量阈值时,并不结束修复保持时间违例的操作,而是由调整模块12对当前时序路径的建立时间窗口进行调整,调整原则为增加当前时序路径中的建立时间余量,即增加建立时间窗口的大小,增加建立时间窗口的目的是为了满足当前时序路径加入缓冲器后,使得建立时间余量符合预设余量阈值的要求,即建立时间余量大于或等于预设余量阈值,从而可以通过在当前时序路径中加入缓冲器的方式对保持时间进行修复。本发明实施例提供的时间修复装置执行时间修复的适用范围较为广泛,对于时序路径中存在保持时间违例,且建立时间余量不充足的情况同样适用。

需要说明的是,本发明实施例的判断模块11执行判断时,若判断出建立时间余量大于或等于预设余量阈值时,说明建立时间余量可以满足当前时序路径中引入延时的需要,即可以直接在当前时序路径中插入缓冲器。

发明实施例提供的时间修复装置用于执行本发明图2所示实施例提供的时间修复方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

可选地,图8为本发明实施例提供的另一种时间修复装置的结构示意图。在上述装置的结构基础上,本发明实施例中的调整模块12可以包括:

计算单元121,用于计算在当前时序路径中插入缓冲器所需的最小建立时间余量;

调整单元122,用于根据计算单元121计算出的建立时间余量对该当前时序路径的建立时间窗口进行调整,调整后的建立时间余量大于或等于最小建立时间余量。

在本发明实施例中,调整当前时序路径中建立时间窗口的依据可以为:该建立时间窗口是否满足在当前时序路径中插入缓冲器后,额外引入的延时对建立时间余量的影响是否会导致建立时间出现违例。若插入缓冲器后,额外引入的延时对建立时间余量的影响不足以导致当前时序路径出现新的建立时间违例,则可以插入缓冲器;若插入缓冲器后,额外引入的延时对建立时间余量的影响会导致当前时序路径出现新的建立时间违例,则不能直接插入缓冲器,此时,可以计算当前时序路径中插入缓冲器所需的最小建立时间余量,该最小建立时间余量为在当前时序路径中插入缓冲器后,可以使得建立时间余量大于等于预设余量阈值的余量值。也就是说,只要调整后的建立时间窗口(调整后的建立时间余量)大于或等于该最小建立时间余量,插入缓冲器后,额外引入的延时对建立时间余量的影响不会造成当前时序路径出现新的建立时间违例。本发明实施例通过上述装置对当前时序路径的建立时间窗口进行调整后,可以执行插入缓冲器的操作,以修复保持时间违例。

可选地,在本发明实施例中,调整模块12对当前时序路径的建立时间窗口进行调整,可以包括以下调整方式中的一种或多种:

方式一,将当前时序路径中标准单元替换为第一单元,该第一单元的驱动大于标准单元;

方式二,通过分拆负载的方式降低当前时序路径中标准单元的负载数目;

方式三,将当前时序路径中标准单元替换为第二单元,该第二单元与标准单元的驱动相同,且第二单元的运行速率大于第一单元的运行速率。

需要说明的是,上述调整方式的应用场景和实现方式在上述实施例中已经详细说明,故在此不再赘述。本发明实施例中不限制调整建立时间窗口的具体方式,上述三种方式和相应的应用场景仅是示意性的说明,只要是可以对实现路径中的建立时间窗口进行调整以满足插入缓冲器的目的的调整方式,均可以作为本发明实施例中调整建立时间窗口的方式。

发明实施例提供的时间修复装置用于执行本发明图3所示实施例提供的时间修复方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

可选地,图9为本发明实施例提供的又一种时间修复装置的结构示意图。基于上述实施例中调整模块12对建立时间窗口进行调整的多种调整方式,本发明实施例中的调整模块12可以包括:

选择单元123,用于选择用于对建立时间窗口进行调整的调整方式;

判断单元124,用于判断选择单元123选择的调整方式是否阻碍对保持时间违例的修复;

调整单元125,用于当判断单元124判断出所选择的调整方式未阻碍对保持时间违例的修复时,通过选择单元123选择的调整方式对建立时间窗口进行调整;

选择单元123,还用于当判断单元124判断出所选择的调整方式阻碍对保持时间违例的修复时,重新选择用于对建立时间窗口进行调整的调整方式,直到判断出所有调整方式均阻碍对保持时间违例的修复。

在实际应用中,对建立时间窗口进行调整的同时,需要综合考虑该调整操作对当前时序路径中保持时间的影响。也就是说,需要使得调整建立时间窗口的操作对保持时间没有负面影响,或者,调整建立时间窗口的操作所产生的正面影响可以覆盖对保持时间的负面影响,在上述情况下,可以对建立时间窗口进行相应的调整。然而,当调整建立时间窗口的操作对建立时间余量的有利程度小于对保持时间违例的有害程度时,则不能执行调整操作,需要重新选择其它的调整方式,直至无可用的调整方式可以选择,即保持时间修复失败。

发明实施例提供的时间修复装置用于执行本发明图4所示实施例提供的时间修复方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

可选地,图10为本发明实施例提供的再一种时间修复装置的结构示意图。在本发明上述各实施例的基础上,本实施例提供的时间修复装置10,还可以包括:计算模块13和选择模块14。图10所示实施例以在上述图7所示装置的结构基础上为例予以示出。

计算模块13,用于根据当前时序路径中保持时间违例的大小,计算修复保持时间违例所需的延时;

选择模块14,用于根据计算模块13计算出的延时选择用于修复保持时间违例的缓冲器。

可选地,本实施例提供的时间修复装置10中,选择模块14,还用于在调整模块12对当前时序路径的建立时间窗口进行调整之后,根据调整后的当前时序路径的建立时间余量和计算模块13计算出的延时重新选择用于修复保持时间违例的缓冲器;

本实施例提供的时间修复装置10还可以包括:

修复模块15,用于根据选择模块14重新选择的缓冲器对当前时序路径的保持时间违例进行修复。

在本发明实施例中,完成建立时间窗口的调整后,可以基于调整后的建立时间余量和计算模块13计算出的修复保持时间违例所需的延时,重新选择合适的缓冲器,此时可以成功完成目标缓冲器的插入。

发明实施例提供的时间修复装置用于执行本发明图5所示实施例提供的时间修复方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

在实际应用中,本发明图7到图10所示各实施例中的判断模块11、调整模块12、计算模块13、选择模块14和修复模块15可以通过电路芯片的处理器来实现,该处理器例如可以是一个中央处理器(centralprocessingunit,简称为:cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为:asic),或者是完成实施本发明实施例的一个或多个集成电路。

图11为本发明实施例提供的再一种时间修复装置的结构示意图。本发明实施例提供的时间修复装置20可以包括:存储器21和处理器22。

其中,存储器21,用于保存可执行指令;

处理器22,用于执行存储器21保存的所述可执行指令,进行如下操作:

s31,判断在当前时序路径中插入缓冲器时,该当前时序路径的建立时间余量是否小于预设余量阈值;其中,所插入的缓冲器用于对当前时序路径的保持时间违例进行修复;

s32,当判断出建立时间余量小于预设余量阈值时,对该当前时序路径的建立时间窗口进行调整。

可选地,在本发明实施例中,处理器22执行可执行指令时,执行操作s32的实现方式,可以包括:

s321,计算在当前时序路径中插入缓冲器所需的最小建立时间余量;

s322,根据计算出的建立时间余量对当前时序路径的建立时间窗口进行调整,调整后的建立时间余量大于或等于最小建立时间余量。

可选地,在本发明实施例中,处理器22执行可执行指令时,在执行操作s32中对当前时序路径的建立时间窗口进行调整,可以包括以下调整方式中的一种或多种:

方式一,将当前时序路径中标准单元替换为第一单元,该第一单元的驱动大于标准单元;

方式二,通过分拆负载的方式降低当前时序路径中标准单元的负载数目;

方式三,将当前时序路径中标准单元替换为第二单元,该第二单元与标准单元的驱动相同,且第二单元的运行速率大于第一单元的运行速率。

需要说明的是,上述调整方式的应用场景和实现方式在上述实施例中已经详细说明,故在此不再赘述。本发明实施例中不限制调整建立时间窗口的具体方式,上述三种方式和相应的应用场景仅是示意性的说明,只要是可以对实现路径中的建立时间窗口进行调整以满足插入缓冲器的目的的调整方式,均可以作为本发明实施例中调整建立时间窗口的方式。

可选地,在本发明实施例中,基于对建立时间窗口进行调整的多种调整方式,处理器22执行可执行指令时,执行操作s32的实现方式,可以包括:

s323,选择用于对建立时间窗口进行调整的调整方式;

s324,判断所选择的调整方式是否阻碍对保持时间违例的修复;

s325,当判断出所选择的调整方式未阻碍对保持时间违例的修复时,通过选择的调整方式对建立时间窗口进行调整;

s326,当判断出所选择的调整方式阻碍对保持时间违例的修复时,重新选择用于对建立时间窗口进行调整的调整方式,直到判断出所有调整方式均阻碍对保持时间违例的修复。

可选地,在本发明实施例中,处理器22执行可执行指令时,在执行s31之前,还进行如下操作:

s301,根据当前时序路径中保持时间违例的大小,计算修复该保持时间违例所需的延时;

s302,根据计算出的延时选择用于修复该保持时间违例的缓冲器。

可选地,在本发明实施例中,处理器22执行可执行指令时,在执行s32之后,还进行如下操作:

s33,根据调整后的当前时序路径的建立时间余量和延时重新选择用于修复保持时间违例的缓冲器。

s34,根据重新选择的缓冲器对当前时序路径的保持时间违例进行修复。

本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该处理器执行该计算机可执行指令时,进行如下操作:

s41,判断在当前时序路径中插入缓冲器时,该当前时序路径的建立时间余量是否小于预设余量阈值;其中,所插入的缓冲器用于对当前时序路径的保持时间违例进行修复;

s42,当判断出建立时间余量小于预设余量阈值时,对该当前时序路径的建立时间窗口进行调整。

可选地,在本发明实施例中,该处理器执行该计算机可执行指令时,执行操作s42的实现方式,可以包括:

s421,计算在当前时序路径中插入缓冲器所需的最小建立时间余量;

s422,根据计算出的建立时间余量对当前时序路径的建立时间窗口进行调整,调整后的建立时间余量大于或等于最小建立时间余量。

可选地,在本发明实施例中,该处理器执行该计算机可执行指令时,在执行操作s42中对当前时序路径的建立时间窗口进行调整,可以包括以下调整方式中的一种或多种:

方式一,将当前时序路径中标准单元替换为第一单元,该第一单元的驱动大于标准单元;

方式二,通过分拆负载的方式降低当前时序路径中标准单元的负载数目;

方式三,将当前时序路径中标准单元替换为第二单元,该第二单元与标准单元的驱动相同,且第二单元的运行速率大于第一单元的运行速率。

需要说明的是,上述调整方式的应用场景和实现方式在上述实施例中已经详细说明,故在此不再赘述。本发明实施例中不限制调整建立时间窗口的具体方式,上述三种方式和相应的应用场景仅是示意性的说明,只要是可以对实现路径中的建立时间窗口进行调整以满足插入缓冲器的目的的调整方式,均可以作为本发明实施例中调整建立时间窗口的方式。

可选地,在本发明实施例中,基于对建立时间窗口进行调整的多种调整方式,该处理器执行该计算机可执行指令时,执行操作s42的实现方式,可以包括:

s423,选择用于对建立时间窗口进行调整的调整方式;

s424,判断所选择的调整方式是否阻碍对保持时间违例的修复;

s425,当判断出所选择的调整方式未阻碍对保持时间违例的修复时,通过选择的调整方式对建立时间窗口进行调整;

s426,当判断出所选择的调整方式阻碍对保持时间违例的修复时,重新选择用于对建立时间窗口进行调整的调整方式,直到判断出所有调整方式均阻碍对保持时间违例的修复。

可选地,在本发明实施例中,该处理器执行该计算机可执行指令时,在执行s41之前,还进行如下操作:

s401,根据当前时序路径中保持时间违例的大小,计算修复该保持时间违例所需的延时;

s402,根据计算出的延时选择用于修复该保持时间违例的缓冲器。

可选地,在本发明实施例中,该处理器执行该计算机可执行指令时,在执行s42之后,还进行如下操作:

s43,根据调整后的当前时序路径的建立时间余量和延时重新选择用于修复保持时间违例的缓冲器。

s44,根据重新选择的缓冲器对当前时序路径的保持时间违例进行修复。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可以通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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