CN104765902B - 使用考虑不同电路拓扑结构生成的输入波形特征化单元的方法和*** - Google Patents
使用考虑不同电路拓扑结构生成的输入波形特征化单元的方法和*** Download PDFInfo
- Publication number
- CN104765902B CN104765902B CN201410507469.4A CN201410507469A CN104765902B CN 104765902 B CN104765902 B CN 104765902B CN 201410507469 A CN201410507469 A CN 201410507469A CN 104765902 B CN104765902 B CN 104765902B
- Authority
- CN
- China
- Prior art keywords
- input
- characteristic
- waveform
- different
- transfer characteristic
- 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
- 238000000034 method Methods 0.000 title claims abstract description 124
- 238000012512 characterization method Methods 0.000 title claims abstract description 53
- 238000012546 transfer Methods 0.000 claims abstract description 225
- 230000004044 response Effects 0.000 claims description 51
- 238000012731 temporal analysis Methods 0.000 claims description 22
- 238000000700 time series analysis Methods 0.000 claims description 22
- 238000004458 analytical method Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 12
- 239000013589 supplement Substances 0.000 claims description 12
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 description 81
- 238000013461 design Methods 0.000 description 47
- 230000000644 propagated effect Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 28
- 230000035945 sensitivity Effects 0.000 description 26
- 238000006243 chemical reaction Methods 0.000 description 21
- 238000012937 correction Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 230000005611 electricity Effects 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 10
- 238000009826 distribution Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 239000003990 capacitor Substances 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003071 parasitic effect Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 241000239290 Araneae Species 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000012300 Sequence Analysis Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 235000013599 spices Nutrition 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000024241 parasitism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
- G06F30/00—Computer-aided design [CAD]
-
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Architecture (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Civil Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提供了一种使用考虑不同电路拓扑结构生成的输入波形特征化单元。在一些实施例中,在通过至少一个处理器所执行的方法中,考虑驱动单元的前级驱动器的不同电路拓扑结构以得到相同输入转换特性,通过至少一个处理器关于输入转换特性来特征化单元。
Description
技术领域
本发明一般地涉及半导体技术领域,更具体地,涉及集成电路的设计方法和***。
背景技术
在用于集成电路(IC)芯片的设计流程中,用于估计电子电路的延迟的静态时序分析用于多个阶段,例如,以验证正确操作并且优化IC芯片设计的性能。影响静态时序分析的延迟计算的准确性的一个因素是用于特征化单元以计算延迟的预定输入波形与传播到执行静态时序分析的电路中的单元的输入波形的相似度。然而,随着技术进步,例如用于电路连接的互连件的长度增加和小型化晶体管和非平面晶体管中的米勒电容的增加的作用,导致所传播的输入波形相对于预定输入波形的失真。当所传播的输入波形的失真被忽略时,延迟计算的准确性会受到影响。
发明内容
为了解决现有技术中所存在的缺陷,根据本发明的一方面,提供了一种通过至少一个处理器执行的方法,包括:考虑驱动单元的前级驱动器的不同电路拓扑结构以得到相同的输入转换特性,通过所述至少一个处理器关于所述输入转换特性来特征化所述单元。
在该方法中,考虑驱动所述单元的前级驱动器的不同电路拓扑结构以得到所述相同的输入转换特性,通过所述至少一个处理器关于所述输入转换特性来特征化单元,包括:获得具有所述输入转换特性和代表性第一特性的输入波形,驱动所述单元的所述前级驱动器的所述不同电路拓扑结构会导致不同的第一特性,所述代表性第一特性选自从至少一个芯片所收集的第一特性,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构;以及使用所述输入波形特征化所述单元,以在库中创建与所述输入转换特性相关联的记录。
在该方法中,获得具有所述输入转换特性和所述代表性第一特性的所述输入波形包括:从至少一个芯片中收集波形,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;根据所述第一特性,对具有所述输入转换特性的波形组分类;以及从具有所述输入转换特性的波形组中选择具有所述代表性第一特性的波形作为所述输入波形。
在该方法中,获得具有所述输入转换特性和所述代表性第一特性的输入波形包括:从所述至少一个芯片生成的波形中收集第一特性,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;从收集的第一特性中选择所述代表性第一特性;通过使方程拟合于所述输入转换特性和所述代表性第一特性,构建具有所述输入转换特性的所述输入波形。
在该方法中,所述第一特性是尾部特性;所述输入转换特性包括所述输入波形的第一部分;以及所述尾部特性包括所述输入波形的第一部分之后的所述输入波形的第二部分。
在该方法中,所述第一特性包括比率;所述比率的分子是基于所述输入波形的第一部分的所述输入转换特性和基于所述输入波形的第二部分的补充输入转换特性之一;所述比率的分母是基于所述输入波形的第一部分的所述输入转换特性和基于所述输入波形的第二部分的所述补充输入转换特性中的另一个;以及所述输入波形的第一部分不同于所述输入波形的第二部分。
在该方法中,考虑驱动所述单元的前级驱动器的不同电路拓扑结构以得到相同所述输入转换特性,通过所述至少一个处理器关于输入转换特性来特征化单元,包括:考虑所述不同电路拓扑结构,获得具有所述输入转换特性的不同输入波形;以及使用所述不同输入波形来特征化所述单元,以在库中创建与所述输入转换特性和所述不同电路拓扑结构相关联的记录。
在该方法中,考虑所述不同电路拓扑结构获得具有所述输入转换特性的不同输入波形包括:获得具有所述输入转换特性和不同第一特性的不同输入波形,驱动所述单元的所述前级驱动器的所述不同电路拓扑结构导致所述不同第一特性,以及所述不同第一特性选自从至少一个芯片收集的第一特性,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构。
在该方法中,获得具有所述输入转换特性和所述不同第一特性的所述不同输入波形包括:从所述至少一个芯片中收集波形,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构;根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;以及根据所述第一特性,对具有所述输入转换特性的波形组分类;以及从具有所述输入转换特性的波形组中,选择具有代表性第一特性的波形,并且在第一特性范围内选择具有第一特性的其他波形作为具有所述不同第一特性的所述输入波形,所述第一特性范围包括所述代表性第一特性并且包含在所述至少一个芯片中至少出现50%的第一特性。
在该方法中,获得具有所述输入转换特性和所述不同第一特性的所述不同输入波形包括:从在所述至少一个芯片所生成的波形中收集第一特性,其中,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;从收集的第一特性中选择代表性第一特性,并且在第一特性范围内选择其他第一特性,所述第一特性的范围包括所述代表性第一特性并且包含在所述至少一个芯片中至少出现50%的第一特性;以及通过使方程拟合于所述输入转换特性和每个所选的第一特性,构建所述不同输入波形。
在该方法中,所述第一特性是尾部特性;所述输入转换特性包括相应的输入波形的第一部分;以及所述尾部特性包括在所述相应的输入波形的第一部分之后的所述相应的输入波形的第二部分。
在该方法中,每个第一特性都包括比率;所述比率的分子是基于所述相应的输入波形的第一部分的所述输入转换特性和基于所述相应的输入波形的第二部分的补充输入转换特性之一;所述比率的分母是基于所述相应的输入波形的第一部分的所述输入转换特性和基于所述相应的输入波形的第二部分的所述补充输入转换特性中的另一个;以及所述相应的输入波形的第一部分不同于所述相应的输入波形的第二部分。
在该方法中,考虑所述不同电路拓扑结构,获得具有所述输入转换特性的不同输入波形,包括:接收驱动配置在所述不同电路拓扑结构中的所述单元的所述前级驱动器的网表;以及使用驱动所述单元的所述前级驱动器的所述不同网表,构建所述不同输入波形。
在该方法中,所述不同网表包括驱动所述单元的所述前级驱动器的第一网表和第二网表;在所述第一网表中,所述前级驱动器通过较长布线驱动所述单元,但是具有较小扇出;以及在所述第二网表中,所述前级驱动器通过较短布线驱动所述单元,但是具有较大扇出。
在该方法中,使用所述不同输入波形来特征化所述单元,以在所述库中创建与所述输入转换特性相关联的所述记录,包括:对于所述不同输入波形中的每个,创建独立于所述库中的所述记录之一而使用的另一个记录;以及所述方法还包括:对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形与所述不同输入波形相匹配,以识别出所述库中的所述记录之一,以用于生成所述单元的输出响应。
在该方法中,使用所述不同输入波形来特征化所述单元,以在所述库中创建与所述输入转换特性相关联的所述记录,包括:对于所述不同输入波形中的至少一个输入波形,在所述库中创建独立于所述记录中的第二记录而使用的所述记录中的至少一个第一记录,并且对于所述不同输入波形中的其他输入波形,在所述库中创建依赖于所述至少一个第一记录而使用的所述记录中的第二记录;以及所述方法进一步包括:对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形被投影到具有变化的电路拓扑结构的输入波形的空间中,以基于至少一个第二记录确定使用所述至少一个第一记录所生成的输出响应的校正量。
根据本发明的另一方面,提供了一种***,包括:至少一个处理器,被配置为执行程序指令,所述程序指令将所述至少一个处理器配置为:库创建工具,被配置为考虑驱动单元的前级驱动器的不同电路拓扑结构以得到相同输入转换特性,关于所述输入转换特性来特征化所述单元;以及至少一个存储器,被配置为存储所述程序指令。
在该***中,所述库创建工具包括:波形获取模块,被配置为获得具有所述输入转换特性和代表性第一特性的输入波形,驱动所述单元的所述前级驱动器的所述不同电路拓扑结构导致不同第一特性,所述代表性第一特性选自从至少一个芯片所收集的第一特性,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构;以及单元特征化模块,被配置为使用所述输入波形来特征化所述单元,以在库中创建与所述输入波形相关联的记录。
在该***中,所述波形获取模块通过执行包括以下操作获取具有所述输入转换特性和所述代表性第一特性的所述输入波形:从所述至少一个芯片中收集波形,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;根据所述第一特性,对具有所述输入转换特性的波形组分类;以及从具有所述输入转换特性的波形组中选择具有所述代表性第一特性的波形,作为所述输入波形。
在该***中,所述第一特性是尾部特性;所述输入转换特性包括所述输入波形的第一部分;以及所述尾部特性包括所述输入波形的第一部分之后的所述输入波形的第二部分。
在该***中,所述库创建工具包括:波形获取模块,被配置为考虑所述不同电路拓扑结构,获取具有所述输入特性的不同输入波形;以及单元特征化模块,被配置为使用所述不同输入波形来特征化所述单元,以在库中创建与所述输入转换特性和所述不同电路拓扑结构相关联的记录。
在该***中,所述波形获取模块考虑所述不同电路拓扑结构,通过执行包括以下操作,获取具有所述输入转换特性的所述不同输入波形:从所述至少一个芯片中收集波形,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;以及根据第一特性,对具有所述输入转换特性的波形组分类;以及从具有所述输入转换特性的波形组中选择具有代表性第一特性的波形,并且在第一特性范围内选择具有第一特性的其他波形,以作为具有所述不同第一特性的所述输入波形,所述第一特性范围包括所述代表性第一特性并且包含在所述至少一个芯片中至少出现50%的第一特性。
在该***中,所述波形获取模块考虑所述不同电路拓扑结构,通过执行包括以下操作,获取具有所述输入转换特性的所述不同输入波形:接收驱动配置在所述不同电路拓扑结构中的所述单元的所述前级驱动器的不同网表;以及使用驱动所述单元的所述前级驱动器的所述不同网表,构建所述不同输入波形。
在该***中,所述单元特征化模块使用所述不同输入波形来特征化所述单元,以通过创建独立于库中的所述记录之一而使用的所述另一记录以在所述库中创建与所述输入转换特性相关联的记录以用于每个所述不同输入波形;以及所述程序指令还将所述至少一个处理器配置为:时序分析工具,被配置为对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形与所述不同输入波形相匹配,以在所述库中识别所述记录之一,以用于生成所述单元的输出响应。
在该***中,所述单元特征化模块使用所述不同输入波形来特征化所述单元,以通过在所述库中创建独立于所述记录中的第二记录使用的所述记录中的至少一个第一记录,在库中创建与所述输入转换特性相关联的记录,以用于所述不同输入波形的至少一个输入波形,并且在所述库中创建依赖于所述至少一个第一记录使用的所述记录中的所述第二记录,以用于所述不同输入波形的所述其他输入波形;以及所述程序指令还将所述至少一个处理器配置为:时序分析工具,被配置为对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形被投影至具有变化电路拓扑结构的输入波形的空间,以基于所述至少一个第二记录,确定使用所述至少一个第一记录生成的输出响应的校正量。
附图说明
在以下附图和说明书中阐述本发明的一个或多个实施例的具体细节。本发明的其他特征和优点通过说明书、附图和权利要求变得明显。
图1是根据一些实施例的IC芯片的单元设计流程和芯片设计流程的流程图。
图2是根据一些实施例用于创建时序库并且使用时序库执行时序分析的软件***的功能框图。
图3是根据一些实施例使用考虑不同电路拓扑结构生成的输入波形以生成相同输入转换特性来特征化用于延迟计算的单元的方法的流程图。
图4是根据一些实施例的实现图3的操作302的方法的流程图。
图5包括根据一些实施例的驱动配置在不同电路拓扑结构中的单元的前级驱动器的不同网表的示意性电路图。
图6包括根据一些实施例具有相同输入转换特性并且分别使用驱动单元的前级驱动器的不同网表构建的不同输入波形的示意性波形图。
图7是根据一些实施例实现图3的操作302的另一种方法的流程图。
图8是示出根据一些实施例在芯片中的示例性时序路径处执行的波形收集的示意图。
图9示意性地示出根据一些实施例通过图7的操作获得的波形的波形图。
图10是根据一些实施例的实现图3中的操作302的另一种方法的流程图。
图11是用于示出尾部比率的示例性输入波形的示意性波形图。
图12是根据一些实施例的到达芯片的单元的输入波形的尾部比率分布的示意性概率密度函数。
图13是根据一些实施例用于推导线性Y-MOS方程的电路的示意性电路图。
图14是根据一些实施例实现图3的操作304的方法,以及用于在对物理网表进行时序分析期间执行波形传播的相应方法的流程图。
图15是根据一些实施例的单元的时序库的示意图。
图16是根据一些实施例实现图3的操作304的另一种方法,以及用于在对物理网表执行时序分析期间执行波形传播的相应方法的流程图。
图17是根据一些实施例的单元的时序库的示意图。
图18是根据一些实施例的对应于不同电路拓扑结构的输入波形的空间的示意图。
图19是根据一些实施例没有灵敏度校正、具有高电阻灵敏度校正和进一步具有高扇出灵敏度校正的输出响应的示意性波形图。
图20是根据一些实施例的单元的另一个时序库的示意图。
图21是根据一些实施例对应于不同电路拓扑结构的输入波形的空间的示意图。
图22是根据一些实施例使用考虑不同电路拓扑结构生成的输入波形以生成相同输入转换特性来特征化用于延迟计算的单元的另一种方法的流程图。
图23是根据一些实施例实现图22的操作2202的方法的流程图。
图24是根据一些实例实现图22的操作2202的另一种方法的流程图。
图25是根据一些实施例用于在对物理网表执行时序分析期间执行波形传播的方法的流程图。
图26是根据一些实施例用于实现参考图2所描述的软件***实施例和参考图3至图25所描述的方法实施例的硬件***的框图。
各个附图中的类似参考符号指示类似元件。
具体实施方式
现在使用特定语言描述附图所示的本发明的实施例或实例。然而,应该理解,不是为了限制本发明的范围。可以预期,在所描述的实施例中的任何更改和修改、以及在本文档中所描述的原理的任何进一步应用对于本领域的普通技术人员来说通常会发生。在所有实施例中可以重复参考数字,但是即使它们共享相同参考数字,也不必要求一个实施例的特征应用于另一个实施例。
一些实施例具有以下特征和/或优点中的一个或结合。在一些实施例中,考虑驱动单元的前级驱动器的不同电路拓扑结构以得到相同输入转换特性,根据输入转换特性来特征化该单元。在一些实施例中,通过考虑不同电路拓扑结构进一步执行波形匹配,使用利用输入波形所特征化的模型生成单元的输出响应更类似(resemble)于失真的传播输入波形,并且输出响应更准确。在一些实施例中,通过考虑不同电路拓扑结构进一步应用灵敏度校正,单元的输出响应根据所传播输入波形中的失真的作用被校正并且更准确。在一些实施例中,通过采用考虑不同电路拓扑结构所获得的具有代表性尾部特性的输入波形,使用利用输入波形所特征化的模型生成单元的输出响应更可能类似于失真的传播输入波形,并且输出响应可能更加准确。
图1是根据一些实施例的单元设计流程100以及集成电路(IC)芯片的芯片设计流程150的流程图。流程100和150利用一个或多个电子设计自动化(EDA)工具,执行流程100和150中的一个或多个阶段或操作。
芯片设计流程150目标在于实现从高级说明至物理布局的IC芯片设计,例如,其用于验证功能、性能和功率。单元设计流程100为在芯片设计流程150中要用作构建块的单元提供单元的物理设计以及对经过物理设计的单元的抽象。在一些实施例中,如图1所示,单元设计流程100独立于芯片设计流程150的特定阶段并且在芯片设计流程150的特定阶段之前被执行。在其他实施例中,单元设计流程100结合到芯片设计流程150中。
在一些实施例中,单元设计流程100包括单元设计阶段102和单元特征化阶段104。
在单元设计阶段102,执行晶体管级的单元设计,并且根据说明、相关技术信息和设计规则,对单元电路进行物理布局和验证。
在单元特征化阶段104,物理上实现的单元被特征化,以创建例如单元的时序模型和功率模型。在一些实施例中,单元的网表、物理上实现的单元和单元的模型被收集在标准单元库中并且是可用的。在此并且贯穿本发明所使用的术语“网表”是指基于图形和/或基于文本的电路的表示。可以在单元设计流程100的该阶段或其他阶段使用本发明的一些实施例。
在一些实施例中,芯片设计流程150包括***设计阶段152、逻辑设计阶段154、逻辑合成阶段156、物理实现158、寄生提取阶段160和物理验证和电签收(signoff)阶段162。
在***设计阶段152,设计者根据分别用于特定功能的较大模块来描述IC芯片。而且,执行包括设计架构的各选项的考察,以考虑例如在优化设计规范和成本之间做出折衷。在该阶段规定IC芯片的时序要求。
在逻辑设计阶段154,使用VHDL或Verilog在寄存器传输级(RTL)描述IC芯片的模块,并且验证IC芯片的模块的功能准确度。
在逻辑合成阶段156,在RTL中所描述的IC芯片的模块被转换为门级网表。在一些实施例中,将逻辑门和寄存器映射为由单元设计流程100所创建的标准单元库中的可用单元的工艺也在该阶段发生。在进行逻辑合成之后,IC芯片设计已经过前端设计工艺,并且在随后阶段进入后端物理设计工艺。
在物理实现阶段158,门级网表被划分为块,并且创建用于块的平面布置图。块中的逻辑门和寄存器的映射单元被置于IC芯片设计的芯片区域中的特定位置处。合成时钟网络,并且对连接各单元的互连件进行布线。在一些实施例中,执行IC芯片设计的时序驱动布置和布线,以在较早设计阶段为时序收敛做计划。在该阶段后,创建IC芯片的布置和布线布局。
在寄生提取阶段160,从IC芯片的布局中提取物理网表。物理网表包括诸如通过互连引入单元的寄生电阻器和电容器的寄生现象。
在物理验证和电签收阶段162,对物理网表执行时序分析和布线后优化,以确保时序收敛。单元库中的时序模型用于在时序分析期间的延迟计算。本发明的一些实施例可以用于芯片设计流程150的该阶段或者其他阶段。IC芯片的布局被检验,以确保对应于门级网表,并且确保清除例如制造过程中的电气问题和光刻问题。可以执行增量修复(incremental fixing),以在下线之前实现设计的最终签收。
图1中的单元设计流程100和芯片设计流程150是示例性的。其他顺序的阶段或操作、阶段的划分、或者在所示阶段之前、之间或之后的附加阶段或操作都在本发明的可应用的范围内。
图2是根据一些实施例的用于创建时序库并且使用时序库执行时序分析的软件***2的功能框图。软件***2包括库创建工具20和静态时序分析工具25。库创建工具20被配置为使用考虑不同电路拓扑结构而生成的输入波形以生成相同输入转换特性,来特征化用于延迟计算的单元。例如,库创建工具20用于图1中的单元设计流程100的单元特征化阶段104。库创建工具20包括波形获取模块202和单元特征化模块204。例如,波形获取模块202被配置为从单元特征化模块204接收输入转换特性以及驱动需考虑的单元的前级驱动器的不同电路拓扑结构的信息,并且获取用于不同电路拓扑结构的代表性输入波形或者分别用于不同电路拓扑结构的不同输入波形。单元特征化模块204被配置为接收单元网表192和来自波形获取模块202的具有输入转换特性的一个或多个输入波形,并且关于一个或多个输入波形来特征化单元,以在用于延迟计算的时序库242中创建一个或多个记录(entry)。例如,静态时序分析工具25被配置为接收在图1中的寄生提取阶段160所获得的物理网表244,并且使用时序库242对物理网表244进行静态时序分析。例如,静态时序分析工具25用于图1中的芯片设计流程150中的物理验证和电签收阶段162。静态时序分析工具25包括时序图建立和遍历模块252和延迟计算模块254。时序图建立和遍历模块252被配置成将物理网表公式化为时序图并且遍历该时序图,以执行用于延迟计算的输入波形传播。延迟计算模块254被配置为从单元特征化模块204接收时序库242,并且从时序图建立和遍历模块252接收单元的类型和传播的单元的输入波形,并且生成单元的输出响应,作为传播到随后单元的输入波形。
图3是根据一些实施例使用考虑不同电路拓扑结构生成的输入波形以生成相同输入转换特性,特征化用于延迟计算的单元的方法300的流程图。在一些实施例中,在图1中的单元设计流程100的单元特征化阶段104执行方法300。在一些实施例中,通过图2中的库创建工具20执行方法300。在操作302中,获取对应于驱动单元前级驱动器的不同电路拓扑结构的不同输入波形以得到相同输入转换特性。在操作304中,使用不同输入波形来特征化单元,以在时序库中创建与输入转换特性和不同电路拓扑结构相关联的记录。在操作306中,检验在时序库中所列举的任何输入转换特性是否还未被特征化。如果存在,则在操作308中,将要被特征化的输入转换特性改变为时序库中所列举的输入转换特性,并且方法返回到操作302。如果不存在,则在连接点或终止点310,单元的时序库被建立并且是可用的。
在图3的操作302中,构建对应于驱动单元前级驱动器的不同电路拓扑结构的不同输入波形以得到相同输入转换特性。图4是根据一些实施例的实现图3中的操作302的方法的流程图。在操作402中,接收驱动配置在不同电路拓扑结构中的单元的前级驱动器的不同网表。在操作404中,使用驱动单元的前级驱动器的不同电路,构建具有输入转换特性的不同输入波形。
在图4的操作402中,接收使用不同电路拓扑结构驱动单元的前级驱动器的不同网表。图5包括根据一些实施例的驱动配置在不同电路拓扑结构中的单元的前级驱动器的不同网表500、520和540的示意性电路图。不同网表是用于普通电路拓扑结构的网表500、用于高电阻(R)电路拓扑结构的网表520和用于高扇出(FO,high fanout,又称多输出)电路拓扑结构的网表540。用于普通电路拓扑结构的网表500包括前级驱动器502、前级驱动器502的FO 508、以及介于前级驱动器502和前级驱动器的FO 508之间的互连件506。FO 508中的单元504是要使用输入波形,即,单元504的输入端处的转换电压Vin特征化的单元。在一些实施例中,通过具有电阻R的电阻器和具有电容C的两个电容器对互连环节进行建模。每个电容器都连接在电阻器的相应端部和接地端之间。例如,通过互连件的长度来确定包括在互连件中的互连环节的数量。在网表500中的普通电路拓扑结构的示例性实例中,互连件506包括一个互连环节并且具有平均值R。另外,在用于普通电路拓扑结构的实例中,FO 508是3个普通FO。除了互连电阻不同和FO不同之外,用于高R电路拓扑结构的网表520和用于高FO电路拓扑结构的网表540分别类似于用于普通电路拓扑结构的网表500。在用于高R电路拓扑结构的网表520中,例如,将FO 508连接至前级驱动器502的互连件526包括10个互连环节。因此,互连件526的电阻是10R。在用于高FO电路拓扑结构的网表540中,例如,前级驱动器502的FO 548包括60个单元。因此,FO 548是FO 508的20倍。
在图4的操作404中,使用驱动单元504的前级驱动器502的不同网表500、520和540(如图5示例性地示出的),构建具有输入转换特性的不同输入波形。图6包括根据一些实施例具有相同输入转换特性并且使用驱动单元504的前级驱动器的不同网表500、520和540构建的不同输入波形600、620和640的示意性波形图。不同输入波形是用于网表500中的普通电路拓扑结构的输入波形600、用于网表520中的高R电路拓扑结构的输入波形620、以及用于网表540中的高FO电路拓扑结构的输入波形640。输入波形600、620和640中的每个都是在相应网表500、520或540中的单元504的输入端处的电压Vin关于时间t的上升转换。在一些实施例中,对于输入波形600、620和640中的每个,电压Vin的上升转换在时间点tlower处所达到电压Vlower都等于稳态电压Vfinal和初始电压Vinitial之间的差值的30%,并且在时间点tupper处达到的电压Vupper都等于稳态电压Vfinal和初始电压Vinitial之间的差值的70%。输入波形600、620和640具有相应时间点tlower和时间点tupper。因此,输入波形600、620和640具有相同输入转换特性,在一些实施例中,其输入转换时间等于tupper-tlower。在一些实施例中,通过调节相应的互连件506、526或506的电容,使用相应网表500、520或540所生成的每个输入波形600、620或640的输入转换时间都彼此相等。然而,每个输入波形600、620或640都具有不同尾部部分,在此期间,电压Vin从电压Vupper上升到稳态电压Vfinal。与用于普通电路拓扑结构的输入波形600相比较,用于高R电路拓扑结构的输入波形620具有较长尾部部分。与用于普通电路拓扑结构的输入波形600相比,用于高FO电路拓扑结构的输入波形640也具有较长尾部部分。而且,由于米勒电容连接在FO 548中的单元的输入和输出之间,输入波形640的尾部部分具有弯曲。在图6所示的实例中,仅示出上升输入波形600、620和640。然而,可以示出下降输入波形,当下降输入波形分别达到电压Vupper和电压Vlower时,类似地具有在时间点tupper和tlower之间的输入转换时间,并且具有从电压Vlower到稳态电压Vfinal的尾部部分。
虽然输入波形600、620和640具有相同输入转换特性,但是输入波形600、620和640的不同尾部部分会导致单元504的不同输出响应,不同输出响应相对于它们相应的输入波形600、620和640具有基本不同的延迟。如果当特征化时序库中的单元504的时序模型时,关于输入转换特性仅考虑不同输入波形600、620和640中的一个,诸如,用于普通电路拓扑结构的输入波形600,则忽略输入波形600、620和640的不同尾部部分。如果在从图1中的寄生提取阶段160所获取的物理网表中,单元504被配置在高R或高FO电路拓扑结构中,则实际传播到单元504的输入波形具有与特征化单元504的时序模型的输入波形600不同的尾部部分。从而单元504使用特征化时序模型生成的输出响应具有与由使用实际传播的输入波形特征化的时序模型而生成的实际输出响应基本不同的延迟。在此,为了考虑所传播的输入波形的尾部部分,在参考图11和图13所描述的一些实施例中,利用在操作404中所构建的不同输入波形600、620和640,以特征化单元504的不同时序模型或者特征化单元504的时序模型,其中,灵敏性用于校正利用该时序模型所生成的输出响应。
图7是根据一些实施例实现图3中的操作302的另一种方法的流程图。与参考图4所述的方法相比较,其中,使用具有不同电路拓扑结构的不同网表来产生输入波形,图7中的方法收集来自至少一个芯片的波形,并且从所收集波形中选择输入波形。在操作702中,从包括表示驱动单元的不同电路拓扑结构的电路拓扑结构的至少一个芯片中收集波形。在操作704中,根据输入转换特性,对来自至少一个芯片的波形分组。在操作706中,根据尾部特性,对具有该输入转换特性的波形组分类。在操作708中,从具有输入转换特性的波形组中选择具有代表性的尾部特性的波形,并且在尾部特性范围内选择具有尾部特性的其他波形作为不同输入波形,其中,尾部特性范围包括代表性的尾部特性并且包含在至少一个芯片中至少出现50%的尾部特性。在一些实施例中,当图3中的方法300返回以执行针对不同输入转换特性的操作302时,操作702、704和706不是每次都被重复地执行。即,在包括选择操作708的操作302之前,执行操作702、704和706,并且每次方法300都返回到操作302,针对不同输入转换特性来执行选择操作708。
在图7中的操作702中,收集来自包括表示驱动单元的不同电路拓扑结构的电路拓扑结构的至少一个芯片的波形。在此使用的术语“芯片”是指从例如图1中的物理验证和电签收阶段162所获得的芯片设计。在一些实施例中,芯片为物理网表的形式,并且可以使用例如SPICE生成和探测物理网表中的电路节点处的波形。通常,芯片包括多条时序路径。图8是示出根据一些实施例在芯片中的示例性时序路径800处所执行的波形收集的示意图。时序路径800从启动寄存器(lunch register)802(将数据发送至被示例性地示为互连单元810、812、814和816的组合逻辑电路)开始,并且在捕获寄存器804处(从组合逻辑电路中捕获数据)结束。在一些实施例中,例如通过由SPICE所提供的电压探针822,在寄存器802和单元810、单元810和812、单元812和814、单元814和816、以及单元816和寄存器804之间的电路节点处收集波形。更详细地示出组合逻辑电路中的部分830。在部分830中,通过互连件8302连接单元812和单元814。单元812的FO 8304包括单元814和其他单元。电压探针822连接至互连件8302和单元814之间的电路节点。
在一些实施例中,从关键的时序路径收集波形。为了能够在时序路径800中成功传播数据,时钟周期和考虑到时钟边缘启动寄存器802输出数据的时间、考虑到从启动寄存器802所输出的数据组合逻辑电路生成数据的时间、以及捕获寄存器804从组合逻辑电路捕获数据的时间之间的时序余量(timing slack)需要为正。可以通过时钟偏移(clock skew)减小时钟周期。时序余量越小,时序路径越关键。更可能的是,关键时序路径包括配置在高电阻和/或高扇出电路拓扑结构中的一个或多个单元,诸如,单元812和814(将它们本身表示为组合逻辑电路的延迟)。因此,从关键时序路径所收集的波形更能表示由具有R和FO的不同值的电路拓扑结构所生成的波形,诸如,图6中示意性地示出的波形600、620和640。
图9示意性地示出根据一些实施例从图7中的操作702、704和706所获得的波形的波形图。波形图902示出在操作702中收集的各波形,其中,参考图8详细地描述该操作702。在图7的操作704中,根据输入转换特性,对来自至少一个芯片的波形分组。波形图912和914示出了根据输入转换特性所分组的波形组。例如,波形图912中的波形组从电压Vlower到电压Vupper的输入转换时间为50ps。波形图914中的波形组的输入转换时间为100ps。
在图7的操作706中,根据尾部特性,对具有输入转换特性的波形组分类。波形图922、924和926示出根据尾部特性分类的具有50ps的输入转换特性的波形组。在一些实施例中,尾部特性是从稳态电压Vfinal和初始电压Vinitial之间的差值的70%的电平转换到为差值的90%的电平的波形的尾部转换时间。已经参考图6描述了稳态电压Vfinal和初始电压Vinitial。对于上升转换,诸如,波形图922中的波形,稳态电压Vfinal和初始电压Vinitial之间的差值的70%和90%处的电平分别是电压Vupper和电压Vtail。在一些实施例中,如分别通过波形图922、924和926中的具有40ps、60ps和90ps的尾部特性的波形所示的,例如,具有50ps的输入转换特性的波形组按照升序进行分类。
在操作708中,从具有输入转换特性的波形组中选择具有代表性尾部特性的波形。在一些实施例中,中间尾部特性被选择为代表性尾部特性。而且,在操作708中,在尾部特性的范围(包括代表性尾部特性并且包含在至少一个芯片中出现的尾部特性的至少50%)内也选择具有尾部特性的其他波形作为输入波形。具有50ps的输入转换特性的波形组包含三个示例性波形。在其他实例中,在组中存在更多波形,并且可以获得组中的波形的尾部特性的分布。除了为分布的50%的中间尾部特性之外,还选择诸如分布的25%和75%的百分比。通过25%和75%所限制的尾部特性的范围包含分布中的总体的至少50%。
图10是根据一些实施例实现图3中的操作302的另一种方法的流程图。与参考图7描述的方法(从由至少一个芯片所收集的波形中选择具有不同尾部特性的输入波形)相比较,图10中的方法通过将线性Y-MOS方程拟合为从至少一个芯片所收集的不同尾部特性来构建输入波形。在操作1002中,从至少一个芯片(包括表示驱动单元的前级驱动器的不同电路拓扑结构的电路拓扑结构)所生成的波形中收集尾部特性。在操作1004中,从所收集的尾部特性中选择代表性的尾部特性,并且还可以在尾部特性范围内(包括代表性的尾部特性并且包含在至少一个芯片中出现至少50%的尾部特性)选择其他尾部特性。在操作1006中,使线性Y-MOS方程拟合为输入转换特性和不同尾部特性的尾部特性,以获得联立方程。在操作1008中,求解联立方程,以获得拟合的线性Y-MOS方程。在操作1010中,使用拟合的线性Y-MOS方程构建输入波形。在操作1012中,检验所选的尾部特性中的任一个是否还未被构建。如果是,则在操作1014中,将要构建的尾部特性改变为所选尾部特性中的另一个尾部特性,并且方法返回到操作1006,以构建具有该尾部特性的输入波形。如果不是,则构建不同输入波形,并且图10中的操作302的方法进行至图3中的操作304。
在操作1002中,从至少一个芯片(包括表示驱动单元的前级驱动器的不同电路拓扑结构的电路拓扑结构)生成的波形中收集尾部特性。在一些实施例中,尾部特性是尾部比率。图11是示出尾部比率的示例性输入波形1100的示意性波形图。输入波形1100是在将被特征化的单元的输入端处的电压v相对于时间t的下降转换。假设电压v相对于输入波形1100的转换范围被标准化,并且具有范围[0,1]。在一些实施例中,在时间点tupper处,电压v的下降转换达到等于0.7的电压Vupper,即,输入波形1100的转换范围的30%;在时间点tlower处,达到等于0.3的电压Vlower,即,输入波形1100的转换范围的70%;并且在时间点ttail处,达到等于0.1的电压Vtail,即,输入波形1100的转换范围的90%。通过考虑基于电压Vupper和Vlower之间的输入波形1100的一部分所获得的输入转换特性,以及基于电压Vlower和Vtail之间的输入波形1100的一部分所获得的补充输入转换特性来获得尾部比率。在一些实施例中,下降输入波形1100的尾部比率通过以下公式计算:
其中,tlower-tupper是输入转换特性,而ttail-tlower是补充输入转换特性。
在图11中,输入波形1100是下降输入波形。在上升输入波形的情况下,首先在时间点tlower处,电压v达到等于0.3的电压Vlower,即,上升输入波形的转换范围的30%;接下来在时间点tupper处,达到等于0.7的电压Vupper,即,上升输入波形的转换范围的70%;然后在时间点ttail处,达到等于0.9的电压Vtail,即,上升输入波形的转换范围的90%。从而,用于计算上升输入波形的尾部比率的公式具有以下形式:
其中,tupper-tlower是输入转换特性,并且ttail-tupper是补充输入转换特性。
如参考图5和图6描述的,通过驱动配置在不同电路拓扑结构中的单元的前级驱动器所生成的输入波形可以分别具有相同输入转换特性但是具有不同尾部部分。通过考虑输入波形1100的尾部比率,可以从输入波形1100中辨别出具有相同输入转换特性但是由于不同尾部部分而具有不同补充输入转换特性的另一个输入波形。因此,所接收的不同尾部比率可以用于构建具有相同输入转换特性但是具有不同尾部部分的输入波形。下文中,描述用于选择表示不同电路拓扑结构的尾部比率的方法。
图12是根据一些实施例在芯片中所收集的波形的尾部比率分布的示意性概率密度函数(pdf)。类似于参考图7和图8所描述的实施例,从芯片中的多条时序路径中收集波形。这些时序路径遍历了配置在具有宽范围的互连电阻和扇出的电路拓扑结构中的单元。因此,所收集的波形具有不同尾部比率。所收集的波形的尾部比率形成尾部比率分布。然后,将尾部比率分布转换为pdf,该pdf反映尾部比率分布中的不同尾部比率出现的概率。在操作1004中,从所收集的尾部特性中选择代表性尾部特性,并且还选择尾部特性范围(包括代表性尾部特性和包含在至少一个芯片的尾部特性中至少出现50%的尾部特性)内的其他尾部特性。在一些实施例中,从pdf中选择操作1004中的代表性尾部特性和其他尾部特性。例如,选择中间尾部比率、以及为1%的尾部比率和为99%的尾部比率,以覆盖代表性尾部比率以及从芯片收集的更极端的尾部比率。对pdf的其他百分比的选择或用于选择尾部比率的其他方法都在本发明的预期范围内。
在操作1006中,将线性Y-MOS方程拟合于输入转换特性和不同尾部特性中的尾部特性,以获得联立方程。图13是根据一些实施例用于推导线性Y-MOS方程的电路1300的示意性电路图。电路1300包括NMOS 1302和集总电容器CL。NMOS 1302的源极和集总电容器CL的一个端子接地,NMOS 1302的漏极和集总电容器CL的另一个端子连接在一起,并且NMOS 1302的栅极连接至电源VDD。通过工作在线性区域的NMOS(NMOS 1002的栅极被完全导通),电路1300处于给集总电容器CL放电的状态下,从而获得微分方程,并且将其示出如下:
其中,Ilin是从集总电容器CL流经NMOS 1302的放电电流;v是NMOS 1302的漏源电压;a和b分别是微分方程中的一阶系数和二阶系数;并且t是时间。线性Y-MOS方程可以从微分方程(3)获得,并且被示出如下:
为了使线性Y-MOS方程(4)拟合于输入转换特性和尾部比率,例如,在下降输入波形上识别出三个点(Vupper,tupper)、(Vlower,tlower)、和(Vtail,ttail)。然后,对应于输入转换特性的点tlower-tupper用于建立联立方程之一,并且对应于尾部比率的点用于建立联立方程中的另一个方程。从而,获得具有两个未知数a和b的两个方程。
在操作1008中,求解联立方程,以获得拟合后的线性Y-MOS方程。通过求解联立方程,求解两个未知数a和b。具有求解出的a和b的线性Y-MOS方程是拟合于输入转换特性和尾部比率的线性Y-MOS方程。
在操作1010中,拟合后的线性Y-MOS方程用于构建具有输入转换特性和尾部比率的输入波形。例如,现在从拟合后的线性Y-MOS方程获得在不同时间点处的电压,并且可以使用不同时间点处的电压来构建输入波形。
然后,图10中用于操作302的方法返回,以根据不同尾部特性拟合线性Y-MOS方程并且构建具有输入转换特性和不同尾部特性的输入波形,直到相对于操作1004中所选择的不同尾部特性中的每个尾部特性Y-MOS方程都被拟合为止。然后,用于操作302的方法进行至图3中的操作304。
在图3的操作304中,使用不同输入波形来特征化单元,以在时序库中创建与输入转换特性和不同电路拓扑结构相关联的记录。图14是根据一些实施例实现图3中的操作304的方法、以及用于在对物理网表执行时序分析期间进行的波形传播的相应方法1450的流程图。在操作1402中,在单元的时序库中创建与输入转换特性和所构建的不同输入波形的输入波形相关联的完全特征化模型。在操作1404中,检验是否没有为不同输入波形中的任何一个创建完全特征化模型。如果是,则方法继续至操作1406,以将要创建的输入波形改变为不同输入波形中的另一个输入波形,并且返回到操作1402。如果不是,则图14中的操作304的方法进行至图3中的操作306,其检验另一个输入转换特性是否将被特征化。
在连接点310处创建单元的时序库之后,使用时序库执行方法1450。在一些实施例中,在图1中的物理验证和电签收阶段162执行方法1450。在一些实施例中,通过图2中的时序分析工具25执行方法1450。在操作1452中,对物理网表执行时序分析,从而获得传播到单元的输入端的输入波形。在操作1454中,使用所传播的输入波形的输入转换特性,以在输入转换特性的条件下在时序库中识别具有不同输入波形的记录。在操作1456中,所传播的输入波形与时序库中的不同输入波形进行匹配,以识别出记录中生成单元的输出响应的一个记录。
在操作1402中,在单元的时序库中创建与输入转换特性和所构建的不同输入波形中的输入波形相关联的完全特征化模型。完全特征化模型是使用输入波形生成特征化的单元的输出响应的时序模型,并且独立于使用其他输入波形特征化的库中的其他记录被使用。在一些实施例中,时序模型是电流源模型。图15是根据一些实施例的用于单元的时序库1500的示意图。在一些实施例中,在时序库1500中,通过执行操作1402,根据诸如第一输入转换特性的输入转换特性并且根据诸如普通电路拓扑结构的波形的输入波形,创建完全特征化模型。
通过操作1404和1406,操作304的方法继续返回至操作1402,以在时序库1500中的第一输入转换特性下,创建用于其他输入波形(诸如,用于高R电路拓扑结构的波形和用于高FO电路拓扑结构的波形)的完全特征化模型。然后,完成关于第一输入转换特性的特征化。如参考图7和图10所述,用于完全特征化模型的不同输入波形还可以是具有不同尾部特性的输入波形。
然后,图14中的操作304的方法进行至图3中的操作306。为了根据时序库1500中的第二输入转换特性来进行特征化,方法300返回到操作302,以获得具有第二输入转换特性的不同输入波形,诸如,构建用于普通电路拓扑结构、高R电路拓扑结构和高FO电路拓扑结构且具有第二输入转换特性的不同输入波形。然后,方法300继续至操作1402,以创建用于具有第二输入转换特性的不同输入波形的完全特征化模型。重复另一个输入转换特性的工艺,直到时序库中要被特征化的每个输入转换特性均被处理为止。在创建单元的时序库1500之后,可以使用输入转换特性和输入波形作为关键字来查找模型。
在操作1452中,对物理网表执行时序分析,从而获得传播到单元的输入端的输入波形。为了对物理网表执行时序分析,物理网表被公式化为时序图。通过一个节点接一个节点地遍历时序图,在节点的输入端处接收的所传播的输入波形被传播至节点的输出端,作为传播到下一个节点的输入端的输入波形。假设具有使用参考图3至图13描述的方法特征化的单元的节点是波形传播的当前节点。在执行时序分析的处理的过程中,获得传播到当前节点的单元的输入端的输入波形。
在操作1454中,使用传播到该单元的输入波形的输入转换特性,以在时序库中的输入转换特性下识别出不同输入波形的记录。例如,假设所传播的输入波形具有与图15中的时序库1500的第一输入转换特性的相对应的输入转换特性,在图15中的时序库1500的第一输入转换特性下的记录被识别。
在操作1456中,将所传播的输入波形与时序库中的不同输入波形进行匹配,以识别出记录中用于生成该单元的输出响应的一个记录。例如,如果当通过物理网表中的前级驱动器驱动时,单元配置在高R电路拓扑结构中,则所生成的传播输入波形与时序库1200中的高R电路拓扑结构的波形更好地匹配。结果,在用于高R电路拓扑结构的波形下的完全特征化模型被识别以用于生成当前节点的单元的输出响应。然后,所生成的输出响应用作传播到下一个节点的单元的输入端的输入波形。
在参考图3至图15描述的实施例中,根据使用驱动单元的前级驱动器的不同电路拓扑结构所构建的不同输入波形以得到相同输入转换特性,特征化单元。通过进一步执行波形匹配,以识别出不仅在输入转换特性而且在波形的另一个部分(诸如,尾部部分)上更接近于所传播输入波形的输入波形,减小了所传播输入波形相对于用于特征化单元的输入波形的失真。从而,使用利用输入波形所特征化的模型生成单元的输出响应更类似于失真的传播输入波形,并且该输出响应更准确。
图16是根据一些实施例的实现图3中的操作304的另一种方法和用于在对物理网表执行时序分析期间执行波形传播的相应方法1650的流程图。与参考图14描述的方法相比,参考图16描述的方法创建用于不同输入波形之一的完全特征化模型,并且创建用于一些不同输入波形的灵敏度以用于校正使用完全特征化模型所生成的输出响应。在操作1602中,在时序库中创建与输入转换特性和与不同输入波形中的一个或多个输入波形相关联的一个或多个完全特征化模型。在操作1604中,在时序库中分别创建与输入转换特性并且与不同输入波形中的其他输入波形相关联的灵敏度。然后,图16中的操作304的方法进行至图3中的操作306,其检验是否特征化另一个输入转换特性。
在一些实施例中,在连接点310处创建单元的时序库之后,使用时序库执行方法1650。在一些实施例中,在图1中的物理验证和电签收阶段162执行方法1650。在一些实施例中,通过图2中的时序分析工具25执行方法1650。在操作1452中,对物理网表执行时序分析,从而获得传播到该单元的输入端的输入波形。在操作1454中,所传播的输入波形的输入转换特性用于在时序库中的该输入转换特性的条件下,识别出不同输入波形的记录。方法1650中的操作1452和1454类似于图14中的方法1450的那些,并且在此省略其具体细节。在操作1656中,所传播的输入波形被投影射到对应于不同电路拓扑结构的输入波形的空间,以确定所传播输入波形在空间中的位置。在操作1658中,使用所识别的记录之一中的完全特征化模型,生成输出响应。在操作1660中,使用所识别记录中的至少一个灵敏度和所传播输入波形在空间中的位置,进行对输出响应的校正。
在图16的操作1602中,在时序库中创建与输入转换特性并且与不同输入波形中的一个或多个输入波形相关联的一个或多个完全特征化模型。在操作1604中,分别创建与输入转换特性并且与不同输入波形中的其他输入波形相关联的灵敏度。图17是根据一些实施例的用于单元的时序库1700的示意图。在一些实施例中,在操作1602和1604中,对于诸如第一输入转换特性的输入转换特性,在时序库1700中存储用于不同电路拓扑结构(诸如,平均R和FO电路拓扑结构、高R和平均FO电路拓扑结构、以及平均R和高FO电路拓扑结构)的不同输入波形,并且分别在不同输入波形下创建一个或多个完全特征化模型和灵敏度。在其他实施例中,在操作1602和1604中,对于诸如第一输入转换特性的输入转换特性,估计一些电路拓扑结构方面(诸如,电阻和扇出)对不同输入波形的作用,并且将该估计结果存储在时序库1700中。在不同输入波形的估计结果下,创建一个或多个完全特征化模型和灵敏度。为了简单起见,完全特征化模型和灵敏度此后被称为在时序库1700中的相应电路拓扑结构下。
在图16中的操作1452中,在单元的输入端处接收到所传播的输入波形之后,在操作1454中,使用所传播的输入波形的输入转换特性,以在时序库1700中的输入转换特性下识别出不同输入波形的记录。下文中,作为实例,所识别的记录应该在时序库1700中的第一输入转换特性的条件下。
在操作1656中,所传播的输入波形被投影到对应于不同电路拓扑结构的输入波形的空间,以确定所传播的输入波形在空间中的位置。图18是根据一些实施例的对应于不同电路拓扑结构的输入波形的空间1800的示意图。在空间1800中,对应于平均R和平均RO电路拓扑结构的输入波形位于原点处,高FO轴是用于较高FO对输入波形的作用的轴,而高R轴是用于较高R对输入波形的作用的轴。在图18示意性地示出的实例中,高FO轴和高R轴正交。在其他实例(未示出)中,空间中的各轴不正交,因此,FO的作用的增加或减小伴随有R的作用的增加或减小。在一些实施例中,通过执行操作1656,所传播的输入波形被投影到空间1800中的位置1802处。位置1802的高FO轴分量反映关于平均R和平均FO的输入波形,较高FO对所传播的输入波形的作用,而位置1802的高R轴分量反映关于用于平均R和平均FO的输入波形,较高R对所传播的输入波形的作用。
在操作1658中,使用所识别记录之一的完全特征化模型,生成输出响应。通过执行操作1658,使用在平均R和平均FO电路拓扑结构下的完全特征化模型来生成输出响应。
在操作1660中,使用所识别记录中的至少一个灵敏度和所传播的输入波形在空间中的位置,以进行对输出响应的校正。图19分布是根据一些实施例的没有灵敏度校正、具有高电阻灵敏度校正和进一步具有高扇出灵敏度校正的输出响应1902、1904和1904的示意性波形图。在图19中,输出响应是响应于到达单元的输入端的输入波形,在单元的输出端处的电压Vout关于时间t的转换。在操作1658中,输出响应1902是使用在时序库1700中的所识别记录中平均R和平均FO电路拓扑结构下的完全特征化模型而生成的输出响应。在时序库1700中的所识别记录中,考虑到不同R和FO对所传播的输入波形的作用伴随(accompany)完全特征化模型,使用用于平均R和平均FO电路拓扑结构的完全特征化模型生成用于校正输出响应1902的灵敏度。通过使用高R和平均FO电路拓扑结构的灵敏度和图18中的所传播输入波形的位置1802中的高R分量对输出响应1902应用较高R的校正,获得关于较高R校正的输出响应1904。然后,通过使用平均R和高FO电路拓扑结构的灵敏度和所传播输入波形的位置1802中的高FO分量对输出响应1904应用较高FO的校正,获得关于较高R和较高FO校正的输出响应1906。
图20是根据一些实施例的单元的另一个时序库2000的示意图。与参考图17描述的实施例相比,在图20中的时序库2000中的不同尾部特性下,分别创建一个或多个完全特征化模型和灵敏度。在操作1602中,对于第一输入转换特性,诸如第一和第二完全特征化模型的两个完全特征化模型分别使用呈现第二所选尾部比率和第五所选尾部比率的输入波形被创建,并且在时序库2000中的第二所选尾部比率和第五所选尾部比率下被存储。在操作1604中,用于校正使用第一完全特征化模型所生成的输出响应的灵敏度分别使用呈现第一所选尾部特性和第三所选尾部特性的输入波形被创建,并且在时序库2000中的第一所选尾部特性和第三所选尾部特性下被存储。类似地创建和存储用于校正使用第二完全特征化模型所生成的输出响应的灵敏度。
在图16的操作1452中,在单元的输入端处接收到所传播的输入波形之后,在操作1454中,所传播的输入波形的输入转换特性用于识别在时序库2000中的输入转换特性下不同尾部比率的记录。下文中,作为实例,所识别的记录应该在时序库2000中的第一输入转换特性下。
在操作1656中,所传播的输入波形被投影到对应于不同电路拓扑结构的输入波形的空间,以确定所传播的输入波形在空间中的位置。图21是根据一些实施例的对应于不同电路拓扑结构的输入波形的空间2100的示意图。空间2100是用于尾部特性的线。在空间2100中,具有第二所选尾部特性2104和第五所选尾部特性2110的输入波形被表示为实心圈,而具有第一所选尾部特性2102、第三所选尾部特性2106和第四所选尾部特性2108的输入波形被表示为空心圈。通过执行操作1656,所传播的输入波形被投影到空间2100的位置2112处。所传播的输入波形具有最接近第三所选尾部特性2106的尾部特性,并且稍微超过第三所选尾部特性。
在操作1658中,使用所识别记录之一的完全特征化模型生成输出响应。因为所传播的输入波形的位置2112最接近第三所选尾部特性2106,首先使用在第二所选尾部特性2104下的第一完全特征化模型生成输出响应。
在操作1660中,使用所识别记录中的至少一个灵敏度和所传播的输入波形在空间中的位置,对输出响应进行校正。因为位置2112最接近第三所选尾部特性2106,所以对应于时序库2000中的第三所选尾部特性的灵敏度和所传播输入波形的位置2112和第二所选尾部比率之间的距离用于对使用第一完全特征化模型所生成的输出响应进行校正。
在参考图3至图13和图16至图21描述的实施例中,根据使用驱动单元的前级驱动器的不同电路拓扑结构所构建的一些不同输入波形以得到相同输入转换特性来完全特征化单元,并且关于不同输入波形中的其他输入波形的灵敏度来特征化该单元。通过进一步对仅考虑所传播的输入波形的输入转换特性而生成的输出响应应用灵敏度校正,基于所传播的输入波形在不同输入波形的空间中的投影位置,考虑了所传播的输入波形相对于用于特征化单元的输入波形的失真作用。因此,根据所传播的输入波形中失真的作用来校正单元的输出响应,并且该单元的输出响应更准确。
图22是根据一些实施例使用生成的输入波形(考虑了生成相同输入转换特性的不同电路拓扑结构)来特征化用于延迟计算的单元的另一种方法2200的流程图。与图3中的方法300相比,方法2200使用具有代表性尾部特性的单个波形作为用于根据输入转换特性特征化单元的输入波形。在操作2202中,获得具有考虑驱动单元的前级驱动器的不同电路拓扑结构(以得到相同输入转换特性)所选择的输入转换特性和尾部特性的输入波形。在操作2204中,使用输入波形来特征化单元,以在时序库中创建与输入转换特性相关的记录。在操作2206中,检验时序库中列举的任何输入转换特性是否还未被特征化。如果是,则在操作2208中,将要被特征化的输入转换特性改变为在时序库中列举的另一个输入转换特性,并且方法返回到操作2202。如果不是,则在终点或连接点2210处,创建单元的时序库。除了代表性输入波形用于根据输入转换特性来特征化单元之外,操作2204和2206类似于图3中的操作302和304。如以下更详细描述的,用于实现操作302的不同实施例可以用于实现操作2202。以下还提供了与用于操作304的实施例不同的用于操作2204的实施例。操作2206、2208和2210类似于图3中的操作306、308和310,并且在此省略其进一步描述。
图23是根据一些实施例的实现图22中的操作2202的方法的流程图。与参考图7描述的方法相比较,图23中的方法包括与图7中的方法的操作702、704和706相同的操作702、704和706、以及与图7中的方法的操作708不同的操作2308。省略与图7中的操作相同的图23中的操作的描述。在操作2308中,来自具有输入转换特性的波形组的具有代表性尾部特性的波形被选择为输入波形。在一些实施例中,类似于图7中的操作708,中间尾部特性被选择为代表性尾部特性。已经参考图9描述了用于定位中间尾部特性的方法并且在此省略了该方法。类似于参考图7描述的实施例,在一些实施例中,当图22中的方法2200返回,以执行用于不同输入转换特性的操作2202时,不是每次都重复执行图23中的方法的操作702、704和706。
图24是根据一些实施例实现图22中的操作2202的另一种方法的流程图。与参考图10描述的方法相比较,图24中的方法包括与图10中的方法的操作1002、1008和1010相同的操作2402、2408和2410、以及与图10中的操作1004和1006不同的操作2404和2406。省略与操作1002相同的操作2402的描述。在操作2404中,选择来自所收集的尾部特性的代表性尾部特性。操作2404与操作1004的不同之处在于,从所收集的尾部特性中选择单个代表性尾部特性。用于操作2404的用于选择代表性尾部特性的方法类似于用于操作1004的尾部特性,并且在此省略其描述。在操作2406中,使线性Y-MOS拟合于输入转换特性和代表性尾部特性,以获得联立方程。省略与操作1008和1010相同的操作2408和2410的描述。
图25是根据一些实施例在对物理网表执行时序分析期间用于执行波形传播的方法2500的流程图。与图14中的方法1450和图16中的方法1650相比较,方法2500仅使用输入转换特性以识别相应记录以用于生成单元的输出响应。在连接点2210处创建单元的时序库之后,使用时序库执行方法2500。在一些实施例中,在图1中的物理验证和电签收阶段162执行方法2500。在一些实施例中,通过图2中的时序分析工具25执行方法2500。在操作2502中,对物理网表执行时序分析,使得获得传播到单元的输入端的输入波形。操作2502类似于图14中的操作1452,并且在此被省略。在操作2504中,所传播的输入波形的输入转换特性用于识别与时序库中的输入转换特性相关联的记录,从而生成单元的输出响应。除了使用所传播的输入波形的输入转换特性而找到的记录直接用于生成单元的输出响应,并且在输入转换特性下用于识别记录之一的波形匹配被省略之外,操作2504类似于图14中的操作1454和1456。
在参考图22至图25描述的实施例中,根据具有中间尾部特性(表示使用驱动单元前级驱动器的不同电路拓扑结构以得到相同输入转换特性的所构建的不同输入波形的尾部特性)的输入波形,完全特征化单元。通过采用中间尾部特性以构建用于特征化单元的输入波形,很可能会减小相对于用于特征化单元的输入波形的所传播输入波形的失真。因此,使用利用输入波形所特征化的模型而生成单元的输出响应很可能更类似失真的传播输入波形,并且很可能更加准确。
图26是根据一些实施例用于实现参考图2所描述的软件***实施例和参考图3至图25描述的方法实施例的硬件***2600的框图。***2600包括至少一个处理器2602、网络接口2604、输入和输出(I/O)设备2606、存储器2608、内存2612、以及总线2610。总线2610将网络接口2604、I/O接口2606、存储器2608和内存2612连接至处理器2602。
在一些实施例中,内存2612包括随机存取存储器(RAM)和/或其他易失性存储设备和/或只读存储器(ROM)和/或其他非易失性存储设备。内存2612包括内核26124和用户空间26122,该内存被配置为存储由处理器2602执行的程序指令和由程序指令存取的数据。
在一些实施例中,网络接口2604被配置为存取程序指令并且通过网络远程存储的程序指令存取数据。I/O设备2606包括输入设备和输出设备,I/O设备2606被配置为使用户与***2600交互。例如,输入设备包括键盘、鼠标等。例如,输出设备包括显示器、打印机等。存储设备2608被配置为存储程序指令并且由程序指令存取数据。例如,存储设备2608包括磁盘和光盘。
在一些实施例中,当执行程序指令时,处理器2602被配置作为参考图2所描述的软件***2或被配置为执行参考图3至图25所描述的方法。
在一些实施例中,程序指令被存储在非暂时性计算机可读记录介质中,诸如,一个或多个光盘、硬盘和非易失性存储设备。
在一些实施例中,在由至少一个处理器所执行的方法中,根据考虑驱动单元的前级驱动器的不同电路拓扑结构的输入转换特性以得到相同输入转换特性,由至少一个处理器特征化单元。
在一些实施例中,一种***包括至少一个处理器和至少一个内存。至少一个处理器被配置为执行程序指令,该程序指令将至少一个处理器配置为库创建工具。库创建工具被配置为根据考虑驱动单元前级驱动器的不同电路拓扑结构的输入转换特性以得到相同输入转换特性,以特征化单元。至少一个内存被配置为存储程序指令。
以上说明书包括示例性操作,但是这些操作不必要求按照所示顺序被执行。根据本发明的精神和范围,可以适当地添加、替换操作、改变操作顺序和/或删除该操作。从而,应该参考以下权利要求以及这样的权利要求被授权的等同物的全部范围来确定本发明的范围。
Claims (23)
1.一种通过至少一个处理器执行的方法,包括:
考虑驱动单元的前级驱动器的不同电路拓扑结构以得到相同的输入转换特性,通过所述至少一个处理器关于所述输入转换特性来特征化所述单元,包括:
获得具有所述输入转换特性和代表性第一特性的输入波形,
驱动所述单元的所述前级驱动器的所述不同电路拓扑结构会导致不同的第一特性,
所述代表性第一特性选自从至少一个芯片所收集的第一特性,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构;以及
使用所述输入波形特征化所述单元,以在库中创建与所述输入转换特性相关联的记录。
2.根据权利要求1所述的方法,其中,
获得具有所述输入转换特性和所述代表性第一特性的所述输入波形包括:
从至少一个芯片中收集波形,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;
根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;
根据所述第一特性,对具有所述输入转换特性的波形组分类;以及
从具有所述输入转换特性的波形组中选择具有所述代表性第一特性的波形作为所述输入波形。
3.根据权利要求1所述的方法,其中,
获得具有所述输入转换特性和所述代表性第一特性的输入波形包括:
从所述至少一个芯片生成的波形中收集第一特性,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;
从收集的第一特性中选择所述代表性第一特性;
通过使方程拟合于所述输入转换特性和所述代表性第一特性,构建具有所述输入转换特性的所述输入波形。
4.根据权利要求1所述的方法,其中,
所述第一特性是尾部特性;
所述输入转换特性包括所述输入波形的第一部分;以及
所述尾部特性包括所述输入波形的第一部分之后的所述输入波形的第二部分。
5.根据权利要求1所述的方法,其中,
所述第一特性包括比率;
所述比率的分子是基于所述输入波形的第一部分的所述输入转换特性和基于所述输入波形的第二部分的补充输入转换特性之一;
所述比率的分母是基于所述输入波形的第一部分的所述输入转换特性和基于所述输入波形的第二部分的所述补充输入转换特性中的另一个;以及
所述输入波形的第一部分不同于所述输入波形的第二部分。
6.根据权利要求1所述的方法,其中,
考虑驱动所述单元的前级驱动器的不同电路拓扑结构以得到相同所述输入转换特性,通过所述至少一个处理器关于输入转换特性来特征化单元,包括:
考虑所述不同电路拓扑结构,获得具有所述输入转换特性的不同输入波形;以及
使用所述不同输入波形来特征化所述单元,以在库中创建与所述输入转换特性和所述不同电路拓扑结构相关联的记录。
7.根据权利要求6所述的方法,其中
考虑所述不同电路拓扑结构获得具有所述输入转换特性的不同输入波形包括:获得具有所述输入转换特性和不同第一特性的不同输入波形,
驱动所述单元的所述前级驱动器的所述不同电路拓扑结构导致所述不同第一特性,以及
所述不同第一特性选自从至少一个芯片收集的第一特性,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构。
8.根据权利要求7所述的方法,其中,
获得具有所述输入转换特性和所述不同第一特性的所述不同输入波形包括:
从所述至少一个芯片中收集波形,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构;
根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;以及
根据所述第一特性,对具有所述输入转换特性的波形组分类;以及
从具有所述输入转换特性的波形组中,选择具有代表性第一特性的波形,并且在第一特性范围内选择具有第一特性的其他波形作为具有所述不同第一特性的所述输入波形,所述第一特性范围包括所述代表性第一特性并且包含在所述至少一个芯片中至少出现50%的第一特性。
9.根据权利要求7所述的方法,其中,
获得具有所述输入转换特性和所述不同第一特性的所述不同输入波形包括:
从在所述至少一个芯片所生成的波形中收集第一特性,其中,所述至少一个芯片包括表示驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;
从收集的第一特性中选择代表性第一特性,并且在第一特性范围内选择其他第一特性,所述第一特性的范围包括所述代表性第一特性并且包含在所述至少一个芯片中至少出现50%的第一特性;以及
通过使方程拟合于所述输入转换特性和每个所选的第一特性,构建所述不同输入波形。
10.根据权利要求7所述的方法,其中,
所述第一特性是尾部特性;
所述输入转换特性包括所述不同输入波形中相应的输入波形的第一部分;以及
所述尾部特性包括在所述相应的输入波形的第一部分之后的所述相应的输入波形的第二部分。
11.根据权利要求7所述的方法,其中,
每个第一特性都包括比率;
所述比率的分子是基于所述不同输入波形中相应的输入波形的第一部分的所述输入转换特性和基于所述相应的输入波形的第二部分的补充输入转换特性之一;
所述比率的分母是基于所述相应的输入波形的第一部分的所述输入转换特性和基于所述相应的输入波形的第二部分的所述补充输入转换特性中的另一个;以及
所述相应的输入波形的第一部分不同于所述相应的输入波形的第二部分。
12.根据权利要求6所述的方法,其中,
考虑所述不同电路拓扑结构,获得具有所述输入转换特性的不同输入波形,包括:
接收驱动配置在所述不同电路拓扑结构中的所述单元的所述前级驱动器的网表;以及
使用驱动所述单元的所述前级驱动器的所述不同网表,构建所述不同输入波形。
13.根据权利要求12所述的方法,其中,
所述不同网表包括驱动所述单元的所述前级驱动器的第一网表和第二网表;
在所述第一网表中,所述前级驱动器通过较长布线驱动所述单元,但是具有较小扇出;以及
在所述第二网表中,所述前级驱动器通过较短布线驱动所述单元,但是具有较大扇出。
14.根据权利要求6所述的方法,其中,
使用所述不同输入波形来特征化所述单元,以在所述库中创建与所述输入转换特性相关联的所述记录,包括:
对于所述不同输入波形中的每个,创建独立于所述库中的所述记录之一而使用的另一个记录;以及
所述方法还包括:
对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形与所述不同输入波形相匹配,以识别出所述库中的所述记录之一,以用于生成所述单元的输出响应。
15.根据权利要求6所述的方法,其中,
使用所述不同输入波形来特征化所述单元,以在所述库中创建与所述输入转换特性相关联的所述记录,包括:
对于所述不同输入波形中的至少一个输入波形,在所述库中创建独立于所述记录中的第二记录而使用的所述记录中的至少一个第一记录,并且对于所述不同输入波形中的其他输入波形,在所述库中创建依赖于所述至少一个第一记录而使用的所述记录中的第二记录;以及所述方法进一步包括:
对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形被投影到具有变化的电路拓扑结构的输入波形的空间中,以基于至少一个第二记录确定使用所述至少一个第一记录所生成的输出响应的校正量。
16.一种***,包括:
至少一个处理器,被配置为执行程序指令,所述程序指令将所述至少一个处理器配置为:
库创建工具,被配置为考虑驱动单元的前级驱动器的不同电路拓扑结构以得到相同输入转换特性,关于所述输入转换特性来特征化所述单元;以及
至少一个存储器,被配置为存储所述程序指令;
其中,所述库创建工具包括:
波形获取模块,被配置为获得具有所述输入转换特性和代表性第一特性的输入波形,
驱动所述单元的所述前级驱动器的所述不同电路拓扑结构导致不同第一特性,
所述代表性第一特性选自从至少一个芯片所收集的第一特性,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的电路拓扑结构;以及
单元特征化模块,被配置为使用所述输入波形来特征化所述单元,以在库中创建与所述输入波形相关联的记录。
17.根据权利要求16所述的***,其中,
所述波形获取模块通过执行包括以下操作获取具有所述输入转换特性和所述代表性第一特性的所述输入波形:
从所述至少一个芯片中收集波形,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;
根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;
根据所述第一特性,对具有所述输入转换特性的波形组分类;以及
从具有所述输入转换特性的波形组中选择具有所述代表性第一特性的波形,作为所述输入波形。
18.根据权利要求16所述的***,其中,
所述第一特性是尾部特性;
所述输入转换特性包括所述输入波形的第一部分;以及
所述尾部特性包括所述输入波形的第一部分之后的所述输入波形的第二部分。
19.根据权利要求16所述的***,其中,
所述库创建工具包括:
波形获取模块,被配置为考虑所述不同电路拓扑结构,获取具有所述输入特性的不同输入波形;以及
单元特征化模块,被配置为使用所述不同输入波形来特征化所述单元,以在库中创建与所述输入转换特性和所述不同电路拓扑结构相关联的记录。
20.根据权利要求19所述的***,其中,
所述波形获取模块考虑所述不同电路拓扑结构,通过执行包括以下操作,获取具有所述输入转换特性的所述不同输入波形:
从所述至少一个芯片中收集波形,所述至少一个芯片包括代表驱动所述单元的所述前级驱动器的所述不同电路拓扑结构的所述电路拓扑结构;
根据所述输入转换特性,对来自所述至少一个芯片的所述波形分组;以及
根据第一特性,对具有所述输入转换特性的波形组分类;以及
从具有所述输入转换特性的波形组中选择具有代表性第一特性的波形,并且在第一特性范围内选择具有第一特性的其他波形,以作为具有所述不同第一特性的所述输入波形,所述第一特性范围包括所述代表性第一特性并且包含在所述至少一个芯片中至少出现50%的第一特性。
21.根据权利要求19所述的***,其中,
所述波形获取模块考虑所述不同电路拓扑结构,通过执行包括以下操作,获取具有所述输入转换特性的所述不同输入波形:
接收驱动配置在所述不同电路拓扑结构中的所述单元的所述前级驱动器的不同网表;以及
使用驱动所述单元的所述前级驱动器的所述不同网表,构建所述不同输入波形。
22.根据权利要求19所述的***,其中,
所述单元特征化模块使用所述不同输入波形来特征化所述单元,以通过创建独立于库中的所述记录之一而使用的另一记录以在所述库中创建与所述输入转换特性相关联的记录以用于每个所述不同输入波形;以及
所述程序指令还将所述至少一个处理器配置为:
时序分析工具,被配置为对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形与所述不同输入波形相匹配,以在所述库中识别所述记录之一,以用于生成所述单元的输出响应。
23.根据权利要求19所述的***,其中,
所述单元特征化模块使用所述不同输入波形来特征化所述单元,以通过在所述库中创建独立于所述记录中的第二记录使用的所述记录中的至少一个第一记录,在库中创建与所述输入转换特性相关联的记录,以用于所述不同输入波形的至少一个输入波形,并且在所述库中创建依赖于所述至少一个第一记录使用的所述记录中的所述第二记录,以用于所述不同输入波形的其他输入波形;以及
所述程序指令还将所述至少一个处理器配置为:
时序分析工具,被配置为对网表执行时序分析,使得传播到所述单元的具有所述输入转换特性的输入波形被投影至具有变化电路拓扑结构的输入波形的空间,以基于所述至少一个第二记录,确定使用所述至少一个第一记录生成的输出响应的校正量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/150,350 | 2014-01-08 | ||
US14/150,350 US9563734B2 (en) | 2014-01-08 | 2014-01-08 | Characterizing cell using input waveform generation considering different circuit topologies |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104765902A CN104765902A (zh) | 2015-07-08 |
CN104765902B true CN104765902B (zh) | 2018-04-17 |
Family
ID=53443221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410507469.4A Active CN104765902B (zh) | 2014-01-08 | 2014-09-28 | 使用考虑不同电路拓扑结构生成的输入波形特征化单元的方法和*** |
Country Status (5)
Country | Link |
---|---|
US (2) | US9563734B2 (zh) |
KR (1) | KR101690378B1 (zh) |
CN (1) | CN104765902B (zh) |
DE (1) | DE102014118932A1 (zh) |
TW (1) | TWI575394B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424380B2 (en) * | 2014-09-05 | 2016-08-23 | Synopsys, Inc. | Augmented simulation method for waveform propagation in delay calculation |
US9659139B2 (en) * | 2015-06-18 | 2017-05-23 | Nvidia Corporation | Approach for performing improved timing analysis with improved accuracy |
CN117272924A (zh) | 2017-04-28 | 2023-12-22 | 三星电子株式会社 | 设计集成电路的方法 |
KR102402673B1 (ko) * | 2017-04-28 | 2022-05-26 | 삼성전자주식회사 | Beol의 공정 변이를 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템 |
US10768211B2 (en) * | 2017-08-25 | 2020-09-08 | Oracle International Corporation | System and method for current sense resistor compensation |
US11663384B1 (en) * | 2020-10-13 | 2023-05-30 | Synopsys, Inc. | Timing modeling of multi-stage cells using both behavioral and structural models |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1706089A (zh) * | 2002-10-21 | 2005-12-07 | 先进电力技术公司 | 具有高输入功率因数和低谐波失真的交-直流电源转换器 |
CN101506810A (zh) * | 2005-10-24 | 2009-08-12 | 克立尔希普技术公司 | 集成电路的时序、噪声和功率分析 |
CN101860364A (zh) * | 2009-04-03 | 2010-10-13 | 台湾积体电路制造股份有限公司 | 环状振荡器电路、测量临界电压变异的集成电路及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09259170A (ja) | 1996-03-18 | 1997-10-03 | Dainippon Printing Co Ltd | 集積回路用セルの波形情報ライブラリ作成装置 |
JPH10275166A (ja) | 1997-03-28 | 1998-10-13 | Sony Corp | 回路動作判定装置、回路設計装置およびその方法 |
US6532576B1 (en) | 2001-03-07 | 2003-03-11 | Lsi Logic Corporation | Cell interconnect delay library for integrated circuit design |
JP2005122498A (ja) | 2003-10-17 | 2005-05-12 | Matsushita Electric Ind Co Ltd | タイミングライブラリ作成方法 |
JP2005332378A (ja) | 2004-04-19 | 2005-12-02 | Matsushita Electric Ind Co Ltd | 波形変歪を考慮したセル特性キャラクタライズ方法及びその方法を使用した半導体集積回路の遅延時間計算方法 |
US20050232066A1 (en) * | 2004-04-19 | 2005-10-20 | Matsushita Electric Industrial Co., Ltd. | Method for characterizing cells with consideration for bumped waveform and delay time calculation method for semiconductor integrated circuits using the same |
US7398495B1 (en) | 2006-04-06 | 2008-07-08 | Advanced Micro Devices, Inc. | Method and apparatus for characterizing arrays using cell-based timing elements |
US8103990B2 (en) | 2008-02-28 | 2012-01-24 | Arm Limited | Characterising circuit cell performance variability in response to perturbations in manufacturing process parameters |
JP2010113528A (ja) * | 2008-11-06 | 2010-05-20 | Panasonic Corp | 遅延シミュレーション装置、遅延シミュレーション方法、pldマッピング装置、pldマッピング方法、及び半導体集積回路 |
US8584075B2 (en) | 2011-02-15 | 2013-11-12 | Qualcomm Incorporated | Method and apparatus for characterizing and reducing proximity effect on cell electrical characteristics |
-
2014
- 2014-01-08 US US14/150,350 patent/US9563734B2/en active Active
- 2014-05-20 TW TW103117574A patent/TWI575394B/zh active
- 2014-09-28 CN CN201410507469.4A patent/CN104765902B/zh active Active
- 2014-12-03 KR KR1020140172047A patent/KR101690378B1/ko active IP Right Grant
- 2014-12-18 DE DE102014118932.9A patent/DE102014118932A1/de active Pending
-
2017
- 2017-01-06 US US15/400,519 patent/US10467364B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1706089A (zh) * | 2002-10-21 | 2005-12-07 | 先进电力技术公司 | 具有高输入功率因数和低谐波失真的交-直流电源转换器 |
CN101506810A (zh) * | 2005-10-24 | 2009-08-12 | 克立尔希普技术公司 | 集成电路的时序、噪声和功率分析 |
CN101860364A (zh) * | 2009-04-03 | 2010-10-13 | 台湾积体电路制造股份有限公司 | 环状振荡器电路、测量临界电压变异的集成电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150193569A1 (en) | 2015-07-09 |
TW201528017A (zh) | 2015-07-16 |
CN104765902A (zh) | 2015-07-08 |
DE102014118932A1 (de) | 2015-07-09 |
TWI575394B (zh) | 2017-03-21 |
US20170116361A1 (en) | 2017-04-27 |
US9563734B2 (en) | 2017-02-07 |
KR20150083014A (ko) | 2015-07-16 |
US10467364B2 (en) | 2019-11-05 |
KR101690378B1 (ko) | 2016-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104765902B (zh) | 使用考虑不同电路拓扑结构生成的输入波形特征化单元的方法和*** | |
US11960811B2 (en) | Partitioning in post-layout circuit simulation | |
US7761275B2 (en) | Synthesizing current source driver model for analysis of cell characteristics | |
US20150269297A1 (en) | Methods for reducing post layout circuit simulation results | |
Shook et al. | MLParest: Machine learning based parasitic estimation for custom circuit design | |
Vandenberghe et al. | Optimizing dominant time constant in RC circuits | |
US11755797B2 (en) | System and method for predicting performance, power and area behavior of soft IP components in integrated circuit design | |
Gu et al. | Model reduction via projection onto nonlinear manifolds, with applications to analog circuits and biochemical systems | |
Tehrani et al. | Deep sub-micron static timing analysis in presence of crosstalk | |
US6687889B1 (en) | Method and apparatus for hierarchical clock tree analysis | |
US8122411B2 (en) | Method of performing static timing analysis considering abstracted cell's interconnect parasitics | |
US8091052B2 (en) | Optimization of post-layout arrays of cells for accelerated transistor level simulation | |
Sayed et al. | Design automation and implementation of machine learning classifier chips | |
US7451427B2 (en) | Bus representation for efficient physical synthesis of integrated circuit designs | |
US8739093B1 (en) | Timing characteristic generation and analysis in integrated circuit design | |
CN101794328B (zh) | 针对门输出负载的快速且准确的估计 | |
CN115510802A (zh) | 用于预测详细布线拓扑和轨道使用的机器学习模型 | |
US20040002831A1 (en) | Method for verifying cross-sections | |
Ok et al. | Design and analysis of 3D IC-based low power stereo matching processors | |
US20240070361A1 (en) | Circuit analysis method, circuit analysis device, and circuit analysis system | |
US20240169134A1 (en) | Transistor-level synthesis | |
US20240176943A1 (en) | Auto-creation of custom standard cells | |
Ye et al. | Practical variation-aware interconnect delay and slew analysis for statistical timing verification | |
CN117787202A (zh) | 跨工艺角的签核级时序预测方法及*** | |
Dell'Atti | Integrated circuit Back-End of line analysis and modeling for future node pathfinding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |