CN103164585B - 缓冲器的插入方法及装置 - Google Patents
缓冲器的插入方法及装置 Download PDFInfo
- Publication number
- CN103164585B CN103164585B CN201310109808.9A CN201310109808A CN103164585B CN 103164585 B CN103164585 B CN 103164585B CN 201310109808 A CN201310109808 A CN 201310109808A CN 103164585 B CN103164585 B CN 103164585B
- Authority
- CN
- China
- Prior art keywords
- port
- impact damper
- ports
- retention time
- analysis model
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种缓冲器的插入方法及装置,在上述方法中,获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口。根据本发明提供的技术方案,降低了通过插入缓冲器来修复保持时间违例的迭代次数和修复时间。
Description
技术领域
本发明涉及集成电路制造和设计领域,具体而言,涉及一种缓冲器的插入方法及装置。
背景技术
时序逻辑是数字电路设计中的重要组成部分。而保持时间(holdtime)是指数据稳定后保持的时间,如果保持时间无法满足预设条件,那么数据就不能被稳定的输入触发器。当发生保持时间违例时,数字电路设计的功能就不能正确地实现。因此,修复保持时间违例是数字电路设计中一项必要且非常重要的工作。
工艺、电压和温度是影响电路性能的三个基本因素,但是,在研究过程中不可能穷尽其所有组合来分析电路行为。相关技术中,在签核(signoff)阶段通常采用抽样分析的方法,考虑上述三者的极端情况组合,来保证设计在整个组合空间中都能正常工作。
在进入纳米工艺后,此种抽样分析方法受到了很大的挑战,最主要的问题就在于采样点数目急剧膨胀。由于随着晶体管尺寸的不断变小,时序路径延迟由之前的器件延迟占主导地位变为由线延迟占主导地位。在计算线延迟时,电阻电容的提取方式对静态时序分析非常重要。现代数字电路要保证能在各种极端环境下正常工作,而且在各种环境下的频率要求不尽相同,因此,物理设计中考虑工作、电压和温度要比以前多很多。为了满足数字电路高性能要求的同时也要考虑低功耗,因此数字电路存在着多个工作模式,例如:在正常工作模式下,数字电路运行在较高频率下,此时数字电路功耗较大,当数字电路处于休眠模式时,数字电路运行在较低频率下,此时数字电路功耗较低。如此,可以将数字电路以某种工作模式运行在某个工艺角下定义为数字电路的一种时序分析模式(scenario)。当数字电路有m1种工作电压、m2种工作温度、m3种提取电容电阻的模式、m4种工作模式时,数字电路总的scenario数量就有m1*m2*m3*m4种。随着工艺技术的改进,为了保证数字电路时序分析的精度,工作电压种类、工作温度种类、电阻电容提取模式种类、数字电路工作模式种类都会发生增长,数字电路的时序分析模式会呈指数级增长的趋势。所以要在越来越多的时序分析模型下修复保持时间违例对于设计者而言将是巨大的挑战。
相关技术中,修复保持时间违例的较为有效的方法是在出现保持时间违例的时序路径上插入适量的缓冲器。但现有的修复保持时间违例的方法均忽略了多工艺角多模式的条件,插入缓冲器过多对原有的设计改变太大,存在着迭代次数过多、时间过长的缺陷。
下面对相关技术中的几种常用的修复保持时间违例的技术方案分别进行介绍。
技术方案一、该发明首先通过电子设计自动化(ElectronicDesignAutomation,简称为EDA)工具的reporttiming命令得到保持时间违反的路径;其次采用reporttiming命令得到路径中建立时间较为富裕的点;然后根据前后级器件的驱动大小来选择插入缓冲器的类型,插入缓冲器后再通过reporttiming命令判断建立时间是否违反,保持时间是否修复;最后通过EDA工具将路径上其他的器件加以固定,通过routeeco命令来进行布线。
该技术方案的缺陷在于以下几点:
(1)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;
(2)该发明大量地使用了EDA工具中的命令来计算时序,这在超大规模集成电路设计中使得修复保持时间变得很慢;
(3)该发明在修复保持时间违例时只考虑单条时序路径,没有全局考虑到集成电路中时序路径的相互影响,这样使得修复的点过多,插入的缓冲器数量过多,以致对原来的设计产生了巨大的影响。
技术方案二、该发明通过建立松弛和保持松弛的约束条件来得到保持时间违反的路径和路径中可以修复的点;然后在不违反建立时间约束的条件下插入合适的延迟器件。
该技术方案的缺陷在于以下几点:
(1)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;
(2)该发明没有考虑到修复保持时间的快速性,在现有超大规模集成电路设计中,时序路径数量都是千万数量级的,根据每条时序路径的时序约束来确定方案所花费的时间非常长;
(3)该发明在修复保持时间违例时只考虑单条时序路径,而没有全局考虑到集成电路中时序路径的相互影响,这样使得修复的点过多,插入的缓冲器数量过多,以致对原有设计产生了巨大的影响。
技术方案三、该发明首先将存在着保持时间违例的路径分成各个线段,建立起线段与路径间的关系,为每个线段计算出通过线段的路径数;然后根据通过每个线段的路径数目来为每个线段进行排序;再次选出排序第一的线段来判断是否存在着修复保持时间的建立时间余量,若存在则插入缓冲器来修复保持时间违例;若不存在则将该线段舍弃,重新对线段进行排序。
该技术方案的缺陷在于以下几点:
(1)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;
(2)该发明在选择线段来修复保持时间违例的时候只考虑到了该线段所影响到的路径的数目,没有考虑到该线段的保持时间的松弛(slack)的大小,这会发生保持时间最大的松弛(slack)的路径没有被修复下去的情况。
技术方案四、该发明首先从TIMINGANALYSISTOOLS得到时序结果,然后为每个要插入的buffer按照load的范围提供一个大概的延迟值;然后从存在保持时间违例的路径的尾端开始从后往前找,在分叉点处根据负载(load)的值、建立时间和保持时间来选择合适的缓冲器插入。
该技术方案的缺陷在于以下几点:
(1)该发明没有考虑到多工艺角多模式情况下修复保持时间违例;
(2)该发明缓冲器的延迟值只是给出几个区域内估算的范围值,并没有根据实质情况的电容和上下沿变化时间来决定延迟值,所以在选择插入的缓冲器类型时,其选择并不是最优的;
(3)在插入的缓冲器的点的考虑上,仅考虑到插入缓冲器对其他路径的影响尽量小,这样使得插入点的数量过多,对原有的设计改变过多。
技术方案五、该发明仅提到了读入多工艺角多模式下的镜像来得到整个设计的内容,读入多工艺角多模式的数据库信息来得到整个设计的约束文件,然后即可得出技术更改指令(EngineeringChangeOrders,简称为ECO)的结果。
该技术方案的缺陷在于以下几点:
(1)该发明中仅提到了需要导入设计内容和设计的约束文件,这两个条件概括范围较为宽泛,基本包含了后端设计的全部内容,而没有指出该发明具体需要的信息;
(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:获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;
步骤S10:比较与选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口;
步骤S11:判断得到的一个或多个端口是否在同一条连接路径上;
步骤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+1级每种缓冲器,根据第k级缓冲器类型和第k+1级缓冲器类型得到每个分支的最优代价值,该最优代价值即在满足修复保持时间违例的前提下,使得第k级缓冲器类型和第k+1级缓冲器类型组合的面积最小(此时第k级缓冲器类型和第k+1级缓冲器类型可能是相同的,也可能是不同的),从而确定第k级和第k+1级缓冲器的类型,并且由于当前存在第k级和第k+1级,由此可以确定待插入缓冲器的数量为2个,其中,每一级对应一个端口,有多少级就意味着要插入多少个缓冲器,可以根据不同需要场景,确定插入缓冲器的数量。
优选地,在步骤S16,根据每种缓冲器集合的面积确定待插入缓冲器的类型和数量之后,还可以包括以下步骤:
步骤S17:根据待插入缓冲器的类型、待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算待插入缓冲器自身的延迟以及与待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;
步骤S18:采用计算结果更新待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。
本发明所提供的技术方案充分考虑到多工艺角多模式下的时序约束,并且从全局上考虑缓冲器的插入点,使得在一处地方插入缓冲器便可解决多条具有保持时间违例的路径;在对缓冲器的类型进行选择时,能够不借助自动设计(EDA)工具来较为精确地计算出缓冲器的延迟,如此便能快速地不用保留余量来修复保持时间违例,并且考虑到插入缓冲器对一些拥塞设计的影响,在保证能修复保持时间违例的同时,选择面积最小的缓冲器组合;插入缓冲器后不需要通过EDA工具进行时序上的更新即可进行下一轮的修复,从而可以通过静态时序分析模型的计算来更新受到影响的路径的时序,然后再进行下一轮修复,以便减少修复保持时间违例的时间。
图2是根据本发明优选实施例的缓冲器的插入方法的流程图。如图2所示,该方法可以包括以下处理步骤:
步骤S202:从设计的签核时序报告中提取信息;
提取信息是指从设计的签核时序报告中提取出一些设计必要的信息,来保证在不违反设计规则的前提下修复保持时间违例。
在该优选实施例中,需要提取的信息可以包括但不限于以下至少之一:属性不可改变的线和器件,设计中每个器件端口(pin)上的建立时间松弛(setuptimingslack)、保持时间松弛(holdtimingslack)、上升下降时间(transition)、电容(capacitance)将时钟路径与普通的时序路径相分离。
步骤S204:构建逻辑连接关系;
构造设计的逻辑连接关系是指为了构建设计的器件之间的连接关系图,对后面步骤的缓冲器的插入和时序的更新起到重要作用。构造设计的逻辑连接关系可以有多种实现方式,既可以以器件为点、器件之间的连接关系为线,也可以以器件的端口为点、器件端口之间的连接关系为线。在该优选实施例中,图3是根据本发明优选实施例的以器件的端口为点、器件端口之间的连接关系为线的示意图。具体过程如下:从触发器(register)的D端(即输入端口)或者输出端口(outputport)触发跟踪器件的连接关系,直到触发器的输出端或者输入端口(inputport)终止,形成一个电路的关系图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,I)、(F、I)和(G,I),即H、F、G分别与I相连接,由于上述(H,I)、(F、I)和(G,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)时,则weight(v)=weight(v)+weight(u)。图4a是根据本发明优选实施例的初始情况下各个点的保持时间松弛/权重的示意图。如图4a所示,A、B为触发器的输入pin,C、D、E为逻辑器件的pin,图中数字所代表的含义为保持时间松弛/权重(SL/weight)。图4b是根据本发明优选实施例的从A点开始追溯后各个点的保持时间松弛/权重的示意图。如图4b所示,开始时所有的pin的weight初始化为0,从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+1级每种缓冲器,根据第k级缓冲器类型和第k+1级缓冲器类型得到每个分支的最优代价值,该最优代价值在满足修复保持时间违例的前提下,使得第k级缓冲器类型和第k+1级缓冲器类型组合的面积最小,最后根据每个分支的最优代价值来确定第k级缓冲器的类型。图5是根据本发明优选实施例中为选择缓冲器的类型所采用的分支优化方法的示意图。如图5所示,假设缓冲器的类型共有16种,分别从X1到X16。在确定第K级缓冲器时,为每个缓冲器设一个分支,每个分支后面再插入上述从X1到X16的16种缓冲器,然后根据第K级和第K+1级的缓冲器类型计算出每个分支的代价值,假设X1分支的代价值为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,用于采用计算结果更新待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。
从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果):本发明所提供的技术方案主要关注在数字电路设计过程中在多工艺角多模式下的保持时序修复问题,通过提取信息、构造设计的逻辑连接关系、确定插入缓冲器的点、选择缓冲器的类型并在插入点加入选出的缓冲器、更新缓冲器加入后对时序路径的影响以使得整体设计在满足多工艺角多模式的建立时间的情况下修复保持时间违例,从而具有迭代次数少、运行时间短、对原有设计改变少的优点。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
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所述的装置,其特征在于,所述装置还包括:
计算模块,用于根据所述待插入缓冲器的类型、所述待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算所述待插入缓冲器自身的延迟以及与所述待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;
更新模块,用于采用计算结果更新所述待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310109808.9A CN103164585B (zh) | 2013-03-29 | 2013-03-29 | 缓冲器的插入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310109808.9A CN103164585B (zh) | 2013-03-29 | 2013-03-29 | 缓冲器的插入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164585A CN103164585A (zh) | 2013-06-19 |
CN103164585B true CN103164585B (zh) | 2016-02-10 |
Family
ID=48587668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310109808.9A Active CN103164585B (zh) | 2013-03-29 | 2013-03-29 | 缓冲器的插入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164585B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103632001B (zh) * | 2013-11-27 | 2016-03-30 | 中国人民解放军国防科学技术大学 | 基于缓冲单元复用的保持时间时序优化方法 |
CN104714842B (zh) * | 2013-12-17 | 2018-04-13 | 北京华大九天软件有限公司 | 一种调整时钟路径延迟来修复时序违反的方法 |
CN104881507B (zh) * | 2014-02-28 | 2018-01-19 | 格芯公司 | 修复电路中的保持时间违例的方法和装置 |
CN104992032B (zh) * | 2015-07-22 | 2017-11-07 | 杭州宙其科技有限公司 | 一种多电压域设计中保持时间的修正方法 |
CN108009055B (zh) * | 2016-10-31 | 2020-05-12 | 深圳市中兴微电子技术有限公司 | 一种修复保持时间违例的方法和装置 |
US10498339B2 (en) * | 2017-03-27 | 2019-12-03 | Mediatek Inc. | Hold-time compensation using free metal segments |
CN110377922B (zh) * | 2018-04-12 | 2023-06-30 | 龙芯中科技术股份有限公司 | 保持时间违例修复方法、装置及设备 |
CN114330185B (zh) * | 2020-10-10 | 2024-10-01 | Oppo广东移动通信有限公司 | 时序修复方法、装置、存储介质及电子设备 |
CN112597739B (zh) * | 2020-12-30 | 2023-04-07 | 瓴盛科技有限公司 | 修复电路中的保持时间违例的方法和装置 |
CN115577675B (zh) * | 2022-11-23 | 2023-03-07 | 飞腾信息技术有限公司 | 时序违例修复方法、装置、服务器及可读存储介质 |
CN117113915B (zh) * | 2023-10-25 | 2024-02-02 | 深圳鸿芯微纳技术有限公司 | 缓冲器插入方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6915496B2 (en) * | 2002-09-26 | 2005-07-05 | International Business Machines Corporation | Apparatus and method for incorporating driver sizing into buffer insertion using a delay penalty estimation technique |
CN1779686A (zh) * | 2004-11-22 | 2006-05-31 | 国际商业机器公司 | 确定缓冲器插入的方法和系统 |
US7480886B2 (en) * | 2006-01-18 | 2009-01-20 | International Business Machines Corporation | VLSI timing optimization with interleaved buffer insertion and wire sizing stages |
-
2013
- 2013-03-29 CN CN201310109808.9A patent/CN103164585B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6915496B2 (en) * | 2002-09-26 | 2005-07-05 | International Business Machines Corporation | Apparatus and method for incorporating driver sizing into buffer insertion using a delay penalty estimation technique |
CN1779686A (zh) * | 2004-11-22 | 2006-05-31 | 国际商业机器公司 | 确定缓冲器插入的方法和系统 |
US7480886B2 (en) * | 2006-01-18 | 2009-01-20 | International Business Machines Corporation | VLSI timing optimization with interleaved buffer insertion and wire sizing stages |
Non-Patent Citations (1)
Title |
---|
基于精确时延模型考虑缓冲器插入的互连线优化算法;张轶谦等;《电子学报》;20050531;第33卷(第5期);783-787 * |
Also Published As
Publication number | Publication date |
---|---|
CN103164585A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164585B (zh) | 缓冲器的插入方法及装置 | |
US5896300A (en) | Methods, apparatus and computer program products for performing post-layout verification of microelectronic circuits by filtering timing error bounds for layout critical nets | |
US8713506B2 (en) | System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same | |
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 | |
US9141739B2 (en) | LSI design method | |
US9536036B1 (en) | In-hierarchy circuit analysis and modification | |
US7831945B2 (en) | Manufacturing a clock distribution network in an integrated circuit | |
US8069024B1 (en) | Replicant simulation | |
US7331029B2 (en) | Method and system for enhancing circuit design process | |
CN107315863B (zh) | 布局优化方法及装置、终端及存储介质 | |
US9317641B2 (en) | Gate substitution based system and method for integrated circuit power and timing optimization | |
US6567960B2 (en) | System for improving circuit simulations by utilizing a simplified circuit model based on effective capacitance and inductance values | |
US7913213B2 (en) | Tool and method for automatically identifying minimum timing violation corrections in an integrated circuit design | |
JP2001014368A (ja) | クロック解析装置およびクロック解析方法 | |
US7590957B2 (en) | Method and apparatus for fixing best case hold time violations in an integrated circuit design | |
US8863066B1 (en) | Wiring-optimal method to route high performance clock nets satisfying electrical and reliability constraints | |
US10216887B1 (en) | Methods, systems, and computer program products for implementing an electronic design with time varying resistors in power gating analysis | |
EP1436738A2 (en) | Clock skew verification methodology for grid-based design | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
US7181720B2 (en) | Process and device for circuit design by means of high-level synthesis | |
US8756545B2 (en) | Delay time calculating apparatus and method | |
CN118113660B (zh) | Fpga延时优化方法、装置、设备、存储介质及程序产品 | |
CN117787202B (zh) | 跨工艺角的签核级时序预测方法及系统 | |
CN112036107B (zh) | 基于层次化可靠性验证的单元替换的时序优化设计方法 | |
CN118643773A (zh) | 一种面向能耗优化的存内逻辑综合映射方法及系统 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |