CN117094276A - 时序路径修复方法、装置、电子设备及存储介质 - Google Patents
时序路径修复方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117094276A CN117094276A CN202311160009.4A CN202311160009A CN117094276A CN 117094276 A CN117094276 A CN 117094276A CN 202311160009 A CN202311160009 A CN 202311160009A CN 117094276 A CN117094276 A CN 117094276A
- Authority
- CN
- China
- Prior art keywords
- area
- margin
- constraint
- chip
- timing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000008439 repair process Effects 0.000 claims abstract description 77
- 238000013461 design Methods 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 238000004804 winding Methods 0.000 claims description 82
- 238000011156 evaluation Methods 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002040 relaxant effect Effects 0.000 claims description 3
- 238000012300 Sequence Analysis Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011295 pitch Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 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/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)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供一种时序路径修复方法、装置、电子设备及存储介质,涉及集成电路设计领域。时序路径修复方法包括:基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件;对各所述区域中不满足所述预设阈值条件的各目标区域增加约束;增加的约束用于在时序违例路径修复时限制所述约束所属的目标区域内的电路单元的调整方式;基于各区域的约束对所述芯片内的时序违例路径的进行修复。通过对芯片中布局裕度和布线裕度不满足预设阈值条件的区域添加约束,限制其参与时序路径修复时的调整方式,以降低对该部分区域进行调整引发的新问题,从而提高修复效率。
Description
技术领域
本申请涉及集成电路设计领域,具体而言,涉及一种时序路径修复方法、装置、电子设备及存储介质。
背景技术
在对芯片版图设计的布局布线完成后,会对该芯片时序进行验证,若时序不满足要求,即存在时序违例的情况,则需对涉及时序违例的电路路径进行调整与修复,以使得芯片的时序满足要求。
目前,在进行时序优化时,会在版图中未设置电路单元的区域插入新的电路单元或调整电路单元,插入新的电路单元会占用芯片的空余位置,调整电路单元可能使得电路单元原本的面积发生变化,从而占用更多芯片面积。而被占用的位置可能用于布线,该位置可能存在着较多的绕线,若被占用,则可能使得该区域的绕线和电路单元出现短路,或不符合物理设计规则,需人工耗时间去解决,影响时序违例的修复效率。
发明内容
有鉴于此,本申请旨在提供一种时序路径修复方法、装置、电子设备及存储介质,以提高时序违例路径的修复效率。
第一方面,本申请实施例提供一种时序路径修复方法,包括:基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;所述芯片被划分为多个区域;对于每一个所述区域:该区域的布局裕度表征该区域的空余布局空间,该区域的布线裕度表征该区域的空余布线空间;所述芯片设计文件包括所述芯片的电路单元信息和绕线信息;所述预设裕度计算规则包括:电路单元信息与布局裕度之间的计算关系,以及绕线信息与布线裕度之间的计算关系;判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件;对各所述区域中不满足所述预设阈值条件的各目标区域增加约束;增加的所述约束用于在时序违例路径修复时限制所述约束所属的目标区域内的电路单元的调整方式;基于各所述区域的约束对所述芯片内的时序违例路径的进行修复。
本申请实施例中,在进行时序违例路径修复前,考虑布局裕度和布线裕度,对布局裕度和布线裕度不满足预设阈值条件的区域增加约束,限制其参与时序违例路径修复时的调整方式,以减少在修复时因空间不足引起新的问题,从而减少时序违例路径修复所需的迭代次数,提高修复效率,进而提高芯片设计效率。
一实施例中,所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:对各所述目标区域增加第一约束;所述第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序。
本申请实施例中,为目标区域增加第一约束,使其在参与时序违例路径修复时不会因电路单元面积变化从而引发新的问题,由此,可以减少时序违例路径修复所需的迭代次数,提高修复效率。
一实施例中,所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:对各所述目标区域增加第二约束;所述第二约束禁止通过在所述时序违例路径在该目标区域的绕线中插入新的电路单元修复时序。
本申请实施例中,对目标区域增加第二约束,使得修复时禁止在该区域的绕线中间插入新的电路单元,从而避免新增电路单元对该区域已有的电路单元和绕线造成影响,从而有效减少因修复时序违例路径而引发的新的问题,减少时序违例路径修复所需的迭代次数,提高修复效率。
一实施例中,所述预设阈值条件包括第一阈值、第二阈值、第三阈值和第四阈值,所述第三阈值小于等于所述第一阈值,所述第四阈值小于所述第二阈值;所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:对于任意一个所述目标区域,若该目标区域的布局裕度在所述第一阈值和所述第三阈值之间,和/或,该目标区域的布线裕度在所述第二阈值和所述第四阈值之间,则对该目标区域增加第一约束;所述第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序;若该目标区域的布局裕度小于所述第三阈值,和/或,该目标区域的布线裕度小于所述第四阈值之间,则对该目标区域增加第二约束;所述第二约束禁止通过在所述时序违例路径在该目标区域的绕线中插入新的电路单元修复时序。
本申请实施例中,对于不同裕度下目标区域,分别设置不同约束,对于一些裕度较大的目标区域,设置第一约束,以在该区域可以采用更多类型的修复方式,提高修复效率。对于一些裕度较小的目标区域,设置第二约束,严格禁止在该目标区域绕线中增加电路单元,以避免对该区域原有的电路单元和绕线造成影响,从而有效降低新问题发生的可能性,以提高时序违例路径修复效率。
一实施例中,所述基于各所述区域的约束对所述芯片内的时序违例路径的进行修复之后,所述方法还包括:若所述芯片内存在时序违例路径无法修复的情况,则放宽所述预设阈值条件。
本申请实施例中,若时序违例路径时钟无法修复,则可能是当前的预设阈值条件设置太小,使得一些裕度较大的区域不允许被调整,在此类区域上进行时序违例路径的修复较为复杂,可能需要调整过多的区域,容易引发新的问题,因此,可以放宽预设阈值条件,减少不满足预设阈值条件的区域,以减少修复时引发的新问题。
一实施例中,所述基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度,包括:针对每一所述区域:从所述芯片设计文件提取该区域的所述电路单元信息;所述电路单元信息包括的该区域内的电路单元类型、各所述电路单元类型对应的数目及各所述电路单元类型占用芯片的面积;基于所述电路单元信息与布局裕度之间的计算关系、所述电路单元类型、所述数目、所述面积计算该区域的布局裕度;以及,从所述芯片设计文件提取该区域的所述绕线信息,所述绕线信息包括通过该区域的绕线数量、绕线线宽、线间距及该区域的边长;基于绕线信息与布线裕度之间的计算关系、所述绕线数量、所述绕线线宽、所述线间距及该区域的边长计算该区域的布线裕度。
本申请实施例中,布线裕度与绕线的数量、线宽、线间距、区域面积等相关,因此,可以基于绕线信息与布线裕度之间的计算关系、绕线数量、绕线线宽、线间距及该区域的边长实现该区域布线裕度的计算。通过计算布局裕度和布线裕度,使得在设置约束时考虑布局裕度和布线裕度均进行考虑,相较于仅考虑布局裕度,可以有效减少对一些布线资源紧张的区域进行变动,从而减少布线资源紧张的区域因时序违例路径修复导致的新的问题。
一实施例中,所述多个区域按照预设的目标尺寸划分得到;其中,所述目标尺寸基于以下方式得到:利用多个的预设尺寸分别将所述芯片划分为多个区域;计算各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度;根据各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度,确定出各所述预设尺寸对应的划分评价值;所述划分评价值最高的预设尺寸为所述目标尺寸。
芯片划分的方式有多种,不同划分方式下的布局裕度和布线裕度不同,若被划分后被约束的区域过多,则修复时的可选余地较小,对各区域的利用率较低,本申请实施例中,选择划分评价值最高的预设尺寸为目标尺寸,使划分后各区域的布局裕度和布线裕度较大,以降低被约束的区域的比例,从而便于修复时区域的选择,提高区域的利用率。
一实施例中,所述方法还包括:对所述芯片进行静态时序分析,确定所述芯片中的所有时序违例路径及各所述时序违例路径中存在时序违例的电路单元和存在时序违例的绕线;对各所述时序违例路径涉及到的区域进行标记;对存在时序违例的电路单元和所述存在时序违例的绕线进行标记。
一实施例中,对时序违例路径涉及区域、存在时序违例的电路单元、绕线进行标记,以便于用户快速获取时序违例路径中所存在的问题,从而便于用户确认当前所采用的时序违例路径的修复方式是否合理,以对不合理的修复方式及时调整,从而提高时序违例路径的修复效率。
第二方面,本申请实施例还提供一种时序路径修复装置,包括:裕度分析模块,用于基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;所述芯片被划分为多个区域;对于每一个所述区域:该区域的布局裕度表征该区域的空余布局空间,该区域的布线裕度表征该区域的空余布线空间;所述芯片设计文件包括所述芯片的电路单元信息和绕线信息;所述预设裕度计算规则包括:电路单元信息与布局裕度之间的计算关系,以及绕线信息与布线裕度之间的计算关系;判断模块,用于判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件;约束模块,用于对各所述区域中不满足所述预设阈值条件的各目标区域增加约束;增加的所述约束用于在时序违例路径修复时限制所述约束所属的目标区域内的电路单元的调整方式;修复模块,用于基于各所述区域的约束对所述芯片内的时序违例路径的进行修复。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行,以执行如第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如第一方面所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种时序路径修复方法的流程图;
图2为本申请实施例提供的区域划分示意图;
图3为本申请实施例提供的一种约束示意图;
图4为本申请实施例提供的一种修复示意图;
图5为本申请实施例提供的一种时序路径修复装置的示意图;
图6为本申请实施例提供的一种电子设备的示意图。
图标:时序路径修复装置200;裕度分析模块210;判断模块220;约束模块230;修复模块240;电子设备300;处理器310;存储器320。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参阅图1,图1为本申请一实施例提供的一种时序路径修复方法的流程图。时序路径修复方法包括:
S110,基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度。
本实施例中,芯片被划分为多个区域。对于每一个区域:该区域的布局裕度表征该区域的空余布局空间,可以用该区域电路单元占用的面积与该区域的总面积进行计算得到,相应地,该区域的布线裕度表征该区域的空余布线空间,可以用实际通过该区域电路单元绕线与该区域可通过的总绕线数量进行计算得到。
在芯片的后端设计中,时序路径修复是在芯片中电路设计完成并在布局布线完成后进行,此时,芯片已经有完整的结构,那么,对于一个完整的芯片,可以对其进行划分,将其划分为多个区域。
如图2所示,对于一个芯片,可以按照预设的尺寸进行划分,如图2,可以将40um×40um的芯片划分为16个10um×10um的区域。其中,不同类型的芯片可能具有不同的尺寸,上述仅为示例,芯片具体尺寸会在芯片设计文件中完整地记录,在此不再展开。
在本申请实施例中,芯片设计文件会记录芯片的各项参数,包括芯片中的各电路单元的位置、数量、类型及占用面积等电路单元信息,以及还包括绕线的位置、数量、线宽、线间距等绕线信息。例如,芯片设计文件可以包括DEF(Design Exchange Format,设计交换格式文件)文件和LEF(Library Exchange Format,库交换格式文件)文件,或芯片设计文件可以包括GDS(Graphic Data System,图形数据系统)文件。芯片设计文件还可以是其他包括电路单路单元信息和绕线信息的文件,在此不再展开。
一实施例中,对于任一区域,计算该区域布局裕度的过程可以包括:从芯片设计文件提取该区域的电路单元信息;基于电路单元信息与布局裕度之间的计算关系和电路单元信息中的电路单元类型、数目、面积计算该区域的布局裕度。
如前所述,芯片设计文件中的电路单元信息可以包括电路单元的位置信息,根据位置信息,可以确定该电路单元所属的区域,由此,可以确定出芯片各个区域内所有的电路单元内容、数量等信息。
同时,在芯片设计时,会对芯片各电路单元的面积进行定义,例如,在一种芯片中,所设置的缓存器电路单元占用芯片面积为8.78平方微米。各电路单元占用芯片面积均会定义在芯片设计文件中,因此,通过芯片设计文件,可以提取包括该区域内的电路单元类型、各电路单元类型对应的数目及各电路单元类型占用芯片的面积在内的各种电路单元信息。
相应地,布局裕度等于该区域总面积减去各电路单元占用的总面积的差值与该区域的总面积,即:
其中,区域的总面积可以根据划分区域的尺寸进行计算。某一电路单元在一个区域中占用的面积等于该电路单元在该区域中的数量乘以该类型电路单元占用芯片的面积,各电路单元占用的总面积等于该区域所有电路单元在该区域占用的面积之和。
同理,一实施例中,对于任一区域,计算该区域布线裕度的过程包括:从芯片设计文件提取该区域的绕线信息;基于绕线信息与布线裕度之间的计算关系、绕线数量、绕线线宽、线间距及该区域的边长计算该区域的布线裕度。
如前所述,芯片设计文件还可以包括绕线信息,绕线信息包括绕线的位置、数量、线宽、线间距等绕线信息,通过绕线的位置,可以确定绕线所经过的区域,进而可以确定出各区域所经过的绕线的数量,对于各区域而言,可以确定实际穿过该区域的绕线条数。同理,芯片设计文件中还包括绕线的线宽、线间距等信息,可以直接从芯片设计文件中提取得到。该区域可通过的绕线总数等于区域边长除以线宽度、线间距之和。
在获得绕线信息之后,可以计算该区域的布线裕度,布线裕度等于该区域可通过的绕线总数减去实际穿过该区域的绕线条数之差与该区域可通过的绕线总数之比,即:
通过上述方式,可以计算得到布局裕度和布线裕度。
在一些实施例中,在获得各区域的布线裕度和布局裕度后,可以将布局裕度和布线裕度标记到对应区域上,以便于用户获取布局裕度和布线裕度的信息,从而便于用户确定时序违例修复过程中可能出现的问题。如图3所示,可以在各区域标记布局裕度和布线裕度。
布局裕度和布线裕度与划分的区域面积相关,实际场景中,芯片设计各部分的电路单元和绕线不同,以不同的尺寸划分芯片计算得到的布局裕度和布线裕度也存在差异。因此,在实际划分时,需确定一目标尺寸,以使得通过目标尺寸划分后的区域能够保持各区域之间的布局裕度和布线均能维持一较大值,从而便于时序违例路径修复时的修复位置选择。
在一些实施例中,芯片所划分的多个区域可以按照预设的目标尺寸划分得到。其中,目标尺寸可以基于以下方式得到:利用多个的预设尺寸分别将芯片划分为多个区域;计算各预设尺寸下芯片的各区域的布局裕度和布线裕度;根据各预设尺寸下芯片的各区域的布局裕度和布线裕度,确定出各预设尺寸对应的划分评价值;划分评价值最高的预设尺寸为目标尺寸。
示例性的,对于40um×40um的芯片,可以分别按照4um×4um、5um×5um、10umX10um等尺寸进行划分。
在本实施例中,可以将不同的尺寸作为预设尺寸,使用不同的预设尺寸对同一芯片进行划分,并分别计算不同预设尺寸划分后各区域对应的布局裕度和布线裕度。再利用各区域的布局裕度和布线裕度计算划分评价值,选择划分评价值最高者对应的预设尺寸为目标尺寸。其中,对于一个预设尺寸对应的划分评价值,可以是利用该尺寸划分得到的所有区域布局裕度或布线裕度计算平方根、平均值、加权平均、协方差等。
芯片划分的方式有多种,不同划分方式下的布局裕度和布线裕度不同,若被划分后被约束的区域过多,则修复时的可选余地较小,对各区域的利用率较低,因此,在本实施例中,计算布局裕度和布线裕度的划分评价值,并选择划分评价值最高的预设尺寸为目标尺寸,使划分后各区域的布局裕度和布线裕度较大,以降低被约束的区域的比例,从而便于修复时区域的选择,提高区域的利用率。其中,布局裕度和布线裕度是相较该区域空闲空间的比例,而非具体尺寸。
在一些实施例中,在划分区域之后,可以对芯片进行静态时序分析,确定芯片中的所有时序违例路径及各所述时序违例路径中存在时序违例的电路单元和存在时序违例的绕线;对各时序违例路径涉及到的区域进行标记,以及对存在时序违例的电路单元和存在时序违例的绕线进行标记。
静态时序分析用于确定时序违例路径及时序违例的电路单元、绕线等,具体内容可以参考现有技术,在此不再展开。
在确定时序违例路径后,可以将各时序违例路径涉及到的区域进行标记。标记方式包括但不限于数字、符号、线条等,对于不同时序违例路径,可以使用不同颜色的连线,不同的符号进行区分。例如,如图3所示,时序违例路径包括左上、左下、中下、右下及右上共5个区域,通过线条进行连接,其中,小矩形可以表征存在时序违例的电路单元。
在一些实施例中,还可以将时序违例的电路单元或绕线的名称记录在该区域内。
通过对时序违例电路进行标记,便于用户在进行时序违例修复时分析电路,以获知时序违例电路的信息,确定问题所在,从而提高时序违例电路的修复效率。
S120,判断各区域的布局裕度和布线裕度是否满足预设阈值条件。
本实施例中,预设阈值条件为预先设置的允许插入新的电路单元而不影响原有电路单元、绕线工作,且不影响时序的裕度值。
本实施例中,若一个区域对应的布局裕度或布线裕度不满足预设阈值条件的区域,则表征该区域布设电路单元或布设绕线的空间不足,则在进行时序违例路径修复时,需限制该区域内进行修复时所采用的调整方式。
一实施例中,布局裕度和布线裕度可以分别设置对应的阈值。示例性地,布局裕度对应的阈值为第一阈值,布线裕度对应的裕度为第二阈值。示例性地,第一阈值可以是15%,第二阈值可以是10%。
在一些实施例中,还可以为设置阶梯式的阈值,并对应不同阶梯的阈值设置不同的限制方式。例如,对应布局裕度可以设置第一阈值和第三阈值,第三阈值小于等于第一阈值,对应布线裕度可以设置第二阈值和第四阈值,第四阈值小于第三阈值。示例性地,第一阈值可以是15%,第二阈值可以是10%,第三阈值可以是12%,第四阈值可以是8%,上述仅为示例,不应称为对本申请的限制,不同芯片的设置方式不同,在此不再一一说明。
S130,对各区域中不满足预设阈值条件的各目标区域增加约束。
本实施例中,增加的约束用于在时序违例路径修复时限制约束所属的目标区域内的电路单元的调整方式。
在时序违例路径修复时,通常会对该时序违例路径上的电路单元进行调整,包括插入或删除部分电路单元,调整部分电路单元的结构,这些均可能影响电路单元在芯片中的占用面积,从而使得电路单元所在区域的布局裕度降低。同时,由于电路单元的调整,绕线可能会随之调整,出现增加部分绕线或随绕线位置的变化增加长度等,使得布线裕度发生变化。而布局裕度和布线裕度的不足则可能出现短路、不符合设计规则等情况。
因此,在进行时序违例路径修复时,需要限制在一些裕度不足的区域进行调整。如限制在该区域增加电路单元,限制增加该部分电路单元占用面积增加等。
在本申请的实施例中,若存在区域为不满足预设阈值条件的目标区域,例如若某区域的布局裕度小于第一阈值或布线裕度小于第二阈值,则可以对该区域施加约束。
一实施例中,可以对各目标区域增加第一约束;第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序。
由于第一约束禁止通过增大该目标区域内电路单元的面积,由此,在进行修复时,仅能缩小该部分电路单元的面积,或将新增的电路单元接入到其他区域,而缩小电路面积和将电路单元接入其他区域,均不影响该目标区域的绕线,可以有效降低因时序违例修复导致绕线发生变化,进而减少因绕线发生变化引发的新的时序违例,从而减少修复时的迭代过程,提高修复效率。
一实施例中,可以对各目标区域增加第二约束;第二约束禁止通过在时序违例路径在该目标区域的绕线中插入新的电路单元修复时序。
本实施例中,第二约束也可以被称为锁定,即在该区域内,禁止在任何绕线中间插入电路单元。可以理解,插入电路单元会占用一定的芯片面积,会使得布局裕度和布线裕度进一步降低,若该区域本身的空余空间就较少,新的电路单元占用部分面积后,绕线应随之调整,甚至无法调整,引起新的时序违例问题或短路等。因此,对于一些裕度不足的区域,可以增加第二约束,禁止新的电路单元插入。
在本申请的一些实施例中,预设阈值条件包括第一阈值、第二阈值、第三阈值和第四阈值,第三阈值小于第一阈值,第四阈值小于第二阈值,则对于任意一个目标区域,若该目标区域的布局裕度在第一阈值和所述第三阈值之间,和/或,该目标区域的布线裕度在第二阈值和第四阈值之间,则对该目标区域增加第一约束;若该目标区域的布局裕度小于第三阈值,和/或,该目标区域的布线裕度小于第四阈值之间,则对该目标区域增加第二约束。
例如,如图3所示,对于第一排的所有区域和右下角的区域,布局裕度均大于第一阈值,布线裕度大于第二阈值,满足预设阈值条件。而左下区域,布局裕度小于第一阈值,则可以对该区域设置第一约束,对于中下区域,布线裕度小于第四阈值,则可以设置第二约束。
对应不同的布局裕度和布线裕度,分别设置不同的约束,以在裕度允许的条件下,设置较宽的第一约束,从而降低时序违例路径的修复要求和难度,以及在裕度不足的条件下,设置较严的第二约束,在降低时序违例路径修复导致新问题的可能性。
S140,基于各区域的约束对芯片内的时序违例路径的进行修复。
本实施例中,对时序违例路径进行修复时,可以是对时序违例路径上已有的电路单元进行调整,或是在时序违例路径增加新的电路单元等。例如,如图4所示,对于时序违例路径ABCD,可以在电路单元A、B、C和D任意相邻两者之间插入电路单元E,以实现时序的调整与修复,例如在C和D之间插入E,使得路径变为ABCED。
在本申请实施例中,修复时,需根据各区域的约束进行,若目标区域存在第一约束,则禁止扩大该目标区域内电路单元的面积。例如,如图3所示,左下角的区域进行了第一标记,则该区域内电路单元进行通过扩大占用芯片面积的方式调整时序。
同理,图3第二排中间的区域被第二约束,则在表征左下角与右下角两个区域之间的路径上无法添加新的电路单元进去。仅能从右下角和右上角之间的位置,或左下角与左上角之间的位置添加新的电路单元。
在一些实施例中,若芯片内存在时序违例路径存在无法修复的情况,则放宽预设阈值条件。
例如,布局裕度的第一阈值为20%,则布局裕度大于20%则视为满足预设阈值条件,无需添加约束,小于等于20%则视为不满足预设阈值条件,需增加约束,而裕度小于等于20%过多,导致时序违例路径修复时需要使插入的电路单元设置在较远的位置,使得绕线可能发生较大变化,还可能影响经过的区域,从而使得中间的一些区域出现问题。故可以放宽预设阈值条件,使得更多的裕度能够支持调整区域能够参与进行时序路径修复的过程中,以减少新问题发生的可能性,提高修复效率。
本实施例中,放宽预设阈值条件是指减小阈值。示例性地,可以缩小第一阈值和第二阈值的值,如第一阈值从15%改为10%,原本满足预设条件的范围从15%至100%,放宽至10%至100%。而对于不满足预设阈值条件,则从原本的0至15%缩小至0至10%。
此外,时序违例路径的修复可能会进行多次迭代,每次修复时,若划分区域的尺寸与方式不变,且存在区域内的电路单元、绕线未发生变化,则可以沿用前一次计算得到的布局裕度和布线裕度,也可以重新计算,用户可以根据需求设置。
本申请实施例中,在进行时序违例路径修复前,考虑布局裕度和布线裕度,对布局裕度和布线裕度不满足预设阈值条件的区域增加约束,限制其参与时序违例路径修复,以减少在修复时因空间不足引起新的问题,从而减少时序违例路径修复所需的迭代次数,提高修复效率,进而提高芯片设计效率。
基于同一发明构思,本申请实施例还提供一种时序路径修复装置。请参阅图5,图5为本申请一实施例提供的一种时序路径修复装置的示意图。时序路径修复装置200包括:裕度分析模块210、判断模块220、约束模块230和修复模块240。
裕度分析模块210,用于基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;芯片被划分为多个区域;对于每一个区域:该区域的布局裕度表征该区域的空余布局空间,该区域的布线裕度表征该区域的空余布线空间;芯片设计文件包括所述芯片的电路单元信息和绕线信息;预设裕度计算规则包括:电路单元信息与布局裕度之间的计算关系,以及绕线信息与布线裕度之间的计算关系。
判断模块220,用于判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件。
约束模块230,用于对各区域中不满足预设阈值条件的各目标区域增加约束;增加的约束用于在时序违例路径修复时限制约束所属的目标区域内的电路单元的调整方式。
修复模块240,用于基于各区域的约束对芯片内的时序违例路径的进行修复。
约束模块230,还用于对各目标区域增加第一约束;第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序。
约束模块230,还用于对各目标区域增加第二约束;第二约束禁止通过在时序违例路径在该目标区域的绕线中插入新的电路单元修复时序。
判断模块220预设有第一阈值、第二阈值、第三阈值和第四阈值,第三阈值小于等于第一阈值,第四阈值小于第二阈值,判断模块220还用于判断区域的布局裕度和第一阈值、第三阈值之间的关系,以及判断区域的布线裕度和第二阈值、第四阈值之间的关系。
对于任意一个所述目标区域,约束模块230还用于若该目标区域的布局裕度在第一阈值和第三阈值之间,和/或,该目标区域的布线裕度在第二阈值和第四阈值之间,则对该目标区域增加第一约束;第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序;若该目标区域的布局裕度小于第三阈值,和/或,该目标区域的布线裕度小于第四阈值之间,则对该目标区域增加第二约束;第二约束禁止通过在时序违例路径在该目标区域绕线中上插入新的电路单元修复时序。
一实施例中,判断模块220还用于若芯片内存在时序违例路径无法修复的情况,则放宽预设阈值条件。
一实施例中,针对每一区域,裕度分析模块210还用于从芯片设计文件提取该区域的电路单元信息;电路单元信息包括的该区域内的电路单元类型、各电路单元类型对应的数目及各电路单元类型占用芯片的面积;基于电路单元信息与布局裕度之间的计算关系、电路单元类型、数目、面积计算该区域的布局裕度;以及,从芯片设计文件提取该区域的绕线信息,绕线信息包括通过该区域的绕线数量、绕线线宽、线间距及该区域的边长;基于绕线信息与布线裕度之间的计算关系、绕线数量、绕线线宽、线间距及该区域的边长计算该区域的布线裕度。
一实施例中,多个区域按照预设的目标尺寸划分得到;裕度分析模块210可以基于以下方式得到目标尺寸:利用多个的预设尺寸分别将所述芯片划分为多个区域;计算各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度;根据各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度,确定出各所述预设尺寸对应的划分评价值;所述划分评价值最高的预设尺寸为所述目标尺寸。
一实施例中,判断模块220还用于对芯片进行静态时序分析,确定芯片中的所有时序违例路径及各时序违例路径中存在时序违例的电路单元和存在时序违例的绕线;对各时序违例路径涉及到的区域进行标记;对存在时序违例的电路单元和所述存在时序违例的绕线进行标记。
可以理解,时序路径修复装置200所实现的功能与前述时序路径修复方法相似,具体内容可以参考前述时序路径修复方法,在此不再展开。
请参照图6,基于同一发明构思,本申请实施例还提供一种电子设备300,其可以作为前述时序路径修复方法的执行主体,即其可以是服务端设备,包括:处理器310和与处理器310通信连接的存储器320,并且可以利用处理器310和存储器320在内的资源布置多个虚拟系统。
在本申请实施例中,存储器320可以存储有可被处理器310执行的计算机可读指令,计算机可读指令被处理器310执行,以使处理器310能够执行前述实施例中的时序路径修复方法。
处理器310和存储器320可以通过通信总线连接。
处理器310可以是一种集成电路芯片,具有信号处理能力。处理器310可以是通用处理器,包括CPU、NP(Network Processor,网络处理器)等;还可以是数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器320可以包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read Only Memory,只读存储器),PROM(Programmable Read-Only Memory,可编程只读存储器),EPROM(Erasable Programmable Read-Only Memory,可擦除编程只读存储器),EEPROM(Electric Erasable Programmable Read-Only Memory,带电可擦除可编程只读存储器)等。
可以理解,电子设备300还可以包括更多自身所需的通用模块,在本申请实施例不作一一介绍。
基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如SSD(Solid State Disk,固态硬盘))等。
在本申请所提供的实施例中,应该理解到,所揭露的方法和装置,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的。在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (11)
1.一种时序路径修复方法,其特征在于,包括:
基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;所述芯片被划分为多个区域;对于每一个所述区域:该区域的布局裕度表征该区域的空余布局空间,该区域的布线裕度表征该区域的空余布线空间;所述芯片设计文件包括所述芯片的电路单元信息和绕线信息;所述预设裕度计算规则包括:电路单元信息与布局裕度之间的计算关系,以及绕线信息与布线裕度之间的计算关系;
判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件;
对各所述区域中不满足所述预设阈值条件的各目标区域增加约束;增加的所述约束用于在时序违例路径修复时限制所述约束所属的目标区域内的电路单元的调整方式;
基于各所述区域的约束对所述芯片内的时序违例路径的进行修复。
2.根据权利要求1所述的时序路径修复方法,其特征在于,所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:
对各所述目标区域增加第一约束;所述第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序。
3.根据权利要求1所述的时序路径修复方法,其特征在于,所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:
对各所述目标区域增加第二约束;所述第二约束禁止通过在所述时序违例路径在该目标区域的绕线中插入新的电路单元修复时序。
4.根据权利要求1所述的时序路径修复方法,其特征在于,所述预设阈值条件包括第一阈值、第二阈值、第三阈值和第四阈值,所述第三阈值小于等于所述第一阈值,所述第四阈值小于所述第二阈值;
所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:
对于任意一个所述目标区域,
若该目标区域的布局裕度在所述第一阈值和所述第三阈值之间,和/或,该目标区域的布线裕度在所述第二阈值和所述第四阈值之间,则对该目标区域增加第一约束;所述第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序;
若该目标区域的布局裕度小于所述第三阈值,和/或,该目标区域的布线裕度小于所述第四阈值之间,则对该目标区域增加第二约束;所述第二约束禁止通过在所述时序违例路径在该目标区域的绕线中上插入新的电路单元修复时序。
5.根据权利要求1所述的时序路径修复方法,其特征在于,所述基于各所述区域的约束对所述芯片内的时序违例路径的进行修复之后,所述方法还包括:
若所述芯片内存在时序违例路径无法修复的情况,则放宽所述预设阈值条件。
6.根据权利要求1所述的时序路径修复方法,其特征在于,所述基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度,包括:
针对每一所述区域:
从所述芯片设计文件提取该区域的所述电路单元信息;所述电路单元信息包括的该区域内的电路单元类型、各所述电路单元类型对应的数目及各所述电路单元类型占用芯片的面积;基于所述电路单元信息与布局裕度之间的计算关系、所述电路单元类型、所述数目、所述面积计算该区域的布局裕度;
以及,从所述芯片设计文件提取该区域的所述绕线信息,所述绕线信息包括通过该区域的绕线数量、绕线线宽、线间距及该区域的边长;基于绕线信息与布线裕度之间的计算关系、所述绕线数量、所述绕线线宽、所述线间距及该区域的边长计算该区域的布线裕度。
7.根据权利要求1所述的时序路径修复方法,其特征在于,所述多个区域按照预设的目标尺寸划分得到;其中,所述目标尺寸基于以下方式得到:
利用多个的预设尺寸分别将所述芯片划分为多个区域;
计算各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度;
根据各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度,确定出各所述预设尺寸对应的划分评价值;所述划分评价值最高的预设尺寸为所述目标尺寸。
8.根据权利要求1-7任一项所述的时序路径修复方法,其特征在于,所述方法还包括:
对所述芯片进行静态时序分析,确定所述芯片中的所有时序违例路径及各所述时序违例路径中存在时序违例的电路单元和存在时序违例的绕线;
对各所述时序违例路径涉及到的区域进行标记;
对存在时序违例的电路单元和所述存在时序违例的绕线进行标记。
9.一种时序路径修复装置,其特征在于,包括:
裕度分析模块,用于基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;所述芯片被划分为多个区域;对于每一个所述区域:该区域的布局裕度表征该区域的空余布局空间,该区域的布线裕度表征该区域的空余布线空间;所述芯片设计文件包括所述芯片的电路单元信息和绕线信息;所述预设裕度计算规则包括:电路单元信息与布局裕度之间的计算关系,以及绕线信息与布线裕度之间的计算关系;
判断模块,用于判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件;
约束模块,用于对各所述区域中不满足所述预设阈值条件的各目标区域增加约束;增加的所述约束用于在时序违例路径修复时限制所述约束所属的目标区域内的电路单元的调整方式;
修复模块,用于基于各所述区域的约束对所述芯片内的时序违例路径的进行修复。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1-8任一项所述的时序路径修复方法。
11.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-8任一项所述的时序路径修复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311160009.4A CN117094276A (zh) | 2023-09-08 | 2023-09-08 | 时序路径修复方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311160009.4A CN117094276A (zh) | 2023-09-08 | 2023-09-08 | 时序路径修复方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117094276A true CN117094276A (zh) | 2023-11-21 |
Family
ID=88781783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311160009.4A Pending CN117094276A (zh) | 2023-09-08 | 2023-09-08 | 时序路径修复方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117094276A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117494654A (zh) * | 2023-12-28 | 2024-02-02 | 成都行芯科技有限公司 | 电压降签核方法、电子设备及存储介质 |
CN117709294A (zh) * | 2024-02-05 | 2024-03-15 | 英诺达(成都)电子科技有限公司 | 集成电路的约束验证方法、装置、电子设备、介质及产品 |
CN118171634A (zh) * | 2024-04-10 | 2024-06-11 | 玖矽科技(无锡)有限公司 | 一种基于寄存器区域约束的时序优化方法、系统、设备及介质 |
-
2023
- 2023-09-08 CN CN202311160009.4A patent/CN117094276A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117494654A (zh) * | 2023-12-28 | 2024-02-02 | 成都行芯科技有限公司 | 电压降签核方法、电子设备及存储介质 |
CN117494654B (zh) * | 2023-12-28 | 2024-05-14 | 成都行芯科技有限公司 | 电压降签核方法、电子设备及存储介质 |
CN117709294A (zh) * | 2024-02-05 | 2024-03-15 | 英诺达(成都)电子科技有限公司 | 集成电路的约束验证方法、装置、电子设备、介质及产品 |
CN117709294B (zh) * | 2024-02-05 | 2024-04-30 | 英诺达(成都)电子科技有限公司 | 集成电路的约束验证方法、装置、电子设备、介质及产品 |
CN118171634A (zh) * | 2024-04-10 | 2024-06-11 | 玖矽科技(无锡)有限公司 | 一种基于寄存器区域约束的时序优化方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117094276A (zh) | 时序路径修复方法、装置、电子设备及存储介质 | |
Yang et al. | Congestion estimation during top-down placement | |
US9396301B1 (en) | Method, system, and computer program product for interconnecting circuit components with track patterns for electronic circuit designs | |
CN112214960B (zh) | 一种兼顾集成电路时序的冗余金属填充方法及系统 | |
US8185856B2 (en) | Manufacturing method, manufacturing program and manufacturing system for adjusting signal delay in a semiconductor device | |
US20080209372A1 (en) | Estimation Of Process Variation Impact Of Slack In Multi-Corner Path-Based Static Timing Analysis | |
US7451416B2 (en) | Method and system for designing an electronic circuit | |
CN113609626B (zh) | 一种电压降违例修复方法及相关装置 | |
CN112347732B (zh) | 一种集成电路分层走线规划方法、装置、存储介质及设备 | |
JP2007026170A (ja) | 半導体集積回路の自動レイアウト方法、自動レイアウトプログラム、および自動レイアウト装置 | |
JP2006164132A (ja) | 半導体集積回路のネットリスト作成方法およびレイアウト設計方法 | |
US7793238B1 (en) | Method and apparatus for improving a circuit layout using a hierarchical layout description | |
US20090019412A1 (en) | Design method and design apparatus for semiconductor integrated circuit | |
US10296695B1 (en) | Method, system, and computer program product for implementing track patterns for electronic circuit designs | |
Kulkarni et al. | Methodology for Congestion Reduction and Timing Closure During Placement | |
CN116167330A (zh) | 时钟树综合方法、装置、电子设备及计算机可读存储介质 | |
US7010770B2 (en) | Method of wide wire identification | |
CN105868438A (zh) | 重新分配单元密度的方法及计算机 | |
TW201030546A (en) | System and method of connecting a macro cell to a system power supply | |
JP2006190062A (ja) | 半導体集積回路のフロアプラン方法および計算機システム | |
JP2938068B2 (ja) | 自動配線設計における配線経路探索方法及び配線経路探索プログラムを記憶した記憶媒体 | |
CN118095186B (zh) | 天线效应违例修复方法和装置 | |
US7076759B2 (en) | Methodology for generating a modified view of a circuit layout | |
CN116976272B (zh) | 一种集成电路设计优化布线方法、电子设备及存储介质 | |
JP2005063275A (ja) | 集積回路のレイアウト装置及び方法 |
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 |