
缓冲器的插入方法及装置的制作方法.docx
7页缓冲器的插入方法及装置的制作方法专利名称:缓冲器的插入方法及装置的制作方法技术领域:本发明涉及集成电路制造和设计领域,具体而言,涉及一种缓冲器的插入方法及>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的结果,而无法体现迭代次数少、插入缓冲器数量少的优势发明内容本发明提供了一种缓冲器的插入方法及装置,以至少解决相关技术中通过插入缓冲器来修复保持时间违例的方法易造成迭代次数过多、修复时间过长的问题根据本发明的一个方面,提供了一种缓冲器的插入方法根据本发明的缓冲器的插入方法包括:获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口优选地,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口包括:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;获取连接关系中每个端口在多种时序分析模型下的权重值的总和,确定总和最大的一个或多个端口为待插入缓冲器的端口。
优选地,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口包括:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口 ;获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;比较与选取的每个端口对应的保持时间松弛的参数值的最小值,并将获取到的与选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛的参数值最小的一个或多个端口确定为待插入缓冲器的一个或多个端口优选地,在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口包括:从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值;获取连接关系中每个端口在多种时序分析模型下的权重值的总和并选取权重值总和最大的一个或多个端口 ;获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;比较与选取的每个端口对应的保持时间松弛的参数值的最小值,得到保持时间松弛的参数值最小的一个或多个端口 ;判断得到的一个或多个端口是否在同一条连接路径上;如果是,则根据在同一条连接路径上的一个或多个端口的位置关系确定待插入缓冲器的一个或多个端口。
优选地,从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口的在该时序分析模型下的权重值包括:对每个输入端口的权重值进行初始化,并从每个输入端口开始依次比较每条连接路径中相邻两个端口在该时序分析模型下的保持时间松弛的参数值的大小;如果相邻两个端口中的前一个端口的保持时间松弛的参数值大于或者等于后一个端口的保持时间松弛的参数值,则增加后一个端口的权重值;统计连接关系的各个端口中每个端口在各种时序分析模型下权重值的总和,并将权重值总和最大的一个或多个端口确定为待插入缓冲器的一个或多个端口优选地,在确定待插入缓冲器的一个或多个端口之后,还包括:获取当前待使用的缓冲器的类型;根据同种类型或多种不同类型缓冲器所形成的缓冲器集合的面积确定待插入缓冲器的类型和数量,其中,同种类型或多种不同类型缓冲器中的每个缓冲器分别位于不同的端口优选地,在根据每种缓冲器集合的面积确定待插入缓冲器的类型和数量之后,还包括:根据待插入缓冲器的类型、待插入缓冲器的每个端口在多种时序分析模型下的上升下降时间、电容以及单元库中的时序信息计算待插入缓冲器自身的延迟以及与待插入缓冲器的每个端口相邻的前一个端口与后一个端口的延迟变化;采用计算结果更新待插入缓冲器的每个端口所在的一条或多条连接路径上除该端口之外的其他端口中每个端口的保持时间松弛、建立时间松弛以及通过该端口的连接路径的权重。
根据本发明的另一方面,提供了 一种缓冲器的插入装置根据本发明的缓冲器的插入装置包括:第一获取模块,用于获取当前集成电路中各个器件相互间端口的连接关系,其中,连接关系包括:输入端口、输出端口以及输入端口与输出端口之间的连接路径;选取模块,用于在多种时序分析模型下从连接关系中选取待插入缓冲器的一个或多个端口 优选地,选取模块包括:计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;确定单元,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和,确定总和最大的一个或多个端口为待插入缓冲器的端□优选地,选取模块包括:计算单元,用于从每个输入端口开始依次比较每条连接路径中相邻两个端口在每个时序分析模型下的保持时间松弛的参数值,并根据比较结果来计算每个端口在该时序分析模型下的权重值;选取单元,用于获取连接关系中每个端口在多种时序分析模型下的权重值的总和,并选取权重值总和最大的一个或多个端口 ;获取单元,用于获取选取的每个端口在多种时序分析模型下的保持时间松弛的参数值集合,并在与选取的每个端口对应的参数值集合中获取与选取的每个端口对应的保持时间松弛的参数值的最小值;第一比较单元,用于比较与选取的每个端口对应的保持时间松弛的参数值的最小值;确定单元,用于将获取到的与选取的每个端口对应的保持时间松弛的参数值的最小值中保持时间松弛。












