用以验证DRC迭组的测试布局的自动产生技术的制作方法

文档序号:13823393阅读:149来源:国知局
用以验证DRC迭组的测试布局的自动产生技术的制作方法

本公开涉及用于集成电路的设计验证的计算机辅助测试,并且更特别地涉及用以验证设计规则检查迭组的测试布局的自动产生技术。



背景技术:

设计规则检查(drc)是电子设计自动化(eda)的一块,drc被用来判定集成电路的布局设计是否满足称作为设计规则的串行的推荐参数。由于典型集成电路中电路部件的复杂及层数,drc处理典型地使用cad软件或更明确言之drc软件执行。drc软件的实例为由明导图形公司(mentor)出品的典型地,设计规则为专用于特定制程且可载明例如某些几何形状及连接性限制以确保有足够边际来考虑制程中的变异度。针对特定制程的集合的设计规则称作为drc迭组、drc执行集合、或规则迭组。典型drc迭组可包括跑数百个至数千个设计规则检查的指令。举例言之,drc迭组可包含指令语言输入档案,其指示处理器如何在限定表示欲制造的集成电路的多边形形状的布局设计档案上执行这些设计规则检查。

为了验证drc迭组的具体实施,需要一集合的测试布局,包含预期合格通过设计规则检查的用例-所谓“合格用例”,及预期未能通过设计规则检查的用例-所谓“不合格用例”。举例言之,如果期望测试设计规则的某个要求(限制)是否被正确实施,则产生针对该要求的至少一个不合格用例及至少一个合格用例是有用的。但因如同参数值的组合数目一样,在设计规则检查中边缘及形状特征的有效拓扑结构的数目随着其数目而及其快速成长,须了解,测试布局或图案量可能变成过大。测试布局的手动产生受到产生布局工作者的想象力、专门技术、及勤勉程度所限。据此,期望使用计算机而自动化产生测试布局。

举例言之,美国专利案第8,875,064号描述自动设计规则检查(drc)测试用例的产生,其中该方法包括提取一集成电路设计中的错误记号的坐标,使用该等坐标产生一错误多边形,在设计中选择接触该错误多边形的多边形,识别包围这些经选取的多边形的矩形,及基于涵括于该矩形内部的该设计数据而产生一测试用例。不幸地,已知方法仰赖集成电路设计中的错误记号,其可能不适用以覆盖一特定drc迭组的规则。

据此,期望改良用以验证drc迭组的测试布局的自动产生,特别用以提供与检查drc迭组特别相关的测试布局。



技术实现要素:

本公开的一个方面提出一种自动产生用以验证drc迭组的测试布局的计算机实施方法。举例言之,drc迭组包含用以验证电路设计与经选择的制程的依从性的设计规则检查。该方法包含接收包含由多个多边形参数限定的一个或多个多边形形状的第一布局。例如,一个或多个多边形形状表示电路设计的一层或多层中的电路部分。该方法包含接收设计规则,设计规则包含在多边形参数上的一个或多个限制。例如,该限制取决于该限制是否被满足而针对参数的可行性区域与不可行性区域之间的多边形参数限定参数边界。该方法包含通过施加数值的随机变化给第一布局的多边形参数中的至少一个而计算第二布局。该方法包含通过改变第二布局的多边形参数的值直到多边形参数相对于参数边界中的一个或多个的相应松弛为最小化为止而计算第三布局。该方法包含储存第三布局作为用以验证该drc迭组的候选者测试布局。例如,取决于是否满足设计规则,候选者测试布局可储存为合格用例或不合格用例。

目前认识到,当测试布局以排他方式产生时,此类布局的数目可成指数地增加到无法工作的点。另一方面,当测试布局以受控方式产生时,诸如限制其数目,例如对某个空间或宽度限制范围时,可能遗漏了重要的合格及不合格用例,结果导致受测设计规则的覆盖率不良。使用本方法,原则上可能以随机方式排他地产生布局,但其中随机布局随后被优化成用于测试设计规则所最关注的布局。全部可能的布局及拓扑结构的集合可以以随机方式有效地重复取样,并且在优化之后,只有关注的布局被加至该测试布局集合,原因在于其以最小边际(松弛)通过或未通过设计规则检查。相对于仰赖单独的随机产生方法,此种方法的一项优点为其利用相当少数的测试布局已能获得良好覆盖率。相对于仰赖单独的优化方法,此种方法的一项优点为其针对先前未曾设想的布局,随机取样也可增加覆盖率。再者,覆盖率随着程序的运行时间而增加,并且若有足够时间则可趋近于百分之百。当然,较大覆盖率暗示较大数目的测试布局,但如同使用单独的基于随机产生的方法,该数目将不会“爆炸”。

本方法可产生解决方案或布局,其经偏置以便用于测试设计规则时更加有用。举例言之,关注的用例可以是根据限制与要求值的偏差不多于1单位(最小网格距离)的空间的用例。须了解,与要求值有较大偏差的用例产生极少的或无额外覆盖率,因而可安全地忽略不计。依据本公开的一个方面,通过朝向接近被视为测试所关注的限制的边界而偏置测试布局的选择,所产生的测试布局的数目被最小化。针对此类边界用例,边缘位置的小量改变,典型地为1单位的改变,可能造成受测方面有根本差异。举例言之,若该方面为最小距离要求,则边缘的两次移动达1单位可变更要求状态从满足最小松弛、到确切依从性、到不满足具有最小松弛的要求。

在随机化多边形参数中,发现通过包括拓扑随机化以及距离随机化两者,可有效达成特别关注的用例。在拓扑随机化中,多边形形状的边缘的数目或顺序可经变更,表示可能适用不同的设计规则。举例言之,取决于两个形状并排排列或重迭排列,距离检查可能不同。在距离随机化中,多边形形状的边缘可相对于限制的边界改变距离,其可能导致在拓扑结构内部查找不同的边界用例。距离变化也可导致合格用例与不合格用例间的交叉,两者皆为测试设计规则所关注的。此外,拓扑变化或距离变化之间的选择本身可经随机化,来有效地取样关注的布局的数目,亦即针对不同限制合格/不合格的边界用例。为了快速探索在不同拓扑结构中的候选者测试布局,较佳地朝向拓扑随机化的选择而偏置随机选择。

当最小化松弛时,发现较佳聚焦在某个拓扑结构内部的距离最小化。通过此方式,能防止当最小化时不同的设计规则开始起作用。举例言之,多边形参数可被阻止与用于拓扑结构保留的限制的边界交叉。最小化参数的松弛例如可通过加上所谓松弛变量而将不等式限制转换成等式进行,所谓松弛变量就此为场优化问题所已知。举例言之,限制可表述为松弛变量,其为参数值的函数。举例言之,若松弛变量为正,则表示限制系被满足(可行性区域)。典型地,若松弛变量为负,则表示限制不被满足(不可行性)。然而,在本方法中,此类不可行性区域也可以是不合格用例的关注的测试布局。通过最小化松弛变量的绝对值,参数可经修改,用以查找在合格或不合格之间的交叉的任一侧上的测试布局。典型地,透过多个松弛变量的最小化,布局可朝向关注的(分界线)测试优化。为了在合宜测试布局上的快速覆盖率,发现较佳地首先给定顺位用以最小化最低初始松弛。也可以从低至高的顺序处理其它松弛变量,例如在先前松弛变量被最小化之后判定。作为额外限制,在最小化下一个松弛变量中,优异地能将任何先前松弛变量固定在其最低值。

该程序可经迭代,用以产生多个测试布局而来测试任何数目的设计规则的方面。通过追踪新查找的布局与先前查找的相同布局之间的比,可做出知情决策,若覆盖率被视为足够则是否中止迭代。举例言之,若少于10%所产生的布局与先前产生的布局有独特差异,则可判定已探索相当大比例的有用的布局。候选者布局也可被过滤,以维持只有独特相关用例,例如测试设计规则的任一项组合的合格和不合格只有一次。举例言之,具有合格用例和不合格用例的一对布局,其中布局彼此的差异极小,可被关注确切测试设计规则的分界线用例。举例言之,通过不同边缘位置偏移器,合格用例可与不合格用例差异达一个网格(最小值)距离。

针对每次迭代,可接收新种子布局,或可使用相同种子。新种子布局也可基于先前查找的布局。这可具有以下优点,先前查找的布局已属分界线用例,因而通过改变一个参数值,新布局也接近一个或多个限制的边界中的至少部分的机会增高。通过使用前次查找的布局作为下次迭代的种子,布局可由通过参数空间的随机路径查找,例如就不同拓扑结构而言该路径可从初始种子布局进一步行进。当然组合也属可能。取决于查找新独特布局的成功率,也可能从先前查找的布局偏置一种子布局的选择。举例言之,若就查找进一步独特测试布局而言某个种子布局为排他,则种子布局可被偏置成较不常出现。

本公开的第二方面提出一种自动产生用以验证drc迭组的测试布局的计算机系统,该计算机系统包含一内存及耦合至该内存的一个或多个处理器,其中该内存含有一组指令,其当由一个或多个处理器执行时,造成一个或多个处理器执行包含本文描述的方法中的一个或多个的操作。

本公开的第三方面提出一种以计算机程序编码的非瞬时计算机存储介质,该计算机程序包含一组指令,其当由一个或多个计算机执行时,造成一个或多个计算机执行包含本文描述的方法中的一个或多个的操作。

须了解,本方法及系统可应用于最终导致集成电路的制造的设计及制造方法。在一项应用中,本公开提出一种验证drc迭组的方法,包含本文描述的测试布局的自动产生及使用测试布局验证该drc迭组。在又一项应用中,本公开提出一种验证电路设计的方法,包含本文描述的drc迭组的验证及使用该已验证的drc迭组检验证该电路设计。在又一项应用中,本公开提出一种制造电路的方法,该方法包含本文描述的电路设计的验证及制造该已验证的电路设计。须了解,通过drc迭组的验证,drc迭组更值得信赖地用以有效地验证电路设计,这可导致电路制造上的良率增高。

附图说明

本公开的装置、系统及方法的这些及其它特征、方面、及优点从后文详细说明部分、随附的权利要求、及附图将变得更为明了,附图中:

图1a示意地例示在参数空间中产生测试布局的一路径;

图1b示意地例示在测试布局的产生期间的中间布局;

图2a示意地例示在通过设计规则的第一随机产生布局中的两个多边形形状;

图2b示意地例示在优化后自图2a的随机布局推衍的第一测试布局;

图3a示意地例示针对未通过设计规则的第二随机产生布局中的两个多边形形状;

图3b示意地例示在优化后自图3a的随机布局推衍的第二测试布局;

图4a示意地例示在通过设计规则的但具有与图2a不同的拓扑结构的第三随机产生布局中的两个多边形形状;

图4b示意地例示在优化后自图4a的随机布局推衍的第三测试布局;

图5a通过描绘第一多边形形状及第二多边形形状的角隅点的不同位置示意地例示候选者测试布局;

图5b示意地例示候选者测试布局;

图6a示意地例示一设计规则实例;

图6b示意地例示用于验证图6a的该设计规则的具体实施的测试布局;

图7a示意地例示一设计规则的另一实例;

图7b示意地例示用于验证图7a的该设计规则的具体实施的测试布局;

图8示意地显示包含用以产生测试布局的方法的流程图;

图9示意地显示测试布局如何用于验证一设计规则检查迭组(drcdeck)的实例。

具体实施方式

除非另行限定,否则此处使用的全部术语(包括技术及科学术语)具有与本领域技术人员在读取详细说明部分及附图的上下文时所通常理解的含义相同的含义。在某些情况下,众所周知的装置及方法的详细说明可被删除,以免使本系统及方法的描述模糊。如此处使用,除非上下文另行明白指示,否则单数形式“一”及“该”意图也包括复数形式。术语“和/或”包括相关联的列举项目中的一个或多个的任何及全部组合。须了解,术语“包含”和/或“包含有”载明所述特征的存在,但不排除一个或多个其它特征的存在或添加。须了解,当描述结构或组件间的连接时,除非另行陈述,否则此种连接可直接建立或经由中间结构或组件建立。附图中,系统及组件的绝对尺寸及相对尺寸可经夸大以求清晰。实施例可参考本发明的可能理想化的实施例及中间结构的示意和/或剖面例示描述。在详细说明部分及附图中,相似的附图标记系指全文中相似的组件。

图1a示意地例示由两个参数h1及w1跨距的一参数空间。如此处描述的布局的随机化及优化例如可由通过多边形参数的参数空间的路径例示。图1b示意地例示根据针对不同布局l1至l3的多边形参数h1及w1的不同值的多边形形状p1。

根据图1a中例示的实施例,参数空间被分割成合格区域“p”(白色背景)及不合格区域“f”(影线图案)。在参数空间里落入于合格区域“p”内的一点满足了设计规则r1及r2的限制c的组合。在参数空间里落入于不合格区域“f”内的一点不满足设计规则r1及r2中的一个或多个。举例言之,设计规则r1、r2可等于或为更大型设计规则检查集合的一子集或欲验证的drc迭组,亦即对此将产生一测试布局。

根据图1b中例示的实施例,在本例子中,参数系指一布局中多边形p1的高度h1及宽度w1。根据设计规则r1,多边形p1的宽度须为0.01至0.04或大于0.10。设计规则r2为类似但针对多边形p1的高度h1。须注意,设计规则可包含多个限制“c”的逻辑或布尔组合。符号“&”系指不同的限制要求之间的布尔“and”运算,而符号“|”系指不同的限制要求之间的布尔“or”运算。设计规则r1及r2也可由布尔操作数组合,例如要求r1andr2两者皆满足。

根据一个方面,本公开提出一种计算机实施方法,用于验证drc迭组的测试布局的自动化产生。在一个实施例中,方法包含接收第一布局l1,又称种子布局。在一个实施例中,种子布局以gds格式描述,其中给定欲被变更的多边形形状。这些形状的边缘的正确位置并非极其要紧,只要其具有有效的起始拓扑结构即可。初始种子布局本身例如可使用随机初始参数自动化产生。另外,先前储存的布局可用作为种子,或初始种子可手动产生。在一个实施例中,布局l1包含由多个多边形参数w1、h1限定的多边形形状p1。举例言之,多边形形状p1表示在电路设计的一层或多层中的电路部分。

在一个实施例中,该方法包含接收包含对多边形参数w1、h1的限制c的设计规则r1、r2。设计规则中的每一个可包含在多边形参数w1、h1上的一个或多个限制c。典型地,这些限制中的至少部分为不等式限制,例如,表示为等式,其针对这些参数中的一个或多个分开地或组合地限定一开放端的容许值的范围。当然,设计规则也可包含其它限制,例如等式限制,其可例如用来限定或消除可变的多边形参数中之一。

限制c可用以限定在针对多边形参数w1、h1的一参数空间里介于其中符合该限制的一可行性区域与其中该限制不被满足的一不可行性区域之间的个别参数边界b1、b2(在本图中以点虚线表示)。举例言之,针对不等式限制(例如,a<b、a≤b、a>b、a≥b),典型地在一参数空间里有一可行性区域,其中符合不等式限制通过一参数边界而与其中该不等式限制不被满足的一不可行性区域分开。取决于该不等式限制是否包含大于/小于符号(“>”或“<”);或大于等于/小于等于符号(“≥”或“≤”),参数边界可涵括于可行性或不可行性区域中之一。作为另一个实例,针对不等式限制,可行性区域与参数边界可重迭于一线,而不可行性区域可在任何位置但参数边界除外。

在一个实施例中,参数边界b1、b2进一步限定为一子集,其中多边形参数w1、h1交叉在一个或多个设计规则r1、r2的合格(p)与不合格(f)间。注意,个别限制“c”的可行性区域典型地与遵照一个或多个设计规则的合格/不合格区域不相同。举例言之,一区域可针对这些限制中的一个为可行(例如,w1≤0.04),而针对另一限制为不可行(例如,w1≥0.10)。通过使用逻辑“or”运算组合限制,任一限制的可行性区域针对在设计规则中建立的组合为可行。通过使用逻辑“and”运算组合限制,该组合的区域只有在两个限制皆被满足时才可行。

如此,参数边界b1、b2可根据这些设计规则中的一个或多个而针对这些限制中的每个单独分开限定或针对其布尔组合限定。在一个实施例中,参数边界包括保留布局中的拓扑结构(例如,边的顺序或数目)的限制。通过针对不同类型限制中的每个限定参数边界b1、b2,优化可涉及松弛的最小化,例如就有关可制造性限制和/或拓扑限制而言,两者可限定为一设计规则的一部分。拓扑限制也可与可制造性限制分开提供,例如,其中一集合的可制造性限制针对某个拓扑结构限定,或其它可制造性限制(例如,距离检查)针对不同拓扑结构自动推衍。设计规则本身也可通过布尔操作数组合。举例言之,设计规则可析取组合或合取组合。目前发现特别在欲检查的距离边界及在拓扑变化处可能出现令人关注的测试布局。

在一个实施例中,该方法包含通过施加一值的随机变化δw12给第一布局l1的多边形参数w1中的至少一个而计算第二布局l2。通过一次至多随机变化多边形参数中之一,在随机化之后可能更容易再度找到优化布局,原因在于某些情况下其它参数可能仍然为最佳,亦即接近其相应参数边界。通过一次随机变化多于一个参数,可更快达成不同拓扑结构。当然全部组合皆属可能。

在一个实施例中,多边形参数w1中的至少一个的该值的随机变化δw12包含基于随机产生数目而修改多边形参数w1。在另一或又一个实施例中,随机变化δw12包含通过在一经预选取范围内的一随机数的加、减、乘、或除多边形参数w1的该值。在另一或又一个实施例中,经预选取范围基于第二布局l2的尺标。在一个实施例中,该经预选取范围基于第二布局l2与参数边界b1、b2的邻近性。

在一个实施例中,由于随机变化δw12的结果,多边形参数w1、h1被允许和一可行性区域与一不可行性区域之间的一个或多个参数边界b1、b2交叉,或反之亦然。换言之,第二布局l2可具有与第一布局l1不同的拓扑结构,例如针对多边形形状有不同边缘的顺序和/或数目。

在一个实施例中,第一布局的随机变化可包含拓扑随机化(δt1)和/或距离随机化。在拓扑随机化中,相比于第一布局l1,一多边形参数的随机变化变更了第二布局l2中多边形形状p1、p2的边缘的顺序或数目。在距离随机化中,相比于第一布局,一多边形参数的随机变化变更了第二布局中这些形状的边缘之间的距离。在一个实施例中,在计算第二布局l2中,自至少拓扑随机化及距离随机化而做出随机选择。

在一个实施例中,该方法包含计算第三布局l3,计算方式系经由改变第二布局l2的多边形参数w1、h1的值直到多边形参数w1、h1相对于参数边界b1、b2中的一个或多个的相应松弛s1、s2被最小化为止。换言之,多边形参数相对于限制的边际被最小化。在一个实施例中,该松弛被最小化而在距参数边界的网格间隔(drc程序的分辨率)上为最大。

在一个实施例中,一限制的松弛s1、s2的计算方式是通过将多边形参数w1、h1的值填充入各个不等式限制,及设定松弛s1、s2等于该限制方程的左手边与右手边之间的数值差。因参数可在该限制的可行性区域或不可行性区域内,故可优异地最小化松弛的绝对值。如此考虑,参数也可在参数边界的“错”边,其仍然是关注的测试布局。

在一个实施例中,在最小化之前,计算多个限制的各个初始松弛s1、s2;及最小化经偏置成以最低初始松弛s1改变限制中的多边形参数h1,用以首先最小化最低初始松弛s1。在一个实施例中,松弛s1、s2被循序最小化,始于最低初始松弛s1;重新计算松弛;及在首先最小化之后,继续次低松弛s2。

在一个实施例中,多边形参数w1、h1被防止与全部或部分参数边界b1、b2交叉,同时最小化第二布局l2与第三布局l3之间的松弛s1、s2。藉此方式,可保留布局的拓扑结构,同时仍然朝向参数边界优化。在另一或又一个实施例中,通过最小化松弛而计算第三布局l3中,多边形参数w1、h1被阻止与设计规则r1、r2中的一个或多个(例如,全部)的限制的边界交叉。藉此方式,布局不会改变特性从合格用例“p”改变成不合格用例“f”,或反之亦然。举例言之,松弛变量s1、s2的最小化可能遭遇经修改的限制,阻止与参数边界b1、b2交叉。在一个实施例中,设计规则r1、r2的一个或多个限制可通过颠倒可行性区域与不可行性区域而被修改。在一个实施例中,经修改的限制通过反相设计规则r1、r2的限制c中的一个或多者、直到第二布局l2的多边形参数w1、h1满足经修改的不等式限制为止而被推衍。

在一个实施例中,该方法包含储存第三布局l3作为用于drc迭组的验证的候选者测试布局。举例言之,第三布局可储存于内存内或盘片上,或任何其它可想到的本地或远程储存媒体上。在另一或又一个实施例中,若针对第三布局l3的多边形参数w1、h1的值满足全部所接收的设计规则r1、r2,则第三布局l3被储存为合格用例“p”,或否则储存为不合格用例“f”。当然,合格及不合格用例的分类也可在其后进行。

在一个实施例中,该方法经迭代,例如通过取候选者测试布局l3作为在下次迭代中接收的新种子布局。据此在第二迭代中,可包含随机改变相同的或其它一个或多个多边形参数。举例言之,如图1a中例示的,布局l4通过h1的参数值的随机变化δw34而从布局l3计算得到。随机化布局l4接着通过相对于参数边界b3最小化松弛而优化成布局l5。并且,这种处理程序可经迭代用以产生布局l6至l9及其它。

此处描述的多边形形状可表示各个电路部分。包括电路部分的布局数据可表示集成电路的布局。集成电路可包含在不同电路层的多层堆栈中。布局数据可包含数据层中的电路部分匹配集成电路层中的实体结构。另外或此外,布局数据可包含推衍的数据层中的电路部分,例如得自布尔组合和/或得自其它推衍,诸如物理层及结构的opc。电路部分例如可通过多边形形状而表示在布局数据中,亦即由在其周界内部形成表面的连接线段所组成的形状。依据一个定义,圆形也可视为多边形形状。但从例如设计规则检查法的运算观点来看,较佳地电路部分通过包含直线段的多边形形状表示,例如矩形、三角形、或其组合。通过形状的边缘和/或填满表示电路的经移转的布局具有分派的电气和/或光学功能,布局数据可限定电路部分。例如,使用屏蔽和/或沉积,布局可经移转。沉积材料可包含例如金属、半导体、或绝缘体。不同电路部分可包含不同材料。

图2a示意地例示布局l2的第一实施例中的两个多边形形状p1及p2。多边形形状p1及p2例如由其相应边缘的坐标xn及yn(n=1,2,3,4)限定。该图中也显示环绕第一多边形形状p1的影线区,出于可制造性的原因,该影线区不应被第二多边形形状p2占据。

在一个实施例中,限制包含可制造性(drc)限制cm限定一个或多个多边形形状p1、p2的边缘x1、x2之间的最短距离d,用以验证集成电路设计与经选取的制程的依从性。在一个实施例中,限制包含拓扑限制ct,用于限定一个或多个多边形形状p1、p2的边缘y0、y1、y2的顺序和/或数目,用以保留一个或多个多边形形状p1、p2的相对布局。在本实施例中,设计规则r1包含可制造性限制cm的布尔组合,其施加于由拓扑限制ct所设定的范围以内。在另一或又一个实施例中,(并非本设计规则r1的部分),限制包含形状限制,例如x1-x0>0,y1-y0>0,用以限定一个或多个多边形形状p1、p2的最小维度,用于保留一个或多个多边形形状p1、p2的存在或特性。形状限制也可以是等式限制,用以设定多边形形状的固定维度。据此,须了解,如此处使用的,设计规则可包括例如可制造性限制、拓扑限制、和/或形状限制的组合。也可包括其它限制。

图2b示意地例示在优化之后自图2a的布局推衍的第一测试布局l3。

在一个实施例中,第三布局l3的计算包含计算作为多边形参数xn、yn的函数的设计规则r1的限制的一个或多个松弛变量s1、s2、s3。举例言之,松弛变量可定义为被加至不等式限制以将不等式限制变换成等式的变量。针对等式限制,松弛变数可定义为被加到方程的一侧以满足该限制的变量。据此,若已满足了等式限制,则松弛可定义为零;若未满足等式限制,亦即参数是在不可行性区域,则松弛可被考虑为等式限制距满足有多远的一度量。

在本情况下,形成设计规则r1的不等式限制中的每一个通过添加相应变数sn到方程的左手边而被变换成等式方程。方程可被重排,以将松弛变量表示为参数的函数,例如s1=d-(x2-x1)。取决于参数是否满足该限制,松弛变量可以是正或负。另外,若不等式限制不满足而被反相时,则松弛变数可经常性地为正。

在又一个实施例中,第三布局l3的计算包含朝向最小化一个或多个松弛变量s1、s2的绝对值而变更第二布局l2的多边形参数xn、yn的值。须注意,在本实施例中,松弛变量s1不可能确切为零,原因在于这将表示根据可制造性限制cm而交叉合格用例与不合格用例之间的边界:x2-x1>d。在l2的拓扑结构的限制以内,s1的最小值例如可以是依据设计工具的分辨率的最小网格距离。注意,在此种情况下松弛s2及s3为倒数。在一个实施例中,松弛s3的最小化受到维持先前已最小化的松弛s1及s2固定所限。在此种情况下,表示在由最小松弛s2的限制许可的范围以内,松弛s3已经最小化。最小化顺序可基于在未经优化布局l2中该松弛的绝对值。

图3a示意地例示了布局l2的第二实施例中的两个多边形形状p1及p2。该实施例类似图2a的实施例,但在此种情况下,多边形形状p2落入根据设计规则r1而距多边形形状p1的最小容许距离d以内。因此,设计规则r1的可制造性限制cm不被满足,并且该布局构成不合格用例。与图2a的另一项差异为多边形形状p2现在开始比拓扑限制ct的边界b2更接近边界b3。

图3b示意地例示了在优化之后自图3a的布局推衍的第二测试布局l3。类似参考图2b所描述的,松弛变量s1、s2、s3可推衍自设计规则r1的限制。但在此种情况下,因未满足第一限制cm,因此松弛变量s1被加到方程右手边。另外,若接受松弛变量具有负值,则松弛变量可被加到方程左手边。在该种情况下,例如,松弛变量s1的绝对值可被最小化。在松弛变量的最小化之后,注意,多边形p2确切驻在边界b1处,其中根据设计规则r1其仍属测试不合格用例。在此种情况下,多边形p2被吸引朝向边界b3,例如原因在于其初始较接近边界b2(初始最低松弛)。

图4a示意地例示了布局l2的第三实施例中的两个多边形形状p1及p2。须注意,因第二多边形形状p2不再位于第一多边形形状p1附近,因此不同的设计规则r1’(或相同设计标准的子规则)将发挥作用。在此种情况下,设计规则r1’略为较复杂,原因在于弯曲边界b1指示多边形形状间的最小距离d。通过该示例可证实,限制可包含一个或多个多边形参数的非线性项。在一个实施例中,松弛的最小化通过线性或非线性优化器来执行。

在一个实施例中,在拓扑限制ct相关的松弛之前,可制造性限制cm相关的松弛(例如,测试规则中的距离检查)被最小化。此外,若两个松弛表示式在随机开始布局中具有相等值,则优选地给予表示式松弛顺位的最小绝对值。

图4b示意地例示在优化之后自图4a的布局推衍的第二测试布局l3。在此种情况下,松弛变量s1被最小化,直到第二多边形形状p2恰在边界b1外侧为止,例如达最小网格距离。在此边界,松弛变量s2及s3不再能未经再度增加松弛变量s1或交叉边界b1而被进一步最小化,该种情况在此用例中是不容许的。

图5a通过描绘第一多边形形状p1及第二多边形形状p2的角隅点的不同位置p2c而示意地例示候选者测试布局lc。候选者测试布局lc例如通过此处描述的方法的重复的迭代产生。图5b示意地例示额外候选者测试布局,其以最小边际包含合格及不合格用例。

在一个实施例中,所储存的候选者测试布局lc经过滤而产生测试布局lx的最末集合,其中该过滤包含只有测试布局是一对候选者测试布局la、lb的部分时才接受该测试布局,其中任何多边形形状的边缘通过该对候选者测试布局la、lb之间的至多一个最小网格距离置换,并且其中该对符合设计规则r1、r2的合格p及不合格f用例。举例言之,在图5a中,由白圈指示的候选者测试布局可被过滤掉,而由黑圈指示的候选者测试布局可被保留。

图6a示意地例示类似参考图1a及1b讨论的设计规则r1实例。虽然该设计规则只指示宽度w,但如果允许该形状旋转90度,则也可应用至高度。

图6b示意地例示用于验证图6a的设计规则的具体实施的测试布局lx。测试布局lx已经被自动整序成不合格用例在左手边及合格用例在右手边。举例言之,具有多个形状的积分布局可用以检查一drc迭组,其中根据迭组的合格不合格位置的指示须符合测试布局。

图7a示意地例示一设计规则的另一个实例,其略为较复杂。在此实施例中,设计规则检查两个输入层的“or”推衍层的形状。若or推衍层的多边形具有t字形形状,腿的长度大于或等于0.05,或如果具有z字形(“锯齿”),则布局被视为合格通过设计规则。全部其它布局被视为不合格用例。

在一个实施例中,布局定义多层中的多边形形状,并且设计规则中的一个或多者由推衍层上的限制所定义,该推衍层为多层中的二个或多个的逻辑组合例如and、or、not。

许多设计规则在其定义中使用“推衍层”。推衍层基于布尔运算及分级运算定义布局中在原先层以外的其它层中的形状。例如,推衍层可以是两个原先层的“and”,这表示本层的形状只存在于两个原先层中的两个形状重迭的地方。同理,推衍层中可有的形状由原先层中的成长或收缩形状定义。这些运算的任何组合皆属可能。现在显然的是,推衍层中的形状可接受恰如原先形状的拓扑变化。若涉及分级则甚至可能完全消失或合并。例如,始于过小的原先形状,当形状收缩时将不在推衍层产生所得形状。本公开中的办法使能获得处理推衍层的良好方式。在种子布局的随机布局变化之后,以适当方式可产生推衍层。然后针对推衍层边缘,可以以原先形状的相同方式,做出拓扑结构保留限制。又随后对关注的布局的优化采取相同办法。如此造成所得的型样(在推衍层上的拓扑变化在该处也经测试)包括测试确实具有或只是没有推衍层中的形状。推衍层相关的拓扑结构保留方程也可以以常规拓扑结构方程的相同方式优化,因此也将存在有推衍层的边界用例。

图7b示意地例示用于验证图7a的设计规则的具体实施的测试布局。须注意,测试布局的数目已相当全面性,而为手动推衍在实质上不可行。

图8示意地显示包含用以产生测试布局的方法的流程图。

在一个实施例中,该方法包含接收(步骤101)由多边形参数限定的布局的重复的迭代;随机改变(步骤102)至少多边形参数的值;相对于参数边界中的一个或多个而最小化多边形参数的松弛(步骤103);及储存(步骤104)所得布局作为验证drc迭组的又一候选者测试布局l3。在一个实施例中,迭代的候选者测试布局相对于先前迭代的已储存布局被检查(步骤105),并且其中如果新查找的独特测试布局相较于先前已查找的测试布局的数目降至低于预设比,则中止迭代的重复。

在一个实施例中,针对在第一次迭代后的至少一个迭代,接收的布局(在步骤100中选择)为先前迭代最末储存的布局。在另一或又一个实施例中,针对在第一次迭代后的至少一个迭代,接收的布局(在步骤100中选择)为在第一迭代期间接收的初始布局。在另一或又一个实施例中,针对至少一次迭代,接收101的布局随机地选自于先前迭代期间储存的候选者测试布局lx中的一个。

依据一个方面,本公开提出一种验证drc迭组的方法,包含根据步骤100-106测试布局lx的自动化产生;及根据步骤107使用测试布局lx验证drc迭组。依据又一个方面,本公开提出一种验证电路设计的方法,包含根据步骤100-107验证drc迭组;及根据步骤108使用已验证的drc迭组验证电路设计ld。依据又一个方面,本公开提出一种制造电路的方法,包含根据步骤100-108验证电路设计ld;及依据步骤109制造电路lm。

本公开的各方面例如可在用于自动化产生用于验证drc迭组的测试布局lx的计算机系统中具体实施。在一个实施例中,该计算机系统包含内存;及耦合至该内存的一个或多个处理器,其中该内存含有一组指令,其当由一个或多个处理器执行时使得一个或多个处理器执行包含此处描述的方法的操作。

本公开的各方面例如可在以计算机程序编码的非瞬时计算机存储介质中实施,该计算机程序包含一组指令,其当由一个或多个计算机执行时使得一个或多个计算机执行包含此处描述的方法的操作。

图9示意地显示测试布局lx如何能够用于验证drc迭组的实例。在一个实施例中,测试布局lx在步骤107接受drc迭组,用以验证drc迭组确实查找在区域“f”里的全部不合格用例,而不指示在测试布局lx的区域“p”中的不合格用例。在一个实施例中,然后在步骤108中电路设计ld遭遇已验证的drc迭组。如此可导致例如电路以经修改的高度h、宽度w、和/或距离d重新设计,直到获得经验证的电路设计ld’为止。在一个实施例中,经验证的电路设计ld’在步骤109中制造(m),导致经制造的电路lm。可注意,经制造的电路lm可偏离设计的电路ld’,例如通过边缘的圆化、多边形形状的略微位移和/或尺寸重新标注。但偏差须在公差以内以便不影响电路功能。

从前文公开将了解,本方法与“蒙特卡罗(montecarlo)”产生方法不同,在该处,使用许多可能产生的测试布局中的有限数目的经随机选择的测试布局。在测试布局产生中,经常关注点之间和/或边缘之间有限数目的距离。针对全部这些距离,可使用一定范围的离散值,而可能的测试布局总数将为全部这些范围的迪卡尔乘积。因如此可能为巨大数目,因此从迪卡尔乘积中随机取数目来缩小集合。本办法中的一个值得注意的优点为使用者无需指示关注何种距离(因而也没有使用者忘记加载关注距离的错误机会),也无需指示该范围,原因在于全部值(若干网格上)皆经尝试。关注情况通过应用至各个随机产生的布局的优化期来选择。此处一个优点为也可经自动化,将消除遗漏关注的用例的机会。

最后,前文讨论意图仅供例示本系统和/或方法,不应解释为将随附的权利要求限制至任何特定实施例或群组实施例。据此,说明书及附图须以例示方式视之而非意图限制随附的权利要求各项的范围。在诠释随附的权利要求中,除非另行特别陈述,否则须了解“包含”一词并不排除在一给定权利要求中列举的组件或动作以外的其它组件或动作的存在;在一组件前方的“一”等词并不排除多个此等组件的存在;权利要求中的任何参考符号并非限制其范围;数个“构件”可由相同的或不同的项目或具体实施的结构或菜单示;所揭示的装置或其部分中的任一个可一起组合或分开成额外部分。互异的权利要求中引述某些手段的单纯事实并不指示此等手段的组合无法优异地使用。更明确言之,权利要求的全部工作组合皆须考虑为特异地经公开。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1