缓冲器的插入方法及装置的制作方法

文档序号:6401320阅读:281来源:国知局
专利名称:缓冲器的插入方法及装置的制作方法
技术领域
本发明涉及集成电路制造和设计领域,具体而言,涉及一种缓冲器的插入方法及
>J-U ρ α装直。
背景技术
时序逻辑是数字电路设计中的重要组成部分。而保持时间(hold time)是指数据稳定后保持的时间,如果保持时间无法满足预设条件,那么数据就不能被稳定的输入触发器。当发生保持时间违例时,数字电路设计的功能就不能正确地实现。因此,修复保持时间违例是数字电路设计中一项必要且非常重要的工作。工艺、电压和温度是影响电路性能的三个基本因素,但是,在研究过程中不可能穷尽其所有组合来分析电路行为。相关技术中,在签核(signoff)阶段通常采用抽样分析的方法,考虑上述三者的极端情况组合,来保证设计在整个组合空间中都能正常工作。在进入纳米工艺后,此种抽样分析方法受到了很大的挑战,最主要的问题就在于采样点数目急剧膨胀。由于随着晶体管尺寸的不断变小,时序路径延迟由之前的器件延迟占主导地位变为由线延迟占主导地位。在计算线延迟时,电阻电容的提取方式对静态时序分析非常重要。现代数字电路要保证能在各种极端环境下正常工作,而且在各种环境下的频率要求不尽相同,因此,物理设计中考虑工作、电压和温度要比以前多很多。为了满足数字电路高性能要求的同时也要考虑低功耗,因此数字电路存在着多个工作模式,例如:在正常工作模式下,数字电路运行在较高频率下,此时数字电路功耗较大,当数字电路处于休眠模式时,数字电路运 行在较低频率下,此时数字电路功耗较低。如此,可以将数字电路以某种工作模式运行在某个工艺角下定义为数字电路的一种时序分析模式(scenario)。当数字电路有ml种工作电压、m2种工作温度、m3种提取电容电阻的模式、m4种工作模式时,数字电路总的scenario数量就有ml*m2*m3*m4种。随着工艺技术的改进,为了保证数字电路时序分析的精度,工作电压种类、工作温度种类、电阻电容提取模式种类、数字电路工作模式种类都会发生增长,数字电路的时序分析模式会呈指数级增长的趋势。所以要在越来越多的时序分析模型下修复保持时间违例对于设计者而言将是巨大的挑战。相关技术中,修复保持时间违例的较为有效的方法是在出现保持时间违例的时序路径上插入适量的缓冲器。但现有的修复保持时间违例的方法均忽略了多工艺角多模式的条件,插入缓冲器过多对原有的设计改变太大,存在着迭代次数过多、时间过长的缺陷。下面对相关技术中的几种常用的修复保持时间违例的技术方案分别进行介绍。技术方案一、该发明首先通过电子设计自动化(Electronic Design Automation,简称为EDA)工具的report timing命令得到保持时间违反的路径;其次采用reporttiming命令得到路径中建立时间较为富裕的点;然后根据前后级器件的驱动大小来选择插入缓冲器的类型,插入缓冲器后再通过import timing命令判断建立时间是否违反,保持时间是否修复;最后通过EDA工具将路径上其他的器件加以固定,通过ixnite eco命令来进行布线。
该技术方案的缺陷在于以下几点:(I)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;(2)该发明大量地使用了 EDA工具中的命令来计算时序,这在超大规模集成电路设计中使得修复保持时间变得很慢;(3)该发明在修复保持时间违例时只考虑单条时序路径,没有全局考虑到集成电路中时序路径的相互影响,这样使得修复的点过多,插入的缓冲器数量过多,以致对原来的设计产生了巨大的影响。技术方案二、该发明通过建立松弛和保持松弛的约束条件来得到保持时间违反的路径和路径中可以修复的点;然后在不违反建立时间约束的条件下插入合适的延迟器件。该技术方案的缺陷在于以下几点:(I)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;(2)该发明没有考虑到修复保持时间的快速性,在现有超大规模集成电路设计中,时序路径数量都是千万数量级的,根据每条时序路径的时序约束来确定方案所花费的时间非常长;(3)该发明在修复保持时间违例时只考虑单条时序路径,而没有全局考虑到集成电路中时序路径的相互影响,这样使得修复的点过多,插入的缓冲器数量过多,以致对原有设计产生了巨大的影响。技术方案三、该发明首先将存在着保持时间违例的路径分成各个线段,建立起线段与路径间的关系,为每个线段计算出通过线段的路径数;然后根据通过每个线段的路径数目来为每个线段进行排序;再次选出排序第一的线段来判断是否存在着修复保持时间的建立时间余量,若存在则插入缓冲器来修复保持时间违例;若不存在则将该线段舍弃,重新对线段进行排序。该技术方案的缺陷在于以下几点:(I)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;(2)该发明在选择线段来修复保持时间违例的时候只考虑到了该线段所影响到的路径的数目,没有考虑到该线段的保持时间的松弛(slack)的大小,这会发生保持时间最大的松弛(slack)的路径没有被修复下去的情况。技术方案四、该发明首先从TIMING ANALYSIS TOOLS得到时序结果,然后为每个要插入的buffer按照load的范围提供一个大概的延迟值;然后从存在保持时间违例的路径的尾端开始从后往前找,在分叉点处根据负载(load)的值、建立时间和保持时间来选择合适的缓冲器插入。该技术方案的缺陷在于以下几点:(I)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;(2)该发明缓冲器的延迟值只是给出几个区域内估算的范围值,并没有根据实质情况的电容和上下沿变化时间来决定延迟值,所以在选择插入的缓冲器类型时,其选择并不是最优的;(3)在插入的缓冲器的点的考虑上,仅考虑到插入缓冲器对其他路径的影响尽量小,这样使得插入点的数量过多,对原有的设计改变过多。技术方案五、该发明仅提到了读入多工艺角多模式下的镜像来得到整个设计的内容,读入多工艺角多模式的数据库信息来得到整个设计的约束文件,然后即可得出技术更改指令(Engineering Change Orders,简称为 ECO)的结果。该技术方案的缺陷在于以下几点:( I)该发明中仅提到了需要导入设计内容和设计的约束文件,这两个条件概括范围较为宽泛,基本包含了后端设计的全部内容,而没有指出该发明具体需要的信息;(2)该发明最终结果是得出ECO的结果,而无法体现迭代次数少、插入缓冲器数量少的优势。

发明内容
本发明提供了一种缓冲器的插入方法及装置,以至少解决相关技术中通过插入缓冲器来修复保持时间违例的方法易造成迭代次数过多、修复时间过长的问题。根据本发明的一个方面,提供了一种缓冲器的插入方法。根据本发明的缓冲器的插入方法包括:获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口。优选地,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口包括:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;获取连接关系中每个端口在多种时序分析模型下的权重值的总和,确定总和最大的一个或多个端口为待插入缓冲器的端口。优选地,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口包括:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口 ;获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;比较与选取的每个端口对应的保持时间松弛的参数值的最小值,并将获取到的与选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛的参数值最小的一个或多个端口确定为待插入缓冲器的一个或多个端口。优选地,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口包括:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口 ;获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;比较与选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口 ;判断得到的一个或多个端口是否在同一条连接路径上;如果是,则根据在同一条连接路径上的一个或多个端口的位置关系确定待插入缓冲器的一个或多个端口。
优选地,从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值包括:对每个输入端口的权重值进行初始化,并从每个输入端口开始依次比较每条连接路径中相邻两个端口在该时序分析模型下的保持时间松弛的参数值的大小;如果相邻两个端口中的前一个端口的保持时间松弛的参数值大于或者等于后一个端口的保持时间松弛的参数值,则增加后一个端口的权重值;统计连接关系的各个端口中每个端口在各种时序分析模型下权重值的总和,并将权重值总和最大的一个或多个端口确定为待插入缓冲器的一个或多个端口。优选地,在确定待插入缓冲器的一个或多个端口之后,还包括:获取当前待使用的缓冲器的类型;根据同种类型或多种不同类型缓冲器所形成的缓冲器集合的面积确定待插入缓冲器的类型和数量,其中,同种类型或多种不同类型缓冲器中的每个缓冲器分别位于不同的端口。优选地,在根据每种缓冲器集合的面积确定待插入缓冲器的类型和数量之后,还包括:根据待插入缓冲器的类型、待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算待插入缓冲器自身的延迟以及与待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;采用计算结果更新待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。根据本发明的另一方面,提供了 一种缓冲器的插入装置。根据本发明的缓冲器的插入装置包括:第一获取模块,用于获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;选取模块,用于在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口。 优选地,选取模块包括:计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;确定单元,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和,确定总和最大的一个或多个端口为待插入缓冲器的端□。优选地,选取模块包括:计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;选取单元,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和,并选取权重值总和最大的一个或多个端口 ;获取单元,用于获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;第一比较单元,用于比较与选取的每个端口对应的保持时间松弛的参数值的最小值;确定单元,用于将获取到的与选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛的参数值最小的一个或多个端口确定为待插入缓冲器的一个或多个端□。优选地,选取模块包括:计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;选取单元,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和,并选取权重值总和最大的一个或多个端口 ;获取单元,用于获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;第二比较单元,用于比较与选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口 ;判断单元,用于判断得到的一个或多个端口是否在同一条连接路径上;确定单元,用于在判断单元输出为是时,则根据在同一条连接路径上的一个或多个端口的位置关系确定待插入缓冲器的一个或多个端口。优选地,计算单元包括:比较子单元,用于对每个输入端口的保持时间松弛的参数值进行初始化,并从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值的大小;处理子单元,用于在相邻两个端口中的前一个端口的保持时间松弛的参数值大于或者等于后一个端口的保持时间松弛的参数值时,则增加后一个端口的权重值。优选地,上述装置还包括:第二获取模块,用于获取当前待使用的缓冲器的类型;确定模块,用于根据同种类型或多种不同类型缓冲器所形成的缓冲器集合的面积确定待插入缓冲器的类型和数量,其中,同种类型或多种不同类型缓冲器中的每个缓冲器分别位于不同的端口。优选地,上述装置还包括:计算模块,用于根据待插入缓冲器的类型、待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算待插入缓冲器自身的延迟以及与待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;更新模块,用于采用计算结果更新待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。通过本发明,采用获取当前集成电路中不同器件的端口之间的连接关系,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口,即从所有时序分析模型的角度对连接关系中的各条连接路径进行综合分析,在考虑多种时序分析模型的时序约束的情况下,从整个连接关系的全局上确定待插入缓冲器的一个或多个端口,由此解决了相关技术中通过插入缓冲器来修复保持时间违例的方法易造成迭代次数过多、修复时间过长的问题,进而降低了通过插入缓冲器来修复保持时间违例的迭代次数和修复时间。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的缓冲器的插入方法的流程图;图2是根据本发明优选实施例的缓冲器的插入方法的流程图;图3是根据本发明优选实施例的以器件的端口为点、器件端口之间的连接关系为线的示意图4a是根据本发明优选实施例的初始情况下各个点的保持时间松弛/权重的示意图;图4b是根据本发明优选实施例的从A点开始追溯后各个点的保持时间松弛/权重的示意图;图4c是根据本发明优选实施例的在图4b的基础上从B点开始追溯后各个点的保持时间松弛/权重的示意图;图5是根据本发明优选实施例中为选择缓冲器的类型所采用的分支优化方法的示意图;图6是根据本发明实施例的缓冲器的插入装置的结构框图;图7是根据本发明优选实施例的缓冲器的插入装置的结构框图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1是根据本发明实施例的缓冲器的插入方法的流程图。如图1所示,该方法可以包括以下处理步骤:步骤S102:获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;步骤S104:在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口。相关技术中,在大规模数字电路设计过程中,修复保持时间违例的有效方法是插入缓冲器。但现有的通过插入缓冲器来修复保持时间违例的方法并没有考虑到多工艺角多模式(即多种时序分析模型)的因素,缺乏从所有时序分析模式对时序路径的能力进行有层次地分析,只是独立地在各个时序分析模式下分析时序路径,然后盲目地选择修复点插入缓冲器,由此在其他时序分析模式下造成新的建立时间或保持时间的违例,即乒乓效应。从而导致在修复保持时间违例时迭代次数过多、修复时间过长。采用如图1所示的方法,获取当前集成电路中各个器件相互间端口之间的连接关系,上述连接关系可以包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口,即从所有时序分析模型的角度对连接关系中的各条连接路径进行综合分析,在考虑各种时序分析模型的时序约束的情况下,从整个连接关系的全局上确定待插入缓冲器的一个或多个端口,从而避免由于仅考虑一种时序分析模型或只考虑单条时序路径而盲目地选择修复点插入缓冲器而使得在其他时序分析模式下造成新的建立时间或保持时间的违例,由此解决了相关技术中通过插入缓冲器来修复保持时间违例的方法易造成迭代次数过多、修复时间过长的问题,进而降低了通过插入缓冲器来修复保持时间违例的迭代次数和修复时间。优选地,在步骤S104中,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口可以包括以下处理:步骤S1:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算连接关系的各个端口中每个端口的在该时序分析模型下的权重值;步骤S2:获取连接关系中每个端口在多种时序分析模型下的权重值的总和,确定总和最大的一个或多个端口为待插入缓冲器的端口。在优选实施例中,在特定的时序分析模型下,沿着每条连接路径的输入端至输出端的方向上,从输入端口开始依次比较相邻两个端口的保持时间松弛的参数值。在每对相邻端口之间进行比较,如果靠近输入端口的前一端口的保持时间松弛的参数值大于或者等于远离输入端口的后一端口的保持时间松弛的参数值,则需要增加后一端口的权重值。以此类推计算每条连接路径上各个端口的权重值,进而得出在每种时序分析模型下的连接关系中的各个端口的权重值,最终统计连接关系中的各个端口中的每个端口在各种时序分析模型下权重值的总和,以确定待插入缓冲器的一个或多个端口。优选地,在步骤S104中,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口可以包括以下操作:步骤S3:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;步骤S4:获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口;步骤S5:获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;步骤S6:比较与选取的每个端口对应的保持时间松弛的参数值的最小值,并将获取到的与选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛的参数值最小的一个或多个端口确定为待插入缓冲器的一个或多个端口。在优选实施例中,按照上述统计结果可知,权重值最大的多个端口分别为端口 A、B、D ;假设经过计算,端口 A、B、D在多种时序分析模型下的保持时间松弛的参数值的最小值分别为:_5、_6、-6 ;经过比较可以得出,保持时间松弛的参数值最小的多个端口分别为端Π B、D。优选地,在步骤S104中,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口可以包括以下处理步骤:步骤S7:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;步骤S8:获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口;步骤S9:获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;步骤SlO:比较与选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口;
步骤Sll:判断得到的一个或多个端口是否在同一条连接路径上;步骤S12:如果是,则根据在同一条连接路径上的一个或多个端口的位置关系确定待插入缓冲器的一个或多个端口。在优选实施例中,除了要考虑每个端口的权重值以及保持时间松弛的参数值,还需要考虑各个端口在连接路径上的位置关系。优选地,上述从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值可以包括以下步骤:步骤S13:对每个输入端口的权重值进行初始化,并从每个输入端口开始依次比较每条连接路径中相邻两个端口在该时序分析模型下的保持时间松弛的参数值的大小;步骤S14:如果上述相邻两个端口中的前一个端口的保持时间松弛的参数值大于或者等于后一个端口的保持时间松弛的参数值,则增加后一个端口的权重值;在优选实施例中,假设当前有输入端口 A,输出端口 D,而在端口 A与端口 D之间的连接路径上存在端口 B和端口 C,已知端口 A、B、C、D的权重值均为0,而保持时间松弛的参数值依次为:_5、-5、-3、-5。先将端口 A的权重值初始化为1,从端口 A出发沿端口 A与端口 D之间的连接路径开始追溯;由于端口 A的保持时间松弛的参数值与端口 B的保持时间松弛的参数值相等,因此,端口 B的权重值=0+1=1 ;由于端口 B的保持时间松弛的参数值小于端口 C的保持时间松弛的参数值,因此,端口 C的权重值保持不变;由于端口 C的保持时间松弛的参数值大于端口 D的保持时间松弛的参数值,因此,端口 D的权重值=0+1=1。经过统计,端口 A、B、C、D的权重值依次为1、1、0、1。上述过程仅是本发明所提供的技术方案的连接关系中一条连接路径的各个端口的权重值的统计结果,而其他连接路径上各个端口的权重值的统计结果与此相似,此处不再赘述。优选地,在步骤S104,确定待插入缓冲器的一个或多个端口之后,还可以包括以下操作:步骤S15:获取当前待使用的缓冲器的类型;步骤S16:根据同种类型或多种不同类型缓冲器所形成的缓冲器集合的面积确定待插入缓冲器的类型和数量,其中,同种类型或多种不同类型缓冲器中的每个缓冲器分别位于不同的端口。在优选实施例中,可以采用分支优化的方法确定待插入缓冲器的类型和数量。例如,在确定第k级缓冲器的类型时,先为每种备选的缓冲器类型(即当前待使用的缓冲器的类型)设立一个分支,然后在每个分支再插入第k+Ι级每种缓冲器,根据第k级缓冲器类型和第k+Ι级缓冲器类型得到每个分支的最优代价值,该最优代价值即在满足修复保持时间违例的前提下,使得第k级缓冲器类型和第k+Ι级缓冲器类型组合的面积最小(此时第k级缓冲器类型和第k+Ι级缓冲器类型可能是相同的,也可能是不同的),从而确定第k级和第k+Ι级缓冲器的类型,并且由于当前存在第k级和第k+Ι级,由此可以确定待插入缓冲器的数量为2个,其中,每一级对应一个端口,有多少级就意味着要插入多少个缓冲器,可以根据不同需要场景,确定插入缓冲器的数量。优选地,在步骤S16,根据每种缓冲器集合的面积确定待插入缓冲器的类型和数量之后,还可以包括以下步骤:
步骤S17:根据待插入缓冲器的类型、待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算待插入缓冲器自身的延迟以及与待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;步骤S18:采用计算结果更新待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。本发明所提供的技术方案充分考虑到多工艺角多模式下的时序约束,并且从全局上考虑缓冲器的插入点,使得在一处地方插入缓冲器便可解决多条具有保持时间违例的路径;在对缓冲器的类型进行选择时,能够不借助自动设计(EDA)工具来较为精确地计算出缓冲器的延迟,如此便能快速地不用保留余量来修复保持时间违例,并且考虑到插入缓冲器对一些拥塞设计的影响,在保证能修复保持时间违例的同时,选择面积最小的缓冲器组合;插入缓冲器后不需要通过EDA工具进行时序上的更新即可进行下一轮的修复,从而可以通过静态时序分析模型的计算来更新受到影响的路径的时序,然后再进行下一轮修复,以便减少修复保持时间违例的时间。图2是根据本发明优选实施例的缓冲器的插入方法的流程图。如图2所示,该方法可以包括以下处理步骤:步骤S202:从设计的签核时序报告中提取信息;提取信息是指从设计的签核时序报告中提取出一些设计必要的信息,来保证在不违反设计规则的前提下修复保持时间违例。在该优选实施例中,需要提取的信息可以包括但不限于以下至少之一:属性不可改变的线和器件,设计中每个器件端口(pin)上的建立时间松弛(setup timing slack)、保持时间松弛(hold timing slack)、上升下降时间(transition)、电容(capacitance)将时钟路径与普通的时序路径相分离。步骤S204:构建逻辑连接关系;构造设计的逻辑连接关系是指为了构建设计的器件之间的连接关系图,对后面步骤的缓冲器的插入和时序的更新起到重要作用。构造设计的逻辑连接关系可以有多种实现方式,既可以以器件为点、器件之间的连接关系为线,也可以以器件的端口为点、器件端口之间的连接关系为线。在该优选实施例中,图3是根据本发明优选实施例的以器件的端口为点、器件端口之间的连接关系为线的示意图。具体过程如下:从触发器(register)的D端(即输入端口)或者输出端口(output port)触发跟踪器件的连接关系,直到触发器的输出端或者输入端口(input port)终止,形成一个电路的关系图G= (V, E), V代表设计中的pin或者port, E代表(端口 u,端口 V)或者(端口 j,端口 k)所构成的边。实线(u, V)表示端口 u和端口 V之间存在的连接关系为器件之间的连接关系,虚线(j,k)表示端口 j和端口 k之间存在的连接关系为器件内部的连接关系;如图3所示,A、B、E为同一个器件的3个端口,在该器件内部存在着以下连接关系:(A,E)和(B、E),即A和E之间存在连接关系,B和E之间也存在连接关系,由于上述(A,E)和(B、E)均为器件内部的连接,因此,可以采用虚线加以表示。同理,E、F、G、I分别为同一个器件的4个端口,在该器件内部存在着以下连接关系:(H, 1)、斤、1)和(6,I),即H、F、G分别与I相连接,由于上述(H,1)、斤、1)和(6,I)均为器件内部的连接,因此,同样可以采用虚线加以表示。而E和H、C和F以及D和G彼此之间均为不同器件的端口,因此,(E, H)、(C,F)和(D、G)均采用实线加以表示,说明上述连接关系为器件之间的连接关系。缓冲器只能在实线处加入。步骤S206:确定插入缓冲器的点(即待插入缓冲器的端口);确定插入缓冲器的点是为了在设计的众多点中选出关键点插入缓冲器来解决保持时间违例的问题。在上述众多点中,可以通过点的保持时间约束松弛、建立时间约束松弛、该点连接拓扑结构、该点所影响到的路径数、该点所影响到的器件数目等方面来决定点的关键程度,其中,可以通过该点所影响的路径数目、保持时间约束松弛、建立时间约束松弛、该点的偏序关系等方法来确定点的关键性。为了全面地考虑点的关键性,可以综合考虑通过该点的路径权重、点的最差保持时间松弛以及点的偏序关系。在确定点所影响的路径数目时可以采用以下方法:当存在(u,v)实线时,SL(U)和SL(V)分别为u、v两点的保持时间松弛。假设在V点插入缓冲器增加延迟k,将会出现以下三种情况:情况一、当SL(U)彡SL(V)时,SL(U)将增加延迟k,此时说明V点对u点的延迟起主导作用;情况二、当SL (V)-k〈SL (u)〈SL (V)时,SL(U)增加的延迟值为 SL (u)-SL (v)+k,此时说明V点对U点延迟 起半主导作用;情况三、当SL (u) <SL (V) -k时,SL (U)延迟值将不会发生变化,此时说明V点对u点延迟不起主导作用。要使插入的缓冲器的数量最少,就需要在对路径的延迟起主导作用的点上插入缓冲器即情况一下在V点插入缓冲器,其效果为最佳。步骤S208:计算各个点的路径权重(即权重值),即计算各个点中的每个点在每种scenario下对路径延迟起主导作用的保持时间松弛为负的路径数目的总和;其方法在于将所有的V的weight (V)设为0,然后从一个保持时间松弛为负的触发器的输入pin出发并将该点的weight设为1,通过G (V,E)的连接关系图向前追溯,当遇到一个V时,比较前一个点 u 的 SL,当 SL(U)彡 SL (V) B^JlJweight(v)=weight(v)+weight(u)。图 4a 是根据本发明优选实施例的初始情况下各个点的保持时间松弛/权重的示意图。如图4a所示,A、B为触发器的输入pin,C、D、E为逻辑器件的pin,图中数字所代表的含义为保持时间松弛/权重(SL/weight)。图4b是根据本发明优选实施例的从A点开始追溯后各个点的保持时间松弛/权重的示意图。如图4b所示,开始时所有的pin的weight初始化为O,从A出发开始追溯,weight(A)为 1,由于 SL (A)彡 SL (C),因此 weight (C) =0+1=1 ;又因为 SL(C) ^ SL (D),所以weight (D) =0+1=1 ;而由于SL (C) <SL (E),因此weight (E) =0。同理,图4c是根据本发明优选实施例的在图4b的基础上从B点开始追溯后各个点的保持时间松弛/权重的示意图。如图4c所示,从B点开始追溯,即可得到图4c中的结果。步骤S210:选取权重总和最大的点;在确定插入缓冲器的点时,除了主要考虑通过该点的路径权重的同时,还需要考虑到该点的最差保持时间松弛以及该点的偏序关系。最差保持时间松弛是指全部时序分析模型中最差保持时间松弛;偏序关系是在上述遍历过程中所形成的顺序关系。在确定优先级最高的点(即待插入缓冲器的端口)时,考虑的因素:首先是比较点的路径权重一然后是比较点的最差保持时间松弛的值一最后是比较点的偏序关系。步骤S212:选择合适的缓冲器;
选择缓冲器的类型需要在某个插入点根据实质的上升下降时间和电容在不违反建立时间松弛的条件下来决定缓冲器的插入类型以修复保持时间违例。由于存在多种时序分析模型,而每种时序分析模型的保持时间松弛、建立时间松弛、上升下降时间以及电容都不尽相同,并且可以选择的缓冲器类型又较多,由此可见,选择缓冲器类型的策略好坏直接决定了是否能够快速地修复保持时间违例。在该优选实施例中,记录了每个点的保持时间松弛、建立时间松弛、上升下降时间以及电容,再根据单元库(library)里的时序信息来计算出在各个时序分析模型中缓冲器本身的延迟和插入点前一级与后一级的延迟变化情况,这样就可以得到整条路径的时序变化情况,以确定插入缓冲器能否在保证不违反各个时序分析模型的建立时间的前提下修复各个时序分析模型的保持时间。在选择缓冲器的类型时可以采取遍历所有缓冲器的方法,当寻找到一个能够解决问题的缓冲器即可退出或者采用人工智能的方法。鉴于选择缓冲器所用到的时间和缓冲器的面积,该优选实施例中所采用的方法为:若单个缓冲器无法实现目标时,采用分支优化的方法来决定缓冲器的类型,其分支优化的方法为:在确定第k级缓冲器的类型时,先为每种缓冲器类型设立一个分支,然后每个分支再插入第k+Ι级每种缓冲器,根据第k级缓冲器类型和第k+Ι级缓冲器类型得到每个分支的最优代价值,该最优代价值在满足修复保持时间违例的前提下,使得第k级缓冲器类型和第k+Ι级缓冲器类型组合的面积最小,最后根据每个分支的最优代价值来确定第k级缓冲器的类型。图5是根据本发明优选实施例中为选择缓冲器的类型所采用的分支优化方法的示意图。如图5所示,假设缓冲器的类型共有16种,分别从Xl到X16。在确定第K级缓冲器时,为每个缓冲器设一个分支,每个分支后面再插入上述从Xl到X16的16种缓冲器,然后根据第K级和第K+ 1级的缓冲器类型计算出每个分支的代价值,假设Xl分支的代价值为16,…,X16分支的代价值为50,最后从中选取代价值最高的分支,即第K级缓冲器的类型为X16,并删除其他分支。步骤S214:更新时序路径影响;更新缓冲器加入后对时序路径的影响是指在某一处即将插入缓冲器但在实际的设计过程中还没有真实地插入时,对受到影响的路径在各个时序分析模型下的时序进行更新,以进行下一轮的修复。根据上述确定要插入缓冲器的类型、各个时序分析模型的上升下降时间、电容和library中的时序信息计算出各个时序分析模型中缓冲器本身的延迟和插入点前一级与后一级的延迟变化。最后更新受到影响的路径中其他端口的保持时间松弛、建立时间松弛以及通过该点的路径的权重。图6是根据本发明实施例的缓冲器的插入装置的结构框图。如图6所示,该缓冲器的插入装置可以包括:第一获取模块10,用于获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;选取模块20,用于在多种时序分析模型下从所述连接关系中选取待插入缓冲器的一个或多个端口。采用如图6所示的装置,解决了相关技术中通过插入缓冲器来修复保持时间违例的方法易造成迭代次数过多、修复时间过长的问题,进而降低了通过插入缓冲器来修复保持时间违例的迭代次数和修复时间。优选地,在本优选实施例中,如图7所示,选取模块20可以包括:计算单元200,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;确定单元202,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和,确定总和最大的一个或多个端口为待插入缓冲器的端口。优选地,在本优选实施例中,如图7所示,选取模块20可以包括:计算单元200,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;选取单元204,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口 ;获取单元206,用于获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;第一比较单元208,用于比较与选取的每个端口对应的保持时间松弛的参数值的最小值;确定单元202,还用于将获取到的与选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛的参数值最小的一个或多个端口确定为待插入缓冲器的一个或多个端口。优选地,在本优选实施例中,如图7所示,选取模块20可以包括:计算单元200,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;选取单元204,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口 ;获取单元206,用于获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;第二比较单元210,用于比较与选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口 ;判断单元212,用于判断得到的一个或多个端口是否在同一条连接路径上;确定单元202,还用于在判断单元输出为是时,则根据在同一条连接路径上的一个或多个端口的位置关系确定待插入缓冲器的一个或多个端口。优选地,如图7所示,计算单元200可以包括:比较子单元2000,用于对每个输入端口的保持时间松弛的参数值进行初始化,并从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值的大小;处理子单元2002,用于在相邻两个端口中的前一个端口的保持时间松弛的参数值大于或者等于后一个端口的保持时间松弛的参数值时,则增加后一个端口的权重值。优选地,如图7所示,上述装置还包括:第二获取模块30,用于获取当前待使用的缓冲器的类型;确定模块40,用于根据同种类型或多种不同类型缓冲器所形成的缓冲器集合的面积确定待插入缓冲器的类型和数量,其中,同种类型或多种不同类型缓冲器中的每个缓冲器分别位于不同的端口。优选地,如图7所示,上述装置还包括:计算模块50,用于根据待插入缓冲器的类型、待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算待插入缓冲器自身的延迟以及与待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;更新模块60,用于采用计算结果更新待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。
从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果):本发明所提供的技术方案主要关注在数字电路设计过程中在多工艺角多模式下的保持时序修复问题,通过提取信息、构造设计的逻辑连接关系、确定插入缓冲器的点、选择缓冲器的类型并在插入点加入选出的缓冲器、更新缓冲器加入后对时序路径的影响以使得整体设计在满足多工艺角多模式的建立时间的情况下修复保持时间违例,从而具有迭代次数少、运行时间短、对原有设计改变少的优点。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种缓冲器的插入方法,其特征在于,包括: 获取当前集成电路中各个器件相互间端口的连接关系,其中,所述连接关系包括:输入端口、输出端口以及所述输入端口与所述输出端口之间的连接路径; 在多种时序分析模型下从所述连接关系中选取待插入缓冲器的一个或多个端口。
2.根据权利要求1所述的方法,其特征在于,在所述多种时序分析模型下从所述连接关系中选取所述待插入缓冲器的一个或多个端口包括: 从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算所述每个端口在该时序分析模型下的权重值; 获取所述连接关系中每个端口在所述多种时序分析模型下的权重值的总和,确定所述总和最大的一个或多个端口为待插入缓冲器的端口。
3.根据权利要求1所述的方法,其特征在于,在所述多种时序分析模型下从所述连接关系中选取所述待插入缓冲器的一个或多个端口包括: 从每个输入端口开始依次比较每条 连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算所述每个端口在该时序分析模型下的权重值; 获取所述连接关系中每个端口在所述多种时序分析模型下的权重值的总和,并选取权重值总和最大的一个或多个端口; 获取所述选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与所述选取的每个端口对应的参数值集合中获取与所述选取的每个端口对应的保持时间松弛的参数值的最小值; 比较与所述选取的每个端口对应的保持时间松弛的参数值的最小值; 将获取到的与所述选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛的参数值最小的一个或多个端口确定为所述待插入缓冲器的一个或多个端口。
4.根据权利要求1所述的方法,其特征在于,在所述多种时序分析模型下从所述连接关系中选取所述待插入缓冲器的一个或多个端口包括: 从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算所述每个端口在该时序分析模型下的权重值; 获取所述连接关系中每个端口在所述多种时序分析模型下的权重值的总和,并选取权重值总和最大的一个或多个端口; 获取所述选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与所述选取的每个端口对应的参数值集合中获取与所述选取的每个端口对应的保持时间松弛的参数值的最小值; 比较与所述选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口; 判断得到的所述一个或多个端口是否在同一条连接路径上; 如果是,则根据在所述同一条连接路径上的一个或多个端口的位置关系确定所述待插入缓冲器的一个或多个端口。
5.根据权利要求2至4中任一项所述的方法,其特征在于,从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算所述每个端口在该时序分析模型下的权重值包括: 对所述每个输入端口的权重值进行初始化,并从所述每个输入端口开始依次比较每条连接路径中相邻两个端口在该时序分析模型下的保持时间松弛的参数值的大小; 如果所述相邻两个端口中的前一个端口的保持时间松弛的参数值大于或者等于后一个端口的保持时间松弛的参数值,则增加所述后一个端口的权重值。
6.根据权利要求1至4中任一项所述的方法,其特征在于,在确定所述待插入缓冲器的一个或多个端口之后,还包括: 获取当前待使用的缓冲器的类型; 根据同种类型或多种不同 类型缓冲器所形成的缓冲器集合的面积确定所述待插入缓冲器的类型和数量,其中,所述同种类型或所述多种不同类型缓冲器中的每个缓冲器分别位于不同的端口。
7.根据权利要求6所述的方法,其特征在于,在根据每种缓冲器集合的面积确定所述待插入缓冲器的类型和数量之后,还包括: 根据所述待插入缓冲器的类型、所述待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算所述待插入缓冲器自身的延迟以及与所述待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化; 采用计算结果更新所述待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。
8.一种缓冲器的插入装置,其特征在于,包括: 第一获取模块,用于获取当前集成电路中各个器件相互间端口的连接关系,其中,所述连接关系包括:输入端口、输出端口以及所述输入端口与所述输出端口之间的连接路径; 选取模块,用于在多种时序分析模型下从所述连接关系中选取待插入缓冲器的一个或多个端口。
9.根据权利要求8所述的装置,其特征在于,所述选取模块包括: 计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算所述每个端口在该时序分析模型下的权重值; 确定单元,用于获取所述连接关系中每个端口在所述多种时序分析模型下的权重值的总和,确定所述总和最大的一个或多个端口为待插入缓冲器的端口。
10.根据权利要求8所述的装置,其特征在于,所述选取模块包括: 计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算所述每个端口在该时序分析模型下的权重值; 选取单元,用于获取所述连接关系中每个端口在所述多种时序分析模型下的权重值的总和,并选取权重值总和最大的一个或多个端口 ; 获取单元,用于获取所述选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与所述选取的每个端口对应的参数值集合中获取与所述选取的每个端口对应的保持时间松弛的参数值的最小值; 第一比较单元,用于比较与所述选取的每个端口对应的保持时间松弛的参数值的最小值; 确定单元,用于将获取到的与所述选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛的参数值最小的一个或多个端口确定为所述待插入缓冲器的一个或多个端口。
11.根据权利要求8所述的装置,其特征在于,所述选取模块包括: 计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算所述每个端口在该时序分析模型下的权重值; 选取单元,用于获取所述连接关系中每个端口在所述多种时序分析模型下的权重值的总和,并选取权重值总和最大的一个或多个端口 ; 获取单元,用于获取所述选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与所述选取的每个端口对应的参数值集合中获取与所述选取的每个端口对应的保持时间松弛的参数值的最小值; 第二比较单元,用于比较与所述选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口 ; 判断单元,用于判断得到的所述一个或多个端口是否在同一条连接路径上; 确定单元,用于在判断单元输出为是时,则根据在所述同一条连接路径上的一个或多个端口的位置关系确定所 述待插入缓冲器的一个或多个端口。
12.根据权利要求9至11中任一项所述的装置,其特征在于,所述计算单元包括: 比较子单元,用于对所述每个输入端口的保持时间松弛的参数值进行初始化,并从所述每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值的大小; 处理子单元,用于在所述相邻两个端口中的前一个端口的保持时间松弛的参数值大于或者等于后一个端口的保持时间松弛的参数值时,则增加所述后一个端口的权重值。
13.根据权利要求8至11中任一项所述的装置,其特征在于,所述装置还包括: 第二获取模块,用于获取当前待使用的缓冲器的类型; 确定模块,用于根据同种类型或多种不同类型缓冲器所形成的缓冲器集合的面积确定所述待插入缓冲器的类型和数量,其中,所述同种类型或所述多种不同类型缓冲器中的每个缓冲器分别位于不同的端口。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括: 计算模块,用于根据所述待插入缓冲器的类型、所述待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算所述待插入缓冲器自身的延迟以及与所述待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;更新模块,用于采用计算结果更新所述待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口 的连接路径的权重。
全文摘要
本发明公开了一种缓冲器的插入方法及装置,在上述方法中,获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括输入端口、输出端口以及输入端口与输出端口之间的连接路径;在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口。根据本发明提供的技术方案,降低了通过插入缓冲器来修复保持时间违例的迭代次数和修复时间。
文档编号G06F17/50GK103164585SQ201310109808
公开日2013年6月19日 申请日期2013年3月29日 优先权日2013年3月29日
发明者包翔元, 高燕萍, 王洪生 申请人:龙芯中科技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1