CN101681388A - 用于修改包含固定和自由布图实体的电路布图的布图修正引擎 - Google Patents
用于修改包含固定和自由布图实体的电路布图的布图修正引擎 Download PDFInfo
- Publication number
- CN101681388A CN101681388A CN200880019529A CN200880019529A CN101681388A CN 101681388 A CN101681388 A CN 101681388A CN 200880019529 A CN200880019529 A CN 200880019529A CN 200880019529 A CN200880019529 A CN 200880019529A CN 101681388 A CN101681388 A CN 101681388A
- Authority
- CN
- China
- Prior art keywords
- layout
- entity
- fixed
- conflict
- circuit
- 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
Images
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/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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及用于修正包括具有固定和自由布图实体的电路布图(1)的布图修正引擎(18)。布图实体表示集成电路的至少一部分,每个布图实体包括至少一个布图元素。固定布图实体被约束于预定位置。布图修正引擎包括用于解决固定布图实体和自由布图实体间的冲突的冲突解决器。冲突解决器包括布图分析器(14)和冲突解决模块(16)。冲突解决模块产生固定布图元素组用于解决检测到的冲突。由于布图修正引擎将固定布图实体转换成固定布图元素组,布图修正引擎在修正电路布图时会遇到更少的冲突状况,从而缩短处理时间。
Description
技术领域
本发明涉及用于修改包含固定和自由布图实体的电路布图的布图修正引擎。
本发明还涉及用于布图修正引擎中的冲突解决器、修改电路布图的方法、以及计算机程序产品。
背景技术
集成电路布图一般包含布图实体,其中布图实体组代表集成电路。实体例如可以是集成电路的一层,或者是例如代表集成电路的子电路的单元。实体例如还可以是多边形、或者甚至是多边形的边界或者角部,或者是线的交叉点或者单元的参考点。实体包含至少一个布图元素,其中布图元素是集成电路的最小的构成部分。布图元素例如可以是多边形的边、路径的中心线和宽度、或者路径或多边形的边界。布图元素例如还可以是多边形的角部、两条线的交叉点、或者单元的参考点。
通常,集成电路布图包含多个层。为了根据集成电路布图制造集成电路,必须利用不同的光刻工艺在半导体衬底上按顺序产生多个层。在半导体衬底上形成集成电路布图之前,可以利用布图修正引擎对集成电路布图进行修改。这些布图修正引擎例如可以是压缩引擎、迁移引擎或者设计规则违反修理引擎。压缩引擎修改集成电路布图以减小集成电路布图的占用面积从而减小产生集成电路布图所需的半导体衬底的面积。迁移引擎修改集成电路布图使得可以利用与最初设计集成电路布图的制造工艺不同的制造工艺来进行生产。设计规则违反修理引擎检查当前集成电路布图和与具体的制造工艺相关的规则组、即所谓的设计规则的一致性。设计规则对特定的半导体制造工艺是专用的。设计规则组规定集成电路布图的布图实体之间的几何和连接性约束因素,以应对半导体制造工艺中的差异。设计规则组应用于布图实体的布图元素以产生约束组。约束组可以是例如方程组,该方程组中的变量代表布图实体的布图元素的位置。不同的制造工艺通常包含设计规则的不同组。实体关于与特定制造工艺相关的特定设计规则的一致性确保可以使用特定制造工艺来制造集成电路布图。当设计规则违反修理引擎检测到与设计规则不一致时,设计规则违反修理引擎通过重新放置布图实体的布图元素来修改集成电路设计以产生与设计规则的实质上的完全一致性。
集成电路的特定集成电路布图或者集成电路布图的特定子电路对于集成电路布图中的布图元件的变化比较敏感。例如,当布图元素被布图修正引擎改动时,模拟电路布图或者模拟子电路布图的功能会发生不同。为了避免某些集成电路布图或者某些特定子电路被改变,一些已知的布图修正引擎允许用户阻止特定的布图实体被布图修正引擎改动。
布图修正引擎的已知的缺点在于处理时间会比较长。
发明内容
本发明的目的在于提供一种用于修改集成电路设计中的布图实体的改进了的布图修正引擎,其中减少了改进的布图修正引擎的处理时间。
根据本发明的第一方面,本发明的目的是通过用于对包含有固定布图实体和自由布图实体的布图实体的电路布图进行修改的布图修正引擎来实现的。布图实体是集成电路的至少一部分的表示,每个布图实体包含至少一个布图元素。固定布图实体被限定于预定位置,而自由布图实体被允许移动以修正电路布图。设置布图修正引擎用来将固定布图实体限定于预定位置并且修改电路布图以与约束组实质上一致。约束组包含用于将设计规则应用于电路布图的一组布图元素的设计规则约束。布图修正引擎包含用于解决固定布图实体和自由布图实体之间的冲突的冲突解决器。冲突解决器包括分析电路布图以检测固定布图实体和自由布图实体之间的冲突的布图分析器。冲突解决器将检测到的冲突提交给冲突解决模块。冲突解决模块将检测到的冲突中的固定布图实体转换成固定布图元素组。产生该固定布图元素组用于解决检测到的冲突。固定布图元素是被限定在某个位置的布图元素。
本发明的布图修正引擎的效果在于,布图分析器分析电路布图以检测固定布图实体和自由布图实体之间的冲突。这样的冲突例如可能出现在当固定布图实体是集成电路的固定单元,而自由布图实体是集成电路的自由层的时候。固定单元中的布图元素应该是固定的。但是,固定单元的布图元素的子集可能位于自由层中。该布图元素的子集的状态不确定,从而导致冲突。该冲突在冲突解决器中得到解决;在该冲突解决器中,固定布图实体被转换成固定布图元素组。该转换例如可以由操作人员手工完成。由于布图元素是集成电路布图的最小构成元素,由固定布图元素组替换固定布图实体迫使在冲突的情形下作出决定。随后在约束组中实现该布图元素组以对固定布图元素的位置进行固定。
本发明的布图修正引擎主动地迫使冲突情形在布图修正引擎解决约束地集合以产生用于调适电路布图的指令之前得到解决。冲突解决器将固定布图实体转换成随后进入约束组的固定布图元素组。由于布图修正引擎将固定布图实体转换成固定布图元素组,布图修正引擎修改电路布图以符合约束组的修改步骤将遇到更少的冲突,从而减少布图修正引擎的处理时间。
在已知的布图修正引擎中,约束组是在将固定布图实体固定于限定位置时得到解决的。追加特定布图实体必须被限定于特定位置的附加的要求会导致冲突。在这些已知的布图修正引擎中,这些冲突只在解决约束组时和在调适电路布图以符合约束组时发生。这会使得布图修正引擎无法为该约束组提供解决方案或者会导致布图修正引擎需要过量的计算时间和功耗以对约束组产生解决方案。在本发明的布图修正引擎中,电路布图被分析以检测固定布图元素和自由布图元素之间的冲突。通过将固定布图实体转换成固定布图元素组来主动解决可能的冲突,防止了冲突使得布图修正引擎试图对因冲突而无解决方案的情形或者对因冲突致使解决方案过分复杂的情形寻找解决方案。通过为布图修正引擎提供固定布图元素组,减少了冲突的发生,并减少了布图修正引擎为约束组产生解决方案所需的处理时间。
与约束组的一致性通常通过布图修正引擎解决约束组以产生调适电路布图的指令来实现。约束组通常包含方程组。每个方程包含应用于一组布图元素的约束组的数学表示,例如,应用于一组布图元素的设计规则。根据指令调适布图会导致移动电路布图的布图元素,这会导致移动电路布图内的实体和/或导致电路布图内的实体的再次成形。
集成电路可以是周知的作为芯片的微型电路,或者是芯片的一部分的代表。替代地,集成电路也可以是微型结构的代表,这种微型结构已知也称为纳米结构,包括例如机械纳米结构、磁纳米结构、化学纳米结构以及生物纳米结构。
在布图修正引擎的一个实施方式中,检测到的冲突包括作为固定布图实体的一部分和作为自由布图实体的一部分的检测到的布图元素。
在布图修正引擎的一个实施方式中,冲突解决器是基于规则的。该实施方式的好处在于基于规则的冲突解决器以可复验和可预测的方式处理检测到的冲突。此外,使用基于规则的冲突解决器将手工输入最小化,从而通过减少等待手工输入的空闲时间而减少布图修正引擎的处理时间。已知的布图修正引擎通常在求解约束组时发出冲突信号或者在求解约束组之后给出冲突列表。系统的用户必须手动地检查冲突(的列表)并手工地解决每个冲突,这相当耗时。此外,实质上相同的冲突可能由用户以不同的方式解决,这导致集成电路内部的不可预测的差异。使用基于规则的冲突解决器将固定布图实体转换成固定布图元素组的措施减少了手工输入并以可复验的方式解决了冲突。
在布图修正引擎的一个实施方式中,冲突解决器包括利用固定布图实体的附加属性以解决检测到的冲突,和/或利用一般规则解决检测到的冲突。例如,作为接触孔的第一布图实体包含作为自由布图元素的边界,而作为连线的第二布图实体包含作为固定布图元素的边界。接触孔包含关于应该连接至连线的附加属性。其结果,检测到在接触孔的自由布图元素和迫使接触孔连接至固定连线的附加属性之间的冲突。本发明的布图修正引擎的冲突解决器将接触孔的边界转换成固定布图元素,并将接触孔的这些边界追加到固定布图元素组中,这样就解决了冲突。替代地,第一布图实体例如可以是作为单元的第二布图实体内的多边形。第二布图实体例如可以是固定布图实体。多边形的布图元素具有互相冲突的需求:由于多边形为自由布图实体,故多边形的布图元素应该是自由的,而由于单元是固定布图实体,故多边形的布图元素应该是固定的。在此冲突情形下,可以应用通用规则,即利用最小布图实体的状态来定义冲突布图元素的状态。在该当前情形下,多边形为单元的一部分,因此单元是更大的布图实体。将通用规则应用到当前情形导致了多边形的布图元素是能够在单元内自由移动的自由布图元素。
在布图修正引擎的一个实施方式中,设置冲突解决器是为了接收表示固定布图元素需要固定的重要程度的优先级值。该优先级值,例如,可以用于改变前述例子中的一般规则,其中最小布图元素的状态被用于定义冲突布图元素的状态。当多边形与单元的优先级值相同时,可以应用一般规则,从而产生上述结果。但是,如果更小的布图实体(在当前例中为多边形)的优先级值低于更大的布图实体(在当前例中为单元)的优先级值时,冲突布图元素的状态可以反转。在上述例中使用该优先级值并将该优先级值追加至一般规则,多边形的布图元素将是不允许在固定单元内部移动的固定布图元素。
在布图修正引擎的一个实施方式中,冲突解决器还包含用于接收固定布图实体和/或接收自由布图实体的接收器。在接收器只接收固定布图实体的情况下,其余的布图实体例如可以具有自由布图实体的缺省状态。替代地,在接收器只接收自由布图实体的情况下,其余的布图实体例如可以具有固定布图实体的缺省状态。
在布图修正引擎的一个实施方式中,固定布图实体是作为相对于虚拟参考点而受到约束的布图实体的相对固定布图实体,其中虚拟参考点是另一个固定布图实体或另一个自由布图实体。相对固定布图实体的位置关于本身是可以四处移动的虚拟参考点是固定的。这会发生在,例如,当单元内或者电路布图的子电路内的元素被约束在单元内或者子电路内部的某个位置,而单元或者子电路却可以在电路布图内四处移动的情况下。虚拟参考点可以是单元或者子电路中的任意的点。替代地,虚拟参考点可以是连线的交叉点或者多边形的边。
在布图修正引擎的一个实施方式中,设置接收器用于通过固定布图实体列表和/或自由布图实体列表、和/或选定区域、和/或电路布图内部的子电路的标签来接收固定布图实体和/或接收自由布图实体,其中,其中选定区域内的所有布图实体是固定布图实体或者所有选定区域外的布图实体是固定布图实体,子电路内的所有布图实体或者子电路的布图实体的一部分是固定布图实体或者自由布图实体。该实施方式的好处在于,它允许将固定布图实体灵活地输入到本发明的布图修正引擎的冲突解决器。例如,用户可以通过在集成电路的计算机表示中指明矩形、圆形、椭圆形、多边形或者上述这些选定区域的任意组合来识别选定区域。接收器,例如,接收选定区域并将选定区域内的所有布图实体识别为固定布图实体。集成电路还通常包含在该集成电路内的多个位置上重复出现的子电路。设置接收器用于接收子电路的标签以接收固定布图实体。接收器可以,例如,将子电路内的所有布图实体识别为固定布图实体或者可以仅将子电路内的布图实体的一部分识别为固定布图实体。本实施方式使得本发明的布图修正引擎仅用一次就解决子电路内的冲突,并在每次将该子电路放置入电路布图中时对冲突重复应用该解决方案。
在布图修正引擎的一个实施方式中,冲突解决器还包括约束适配器用于调适约束组以适合于固定布图实体组的位置。该冲突解决器的实施方式的好处在于,该冲突解决器可以与已知的布图修正引擎组合使用,而无需对已知的布图修正引擎进行调适。冲突解决器调适约束组,所述约束组随后由已知的布图修正引擎使用于求解约束组以产生指示如何调适集成电路布图以与约束组实质上符合或与约束组的最佳的符合。
在布图修正引擎的一个实施方式中,设置约束适配器用于通过将约束组中代表布图元素的变量转换成表示指定给固定布图元素的预定位置的常数值、或者通过增加附加约束以对固定布图元素进行约束或者通过将表示约束组中的布图元素的变量转换成定义特定布图实体的虚拟参考点以及固定布图元素的特定布图实体内的用于产生相对固定位置的相对位置的另外的变量来确定调适后的固定布图元素组的位置。特定布图实体的虚拟参考点可以例如是子电路或单元的局部性的原点,或者,例如可以是子电路或单元的中心或者可以是子电路或单元的其他的任意点。将约束组中的变量转换成作为表示指定给固定布图元素的预定位置的常数值的好处在于,减少了约束组中的变量数,这简化了约束组的解决,减少了布图修正引擎的处理时间。对约束组增加附加约束的好处在于,无需彻底地扫描约束组以确定与固定布图元素相关的变量。这种附加的扫描通常需要约束适配器的处理时间,从而增加了布图修正引擎的整体处理时间。仅增加将变量设置为预定位置的附加约束防止了扫描整个约束组的附加扫描的需求,从而简化了约束适配器。
本发明的第二方面利用如权利要求11所要求的冲突解决器实现了本发明的目的。本发明的第三方面利用如权利要求12所要求的修正电路布图的方法实现了本发明的目的。本发明的第四方面利用如权利要求13所要求的计算机程序产品实现了本发明的目的。
附图说明
通过参考下述实施方式,本发明的上述和其他方面将变得明晰并得到说明。
图1是本发明的布图修正引擎的原理图。
图2是本发明的电路布图修正方法的流程图。
图3是作为集成电路单元的布图实体,单元具有冲突。
图4是集成电路子电路的包含其他冲突的一部分。
图5A是第一选定区域,其中第一选定区域内的所有布图实体被识别为固定布图实体,图5B是第二布图实体,其中第二选定区域外的所有布图实体被识别为固定布图实体。
附图仅是示意图而并非按比例绘制。特别需要说明的是,某些尺寸被大大地夸张了。图中相似的元件尽可能以相同的附图标记表示。
具体实施方式
图1是本发明的布图修正引擎18的示意图。布图修正引擎18包含用于接收电路布图1的电路接收器2,电路布图1例如是集成电路。电路接收器2可以被设置为以不同的数据布图格式接收电路布图1,并且可以被设置为将不同的数据布图格式转换成由布图修正引擎18的其它元素使用的特定的数据布图格式。电路接收器2接收电路布图1并且,例如,对电路布图1的数据格式进行转换,然后,电路接收器2将电路布图1提供给扫描模块3。扫描模块3还接收设计规则17组并扫描电路布图1的布图实体,以识别特定的设计规则17应为有效的布图实体组,来识别设计规则17的所谓实例。例如,特定设计规则17可以定义两个布图实体——例如两个多边形——之间的最小距离。扫描模块3扫描电路布图1并通过识别特定设计规则17在其间应为有效的多边形组来识别出特定的设计规则17的所有实例。随后,识别出的设计规则17的实例与多边形组一起被提交给约束产生器4以产生约束组。约束组例如包括方程,其中每个方程包含应用于一组布图实体——例如此前所用的多边形——的设计规则17的数学表示。布图修正引擎18例如可以包含自由/固定扫描器5和约束适配器6用于确定约束组中的固定布图实体的位置。自由/固定扫描器5接收约束组和固定实体列表11,并将约束组中的变量与固定实体11的布图元素关联。然后,约束适配器6将约束组调适为调适后约束组,其中固定布图实体11的布图元素的位置在约束组内得到固定。调适后约束组随后由布图修正引擎18的处理器7求解,并向布图调适器8提供指令组以调适电路布图11,以使得电路布图11满足约束组。由于固定布图实体11包含于调适后的约束组中,而调适后的约束组被解决以产生指令,所以固定布图实体11被固定在预定位置。布图修正引擎18输出实质上满足调适后约束组并可随后用于在与设计规则17相关的光刻工艺中制造电路布图1的调适后电路布图9。
布图修正引擎18还包含用于解决固定实体11与自由实体之间的冲突的冲突解决器10。冲突解决器10包含用于分析电路布图1以检测固定布图实体与自由布图实体之间的冲突的布图分析器14。如果布图分析器14识别出固定布图实体和自由布图实体之间的冲突,布图分析器14就将检测到的冲突提交给冲突解决模块16。冲突解决模块16将检测到冲突中的固定布图实体转换成固定布图元素组。固定布图元素是被约束于某个位置的布图元素。产生固定布图元素组是为了解决检测到的冲突。
例如,如果将层30(见图3)指示为自由布图实体,将自由层30中的多边形31(见图3)指定为固定布图实体31,布图分析器14检测到固定布图实体31的布图元素32和36(见图3)的冲突状态:根据固定布图实体31,布图元素32和36应该是固定的,但它们却位于自由层30中。这些检测到的冲突被随后提交给例如冲突解决模块16,并要求来自用户反馈以解决布图元素32和36的冲突状态。替代地,冲突解决模块16例如可以是基于规则的。为了解决冲突,基于规则的冲突解决模块16例如可以检查布图实体的附加属性。例如,使用如下的附加规则可以使得冲突解决模块16能够解决(前一个示例中的)布图元素32和36的冲突:即,电路布图1中的接触实体应与电路布图1的相邻层中的多边形实体相接触。替代地,基于规则的冲突解决模块16例如可以包含用于解决布图实体间的冲突的例如存储于存储模块15中通用规则库。这样的规则的实例可以利用例如其中最小的布图实体的状态来定义冲突的布图元素的状态。在图3所示的情况中,多边形31为布图实体30的一部分,因此布图实体30是更大的布图实体。将此一般规则应用于当前状况使得多边形31的布图元素固定在自由层30中。
冲突解决器16也可设置为接收优先级值19。该优先级值19例如表示固定布图实体11的所需固定的重要程度。使用优先级值19使得冲突解决器10例如在特定情况下偏离通用规则。例如,可以通过给更大的布图实体赋予更高的优先级值19来改变利用最小布图实体的状态定义冲突的布图实体状态的一般规则,以迫使更大布图实体的状态成为最小实体的状态,这样便可回避该具体情形下的一般规则。
图1所示的冲突解决器10还包括用于接收固定布图实体的接收器12。接收器12例如接收自由布图实体和/或固定布图实体11的列表。替代地,例如,接收器12可以接收表示自由布图实体和/或固定布图实体11的选定区域51、52(见图5A和5B)。选定区域51例如还可由用户划定以指示划定区域内的所有布图实体均为固定布图实体。替代地,选定区域52可以指示选定区域外的所有实体均为固定布图实体。接收器12还可以接收对电路布图1的子电路进行标识的标签。子电路内的所有布图实体或者子电路的布图实体的一部分可以是固定布图实体。这使得冲突解决器10仅对子电路内的冲突处理一次,并在每次将该子电路放置在电路布图中时重复应用该解决方案。
在冲突解决器10的另一个实施方式中,冲突解决器10还包括约束适配器20。设置约束适配器20是为了通过调适布图修正引擎18的约束组来固定调适后的固定布图元素组的位置。例如,约束适配器20可以将约束组中与布图元素相关的变量转换成表示赋予固定布图元素的预定位置的值。在此情况下,相对简单地替换约束组中的预定位置就足以将固定布图元素的位置固定。但是,为了能够在特定的固定布图元素每次出现在约束组中时替换预定位置,约束适配器20必须彻底地扫描整个约束组,这会相当耗时。替代地,约束适配器20可以通过对约束组增加附加约束来对固定布图元素的位置进行固定。该附加约束将固定布图元素的位置约束在预定位置。该附加元素增大了约束组,这通常会增加由布图修正引擎18的处理器7寻找到约束组的解决方案地处理时间。但是,约束适配器20可以简单地增加附加约束而无需彻底扫描整个约束组,这减少了约束适配器20的处理时间。
图2是本发明的修正电路布图1的方法的流程图。该方法包含接收电路布图的步骤102。在接收电路布图1的步骤102期间,电路布图1的数据格式可以被转换成布图修正引擎18中所用的期望的数据格式(见图1)。随后,该修改电路布图1的方法包括发现设计规则17的实例的步骤103。在发现设计规则17的实例的步骤103中,该方法扫描电路布图1的布图实体以识别特定的设计规则17应为有效的布图实体组。图2中所示的方法还包括从识别出的设计规则17的实例产生约束组的步骤104。在约束组中,匹配自由/固定元素的步骤105将自由和固定布图元素与约束组中的约束变量匹配。在对约束组中的约束进行调适的另一个步骤106中对约束组进行调适。对约束的这一调适例如会导致为固定布图元素增加约束,或者例如,导致由表示固定布图元素应被约束的位置的预定值来替换表示应被固定的特定布图元素的约束组中的变量。包含调适后约束的约束组随后在解决约束的步骤107中求解,该步骤107提供指令组用于更新电路布图1以便其实质上与约束组相符合。图2所示的方法还包括更新布图的步骤108,其中根据来自解决步骤107的指令来更新电路布图1。
本发明的方法还包括接收固定布图实体11和/或自由布图实体的步骤112、分析电路布图1的步骤114、以及解决冲突的步骤116。在接收固定布图实体11和/或自由布图实体的步骤112中,该方法例如可以接收自由布图实体和/或固定布图实体11的列表。替代地,在接收步骤112中,该方法例如可以接收选定区域,其中选定区域内的所有布图实体均为固定布图实体11或者自由布图实体。在分析电路布图1的步骤114中,电路布图1被扫描以检测固定布图实体11和自由布图实体间的冲突。最后,本发明的方法包括通过产生固定布图元素组解决冲突的步骤116。固定布图元素为被约束在某一位置的布图元素。产生固定布图元素组是为了解决检测到的冲突。
图3给出了作为集成电路1的单元30的布图实体30(见图1),其中单元30包含冲突。例如,单元30被识别为固定布图实体30。但是,位于单元30中的作为多边形31的布图实体31被识别为自由布图实体30。多边形31的布图元素32和36具有相冲突的需求:由于多边形31为自由布图实体故多边形31的的布图元素应该为自由的,而由于单元30为固定布图实体故多边形31的布图元素又应为固定的。为了解决该冲突,冲突解决器16(见图1)例如可以利用一般规则。这样的一般规则,例如,可以定义:利用在阶层上最小的布图实体的状态定义冲突的布图元素的状态。在当前情形下,多边形31为单元30的一部分,因此单元30为在阶层上更大的布图实体。将该一般规则应用于当前情形的结果是多边形31的布图元素32、36成为可以自由在固定单元30内移动的自由布图元素。
替代地,冲突解决器16可以利用附加属性或要求来确定冲突布图元素32、36的冲突状态。例如,单元30可以被标识为永远不能被布图修正引擎18改动的外部知识产权。该附加属性例如会推翻(overrule)多边形31的自由状态,以解决多边形31和单元30间的冲突状态。
替代地,假定单元30被识别为自由单元30而多边形31的布图元素36应该为固定布图元素。如果设计规则17指示多边形31和另一个多边形39之间应该具有最小间距,则约束产生器4(见图1)可以最初产生以下方程:
x2-x1>=b
x3-x1>=b
其中,x1为表示布图元素36的变量,x2为表示布图元素37的变量,x3为表示布图元素38的变量。为了将布图元素36约束在其初始位置,例如,684,约束适配器6、20(见图1)可以遍历约束组地将数字684对表示边36的变量x1进行匹配。这样约束适配器6、20例如可以将上述方程调适成:
x2>=b+684
x3>=b+684
随后对这些方程求解以找到x2和x3的可能值,这会始终将布图元素36的位置固定在由数字684指示的预定位置。替代地,约束适配器6、20例如可以通过增加附加约束的方式对约束组增加附加约束从而将边36的位置固定在由数字684指示的位置:
x1=684
但是,边36的固定也可以是在单元30内的相对固定。该相对固定可以,例如,要求边36在单元30内不移动,而单元30可以在电路布图1内四处移动。为了实现相对固定,约束适配器6、20可以,例如,将变量x1转换成包含单元30的虚拟参考点29以及在单元30内的固定位置的新变量。例如,在单元30内的固定位置可以是42,然后约束适配器6、20可以将变量x1转换成:
x1=x0+42
其中x0为表示单元30的虚拟参考点29的变量。
冲突解决器16还可使用优先级值解决自由单元30内的固定多边形见的冲突。例如,如果利用一般规则,更大布图实体限定更小布图实体的状态,多边形31的冲突布图元素32和36应该为自由布图元素。但是,例如,如果多边形31具有高于单元30的优先级值,冲突解决器16会不考虑一般规则而产生包括多边形31的布图元素32和36的固定布图元素组。
图4给出了包含另一个冲突的集成电路1的子电路的一部分。图4中所示的第一布图实体44为包含被定义为自由布图元素的边界45的接触孔44。图4中所示的第二布图实体41为包含作为固定布图元素的边界的多边形41。接触孔44例如具有“其应该在多边形41的边43的附近与多边形41相连接”的附加属性。其结果,在接触孔44的自由布图元素45和迫使接触孔44在边43的附近与多边形41相连接的附加属性之间检测到冲突。本发明的布图修正引擎18的冲突解决器16可以将接触孔44的边界45转换成固定布图元素45,并将接触孔44的该边界45添加至固定布图元素组,这样就解决了冲突。
替代地,假定多边形41为固定布图实体41而多边形41的边43为自由布图实体。布图分析器14检测边43的冲突。假定一般规则有效,其中布图实体越具体,其设置的重要性越高,则边43的设置推翻多边形41的整体设置。这意味着冲突解决模块16通过产生包含多边形41的除作为自由布图元素的边43外的所有边的固定布图元素组来解决该冲突。
图5A给出了第一选定区域51,其中第一选定区域51内部的所有布图实体31均被识别为固定布图实体。图5B给出了第二选定区域52,其中第二选定区域52外部的所有布图实体31均被识别为固定布图元素。选定区域51、52可以指示在,例如,表示电路布图1的图像内。选定区域51、52可以具有任何形状,例如矩形、圆、椭圆或者多边形。接收器12(见图1)接收选定区域51、52,并利用选定区域51、52识别布图实体是否应为固定或自由布图实体。
例如,在图5A中,选定区域包括应该被冲突解决器10视为固定布图实体31的所有布图实体31。第一选定区域51为椭圆。在图5B中选定区域包括应该被冲突解决器10视为自由布图实体39的所有布图实体39。第二选定区域52为矩形。
需要指出的是,上述实施方式是说明而不是限定了本发明,本领域技术人员可以在不偏离所附的权利要求的范围的前提下,设计出各种替代实施方式。
对布图中的,诸如集成电路或电路布图中的,任何对象的提及均可以指由边界、路径、或者角部限定的多边形。
在所附的权利要求中,括号中的任何附图标记不应理解为对权利要求的限定。动词“包括”及其变化形态不排除权利要求中指出的元素或步骤之外的元素和步骤的出现。至于元素前的不定冠词“a”或“an”则不排除多个这种元素的出现。本发明可以利用包括多个不同元件的硬件以及利用恰当编程的计算机来实现。在列举了各种装置的产品权利要求中,这些装置中的若干可以由一个和相同的硬件来实现。事实上,在互不相同的附加权利要求中陈述的特定措施并不表示不能使用这些措施的组合并获得突出的优点。
Claims (13)
1、一种用于修正包括具有固定布图实体(11;31;44)和自由布图实体(30,39;41)的布图实体(30,31,39;40,41,44)的电路布图(1)的布图修正引擎(18),布图实体(30,31,39;40,41,44)表示集成电路的至少一部分,每个布图实体(30,31,39;40,41,44)包括至少一个布图元素(32,36,37,38;42,43,45),固定布图实体(11;31;44)被约束于预定位置,自由布图实体(30,39;41)被允许移动以修正电路布图(1),布图修正引擎(18)被设置为在修正电路布图(1)以实质上符合约束组时,将固定布图实体(11;31;44)约束于所述预定位置,约束组包括将设计规则(17)应用于电路布图(1)的一组布图元素(32,36,37,38;42,43,45)的设计规则约束,
布图修正引擎(18)包括用于解决固定布图实体(11;31;44)和自由布图实体(30,39;41)之间的冲突的冲突解决器(10),冲突解决(10)包括布图分析器(14)和冲突解决模块(16),
布图分析器(14)分析电路布图(1)以检测固定布图实体(11;31;44)和自由布图实体(30,39;41)之间的冲突并将检测到的冲突提交给冲突解决模块(16),
冲突解决模块(16)将检测到的冲突中的固定布图实体(11;31;44)转换成固定布图元素(36;43,45)组,该固定布图元素(36;43,45)组被产生以解决检测到的冲突,固定布图元素(36;43,45)是被约束于某个位置的布图元素。
2、根据权利要求1的布图修正引擎(18),其中,
检测到的冲突包括作为固定布图实体(11;31;44)的一部分和作为自由布图实体(30,39;41)的一部分的检测到的布图元素(36,43)。
3、根据权利要求1或2的布图修正引擎(18),其中,
冲突解决模块(16)是基于规则的。
4、根据权利要求1、2或3的布图修正引擎(18),其中,
冲突解决模块(16)包括:
利用固定布图实体(11;31;44)的附加属性解决检测到的冲突;和/或
利用通用规则解决检测到的冲突。
5、根据权利要求1、2、3或4的布图修正引擎(18),其中,
冲突解决模块(16)被设置为接收表示固定布图实体(11;31;44)的所需固定的重要程度的优先级值(19)。
6、根据权利要求1、2、3、4或5的布图修正引擎(18),其中,
冲突解决器(10)还包括接收固定布图实体(11;31;44)和/或接收自由布图实体(30,39;41)的接收器(12)。
7、根据权利要求6的布图修正引擎(18),其中,
固定布图实体(31)是作为受到关于虚拟参考点(29)的约束的布图实体的相对固定布图实体(31),虚拟参考点(29)是另一个固定布图实体或者另一个自由布图实体。
8、根据权利要求6或7的布图修正引擎(18),其中,
接收器(12)被设置为通过:
固定和/或自由布图实体(30,31,39;40,41,44)列表;和/或
选定区域(51,52),选定区域(51)内部的所有布图实体(31)或者选定区域(52)外部的所有布图实体(31)是固定布图实体(31);和/或
电路布图(1)内部的子电路的标签,该子电路内部的所有布图实体(44)或者该子电路的布图实体的选择部分是固定布图实体(44)或者自由布图实体(41);
来接收固定布图实体(11,31,44)和/或接收自由布图实体(30,39,41)。
9、根据权利要求1、2、3、4、5、6、7或8的布图修正引擎(18),其中,
冲突解决器(10)还包括调适约束组来将固定布图元素组(36;43,45)的位置进行固定的约束适配器(20)。
10、根据权利要求9的布图修正引擎(18),其中,
约束适配器(20)被配置为通过:
将约束组中代表布图元素(32,36,37,38;42,43,45)的变量转换成表示分配给固定布图元素(36;43,45)的预定位置的常数值,或
增加约束固定布图元素(36;43,45)的附加约束,或将约束组中表示布图元素(32,36,37,38;42,43,45)的变量转换成定义特定布图实体(30)的虚拟参考点(29)以及固定布图元素(36)的特定布图实体(30)内部的相对位置以产生相对固定位置的另一个变量,
来对调适后的固定布图元素(36;43,45)组的位置进行固定。
11、一种用于根据前述任一个权利要求的用于布图修正引擎(18)中的冲突解决器(10),该布图修正引擎(18)被设置为修正包括具有固定布图实体(11;31;44)和自由布图实体(30,39;41)的布图实体(30,31,39;40,41,44)的电路布图(1),冲突解决器(10)被配置为解决固定布图实体(11;31;44)和自由布图实体(30,39;41)之间的冲突,冲突解决器(10)包括布图分析器(14)和冲突解决模块(16),
布图分析器(14)分析电路布图(1)以检测固定布图实体(11;31;44)和自由布图实体(30,39;41)之间的冲突并将检测到的冲突提交给冲突解决模块(16),
冲突解决模块(16)将检测到的冲突中的固定布图实体(11;31;44)转换成固定布图元素(36;43,45)组,该固定布图元素(36;43,45)组被产生以解决检测到的冲突,固定布图元素(36;43,45)是被约束于某个位置的布图元素。
12、一种修正包括具有固定布图实体(11;31;44)和自由布图实体(30,39;41)的布图实体(30,31,39;40,41,44)的电路布图(1)的方法(110),布图实体(30,31,39;40,41,44)表示集成电路的至少一部分,每个布图实体(30,31,39;40,41,44)包括至少一个布图元素(32,36,37,38;42,43,45),固定布图实体(11;31;44)被约束于预定位置,自由布图实体(30,39;41)被允许移动以修正电路布图(1),方法(110)被配置为修正电路布图(1)以实质上符合约束组,并将布图实体(11;31;44)约束于预定位置,约束组包括将设计规则(17)应用于电路布图(1)的一组布图元素(32,36,37,38;42,43,45)的设计规则约束,方法(110)包括以下步骤:
分析(114)电路布图(1)以检测固定布图实体(11;31;44)和自由布图实体(30,39;41)之间的冲突,
如果检测到冲突,则本方法还包括以下步骤:
通过产生(116)固定布图元素(36;43,45)组来解决(116)冲突,所述固定布图元素(36;43,45)是被约束于某个位置的布图元素。
13、一种被配置为执行根据权利要求12的方法的计算机程序产品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07111906 | 2007-07-06 | ||
EP07111906.9 | 2007-07-06 | ||
PCT/EP2008/058648 WO2009007311A1 (en) | 2007-07-06 | 2008-07-04 | Layout modification engine for modifying a circuit layout comprising fixed and free layout entities |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101681388A true CN101681388A (zh) | 2010-03-24 |
Family
ID=40032676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880019529A Pending CN101681388A (zh) | 2007-07-06 | 2008-07-04 | 用于修改包含固定和自由布图实体的电路布图的布图修正引擎 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100205573A1 (zh) |
JP (1) | JP2010532511A (zh) |
CN (1) | CN101681388A (zh) |
WO (1) | WO2009007311A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631379B2 (en) * | 2010-02-09 | 2014-01-14 | Taiwan Semiconductor Manufacturing Company, Ltd. | Decomposing integrated circuit layout |
US8726208B2 (en) * | 2011-07-19 | 2014-05-13 | Taiwan Semiconductor Manufacturing Company, Ltd. | DFM improvement utility with unified interface |
US8719737B1 (en) * | 2012-06-29 | 2014-05-06 | Cadence Design Systems, Inc. | Method and apparatus for identifying double patterning loop violations |
US8627247B1 (en) | 2012-07-11 | 2014-01-07 | International Business Machines Corporation | Systems and methods for fixing pin mismatch in layout migration |
US9952500B2 (en) * | 2016-08-17 | 2018-04-24 | Globalfoundries Inc. | Adjusting of patterns in design layout for optical proximity correction |
US11055465B2 (en) * | 2019-09-04 | 2021-07-06 | International Business Machines Corporation | Fill techniques for avoiding Boolean DRC failures during cell placement |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189132B1 (en) * | 1998-04-09 | 2001-02-13 | International Business Machines Corporation | Design rule correction system and method |
JP4723740B2 (ja) * | 2001-03-14 | 2011-07-13 | 富士通株式会社 | 密度一様化配置問題の最適解探索方法および密度一様化配置問題の最適解探索プログラム |
US6668365B2 (en) * | 2001-12-18 | 2003-12-23 | Cadence Design Systems, Inc. | Quadratic programming method for eliminating cell overlap and routing congestion in an IC layout |
US6785875B2 (en) * | 2002-08-15 | 2004-08-31 | Fulcrum Microsystems, Inc. | Methods and apparatus for facilitating physical synthesis of an integrated circuit design |
JP2004317718A (ja) * | 2003-04-15 | 2004-11-11 | Toshiba Corp | パターン作成方法、パターン作成システム、および半導体装置の製造方法 |
US6948143B2 (en) * | 2003-05-09 | 2005-09-20 | Synopsys, Inc. | Constrained optimization with linear constraints to remove overlap among cells of an integrated circuit |
US6951003B2 (en) * | 2003-05-12 | 2005-09-27 | Synopsys, Inc | Placing cells of an IC design using partition preconditioning |
US6986109B2 (en) * | 2003-05-15 | 2006-01-10 | International Business Machines Corporation | Practical method for hierarchical-preserving layout optimization of integrated circuit layout |
US7251807B2 (en) * | 2005-02-24 | 2007-07-31 | Synopsys, Inc. | Method and apparatus for identifying a manufacturing problem area in a layout using a process-sensitivity model |
US8230379B2 (en) * | 2006-10-20 | 2012-07-24 | Kabushiki Kaisha Toshiba | Layout generating method for semiconductor integrated circuits |
US8578313B2 (en) * | 2008-04-24 | 2013-11-05 | Synopsys, Inc. | Pattern-clip-based hotspot database system for layout verification |
-
2008
- 2008-07-04 JP JP2010513999A patent/JP2010532511A/ja not_active Abandoned
- 2008-07-04 US US12/667,333 patent/US20100205573A1/en not_active Abandoned
- 2008-07-04 CN CN200880019529A patent/CN101681388A/zh active Pending
- 2008-07-04 WO PCT/EP2008/058648 patent/WO2009007311A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2009007311A1 (en) | 2009-01-15 |
US20100205573A1 (en) | 2010-08-12 |
JP2010532511A (ja) | 2010-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681388A (zh) | 用于修改包含固定和自由布图实体的电路布图的布图修正引擎 | |
CN109509056B (zh) | 基于对抗网络的商品推荐方法、电子装置及存储介质 | |
Ahmad et al. | An Adaptive approach based on resource-awareness towards power-efficient real-time periodic task modeling on embedded IoT devices | |
Lin et al. | Decision framework of group consensus with hesitant fuzzy linguistic preference relations | |
US20100287519A1 (en) | Method and system for constructing a customized layout figure group | |
CN115439449B (zh) | 全视野组织学图像的处理方法、装置、介质和电子设备 | |
CN108062649A (zh) | 原纸仓库管理方法、装置及计算机可读存储介质 | |
CN111339724A (zh) | 用于生成数据处理模型和版图的方法、设备和存储介质 | |
Lange et al. | On neighborhood structures and repair techniques for blocking job shop scheduling problems | |
Jiang et al. | A new model and an efficient branch-and-bound solution for cyclic multi-hoist scheduling | |
US20090049477A1 (en) | Apparatua and method of browsing content | |
CN116167431B (zh) | 一种基于混合精度模型加速的业务处理方法及装置 | |
US10116520B2 (en) | Apparatus and method for generating a network on chip in an electronic device | |
Domínguez et al. | A survey of UML models to XML schemas transformations | |
US10360321B2 (en) | Model generation method and information processing apparatus | |
US20230316204A1 (en) | Method and system for recommending modules for an engineering project | |
CN111400799A (zh) | Bim模型非几何信息的赋予方法、系统及存储介质 | |
Sigurdarson et al. | A novel approach to configuration redesign: Using multiobjective monotonicity analysis to alter the pareto set | |
CN112580293B (zh) | 生成电路版图的方法、设备和计算机可读存储介质 | |
Su et al. | Learning as applied to stochastic optimization for standard-cell placement | |
CN113760380B (zh) | 网络模型的运行代码的确定方法、装置、设备及存储介质 | |
CN107256458A (zh) | 一种多处理器片上系统的性能良品率优化方法和装置 | |
KR102329365B1 (ko) | 개발 지원 장치, 개발 지원 시스템, 및, 개발 지원 방법 | |
CN105677968A (zh) | 可编程逻辑器件电路图绘制方法及装置 | |
Ruiz-Zafra et al. | Towards a model-driven approach for sensor management in wireless body area networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100324 |