CN116776790B - 一种时序分析的快速计算方法、装置及计算机设备 - Google Patents
一种时序分析的快速计算方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN116776790B CN116776790B CN202311036338.8A CN202311036338A CN116776790B CN 116776790 B CN116776790 B CN 116776790B CN 202311036338 A CN202311036338 A CN 202311036338A CN 116776790 B CN116776790 B CN 116776790B
- Authority
- CN
- China
- Prior art keywords
- constraint conditions
- scene
- sag
- constraint
- scenes
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 163
- 238000012300 Sequence Analysis Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 162
- 230000008569 process Effects 0.000 claims abstract description 133
- 238000005457 optimization Methods 0.000 claims abstract description 89
- 238000004458 analytical method Methods 0.000 claims abstract description 30
- 230000010485 coping Effects 0.000 claims abstract description 6
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 4
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 4
- 238000013461 design Methods 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 101100465868 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) drc-2 gene Proteins 0.000 claims description 4
- 101100272391 Schizosaccharomyces pombe (strain 972 / ATCC 24843) bgs1 gene Proteins 0.000 claims description 4
- 101150067505 drc-1 gene Proteins 0.000 claims description 4
- 230000007704 transition Effects 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000012731 temporal analysis Methods 0.000 claims description 2
- 238000000700 time series analysis Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- 238000010618 wire wrap Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/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/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/394—Routing
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及时序分析驱动的布局布线领域,特别涉及一种时序分析的快速计算方法、装置及计算机设备。一种时序分析的快速计算方法,用于对芯片布局布线优化中应对多种场景时的时序分析进行快速计算,场景包括若干约束条件和若干工艺角,所述方法包括以下步骤:合并所有场景中的约束条件获得合并场景;对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;将基于预设规则中占优的松弛度计算结果所对应的工艺角输出,并将芯片于该工艺角下进行优化使松弛度计算结果符合预设标准,以完成时序驱动的布局布线优化。解决芯片进行布局布线优化过程中在覆盖多个场景时,时序分析的计算过程存在耗时长的问题。
Description
技术领域
本发明涉及时序分析驱动的布局布线领域,特别涉及一种时序分析的快速计算方法、装置及计算机设备。
背景技术
在超大规模集成电路领域,随着工艺节点的降低,芯片在不同的场景的工作状态可能存在着极大的区别。因此在芯片的布局布线中,通常采用基于多种场景的时序分析来实现芯片在极端的工作条件下仍旧能满足要求的布局布线。
不同的场景可以看作不同的约束条件和不同的工艺角的组合。在布局布线优化过程中,不能采用单一场景的时序分析来覆盖所有场景下的设计。目前现有的工具采用人工手动设置场景或者进行全部场景的分析来完成多场景时序分析驱动的布局布线,但是如果对多种场景进行全局分析会占用大量内存,且时序分析的计算过程会占用大量算力资源以及花费大量的时间。因此现有技术芯片进行布局布线优化在覆盖多个场景时,时序分析其计算过程存在耗时长的问题。
发明内容
为了解决现有技术芯片进行布局布线优化过程中在覆盖多个场景时,时序分析的计算过程存在耗时长的问题。本发明提供一种时序分析的快速计算方法。
本发明为解决上述技术问题,提供如下的技术方案:一种时序分析的快速计算方法,用于对芯片布局布线优化中应对多种场景时的时序分析进行快速计算,场景包括若干约束条件和若干工艺角,所述方法包括以下步骤:
合并所有场景中的约束条件获得合并场景;
对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;
将基于预设规则中占优的松弛度计算结果所对应的工艺角输出;
将芯片于该工艺角下进行优化,使松弛度计算结果符合预设标准,以完成时序驱动的布局布线优化。
优选地,合并所有场景中的约束条件获得合并场景具体包括:
基于预设算法将场景中的约束条件进行合并以获得合并场景;
所述预设算法为:
将约束条件划分为时钟定义,路径约束,时序约束,设计规则,输入条件;
合并后的约束条件为:
cd=cd1'∪Ucd2;
dc=dc1'∪dc2';
ic=ic1'∪ic2';
drc=Max(drc1',drc2');
pe=Max(pec1',pec2')∪ped1'∪ped2'
(pec=pe1'∩pe2',
ped1'=pe1'-pec,ped2'=pe2'-pec);
其中,cd表示时钟定义,pe表示路径约束,dc表示时序约束,drc表示设计规则,ic表示输入条件,1'和2'表示两个不同的约束条件。
优选地,将场景中的约束条件进行合并具体包括:
判断场景中是否存在相同类型的约束条件;
若不存在,则对所有场景中的约束条件进行合并以获得合并场景;
若存在,则对相同类型的约束条件进行合并;
相同类型的约束条件合并后,再将所有未能合并的约束条件进行合并以获得合并场景。
优选地,对相同类型的约束条件进行合并具体包括:
若相同类型的约束条件为小于和/或等于第一阈值,则合并后的约束条件为小于和/或等于第一阈值中的最小值;
和/或,若相同类型的约束条件为大于和/或等于第一阈值,则合并后的同类约束条件为大于和/或等于第一阈值中的最大值。
优选地,工艺角包括芯片中的进程、电压、温度中的一种或多种组合;
约束条件包括芯片中线路的最大电容、最大时延、最大转换时间、最大的扇出数目、输入延迟,输出延迟中的一种或多种组合。
优选地,将基于预设规则中占优的松弛度计算结果所对应的工艺角输出具体包括:
将松弛度计算结果进行大小排序,从数值最小的选取方式选取预设数量的松弛度计算结果作为占优结果;
将占优结果所对应的工艺角进行输出。
优选地,所述松弛度计算结果为芯片线路中数据信号的实际到达时间减去时钟信号的需要到达时间的值;
若松弛度计算结果为非负数,则松弛度计算结果符合预设标准。
优选地,完成时序驱动的布局布线优化后进一步包括:
将场景中的若干约束条件和若干工艺角进行自由组合以获得若干个组合场景;
将所有组合场景中的约束条件以及每个约束条件对应的工艺角进行分析获得其对应的松弛度计算结果;
将组合场景中的松弛度计算结果和合并场景中的松弛度计算结果进行比对以验证布局布线优化过程中松弛度计算结果的准确度。
本发明为解决上述技术问题,提供又一技术方案如下:一种装置,应用于上述的时序分析的快速计算方法,所述装置包括:
组合模块:用于合并所有场景中的约束条件获得合并场景;
计算模块:用于对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;
选择模块:用于将基于预设规则中占优的松弛度计算结果所对应的工艺角进行输出;
优化模块:用于将芯片于选择模块输出的工艺角下进行优化使松弛度计算结果符合预设标准。
本发明为解决上述技术问题,提供又一技术方案如下:一种计算机设备,应用于上述时序分析的快速计算方法,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行上述计算机程序以实现所述时序分析的快速计算方法。
与现有技术相比,本发明所提供的一种时序分析的快速计算方法、装置及计算机设备,具有如下的有益效果:
1.本发明实施例提供的一种时序分析的快速计算方法,用于对芯片布局布线优化中应对多种场景时的时序分析进行快速计算,场景包括若干约束条件和若干工艺角,所述方法包括以下步骤:
合并所有场景中的约束条件获得合并场景;
对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;
将基于预设规则中占优的松弛度计算结果所对应的工艺角输出,并将芯片于该工艺角下进行优化使松弛度计算结果符合预设标准,以完成时序驱动的布局布线优化。本发明将场景中的约束条件合并后,时序分析时其处理的场景数量得到缩减,即其针对合并场景进行时序分析时算力得到减少,计算时间同样得到缩减,进而使得整体效率得到提升。另外,通过筛选出基于预设规则中占优的松弛度计算结果,并将该结果所对应的工艺角输出。而在布局布线优化过程中,仅需要于该工艺角下进行优化。即在优化过程中,所耗费的算力资源进一步得到减少。
2.本发明实施例合并所有场景中的约束条件获得合并场景具体包括:
基于预设算法将场景中的约束条件进行合并以获得合并场景;
所述预设算法为:
将约束条件划分为时钟定义,路径约束,时序约束,设计规则,输入条件;
合并后的约束条件为:
cd=cd1'∪Ucd2;
dc=dc1'∪dc2';
ic=ic1'∪ic2';
drc=Max(drc1',drc2');
pe=Max(pec1',pec2')∪ped1'∪ped2'
(pec=pe1'∩pe2',
ped1'=pe1'-pec,ped2'=pe2'-pec);
其中,cd表示时钟定义,pe表示路径约束,dc表示时序约束,drc表示设计规则,ic表示输入条件,1'和2'表示两个不同的约束条件。约束条件合并后,场景的数量对应缩减,以提高时序分析过程中的计算速度。
3.本发明实施例将场景中的约束条件进行合并具体包括:
判断场景中是否存在相同类型的约束条件;
若不存在,则对所有场景中的约束条件进行合并以获得合并场景;
若存在,则对相同类型的约束条件进行合并;
相同类型的约束条件合并后,再将所有未能合并的约束条件进行合并以获得合并场景。通过判断来决定是否需要优先合并相同类型的约束条件,以使得整体计算时间得到缩减。
4.本发明实施例对相同类型的约束条件进行合并具体包括:
若相同类型的约束条件为小于和/或等于第一阈值,则合并后的约束条件为小于和/或等于第一阈值中的最小值;
和/或,若相同类型的约束条件为大于和/或等于第一阈值,则合并后的同类约束条件为大于和/或等于第一阈值中的最大值,使得芯片于更为严格的约束条件下仍能正常工作。
5.本发明实施例将基于预设规则中占优的松弛度计算结果所对应的工艺角输出具体包括:
预设规则为将松弛度计算结果进行大小排序,从数值最小的选取方式选取预设数量的松弛度计算结果作为占优结果;将占优结果所对应的工艺角进行输出。筛选出需要优化的最为恶劣的场景,或较为恶劣的多个场景,其能减少算力的占用内存,且能提高计算时间。
6.本发明实施例所述符合预设标准为:所述松弛度计算结果为芯片线路中数据信号的实际到达时间减去时钟信号的需要到达时间的值;若松弛度计算结果为非负数,则松弛度计算结果符合预设标准。若松弛度计算结果为非负数,则表明该段线路可以正常工作,布局布线优化过程顺利完成。
7.本发明实施例完成时序驱动的布局布线优化后进一步包括:将场景中的若干约束条件和若干工艺角进行自由组合以获得若干个组合场景;将所有组合场景中的约束条件以及每个约束条件对应的工艺角进行分析获得其对应的松弛度计算结果;将组合场景中的松弛度计算结果和合并场景中的松弛度计算结果进行比对以进一步验证布局布线优化过程中松弛度计算结果的准确度。
8.本发明实施例还提供一种装置,具有与上述一种时序分析的快速计算方法相同的有益效果,在此不做赘述。
9.本发明实施例还提供一种计算机设备,具有与上述一种时序分析的快速计算方法相同的有益效果,在此不做赘述。
附图说明
图1是本发明第一实施例提供的时序分析的快速计算方法的流程示意图。
图2是第一实施例提供的时序分析的快速计算方法之合并相同类别场景的流程示意图。
图3是本发明第二实施例提供的装置的结构示意图。
图4是本发明第三实施例提供的计算机设备的结构示意图。
附图标识说明:
1、装置;2、计算机设备;
11、组合模块;12、计算模块;13、选择模块;14、优化模块;21、存储器;22、处理器;23、计算机程序。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图及实施实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明所提供的实施例中,应理解,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必需的。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方案中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行的执行,它们有时也可以按相反的顺序执行,在此基于涉及的功能而确定。需要特别注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在芯片设计中,布局布线优化是指通过对芯片的物理布局和信号布线进行优化,以实现性能、功耗、面积和可靠性等多个方面的目标。其主要包括布局优化和布线优化。其中布局优化主要关注芯片中各个功能单元(如逻辑单元、存储器等)的位置和相互之间的布局。通过合理的布局可以最大程度地减少信号传输的长度,减小延迟和功耗,并提高芯片的可靠性。而布线优化主要涉及将不同功能单元之间的互连线路进行布线和优化。它考虑了信号线的长度、走线路径、电磁干扰等因素,以最小化延迟、功耗和噪声,并提高芯片的性能。布线优化也需要解决布线难题,如避免互连线路之间的干扰、最小化互连线的阻抗等。应理解,通过对芯片进行布局布线优化,可以降低信号传输的延迟和功耗,提高芯片的工作速度和整体性能,还可以优化电源电路的布局,提高功耗效率,还可以最大程度地利用芯片的物理空间,减少芯片的面积占用,从而降低成本和提高集成度。
在超大规模集成电路领域,随着工艺节点的降低,芯片在不同的场景的工作状态可能存在着极大的区别。其中影响最显著的便是电阻和电容的值,在不同的进程,电压,温度下,其电阻和电容的数值皆会受到影响。而芯片中电阻和电容的数值受到影响后,其内部线路内的门和线的时延都会受到较大的影响。具体地,器件一般有多种工作状态,其对应着多种约束条件。时序分析的主要作用是为了查看芯片中布局布线的时延,以验证芯片是否满足设计者设计的约束,即时序分析时若发现不满足约束条件,则使用者可以借助时序分析器来定位不满足约束的部分, 进而对线路进行优化或修改,直至满足约束条件以使芯片可以正常工作。而在进行时序分析时,所能覆盖设计的范围是不同的,即可能出现其满足某种场景下的约束条件但并不能满足另一种场景下的约束条件的情况。因此在时序驱动的布局布线优化中,通常采用基于多种场景的时序分析来实现芯片在极端的工作条件下仍旧能满足要求的布局布线。集成电路的电路时序分析的时延计算主要分为门电路的时延计算和网络线的时延计算。不同的场景可以看作不同的约束条件和不同的工艺角的组合。在布局布线阶段,不能采用单一场景的时序分析来覆盖所有场景下的设计。目前现有的工具采用人工手动设置场景或者进行全部场景的分析来完成多场景时序分析驱动的布局布线,但是如果在多场景内进行全局分析会占用大量内存,且时序分析将会花费大量的时间。
请参阅图1,本发明第一实施例提供一种时序分析的快速计算方法,用于对芯片布局布线优化中应对多种场景时的时序分析进行快速计算,场景包括若干约束条件和若干工艺角;所述方法包括以下步骤:
S1,合并所有场景中的约束条件获得合并场景;
S2,对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;
S3,将基于预设规则中占优的松弛度计算结果所对应的工艺角输出;
S4,将芯片于该工艺角下进行优化,使松弛度计算结果符合预设标准,以完成时序驱动的布局布线优化。
可以理解地,在应对完成多场景时序分析驱动的布局布线的优化时,其中场景可以由若干约束条件和若干工艺角组合而成。具体地,不同的约束条件可以与不同的工艺角组合而成不同的场景,其场景越多,时序驱动布局布线优化过程中所消耗的计算量也随之增长,且计算所耗费的时间也长。而现有技术需要针对每个场景都进行时序分析,其在计算过程需要占用大量内存,且计算时间长,效率低。本发明实施例中所提供的方法,通过将场景中的约束条件进行合并,进而将多个场景合并为合并场景,合并场景中的约束条件则为芯片所有线路上所需满足的全部约束条件。进一步地,可以对合并场景中的每一个工艺角进行时序分析以获得每个工艺角所对应的松弛度计算结果。再筛选出预设规则中占优的松弛度计算结果,以将其对应的工艺角输出。最终基于该工艺角进行布局布线优化。具体地,使得松弛度计算结果符合预设标准即可完成时序驱动的布局布线优化。
应理解,首先将场景中的约束条件合并后,时序分析时其处理的场景数量得到缩减,即其针对合并场景进行时序分析时算力得到减少,计算时间同样得到缩减,进而使得整体效率得到提升。另外,相对现有技术中,在布局布线的优化过程中每一个场景都需要对应不同的工艺角进行优化,才能使得芯片完成布局布线优化过程。而本实施例通过筛选出基于预设规则中占优的松弛度计算结果,并将该结果所对应的工艺角输出。而在布局布线优化过程中,仅需要于该工艺角下进行优化。即在优化过程中,所耗费的算力资源进一步得到减少,时序分析过程中所计算的时间也进步得到缩短,计算效率得到提高。
具体地,场景包括若干约束条件和若干工艺角;工艺角包括芯片中的进程、电压、温度中的一种或多种组合。应理解,工艺角表示在不同的工艺条件下,芯片的电阻和电容的变化。示例性地,不同的进程即不同的工艺技术会导致芯片晶体管的尺寸、材料等发生变化,从而影响电阻和电容的数值。又或是,在芯片运行时,不同的电压水平会影响晶体管的导通和截止情况,从而改变电阻和电容。又或是,温度的变化会导致材料的膨胀或收缩,从而改变电阻和电容的数值。即在不同的进程,电压,温度下,其电阻和电容的数值皆会受到影响。而芯片中电阻和电容的数值受到影响后,其内部线路内的门和线的时延都会受到较大的影响。为了确保布局布线后的芯片能够工作,则需要确保芯片在不同的工艺角下均能够满足其对应的约束条件的要求。
进一步地,约束条件包括芯片中线路的最大电容、最大时延、最大转换时间、最大的扇出数目、输入延迟,输出延迟中的一种或多种组合。应理解,为了让芯片完成布局布线,约束条件可以多种多样,使得芯片在不同工艺角以及约束条件下仍然能够正常工作。
需要说明的是,合并场景的数量可以为一个,也可以为多个。当合并场景为一个时,其表示合并场景仅存在一个工艺角;若合并场景为多个时,则表述在约束条件合并后,于合并后的约束条件下存在不同的工艺角,其每个工艺角均可以表示为一个场景。应理解,合并约束条件的过程也是减少场景的数量的过程。场景数量减少时序分析时所占用的算力资源也得到了降低,且其计算时间得到缩短,计算效率得到提升。
具体地,合并所有场景中的约束条件获得合并场景具体包括:
基于预设算法将场景中的约束条件进行合并以获得合并场景;
具体地,预设算法为:
将约束条件划分为时钟定义,路径约束,时序约束,设计规则,输入条件;
合并后的约束条件为:
cd=cd1'∪cd2;
dc=dc1'∪dc2';
ic=ic1'∪ic2';
drc=Max(drc1',drc2');
pe=Max(pec1',pec2')∪ped1'∪ped2'
(pec=pe1'∩pe2',
ped1'=pe1'-pec,ped2'=pe2'-pec);
其中,cd表示时钟定义,pe表示路径约束,dc表示时序约束,drc表示设计规则,ic表示输入条件,1'和2'表示两个不同的约束条件。
应理解,不同的约束条件可以划分为不同类别,可以将相同类别的约束条件进行合并,约束条件合并后,场景的数量对应缩减,以提高时序分析过程中的计算速度。
进一步地,请结合图1和图2,在上述步骤S1中,约束条件进行合并具体包括:
S11,判断场景中是否存在相同类型的约束条件;
S12,若不存在,则对所有场景中的约束条件进行合并以获得合并场景;
S13,若存在,则对相同类型的约束条件进行合并;
S14,相同类型的约束条件合并后,再将所有未能合并的约束条件进行合并以获得合并场景。
可以理解,将约束条件进行合并的过程中,可以先判断其场景内是否存在相同类型的约束条件。相同类型的约束条件指的是其约束的对象种类相同。在某种可能的实施例方式中,例如存在三个场景,其对应有三个约束条件,其分别为约束条件A:芯片的最大电容为小于4PF。约束条件B:芯片的最大的扇出数目为小于4PF。约束条件C:芯片的最大转换时间为小于15μS。可见,约束条件A、约束条件B和约束条件C所约束的对象种类皆不相同,其约束的对象分别为最大电容的范围、最大的扇出数目和最大转换时间的范围。则该场景内是不存在相同类型的约束条件。此时,则需要同时对三个场景内的约束条件进行合并以获得合并场景。例如合并后的约束条件MS1为:芯片的最大电容为小于4PF、芯片的最大的扇出数目为小于4PF、芯片的最大转换时间为小于15μS。
在另一种可能的实施方式中,例如存在三个场景,其对应有三个约束条件,其分别为约束条件D:芯片的最大电容为小于4PF。约束条件E:芯片的最大电容为小于2PF。约束条件F:芯片的最大转换时间为小于15μS。可见,约束条件D和约束条件E所约束的对象种类相同,其约束的对象均为最大电容的范围。而约束条件F其约束的对象为最大转换时间的范围。则该场景内是存在相同类型的约束条件。此时,则需要先将约束条件D和约束条件E进行合并。获得约束条件D',将相同类型的约束条件D和约束条件E进行合并后,再将所有未能合并的约束条件D'和约束条件F进行合并以获得合并场景。
具体地,在此实施方式中,对相同类型的约束条件进行合并具体包括:
若相同类型的约束条件为小于和/或等于第一阈值,则合并后的约束条件为小于和/或等于第一阈值中的最小值;
和/或,若相同类型的约束条件为大于和/或等于第一阈值,则合并后的同类约束条件为大于和/或等于第一阈值中的最大值。
应理解,约束条件D和约束条件E约束的对象种类相同,均为芯片的最大电容的范围,而在合并过程中,往往会朝更为严格的方向进行约束。即相比约束条件D中最大电容为小于4PF,约束条件E中的最大电容为小于2PF更为严格。本示例中第一阈值则为最大电容的值。而针对相同类型的约束条件进行合并时。往往会朝更为严格的方向去约束,则合并后的约束条件D'为:芯片的最大电容为小于2PF。进一步地,将约束条件D'和约束条件F进行合并后可以获得约束条件MS2为:芯片的最大电容为小于2PF、芯片的最大转换时间为小于15μS。本实施例中可以将相同类型的约束条件进行合并,且合并后的约束条件更为严格,使得布局布线优化后的芯片即使处于更为严格的约束条件下也能正常工作。
进一步地,在上述步骤S3中,将基于预设规则中占优的松弛度计算结果所对应的工艺角输出具体包括:预设规则为将松弛度计算结果进行大小排序,从数值最小的选取方式选取预设数量的松弛度计算结果作为占优结果;将占优结果所对应的工艺角进行输出。应理解,松弛度计算是指在时序设计中,通过计算信号的松弛度来评估电路的时序容限。松弛度是指时钟信号和数据信号之间的时间间隔,用来衡量数据信号到达触发器的时间窗口大小。可以通过松弛度计算来判断数据信号与时钟信号之间的时序关系是否满足设计要求。具体地,若某段线路中的数据信号的实际到达时间小于时钟信号的需要到达时间的值,则造成的结果是该段线路将无法正常工作。而合并场景的数量为若干个时,其合并后的约束条件下会存在多个工艺角。在相同约束条件下,工艺角不同其对应的松弛度计算结果也不相同。而松弛度计算结果又可以直观关注时钟与数据之间的时间关系,因此可以通过松弛度计算结果来筛选出使用者所需要的工艺角。进而针对该工艺角进行优化以快速完成布局布线优化过程。
具体地,松弛度计算结果为芯片线路中数据信号的实际到达时间减去时钟信号的需要到达时间的值;若松弛度计算结果为非负数,则松弛度计算结果符合预设标准。应理解,若松弛度计算结果为非负数,则表明芯片线路中数据信号的实际到达时间大于时钟信号的需要到达时间的值。即说明该段线路可以正常工作,布局布线优化过程顺利完成。
可以理解地是,在上述步骤S4中,要想整个芯片正常工作,则芯片中的每个线路中的松弛度计算结果均需要符合预设标准,即松弛度计算结果需要为非负数,也即芯片线路中数据信号的实际到达时间需要大于时钟信号的需要到达时间。而对芯片的布局布线优化的过程,即为找出芯片线路中松弛度计算结果中不符合预设标准的部分,并对该部分进行优化。本实施例中由于将约束条件进行合并,影响到芯片线路正常工作的因素仅剩下工艺角,而工艺角又为进程、电压、温度等工艺条件。在约束条件相同的情况下,若能找到芯片在某个工艺角下其松弛度计算结果最差,则表示找到了满足所有约束条件下最差的工艺角,即找到了芯片工作的最恶劣的场景。此时若针对性地对最恶劣的场景进行布局布线优化使得松弛度计算结果为非负数,则整体芯片在应对其他相对不那么恶劣的场景时,其芯片内的线路的松弛度计算结果也势必为非负数。
具体地,本实施例中通过筛选出预设规则中占优的松弛度计算结果,并将该松弛度计算结构所对应的工艺角输出,即可获取到最恶劣的场景,针对最恶劣的场景进行优化,即可快速完成整个芯片的布局布线优化。需要说明的是,筛选预设规则中占优的松弛度计算结果时,可以将松弛度计算结果进行大小排序,占优结果可以是以数值最小的选取方式选取松弛度计算结果的最小值作为占优结果。也可以是从数值最小的选取方式选取预设数量的松弛度计算结果作为占优结果。后者中其输出的工艺角的数量为多个,即在最终的布局布线优化时,也可以对芯片在多个较为恶劣的场景进行布局布线优化,以快速完成整个芯片的布局布线优化。另外,现有技术在布局布线优化时,往往对于不同约束条件和不同工艺角组合而成的场景,均需要单独进行优化,其所耗费的计算资源更为巨大。本实施例仅需要优化最为恶劣的场景,或较为恶劣的多个场景,其能减少算力的占用内存,且能提高计算时间。
进一步地,完成时序驱动的布局布线优化后进一步包括:
将场景中的若干约束条件和若干工艺角进行自由组合以获得若干个组合场景;
将所有组合场景中的约束条件以及每个约束条件对应的工艺角进行分析获得其对应的松弛度计算结果;
将组合场景中的松弛度计算结果和合并场景中的松弛度计算结果进行比对以验证布局布线优化过程中松弛度计算结果的准确度。
可以理解地,将所有组合场景中的约束条件以及每个约束条件对应的工艺角进行分析获得其对应的松弛度计算结果即为现有技术中所采用的方案。而将本实施例中所采用方案所计算获得的松弛度计算结果与组合场景中的松弛度计算结果进行比对,可以进一步地对本方法进行验证,以验证出本实施例的准确度。
为了清晰展示本方法用于对芯片布局布线优化中应对多种场景时的时序分析进行快速计算的效率,现提供如下实验对比分析:
实验组:
步骤1:采用28nm工艺的一个10万逻辑单元,28个宏单元的设计,其主时钟周期为1ns,测试时钟周期为10ns,采用PDK中给出的验收场景分析,设置20个时序分析场景,并采用8线程的分析。
步骤2:将20个场景进行合并获得建立时间检查的场景和保持时间检查的场景;
步骤3:将线程重分配为2份,然后按照不同的场景在这2个可利用的线程中进行时序驱动的布局优化。
对比组:
步骤1:采用28nm工艺的一个10万逻辑单元,28个宏单元的设计,其主时钟周期为1ns,测试时钟周期为10ns,采用PDK中给出的验收场景分析,设置了20个时序分析场景,并采用8线程的分析。
步骤2:按照不同的场景在这8个可利用的线程中进行时序驱动的布局优化。
进一步地,建立时间检查的场景可适用于布局优化、绕线优化或时钟优化。而保持时间检查的场景可适用于绕线优化或时钟优化,现比对建立时间检查的场景和未合并场景中进行布局优化。
表一,建立时间检查的场景和未合并场景中布局优化结果表
表一表示的是建立时间检查的场景和未合并场景中布局优化结果,对比组表示的是未合并场景,而实验组表示合并场景后形成的建立时间检查的场景。其中表一初始状态一列表示未经过布局优化时,其对比组和实验组中最小松弛度计算结果值和总负松弛度计算结果值。其中最小松弛度计算结果值表示是芯片未经布局优化时,其部分线路存在着最小松弛度计算结果,即该部分的线路在最小松弛度计算结果时所对应的场景最为恶劣。而总负松弛度计算结果值表示整个芯片中所有线路在不同场景下其负数的松弛度计算结果的总和值。进一步地,表一总负松弛优化一列表示对芯片中存在负数松弛度计算结果的所有线路分别进行优化。而最小负松弛优化表示按照芯片中最小的负数松弛度计算结果值所对应的线路对整个芯片进行优化。
分析表一可知,首先无论是分别对所有线路进行优化还是按照最小负松弛优化,其优化后芯片线路中的松弛度计算结果均有向非负数靠近,即经过布局优化后,导致芯片无法工作的缺陷被逐渐解除。其次,通过单独比对表一总负松弛优化一列或最小负松弛优化一列中对比组和实验组的松弛度计算结果值,可以看到对比组和实验组优化后,其芯片内的松弛度计算结果值是十分接近的,这一结果进一步验证了在布局优化中通过合并约束条件再于建立时间检查的场景下进行时序分析和采用现有技术对所有场景下进行时序分析对于松弛度计算结果的提升效果是接近的。也即通过合并场景来进行时序分析能达到现有技术中相同的效果。再者,通过对比表中总负松弛优化一列和最小负松弛优化一列的结果,可以看到相比于对芯片中存在负数松弛度计算结果的所有线路分别进行优化,按照芯片中最小的负数松弛度计算结果值所对应的线路对整个芯片进行优化后的松弛度计算结果值更高。这表明在实际的优化过程中,仅需要找到最小松弛度计算结果所对应的线路,再按照该线路的优化方式对整个芯片进行优化,其优化效果相比现有技术更佳。也进一步验证了本发明中通过筛选出最小松弛度计算结果值所对应的工艺角,再对工艺角进行优化,即可完成整个芯片的优化过程。既能缩短优化过程的所用时间,也能带来更佳的优化效果。
进一步地,建立时间检查的场景可适用于布局优化、绕线优化或时钟优化。而保持时间检查的场景可适用于绕线优化或时钟优化,现比对建立时间检查的场景和未合并场景中进行布局优化。
表二,建立时间检查的场景和未合并场景中运行时间表
表二展示了建立时间检查的场景和未合并场景中运行时间表,对比组表示的是未合并场景,而实验组表示合并场景后形成的建立时间检查的场景。其中,表二总负松弛优化一列表示对芯片中存在负数松弛度计算结果的所有线路分别进行优化。而最小负松弛优化表示按照芯片中最小的负数松弛度计算结果值所对应的线路对整个芯片进行优化。总体实际时间表示芯片完成布局优化所需时间,时序实际时间表示时序分析所用时间。通过表二中总负松弛优化一列或最小负松弛优化可知,实验组中通过将场景合并形成建立时间检查的场景,其时序分析的时间相比对比组大量缩减,计算效率得到提高。另外,其芯片完成布局优化所需时间也同样得到大幅度缩减。可见本发明中通过将场景进行合并,使得时序分析中所耗费的算力资源进一步得到减少,进而计算时间得到缩减,计算效率得到提高。且在优化时,由于约束条件被合并,场景数量得到缩减,其优化过程的时间也进一步得到缩短。
请参阅图3,本发明第二实施例还提供一种装置1,应用于上述的时序分析的快速计算方法,装置1包括:
组合模块11:用于合并所有场景中的约束条件获得合并场景;
计算模块12:用于对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;
选择模块13:用于将基于预设规则中占优的松弛度计算结果所对应的工艺角进行输出;
优化模块14:用于将芯片于选择模块13输出的工艺角下进行优化使松弛度计算结果符合预设标准。
本发明实施例提供的装置1,具有与上述一种时序分析的快速计算方法相同的有益效果,在此不做赘述。
请参阅图4,本发明第三实施例还提供一种计算机设备2,应用于上述时序分析的快速计算方法,包括存储器21、处理器22及存储在存储器21上的计算机程序23,所述处理器22执行上述计算机程序23以实现所述时序分析的快速计算方法。
本发明实施例还提供一种计算机设备2,具有与上述一种时序分析的快速计算方法相同的有益效果,在此不做赘述。
以上对本发明实施例公开的一种时序分析的快速计算方法、装置及计算机设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制,凡在本发明的原则之内所做的任何修改,等同替换和改进等均应包含本发明的保护范围之内。
Claims (10)
1.一种时序分析的快速计算方法,用于对芯片布局布线优化中应对多种场景时的时序分析进行快速计算,场景包括若干约束条件和若干工艺角,其特征在于:所述方法包括以下步骤:
合并所有场景中的约束条件获得合并场景;
对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;
将基于预设规则中占优的松弛度计算结果所对应的工艺角输出;
将芯片于该工艺角下进行优化,使松弛度计算结果符合预设标准,以完成时序驱动的布局布线优化。
2.如权利要求1所述的时序分析的快速计算方法,其特征在于:合并所有场景中的约束条件获得合并场景具体包括:
基于预设算法将场景中的约束条件进行合并以获得合并场景;
所述预设算法为:
将约束条件划分为时钟定义,路径约束,时序约束,设计规则,输入条件;
合并后的约束条件为:
cd=cd1'∪Ucd2;
dc=dc1'∪dc2';
ic=ic1'∪ic2';
drc=Max(drc1',drc2');
pe=Max(pec1',pec2')∪ped1'∪ped2'
(pec=pe1'∩pe2',
ped1'=pe1'-pec,ped2'=pe2'-pec);
其中,cd表示时钟定义,pe表示路径约束,dc表示时序约束,drc表示设计规则,ic表示输入条件,1'和2'表示两个不同的约束条件。
3.如权利要求2所述的时序分析的快速计算方法,其特征在于:将场景中的约束条件进行合并具体包括:
判断场景中是否存在相同类型的约束条件;
若不存在,则对所有场景中的约束条件进行合并以获得合并场景;
若存在,则对相同类型的约束条件进行合并;
相同类型的约束条件合并后,再将所有未能合并的约束条件进行合并以获得合并场景。
4.如权利要求3所述的时序分析的快速计算方法,其特征在于:对相同类型的约束条件进行合并具体包括:
若相同类型的约束条件为小于和/或等于第一阈值,则合并后的约束条件为小于和/或等于第一阈值中的最小值;
和/或,若相同类型的约束条件为大于和/或等于第一阈值,则合并后的同类约束条件为大于和/或等于第一阈值中的最大值。
5.如权利要求1所述的时序分析的快速计算方法,其特征在于:工艺角包括芯片中的进程、电压、温度中的一种或多种组合;
约束条件包括芯片中线路的最大电容、最大时延、最大转换时间、最大的扇出数目、输入延迟,输出延迟中的一种或多种组合。
6.如权利要求1所述的时序分析的快速计算方法,其特征在于:将基于预设规则中占优的松弛度计算结果所对应的工艺角输出具体包括:
将松弛度计算结果进行大小排序,从数值最小的选取方式选取预设数量的松弛度计算结果作为占优结果;
将占优结果所对应的工艺角进行输出。
7.如权利要求6所述的时序分析的快速计算方法,其特征在于:所述松弛度计算结果为芯片线路中数据信号的实际到达时间减去时钟信号的需要到达时间的值;
若松弛度计算结果为非负数,则松弛度计算结果符合预设标准。
8.如权利要求1所述的时序分析的快速计算方法,其特征在于:完成时序驱动的布局布线优化后进一步包括:
将场景中的若干约束条件和若干工艺角进行自由组合以获得若干个组合场景;
将所有组合场景中的约束条件以及每个约束条件对应的工艺角进行分析获得其对应的松弛度计算结果;
将组合场景中的松弛度计算结果和合并场景中的松弛度计算结果进行比对以验证布局布线优化过程中松弛度计算结果的准确度。
9.一种装置,应用于如权利要求1-8中任一项所述的时序分析的快速计算方法,其特征在于:所述装置包括:
组合模块:用于合并所有场景中的约束条件获得合并场景;
计算模块:用于对合并场景中每个工艺角进行分析并获得其对应的松弛度计算结果;
选择模块:用于将基于预设规则中占优的松弛度计算结果所对应的工艺角进行输出;
优化模块:用于将芯片于选择模块输出的工艺角下进行优化使松弛度计算结果符合预设标准。
10.一种计算机设备,应用于如权利要求1-8中任一项所述时序分析的快速计算方法,其特征在于:包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行上述计算机程序以实现所述时序分析的快速计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311036338.8A CN116776790B (zh) | 2023-08-17 | 2023-08-17 | 一种时序分析的快速计算方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311036338.8A CN116776790B (zh) | 2023-08-17 | 2023-08-17 | 一种时序分析的快速计算方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116776790A CN116776790A (zh) | 2023-09-19 |
CN116776790B true CN116776790B (zh) | 2023-12-08 |
Family
ID=88008386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311036338.8A Active CN116776790B (zh) | 2023-08-17 | 2023-08-17 | 一种时序分析的快速计算方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116776790B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688893B (zh) * | 2024-02-01 | 2024-04-26 | 成都电科星拓科技有限公司 | 芯片转换时间违例修复方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461576A (en) * | 1993-09-01 | 1995-10-24 | Arcsys, Inc. | Electronic design automation tool for the design of a semiconductor integrated circuit chip |
DE102014207415A1 (de) * | 2013-05-14 | 2014-11-20 | Globalfoundries Inc. | Dicht gepackte Standardzellen für integrierte Schaltungsprodukte und Verfahren zu deren Herstellung |
CN104951594A (zh) * | 2015-05-28 | 2015-09-30 | 格科微电子(上海)有限公司 | 集成电路的布线方法以及集成电路结构 |
CN113688593A (zh) * | 2021-08-11 | 2021-11-23 | 上海交通大学 | 一种三维集成电路片间混合键合布局布线优化方法 |
CN114386352A (zh) * | 2022-03-23 | 2022-04-22 | 上海立芯软件科技有限公司 | 时序驱动布局方法及装置、设备、存储介质 |
CN114861591A (zh) * | 2022-07-07 | 2022-08-05 | 北京大学 | 一种可微分时序驱动的芯片布局优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479277B (zh) * | 2010-11-29 | 2014-06-11 | 国际商业机器公司 | 在芯片设计中改善时序收敛的方法和系统 |
-
2023
- 2023-08-17 CN CN202311036338.8A patent/CN116776790B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461576A (en) * | 1993-09-01 | 1995-10-24 | Arcsys, Inc. | Electronic design automation tool for the design of a semiconductor integrated circuit chip |
DE102014207415A1 (de) * | 2013-05-14 | 2014-11-20 | Globalfoundries Inc. | Dicht gepackte Standardzellen für integrierte Schaltungsprodukte und Verfahren zu deren Herstellung |
CN104951594A (zh) * | 2015-05-28 | 2015-09-30 | 格科微电子(上海)有限公司 | 集成电路的布线方法以及集成电路结构 |
CN113688593A (zh) * | 2021-08-11 | 2021-11-23 | 上海交通大学 | 一种三维集成电路片间混合键合布局布线优化方法 |
CN114386352A (zh) * | 2022-03-23 | 2022-04-22 | 上海立芯软件科技有限公司 | 时序驱动布局方法及装置、设备、存储介质 |
CN114861591A (zh) * | 2022-07-07 | 2022-08-05 | 北京大学 | 一种可微分时序驱动的芯片布局优化方法 |
Non-Patent Citations (1)
Title |
---|
FPGA并行时序驱动布局算法;张家齐;沈剑良;朱珂;;计算机工程(第02期);104-110 * |
Also Published As
Publication number | Publication date |
---|---|
CN116776790A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6557145B2 (en) | Method for design optimization using logical and physical information | |
US5778216A (en) | Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement | |
US7367004B2 (en) | Crosstalk error control apparatus, method, and program | |
US7251797B2 (en) | Pessimism reduction in crosstalk noise aware static timing analysis | |
US6477695B1 (en) | Methods for designing standard cell transistor structures | |
US10776547B1 (en) | Infinite-depth path-based analysis of operational timing for circuit design | |
CN116776790B (zh) | 一种时序分析的快速计算方法、装置及计算机设备 | |
US20060112360A1 (en) | Layout design method for semiconductor integrated circuits | |
WO2009035813A1 (en) | Method of constrained aggressor set selection for crosstalk induced noise | |
US7148135B2 (en) | Method of designing low-power semiconductor integrated circuit | |
US11321513B1 (en) | DVD analysis that accounts for delays | |
US20160203254A1 (en) | Methods for reducing congestion region in layout area of ic | |
US7191417B1 (en) | Method and apparatus for optimization of digital integrated circuits using detection of bottlenecks | |
US8826215B1 (en) | Routing centric design closure | |
US6782514B2 (en) | Context-sensitive constraint driven uniquification and characterization of standard cells | |
EP1436738A2 (en) | Clock skew verification methodology for grid-based design | |
US6499125B1 (en) | Method for inserting test circuit and method for converting test data | |
CN114662446B (zh) | 一种用以减小动态功耗的布线优化方法 | |
US8543963B2 (en) | Global leakage power optimization | |
US7155696B2 (en) | Interconnection routing method | |
US7191416B2 (en) | System and method for modifying integrated circuit hold times | |
CN114896941B (zh) | 一种时钟树的布局优化方法、优化装置和相关设备 | |
US9292651B2 (en) | System for partitioning integrated circuit design based on timing slack | |
US7024647B2 (en) | System and method for designing a circuit wherein a single timing analysis ensures adequate performance in multiple applications | |
US7596483B1 (en) | Determining timing of integrated circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |