CN113343613B - 考虑被不利影响的约束的工程变更命令 - Google Patents
考虑被不利影响的约束的工程变更命令 Download PDFInfo
- Publication number
- CN113343613B CN113343613B CN202110190149.0A CN202110190149A CN113343613B CN 113343613 B CN113343613 B CN 113343613B CN 202110190149 A CN202110190149 A CN 202110190149A CN 113343613 B CN113343613 B CN 113343613B
- Authority
- CN
- China
- Prior art keywords
- constraint
- timing
- target
- netlist
- violation
- 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
- 230000002411 adverse Effects 0.000 title claims abstract description 25
- 230000008859 change Effects 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000008439 repair process Effects 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 17
- 230000007704 transition Effects 0.000 claims description 5
- 230000014759 maintenance of location Effects 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims 1
- 238000013461 design Methods 0.000 description 42
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 13
- 238000013459 approach Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 9
- 238000011065 in-situ storage Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 239000000047 product Substances 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000012938 design process Methods 0.000 description 3
- 238000001459 lithography Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013440 design planning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000009291 secondary effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 235000013599 spices Nutrition 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer 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
-
- 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本公开的实施例涉及考虑被不利影响的约束的工程变更命令。在某些实施例中,一种方法包括以下步骤。工程变更命令(ECO)用于修复对集成电路的目标网表上的目标约束的违反。集成电路的相关网表上的约束被标识。所标识的约束被修复对目标约束的违反不利影响。并发地,处理器修改目标网表以修复对目标约束的违反,并且修改相关网表以防止对被不利影响的约束的违反。
Description
相关申请
本申请要求于2020年02月18日提交的美国临时申请号62/978220、“EngineeringChange Orders with In-Situ Refinement and Recovery”的权益,通过引用以其整体合并于此。
技术领域
本公开涉及集成电路的设计中的工程变更命令。
背景技术
工程变更命令(ECO)是集成电路的设计中的重要一步。ECO是对集成电路设计的补充或改变,它们出现在设计过程的后期。大多数集成电路可能已经完成或接近完成,这意味着在做出ECO请求时,对设计的大多数要求(约束)已经被满足。例如,ECO可能是要修复设计中剩余的约束违反中的一个违反。
然而,由于约束可能彼此影响,因此ECO步骤可能会很复杂并且耗时。修复对一个约束的违反可能引起对另一个约束的新违反,这是意料之外的结果。例如,在一个时序路径上修复时序保持违反可能在其他相关时序路径上创建时序建立违反。由于更复杂的时序图结构和高级节点中存在的较大变化,这被进一步复杂化。
发明内容
在某些实施例中,一种用于实现ECO的方法包括以下步骤。工程变更命令(ECO)被访问。ECO用于修复对集成电路的一部分(目标网表)的目标约束的违反。集成电路的相关网表上的约束被标识。所标识的约束被修复对目标约束的违反不利影响。并发地,处理器既修改目标网表以修复对目标约束的违反,又修改相关网表以防止对被不利影响的约束的违反。
其他方面包括组件、设备、系统、改进、方法、过程、应用、计算机可读介质以及与以上任何方面有关的其他技术。
附图说明
根据下面给出的具体实施方式和本公开的实施例的附图,将更充分地理解本公开。附图用于提供对本公开的实施例的知识和理解,并且不将本公开的范围限于这些特定实施例。此外,附图不一定按比例绘制。
图1描绘了用于实施ECO的流程图。
图2A-图2D是示出修复目标时序路径而不在旁边时序路径上产生违反的图。
图3是具有旁边时序路径的另一个目标时序路径的图。
图4描绘了用于标识旁边路径的流程图。
图5绘制了与其他方法相比,本文描述方法的预期性能。
图6描绘了根据本公开的一些实施例的在集成电路的设计和制造期间使用的各种过程的流程图。
图7描绘了可以在其中操作本公开的实施例的示例计算机系统的抽象图。
具体实施方式
本公开的各方面涉及考虑被不利影响的约束的工程变更命令(ECO)。工程变更命令可能涉及在集成电路的设计上修复当前被违反的约束。但是,对集成电路设计的一个部分修复一个约束可能对集成电路设计的不同但相关的部分产生对另一约束的新违反。
在一种方法中,目标约束被修复,即使它可能在设计中的其他位置产生新的违反。然后,在下一个ECO步骤中修复这些新的违反。但是,由于每个修复在可能永不结束的循环中产生新的违反,该方法可能收敛缓慢或无法收敛。在另一种方法中,目标约束被修复,但要服从不得创建新违反的要求。在该方法中,由于ECO解决方案空间过于受限,因此修复目标约束可能变得不必要地困难。
在本公开中描述的方法中,目标约束和由于修复目标约束而可能被不利影响或违反的约束被一起考虑。在集成电路的一个网表上修复目标约束可能不利地影响集成电路的相关网表上的其他约束或产生对集成电路的相关网表的其他约束的违反。因此,修改目标网表以修复对目标约束的违反,同时并发地修改相关网表,以防止对那些网表上的被不利影响的约束的违反。这可以称为“并发”或“原位”,因为目标网表和相关网表被一起考虑而不是被分开考虑,作为修复对目标约束的违反的过程的一部分。
这种原位方法为修复目标约束提供了更大的解决方案空间,因为在考虑对目标约束的可能修复时,也允许相关网表变化。这可以导致解决方案的改进的结果质量(QoR)、更好的收敛性和更快的运行时间。这又可以减少存储器使用、网络带宽和处理器使用。
图1描绘了用于实施ECO的流程图。ECO 110用于修复对集成电路的目标网表上的目标约束的违反。设计数据库120A包含集成电路的当前设计,以及在设计过程中产生的附加信息。例如,设计数据库120A可以包含设计要满足的约束的列表,包括约束的相关度量以及每个约束是否被当前设计满足或违反。基于设计数据库120A,标识130可能被修复对目标约束的违反而不利影响的约束。例如,改善目标约束可能会使另一个约束变得更糟。在一些情况下,修复对目标约束的违反可能产生对其他约束的新违反。在对目标网表的改变影响这些其他网表上的约束的意义上,被不利影响的约束的网表与目标网表有关。目标网表被修改140以修复对目标约束的违反,并且相关网表也被修改140以防止对被不利影响的约束的违反。这导致修改的设计120B。为了方便起见,目标网表也可以被称为初级网表或主网表,而相关网表可以称为次级网表或旁边网表。
下面使用时序示例更详细地解释图1中所示的过程,但是应当理解,本公开不限于时序。在这些示例中,关注的网表是集成电路内的时序路径。每个时序路径具有起点、终点以及在起点和终点之间的组合逻辑电路。起点和终点的示例包括时序逻辑电路(例如,触发器或其他类型的存储器)、初级输入和初级输出。约束是时序约束,在下面的示例中具体是时序建立约束和时序保持约束。建立和保持约束在相反的方向上起作用。建立约束确保通过时序路径的信号传播不会太慢来使电路适当操作。保持约束确保信号传播不会太快来使电路适当操作。结果,修复建立约束可能引入对保持约束的违反,反之亦然。在下面的示例中,相关网表是与目标时序路径重叠的时序路径。因此,如果通过修改路径的重叠部分来修复目标时序路径上的建立(保持)违反,则这可能在旁边时序路径上引入保持(建立)违反。
图2A至图2D是示出修复目标时序路径而不在旁边时序路径上产生违反的图。图2A示出了由实心箭头指示的目标时序路径210。目标时序路径210沿该时序路径具有起点f1、终点f2和组合逻辑电路u1、u2、u3。设计数据库包含该设计信息,并且还包含先前设计运行中的建立和保持信息。在该示例中,保持松弛(slack)=-30。为了满足保持约束,保持松弛必须为非负值。因此,目标时序路径210具有保持违反,并且ECO是修复该保持违反的请求。
当信号传播与时钟速度相比过快时,出现保持违反。保持违反通常通过向时序路径添加延迟来进行解决,例如,通过修改现有的组合逻辑电路u1-u3,或通过沿着时序路径添加附加的缓冲器或其他类型的延迟。在没有附加信息的情况下,向u1或u2或u3添加30的延迟都将修复保持违反。但是,这些解决方案并非同等可接受,因为它们可能对其他时序路径具有不同的次级影响。
图2B示出了由虚线箭头指示的两个旁边时序路径220A、220B。旁边时序路径220可能被修复主路径210上的保持违反不利地影响。旁边路径220A从f1开始,经过电路u1和u4,并且在f3处结束。旁边路径220B从f1开始,经过电路u1、u2和u5,并且在f4处结束。两个旁边路径220也服从保持约束和建立约束。保持约束是无需担心的,因为向主路径210添加延迟不会不利地影响两个旁边路径220上的保持约束。如果有的话,对于旁边路径的保持松弛将有所改善。
但是,建立约束可能被不利影响。在图2B中,旁边路径220A当前以建立松弛=+10满足其建立约束。旁边路径220B也以建立松弛=+10满足其建立约束。但是,沿着这些旁边路径添加延迟将减少建立松弛,并且如果建立松弛减小到零以下,则将产生建立违反。
例如,图2C示出了其中Δ=30的延迟被添加到电路u1(或沿着到电路u1的路径)的情况。这修复了保持违反,因为主路径210的保持松弛现在为-30+30=0。但是,这引起两个旁边路径220A、220B上的建立违反,因为对于路径220A,附加延迟将旁边路径的建立松弛减小为10-30=-20,对于路径220B,减小为10-30=-20。
图2D示出了一种解决方案,其中将旁边路径220的建立约束与主路径210上的保持违反同时考虑。在该解决方案中,15、5和10的延迟分别被添加到电路u1、u2和u3。这将主路径210上的保持松弛改进为-30+15+5+10=0,从而修复了保持违反。在没有其他修改的情况下,旁边路径220A将具有10-15=-5的建立松弛,这是建立违反。通过将电路u4中(或沿旁边路径220A的非重叠部分的任何地方)的延迟减小5,以使建立松弛为10-15+5=0,可以防止这种情况。类似地,在没有其他修改的情况下,旁边路径220B将具有10-15-5=-10的建立松弛。通过将沿旁边路径220B的延迟减少10,这可以被改善为0。
在图2中,主路径和旁边路径都具有共同的起点f1。图3示出了其中主路径310和两个旁边路径320A、320B都具有共同的终点f2的情况。主路径310与图2中的主路径210相同。在加入电路u1和u2之间的主路径之前,旁边路径320A具有起点f3和电路u4。在加入电路u2和u3之间的主路径之前,旁边路径320B具有起点f4和电路u5。在该示例中,旁边路径220上的电路u4和u5可以被修改,以允许对主路径上的电路u2和u3进行更大的修改,同时仍然避免旁边路径上的新违反。
图2和图3示出了与主路径同时考虑的旁边路径。图4描绘了用于标识要考虑的旁边路径和次级约束的集合的流程图。这些可以是图1的步骤130内的子步骤。ECO 110标识目标网表。用于集成电路的设计数据库120A可以将集成电路的拓扑表示为图。根据该图表示,可以确定432与目标网表重叠的网表集合。这可以使用图遍历技术来完成。然后,该集合可以被修剪434,以标识那些重叠网表,这些重叠网表具有会被改进目标网表上的目标约束不利影响的约束。在一种方法中,修剪434可以仅产生具有将被修复目标约束违反的约束的那些重叠网表。例如,如果某些次级网表与其他次级网表是冗余的或由其他次级网表主导,则该集合甚至可以被进一步修剪436。例如,如果防止次级网表A上的违反也总是可以防止次级网表B上的违反,则可以将次级网表B从正在考虑的集合中删除。
图5绘制了与其他方法相比,上述原位方法的预期性能。y轴示出了保持违反的数目,x轴示出了迭代的数目。每个迭代可以是保持修复或建立修复。图示510绘制了上述原位方法的性能。图示520绘制了不允许旁边路径上的违反的方法的性能。在该方法中,由于这种过度限制的约束,因此主路径上较少的违反是可修复的。图示520解决了随时间推移的违反,但是比图示510的原位方法慢。图示530绘制了一种方法的性能,其中主路径上的违反被修复,无论其是否在旁边路径上引入违反。然后可以在下一次迭代中修复旁边路径上的违反。但是,如由图示530所示的,违反的数目不单调减少,并且在一些情况下,该方法可能不收敛。在图5中,虚线535示出了,方法530的整体性能也比原位方法510慢。
上面的描述使用时序建立和保持约束作为目标网表上的目标约束和相关网表上的被不利影响的约束。然而,方法不限于这些约束。例如,在时序内,可以使用DRC(设计规则检查)约束,诸如最大电容、最大转换时间、最大扇出和噪声。最大转换时间和最大电容与时序建立相似,因为这些约束通常与时序保持约束相反地移动。因此,修复目标路径上的时序保持违反可能在旁边路径上引入对最大转换时间或最大电容的违反,反之亦然。
原位方法也可以与非时序约束或将时序约束与非时序约束混合的情况一起使用。功率限制是一个示例。使电路更快(例如,修复建立违反)可能增加功耗,从而导致对功率约束的违反。相反,如果减小电路尺寸以降低功耗,则如果在开始时没有足够的建立松弛,则建立约束可能被不利影响,甚至被违反。因此,在一种方法中,与减小单元的尺寸并发地增加网表的其他部分上的建立松弛,以满足功率约束。这是又一个示例,其中时序约束的附加灵活性扩大了修复功率违反的解决方案空间。
作为最后一个示例,物理实现工具必须满足对集成电路的物理布局的约束。例如,放置过程中的约束包括以下内容。单元之间不能有重叠。对于布线,放置不能太拥挤-如果单元被放置的彼此太近,则由于有限的布线资源,很难路由那些布线。存在物理间距规则(例如,某对单元不能彼此相邻放置)。放置工具除了考虑时序/DRC约束之外,还考虑所有这些物理约束,来为单元选择最佳位置。但是,最适合物理约束或修复对物理约束的违反的放置可能会不利地影响时序/DRC约束。例如,在图2B中,如果出于某种原因将电路u1放置得远离f1,则f1至u1之间的线路延迟将增加,这可能违反了从f1至f3的建立约束。该建立违反可以通过修改旁边路径220A上的电路u4来增加建立松弛以适应u1的放置来进行避免。
图6图示了在制品的设计、验证和制造期间被使用的一组示例过程600,制品诸如集成电路,该集成电路用以转换和验证表示该集成电路的设计数据和指令。这些过程中的每个过程可以作为多个模块或操作被构成并且被启用。术语“EDA”表示术语“电子设计自动化”。这些过程始于利用以下各项来创建产品创意610:由设计者提供的信息,被转换以创建使用一组EDA过程612的制品的信息。当设计完成时,设计被流片(taped-out)634,这时候用于集成电路的原图(artwork)(例如,几何图案)被发送到制造设施以制造掩模组,然后其被用于制造集成电路。在流片之后,半导体裸片被制造636,并且包装和组装过程638被执行以产生完成的集成电路640。
对于电路或电子结构的规范可以具有从低级晶体管材料布局到高级描述语言的范围。高级别的抽象可以被用来设计电路和系统,使用诸如VHDL、Verilog、SystemVerilog、SystemC、MyHDL或OpenVera的硬件描述语言(HDL)。HDL描述可以被转换为逻辑级寄存器传输级(RTL)描述、门级描述、布局级描述或掩模级描述。每个较低抽象级,即较不抽象的描述,在设计描述中添加了更多有用的细节,例如,对于包括该描述的模块的更多细节。较低抽象级,即较不抽象的描述,能够由计算机生成、从设计库得出、或由另一个设计自动化过程创建。用于指定更加详细的描述的较低级的抽象语言的规范语言的一个示例是SPICE,它被用于对具有许多模拟组件的电路的详细描述。在每个抽象级的描述能够由该层的对应工具(例如,形式验证工具)使用。设计过程可以使用在图6中所描绘的序列。所描述的过程由EDA产品(或工具)启用。
在系统设计614期间,要被制造的集成电路的功能性被指定。设计可以针对所期望的特性被优化,诸如功率消耗、性能、区域(物理的和/或代码行)和成本降低等。在此阶段,可能发生将设计划分为不同类型的模块或组件。
在逻辑设计和功能验证616期间,电路中的模块或组件以一种或多种描述语言被指定,并且规范针对功能准确性被检查。例如,电路的组件可以被验证以生成与正在被设计的电路或系统的规范的要求相匹配的输出。功能验证可以使用仿真器和其他程序,诸如测试平台发生器、静态HDL检查器和形式验证器。在一些实施例中,被称为“仿真器”或“原型系统”的组件的特殊系统被用来加速功能验证。
在用于测试的综合和设计618期间,HDL代码被转换为网表。在一些实施例中,网表可以是图形结构,其中图形结构的边表示电路的组件,并且其中图形结构的节点表示组件之间是如何互连的。HDL代码和网表两者都是分级的制品,这些制品可以由EDA产品使用以验证集成电路在被制造时按照指定的设计执行。网表可以针对目标半导体制造技术被优化。附加地,所完成的集成电路可以被测试,以验证该集成电路满足规范的要求。
在网表验证620期间,针对符合时序约束以及针对HDL代码的对应关系,网表被检查。在设计计划622期间,针对集成电路的总体布图规划针对时序和顶级布线被构造和分析。
在布局或物理实现624期间,发生物理放置(诸如晶体管或电容器的电路组件的放置)和布线(通过多个导体的电路组件的连接),并且可以执行从库中对单元(cell)的选择以启用特定的逻辑功能。如本文所使用的,术语“单元”可以指定提供布尔逻辑函数(例如,AND、OR、NOT、XOR)或者提供存储功能(例如,触发器或锁存器)的一组晶体管、其他组件和互连。如本文所使用的,电路“块(block)”可以指两个或更多个单元。单元和电路块两者可以称为模块或组件,并且能够用作物理结构和用在仿真中两者。对于所选择的单元(基于“标准单元”)指定了参数,诸如大小,并且使这些参数在数据库中可访问以供EDA产品使用。
在分析和提取626期间,电路功能在布局级上被验证,这允许布局设计的细化。在物理验证628期间,布局设计被检查以确保制造约束是正确的,诸如DRC约束、电约束、光刻约束,并且确保电路功能匹配HDL设计规范。在分辨率增强630期间,布局的几何结构被转换以改进电路设计的制造方式。
在流片期间,数据被创建以被用于光刻掩模的生产(如果合适,在光刻增强被应用之后)。在掩模数据准备632期间,“流片”数据被用于产生光刻掩模,该光刻掩模被用于产生完成的集成电路。
计算机系统(诸如图7的计算机系统700)的存储子系统可以用于存储程序和数据结构以及产品,该程序和数据结构被由本文所描述的一些或全部EDA产品使用,并且该产品被用于对库的单元的开发以及被用于使用该库的物理和逻辑设计。
图7图示了计算机系统700的示例机器,在其中可以执行用于使该机器执行本文所讨论的方法中的任何一个或多个的指令集。在备选实现中,机器可以被连接(例如,联网)到在LAN、内联网、外联网和/或因特网中的其他机器。该机器可以在客户端-服务器网络环境中以服务器或客户端机器的容量运行,作为在对等(或分布式)网络环境中的对等机器,或者作为在云计算基础设施或环境中的服务器或客户端机器。
机器可以是个人计算机(PC)、平板个人计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web装置、服务器、网络路由器、交换机或桥接器、或者能够执行指定由该机器所要采取的动作的指令集(顺序的或其他方式)的任何机器。此外,虽然说明了单个机器,但是术语“机器”也应被理解为包括机器的任何集合,这些机器单独地或共同地执行一组(或多组)指令以执行本文所讨论的任何一个或多个方法。
示例计算机系统700包括经由总线730彼此通信的处理设备702、主存储器704(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、静态存储器706(例如,闪存、静态随机存取存储器(SRAM)等)、以及数据存储设备718。
处理设备702表示一个或多个处理器,诸如微处理器、中央过程单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或者是实现其他指令集的处理器、或者是实现指令集的组合的处理器。处理设备702还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备702可以被配置为执行指令726以用于执行本文所描述的操作和步骤。
计算机系统700还可以包括网络接口设备708,用以通过网络720进行通信。计算机系统700还可以包括视频显示单元710(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备712(例如,键盘)、光标控制设备714(例如鼠标)、图形处理单元722、信号生成设备716(例如扬声器)、图形处理单元722、视频处理单元728和音频处理单元732。
数据存储设备718可以包括机器可读存储介质724(也被称为非瞬态计算机可读介质),其上存储有体现本文所描述的方法或功能中的任何一个或多个的一组或多组指令726或软件。在由计算机系统700、主存储器704和也构成机器可读存储介质的处理设备702对指令726的执行期间,指令726还可以全部地或至少部分地驻留在主存储器704内和/或处理设备702内。
在一些实现中,指令726包括用于实现与本公开相对应的功能性的指令。尽管在示例实现中机器可读存储介质724被示为单个介质,但是术语“机器可读存储介质”应被认为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或关联的高速缓存和服务器)。术语“机器可读存储介质”也应被认为包括能够存储或编码指令集以供机器执行、并且使机器和处理设备702执行本公开的任何一个或多个方法的任何介质。术语“机器可读存储介质”应当相应地被认为包括但不限于固态存储器、光学介质和磁性介质。
前述详细描述的一些部分已经在计算机存储器内的数据位(data bit)上的操作的算法和符号表示方面被呈现。这些算法描述和表示是由数据处理领域中的技术人员使用以最有效地将他们的工作的实质传达给本领域其他技术人员的方式。算法可以是通向期望结果的一系列操作。这些操作是那些需要对物理量进行物理操纵的操作。这样的量可以采取能够被存储、组合、比较以及以其他方式被操纵的电信号或磁信号的形式。这样的信号可以被称为位、值、元素、符号、字符、项、数字等。
然而,应该记住,所有这些术语和类似的术语均应与适当的物理量相关联,并且所有这些术语和类似的术语仅仅是应用于这些量的方便的标签。除非从本公开中另外明确陈述,否则应当理解,在整个描述中,某些术语指代计算机系统或类似电子计算设备的动作和过程,该动作和过程将计算机系统的寄存器和存储器内的、被表示为物理(电子)量的数据操纵和转换为:计算机系统存储器或寄存器或其他这样的信息存储设备内的、类似地被表示为物理量的其他数据。
本公开还涉及用于执行本文中的操作的装置。该装置可以出于预期的目的而被专门地构造,或者其可以包括由被存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这样的计算机程序可以被存储在计算机可读存储介质中,诸如但不限于,任何类型的磁盘,包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或者适用于存储电子指令的任何类型的介质,每个计算机可读存储介质都被耦合到计算机系统总线。
本文所提出的算法和显示不与任何特定的计算机或其他装置固有地相关。各种其他系统可以与根据本文的教导的程序一起使用,或者可以证明构造更专用的装置来执行该方法是方便的。另外,本公开没有参考任何特定的编程语言被描述。应当理解,如本文所描述的,可以使用各种编程语言来实现本公开的教导。
本公开可以被提供作为计算机程序产品或软件,其可以包括具有存储于其上的指令的机器可读介质,该指令可以被用于对计算机系统(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以由机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(诸如,计算机可读)介质包括机器(诸如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪存设备等。
在前述公开中,已经参考本公开的具体示例实现描述了本公开的实现。明显的是,在不脱离在所附权利要求中的如前所述的本公开的更广泛的精神和实现的范围的情况下,可以对其进行各种修改。虽然本公开中以单数形式指代一些元件,但是在附图中可以描绘多于一个的元件,并且相同的元件用相同的数字标记。因此,本公开和附图应被认为是说明性的而不是限制性的。
Claims (20)
1.一种方法,包括:
访问工程变更命令,以修复对集成电路的目标网表上的目标约束的违反;
标识所述集成电路的相关网表上的约束,其中所述约束被修复对所述目标约束的所述违反不利影响;以及
并发地,由处理器修改所述目标网表以修复对所述目标约束的所述违反,和修改所述相关网表以防止对被不利影响的约束的违反。
2.根据权利要求1所述的方法,其中所述目标网表是时序路径,并且所述目标约束是所述时序路径上的时序约束。
3.根据权利要求2所述的方法,其中所述相关网表是与所述目标网表重叠的时序路径,并且所述被不利影响的约束是所述时序路径上的时序约束。
4.根据权利要求3所述的方法,其中所述目标网表和所述相关网表共享相同的起点或相同的终点。
5.根据权利要求3所述的方法,其中所述目标约束选自约束集合,所述约束集合由时序保持约束、时序建立约束、最大电容约束、最大转换时间约束、最大扇出约束和噪声约束构成;并且所述被不利影响的约束是选自相同约束集合的不同约束。
6.根据权利要求3所述的方法,其中所述目标约束和所述被不利影响的约束中的一个是时序保持约束,并且另一个是时序建立约束。
7.根据权利要求3所述的方法,其中修改所述相关网表包括修改所述相关网表的不与所述目标网表重叠的部分。
8.根据权利要求3所述的方法,其中所述目标约束是时序保持约束或时序建立约束中的第一约束,第二约束是时序保持约束或时序建立约束中的另一个,并且所述方法还包括:
标识所述集成电路的两个或更多相关网表的集合,其中修复对所述目标网表上的所述第一约束的所述违反将导致对所述相关网表上的所述第二约束的违反;以及
并发地,由所述处理器修改所述目标网表以修复对所述第一约束的所述违反,和修改所述相关网表的集合以防止对所述第二约束的违反。
9.根据权利要求1所述的方法,其中标识所述相关网表上的所述约束包括:
基于所述集成电路中的所述网表的图形表示,标识与所述目标网表重叠的网表;以及
标识为其修复对所述目标约束的所述违反,将导致对所述重叠网表上的约束的违反的那些重叠网表。
10.根据权利要求1所述的方法,其中所述目标约束和所述被不利影响的约束中的一个是时序约束,并且另一个不是时序约束。
11.根据权利要求10所述的方法,其中所述另一个是功率约束。
12.一种系统,包括:
存储指令的存储器;集成电路的设计;以及工程变更命令,以修复对所述集成电路的目标网表上的目标约束的违反;以及
处理器,与所述存储器耦合并且执行所述指令,所述指令在被执行时使所述处理器:
访问所述工程变更命令;
标识所述集成电路的多个相关网表,其中所述相关网表上的约束被修复对所述目标约束的所述违反不利影响;
在所述多个相关网表中标识一集合,相关网表的所述集合上的约束被预测为,要被修复对所述目标约束的所述违反而违反;以及
并发地,由所述处理器修改所述目标网表以修复对所述目标约束的所述违反,和修改相关网表的所述集合以防止对预测要被违反的约束的违反。
13.根据权利要求12所述的系统,其中所述目标网表是时序路径,所述相关网表是与所述目标网表重叠的时序路径,并且所述目标约束和所述预测要被违反的约束是时序约束。
14.根据权利要求13所述的系统,其中所述目标约束选自约束集合,所述约束集合由时序保持约束、时序建立约束、最大电容约束和最大转换时间约束构成;并且所述预测要被违反的约束是选自相同约束集合的不同约束。
15.一种非暂态计算机可读介质,包括所存储的指令,所述指令在由处理器执行时,使所述处理器:
访问工程变更命令,以修复对集成电路的第一时序路径上的第一时序约束的违反;
标识所述集成电路的第二时序路径上的第二时序约束,其中所述第二时序路径与所述第一时序路径重叠,并且所述第二时序约束被修复对所述第一时序约束的所述违反而违反;以及
与修复对所述第一时序约束的所述违反并发地修改所述第二时序路径,以防止由修复对所述第一时序约束的所述违反而引起的对所述第二时序约束的违反。
16.根据权利要求15所述的非暂态计算机可读介质,其中所述第一时间约束和所述第二时序约束中的一个是时序保持约束,并且所述第一时间约束和所述第二时序约束中的另一个是时序建立约束。
17.根据权利要求15所述的非暂态计算机可读介质,其中修改所述第二时序路径包括修改所述第二时序路径的不与所述第一时序路径重叠的部分。
18.根据权利要求15所述的非暂态计算机可读介质,其中所述指令使所述处理器进一步:
标识与所述第一时序路径重叠的所有时序路径的集合,其中修复对所述第一时序路径上的所述第一时序约束的所述违反,将导致对所述重叠的时序路径上的所述第二时序约束的违反;以及
并发地,由所述处理器修改所述第一时序路径以修复对所述第一时序约束的所述违反,和修改所述重叠的时序路径的集合以防止对所述第二时序约束的违反。
19.根据权利要求18所述的非暂态计算机可读介质,其中标识所述所有时序路径的集合包括:
基于所述集成电路的图形表示,来标识与所述第一时序路径重叠的时序路径;以及
标识那些重叠的时序路径,对于这些重叠的时序路径,修复对所述第一时序路径上的所述第一时序约束的所述违反,将导致对所述重叠的时序路径上的所述第二时序约束的违反。
20.根据权利要求15所述的非暂态计算机可读介质,其中所述第一时序路径和所述第二时序路径中的每一个包括起点、终点,以及所述起点和所述终点之间的组合逻辑;并且所述起点和所述终点均是时序逻辑单元、初级输入或初级输出。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062978220P | 2020-02-18 | 2020-02-18 | |
US62/978,220 | 2020-02-18 | ||
US17/168,606 | 2021-02-05 | ||
US17/168,606 US11836425B2 (en) | 2020-02-18 | 2021-02-05 | Engineering change orders with consideration of adversely affected constraints |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343613A CN113343613A (zh) | 2021-09-03 |
CN113343613B true CN113343613B (zh) | 2024-10-01 |
Family
ID=77273516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110190149.0A Active CN113343613B (zh) | 2020-02-18 | 2021-02-18 | 考虑被不利影响的约束的工程变更命令 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11836425B2 (zh) |
CN (1) | CN113343613B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4217903A1 (en) * | 2020-12-03 | 2023-08-02 | Synopsys, Inc. | Automatic sequential retry on hardware design compilation failure |
CN113836845B (zh) * | 2021-09-13 | 2024-07-19 | 深圳市紫光同创电子有限公司 | 一种局部动态重配的位流实现方法 |
CN113962176B (zh) * | 2021-12-22 | 2022-03-01 | 中科亿海微电子科技(苏州)有限公司 | 经三模冗余处理后的网表文件正确性验证方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8875082B1 (en) * | 2012-12-28 | 2014-10-28 | Cadeńce Design Systems, Inc. | System and method for detecting and prescribing physical corrections for timing violations in pruned timing data for electronic circuit design defined by physical implementation data |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4237434B2 (ja) * | 2001-11-26 | 2009-03-11 | 富士通マイクロエレクトロニクス株式会社 | 集積回路のホールドタイムエラー修正方法及びその修正プログラム |
US7634748B2 (en) * | 2004-07-22 | 2009-12-15 | Lsi Corporation | Special engineering change order cells |
US7331028B2 (en) * | 2004-07-30 | 2008-02-12 | Lsi Logic Corporation | Engineering change order scenario manager |
CN101506810B (zh) * | 2005-10-24 | 2013-06-05 | 卡德思设计规划公司 | 集成电路的时序、噪声和功率分析 |
US7620925B1 (en) * | 2006-09-13 | 2009-11-17 | Altera Corporation | Method and apparatus for performing post-placement routability optimization |
US7454731B2 (en) * | 2006-09-22 | 2008-11-18 | Synopsys, Inc. | Generation of engineering change order (ECO) constraints for use in selecting ECO repair techniques |
US7707530B2 (en) * | 2007-11-16 | 2010-04-27 | International Business Machines Corporation | Incremental timing-driven, physical-synthesis using discrete optimization |
US8448124B2 (en) * | 2011-09-20 | 2013-05-21 | International Business Machines Corporation | Post timing layout modification for performance |
CN104881507B (zh) * | 2014-02-28 | 2018-01-19 | 格芯公司 | 修复电路中的保持时间违例的方法和装置 |
CN105787213B (zh) * | 2016-04-01 | 2019-02-05 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
US10318676B2 (en) * | 2017-01-25 | 2019-06-11 | Ampere Computing Llc | Techniques for statistical frequency enhancement of statically timed designs |
US10360342B2 (en) * | 2017-09-14 | 2019-07-23 | Taiwan Semiconductor Manufacturing Company Ltd. | Method, system, and storage medium for engineering change order scheme in circuit design |
US10402534B2 (en) * | 2017-09-28 | 2019-09-03 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit layout methods, structures, and systems |
CN110377922B (zh) * | 2018-04-12 | 2023-06-30 | 龙芯中科技术股份有限公司 | 保持时间违例修复方法、装置及设备 |
US11562118B2 (en) * | 2021-01-04 | 2023-01-24 | Taiwan Semiconductor Manufacturing Company, Ltd. | Hard-to-fix (HTF) design rule check (DRC) violations prediction |
-
2021
- 2021-02-05 US US17/168,606 patent/US11836425B2/en active Active
- 2021-02-18 CN CN202110190149.0A patent/CN113343613B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8875082B1 (en) * | 2012-12-28 | 2014-10-28 | Cadeńce Design Systems, Inc. | System and method for detecting and prescribing physical corrections for timing violations in pruned timing data for electronic circuit design defined by physical implementation data |
Also Published As
Publication number | Publication date |
---|---|
US20210256186A1 (en) | 2021-08-19 |
US11836425B2 (en) | 2023-12-05 |
CN113343613A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113343613B (zh) | 考虑被不利影响的约束的工程变更命令 | |
US20210073456A1 (en) | Machine-learning driven prediction in integrated circuit design | |
US11922106B2 (en) | Memory efficient scalable distributed static timing analysis using structure based self-aligned parallel partitioning | |
US20210357314A1 (en) | Smart regression test selection for software development | |
US11347917B2 (en) | Determining and verifying metastability in clock domain crossings | |
US11675726B2 (en) | Interconnect repeater planning and implementation flow for abutting designs | |
US11694016B2 (en) | Fast topology bus router for interconnect planning | |
US20220085018A1 (en) | Mixed diffusion break for cell design | |
US20210374314A1 (en) | Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views | |
US11222155B1 (en) | Method and apparatus for reducing pessimism of graph based static timing analysis | |
US11022634B1 (en) | Rail block context generation for block-level rail voltage drop analysis | |
US11836433B2 (en) | Memory instance reconfiguration using super leaf cells | |
US11416661B2 (en) | Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow | |
US11868696B2 (en) | Lightweight unified power format implementation for emulation and prototyping | |
US12032894B2 (en) | System and method for synchronizing net text across hierarchical levels | |
US11087059B2 (en) | Clock domain crossing verification of integrated circuit design using parameter inference | |
US11556676B2 (en) | Scalable formal security verification of circuit designs | |
US11537775B1 (en) | Timing and placement co-optimization for engineering change order (ECO) cells | |
US11972192B2 (en) | Superseding design rule check (DRC) rules in a DRC-correct interactive router | |
US12014127B2 (en) | Transforming a logical netlist into a hierarchical parasitic netlist | |
US11972191B2 (en) | System and method for providing enhanced net pruning | |
US20240354477A1 (en) | Constant, equal, or opposite registers or ports detection during logic synthesis | |
US20230016865A1 (en) | Diagnosis of inconsistent constraints in a power intent for an integrated circuit design | |
US20220327266A1 (en) | Generating a reduced block model view on-the-fly | |
US20240070367A1 (en) | Selection and placement of safety mechanisms |
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 |