CN107025320B - 考虑复杂着色规则的多重图案化布局分解 - Google Patents
考虑复杂着色规则的多重图案化布局分解 Download PDFInfo
- Publication number
- CN107025320B CN107025320B CN201611054776.7A CN201611054776A CN107025320B CN 107025320 B CN107025320 B CN 107025320B CN 201611054776 A CN201611054776 A CN 201611054776A CN 107025320 B CN107025320 B CN 107025320B
- Authority
- CN
- China
- Prior art keywords
- matrix
- rows
- polygons
- columns
- different
- 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
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]
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F1/00—Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
- G03F1/68—Preparation processes not covered by groups G03F1/20 - G03F1/50
- G03F1/70—Adapting basic layout or design of masks to lithographic process requirements, e.g., second iteration correction of mask patterns for imaging
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F7/00—Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
- G03F7/70—Microphotolithographic exposure; Apparatus therefor
- G03F7/70425—Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
- G03F7/70466—Multiple exposures, e.g. combination of fine and coarse exposures, double patterning or multiple exposures for printing a single feature
-
- 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
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Preparing Plates And Mask In Photomechanical Process (AREA)
Abstract
提出了一种用于分解集成电路的一部分的布局的计算机实现方法。该布局包括第一大量多边形。本方法包括使用计算机来构造表示第一大量约束的第一矩阵。第一大量约束中的每一个是在第一大量多边形中的不同的一对之间。本方法包括使用计算机来对第一矩阵求解以从而当计算机被调用以分解布局时向第一大量多边形中的每个不同的一个分配大量掩膜中的一个。
Description
相关申请的交叉引用
本申请要求题为“MULTIPLE PATTERNING LAYOUT DECOMPOSITION CONSIDERINGCOMPLEX COLORING RULES”的2015年11月25日提交的美国临时申请号62/260,227的根据35U.S.C§119(e)的优先权,该临时申请的内容被整体地通过引用并入本文中。
技术领域
本发明涉及电子设计自动化(EDA),并且更特别地涉及用于将集成电路(IC)的布局分解成多重图案化光刻过程的大量掩膜的技术。
背景技术
随着半导体技术的特征尺寸继续缩小,多重图案化光刻(MPL)已经连同四个下一个光刻技术—极紫外光刻、定向自组装、纳米压印光刻以及电子束光刻—一起被视为用以克服常规光刻的分辨率极限的候选解决方案中的一个。MPL可通过执行一系列的曝光/蚀刻步骤以使用从要在IC的层上印刷的一组多边形特征所表示的布局导出的大量掩膜对该层进行图案化而将193nm浸没式光刻扩展至14nm以下节点。
MPL从而与使用仅单个掩膜的光刻过程相比改善有效节距和光刻分辨率。MPL的一个挑战是布局分解,其中将布局划分成多个掩膜。MPL包括双重图案化光刻(DPL)、三重图案化光刻(TPL)、四重图案化光刻(QPL)等。到目前为止,现有的工作仅仅集中于基本的着色规则,即同一色彩间距约束cs,并且将多重图案化布局分解(MPLD)的此版本建模为冲突图上的图着色问题。甚至此版本的MPLD是困难的,因为一般图上的图着色在计算上是困难的。MPL的最简单形式是DPL。双重图案化布局分解问题对应于二着色问题。没有奇数循环的冲突图是可二着色的。因此,可以用宽度优先搜索技术采取线性时间来完成 测试可二着色性和对冲突图二着色。
作为DPL的自然扩展的TPL将布局分解成三个掩膜而不是两个,并且因此可以用较少的拼接和冲突来处理更加密集和复杂的布局。然而,三重图案化设计分解经证明是个难题,因为测试图的三色能力并对可三着色图三着色两者是NP完整的。与TPL相比,QPL再添加一个掩膜,其被建模为四着色问题。由于随着技术进步而使用更多的掩膜,冲突图变得更加密集,并且随着引入了更复杂的着色规则,因此MPLD变得更具挑战性。
最近,存在对使用不同数目的掩膜描述的MLB分解的广泛研究。针对使用两个掩膜的DPL,已经提出了输送最新结果的基于最小割的多项式时间算法。针对TPL和QPL,在先的工作主要分成两类:数学规划和快速启发式。数学编程方法(例如,整数线性规划(ILP)和半定规划(SDP))寻求最优性,但是可消耗可要求加速技术的长计算机运行时间。快速启发式(例如,查找表、成对着色以及已修改独立集技术)通常是高效的,但可能损失一些解答质量并产生一些假着色冲突。迄今为止,所有这些方法都是为了分别对应于遵守单个基本着色规则的图着色并将多重图案化布局分解建模为图着色问题而开发的。然而,具有更加复杂的着色规则(诸如当要求超过一个着色规则时)的多重图案化布局分解不仅仅是常规图着色问题,并且因此这些方法不能被容易地扩展至处理复杂着色规则。
因此,需要能够使用三重或更高图案化光刻技术来分解用于理解复杂着色规则的MPL的布局。
发明内容
根据本发明的一个实施例,提出了一种用于分解集成电路的一部分的布局的计算机实现方法。该布局包括第一大量多边形。本方法包括使用计算机来构造表示第一大量约束的第一矩阵。第一大量约束中的每一个是在第一大量多边形中的不同的一对之间。本方法包括使用计算机来对第一矩阵求解以从而当计算机被调用以分解布局时向第一大量多边形中的每个不同的一个分配大量掩膜中的一个。
根据一个实施例,所述大量掩膜中的每一个与多重图案化光刻相关联。根 据一个实施例,第一大量约束中的每一个促使向大量掩膜中的不同掩膜分配第一大量多边形中的多边形对。
根据一个实施例,布局包括第二大量多边形。本方法还包括使用计算机来构造表示第二大量约束的第一矩阵,第二大量约束中的每一个不同于第一大量约束中的任何一个。第二大量约束中的每一个促使向大量掩膜中的不同掩膜分配第二大量多边形中的一对多边形。
根据一个实施例,第一矩阵是精确覆盖矩阵。根据一个实施例,用等于第一数目和第二数目的和的尺度来表征第一矩阵。第一数目等于第一大量多边形的第一计数乘以大量掩膜的第二计数。第二数目等于第一大量约束的第三计数乘以第二计数。
根据一个实施例,用等于与第一数目和第二数目的和相等的整数值的尺度来表征第一矩阵。第一数目等于第一大量多边形的第一计数。第二数目等于第一大量约束的第二计数乘以大量掩膜的第三计数。
根据一个实施例,第一矩阵包括第一大量的行和具有与第一大量的行不同的取向的大量的列。大量值中的一个与第一大量的行中的一个和大量的列中的一个之间的交叉点相关联。大量值中的每一个是逻辑真值。构造第一矩阵包括构造第二大量的行。第二大量的行是第一大量的行的子集,使得第二大量的行中的每一个包含所述大量的列中的每一个中的精确地一个逻辑真值。根据一个实施例,本方法还包括使用计算机来将第一矩阵表示为舞蹈链(Dancing Links)数据结构以对第一矩阵求解。
根据一个实施例,本方法还包括使用计算机来形成表示与布局相关联的图的数据。该图包括大量的顶点和大量的边。大量顶点中的每一个与第一大量的多边形中的不同的一个相关联。大量的边中的每一个与第一大量的约束中的不同的一个相关联。本方法还包括使用计算机将图变换成第一矩阵。第一矩阵包括第一大量的列。第一大量的列中的每一个与第一大量的多边形中的不同的一个相关联。本方法包括使用计算机来按照与图相关联的宽度优先搜索顺序访问第一大量的列以对第一矩阵求解。
根据一个实施例,第一矩阵包括第一大量的行和具有与第一大量的行不同 的取向的大量的列。大量值中的一个与第一大量的行中的一个和大量的列中的一个之间的交叉点相关联。大量的值中的每一个是逻辑真值。本方法还包括首先使用计算机来选择第一大量的列中的一个,其在第一大量的列中的选定的一个与第一大量的行中的一个的交叉点处具有精确地一个逻辑真值,以对第一矩阵求解。
根据一个实施例,本方法还包括当对第一矩阵求解并未提供可行解时使用计算机来检测第一冲突。第一冲突是第一大量的约束中的一个,其防止将大量的掩膜中的一个分配给第一大量的多边形中的一个。本方法还包括如果检测到第一冲突,则使用计算机来从第一矩阵去除第一冲突的表示,从而形成第二矩阵。本方法还包括使用计算机将检测到的第一冲突标记为精确第一冲突并继续使用计算机来对第二矩阵求解,从而避免从最初开始。本方法还包括当对第二矩阵求解并未提供可行解时使用计算机来检测第二冲突。第二冲突是第一大量的约束中的一个,其防止将大量的掩膜中的一个分配给第一大量的多边形中的一个。
根据一个实施例,本方法还包括当对第一矩阵求解并未提供可行解时使用计算机来拼接第一大量多边形中的至少一个以形成第二大量多边形。本方法还包括使用计算机来构造表示第一大量约束和第二大量约束的第二矩阵。第一大量约束中的每一个是在第一大量多边形中的不同的一对之间。第二大量约束中的每一个是在第二大量多边形中的不同的一对之间。本方法还包括使用计算机对第二矩阵求解以从而向第一大量多边形中的每个不同的一个和第二大量多边形中的每个不同的一个分配大量掩膜中的一个。根据一个实施例,所述大量掩膜的计数大于或等于3。
根据一个实施例,第一大量多边形包括第一多边形、第二多边形以及第三多边形。构造第一矩阵还包括使第一多边形与矩阵的第一列相关联,并且使第二多边形与矩阵的第二列相关联以及使第三多边形与矩阵的第三列相关联。
根据一个实施例,第一大量约束包括第一多边形与第二多边形之间的第一约束以及第一多边形与第三多边形之间的第二约束。构造第一矩阵还包括将矩阵的第一大量的列与第一约束相关联。第一大量的列中的每一个进一步与大量掩膜中的不同的一个相关联。构造第一矩阵还包括将矩阵的第二大量的列与第 二约束相关联。第二大量的列中的每一个进一步与大量掩膜中的不同的一个相关联。
根据一个实施例,构造第一矩阵还包括将矩阵的第一大量的行与第一多边形相关联。第一大量的行中的每一个进一步与大量掩膜中的不同的一个相关联。构造第一矩阵还包括将矩阵的第二大量的行与第二多边形相关联。第二大量的行中的每一个进一步与大量掩膜中的不同的一个相关联。构造第一矩阵还包括将矩阵的第三大量的行与第三多边形相关联。第三大量的行中的每一个进一步与大量掩膜中的不同的一个相关联。构造第一矩阵还包括将矩阵的第四大量的行与第一约束相关联。第四大量的行中的每一个进一步与大量掩膜中的不同的一个相关联。构造第一矩阵还包括将矩阵的第五大量的行与第二约束相关联。第五大量的行中的每一个进一步与大量掩膜中的不同的一个相关联。
根据一个实施例,第三大量的列包括第一列、第二列、第三列、第一大量的列以及第二大量的列。第六大量的行包括第一、第二、第三、第四以及第五大量的行。构造第一矩阵还包括当第六大量的行中的一个与第三大量的列中的一个之间的关联为真时在第六大量的行中的一个与第三大量的列中的一个之间的每个交叉点处关联逻辑真值。
根据本发明的一个实施例,一种非临时计算机可读存储介质包括指令,该指令在被计算机执行时促使计算机构造表示第一大量的约束的第一矩阵。第一大量的约束中的每一个在包括于集成电路的一部分的布局中的第一大量多边形中中的不同的一对之间。该指令在计算机被调用以分解布局时进一步促使计算机对第一矩阵求解以向第一大量多边形中的每个不同的一个分配大量掩膜中的一个。
根据本发明的一个实施例,提出了一种用于分解集成电路的一部分的布局的系统。该布局包括第一大量多边形。该系统被配置成构造表示第一大量的约束的第一矩阵。第一大量约束中的每一个是在第一大量多边形中的不同的一对之间。本系统被进一步配置成当系统被调用以分解布局时对第一矩阵求解以向第一大量多变中的每个不同的一个分配大量掩膜中的一个。
参考以下详细描述和附图可获得本发明的实施例的本质和优点的更好理解。
附图说明
图1描绘了集成电路的设计和制造中的简化示例性步骤。
图2A描绘了色彩分解之前的包括大量多边形的简化示例性布局。
图2B描绘了两个不同的MPL着色分解之后的包括表示不同色彩间距约束的一对多边形的简化示例性布局200B。
图2C描绘了具有结果产生的着色冲突的先前在图2A中描绘的布局的第一多重图案化分解之后的简化示例性布局。
图2D描绘了作为无冲突分解算法的先前在图2A中描绘的布局的第二多重图案化分解之后的简化示例性布局。
图3A描绘了先前在图2A中描绘的布局的简化示例性部分。
图3B描绘了根据本发明的一个实施例的包括分别地与先前在图3A中描绘的多变相相关联的顶点的冲突图的简化示例性构造。
图4描绘了根据本发明的一个实施例的说明从具有基本着色规则的先前在图3B中描绘的冲突图的MPLD到精确覆盖的缩减的简化示例性矩阵。
图5描绘了根据本发明的一个实施例的用于多重图案化布局分解的简化示例性流程图。
图6描绘了根据本发明的一个实施例的用于如先前在图5中描绘的那样确定用于子图的色彩分配的简化示例性流程图。
图7描绘了根据本发明的一个实施例的针对三重图案化示例的说明从具有基本着色规则的先前在图3B中描绘的冲突图的MPLD到精确覆盖的缩减的简化示例性矩阵。
图8描绘了根据本发明的一个实施例的与先前在图7中描绘的矩阵的一部分相关联的简化示例性舞蹈链数据结构。
图9描绘了根据本发明的一个实施例的用于如先前在图6中描绘的精确覆盖求解的简化示例性流程图。
图10描绘了根据本发明的一个实施例的用于如先前在图9中描绘的算法X*的简化示例性流程图。
图11描绘了根据本发明的一个实施例的用于如先前在图10中描绘的执行行操作的简化示例性流程图。
图12A描绘了根据本发明的一个实施例的包括分别地与先前在图3A中描绘的多变相相关联的顶点的冲突图的简化示例性构造。
图12B描绘了根据本发明的一个实施例的用于先前在图2A中描绘的冲突图的包括第一拼接候选的冲突图的简化示例性构造。
图12C描绘了根据本发明的一个实施例的用于先前在图2A中描绘的冲突图的包括第二拼接候选的冲突图的简化示例性构造。
图12D描绘了根据本发明的一个实施例的包括先前分别地在图12A、12B、12C中描绘的原始冲突图、第一拼接插入冲突图和第二拼接插入冲突图的总计组合的冲突图的简化示例性构造。
图13描绘了根据本发明的一个实施例的先前在图12B中描绘的冲突图的成功的3着色之后的具有拼接的冲突图的简化示例性构造。
图14描绘了根据本发明的一个实施例的针对具有拼接的三重图案化示例的说明从具有基本着色规则的先前在图13中描绘的冲突图的MPLD到精确覆盖的缩减的简化示例性矩阵。
图15描绘了根据本发明的一个实施例的向先前在图3B中描绘的冲突图添加了复杂着色规则的情况下的冲突图的简化示例性构造。
图16描绘了根据本发明的一个实施例的针对三重图案化示例的说明从具有复杂着色规则的先前在图15中描绘的冲突图的MPLD到精确覆盖的缩减的简化示例性矩阵。
图17是可结合本发明的实施例的计算机系统的框图。
具体实施方式
图1描绘了集成电路的设计和制造中的简化示例性步骤。过程从使用电子 设计自动化(EDA)软件110实现的产品思想100开始。可以通过执行制造150及封装和组装160步骤而从定型设计产生芯片170。下面仅仅出于举例说明的目的描述使用EDA软件110的示例性设计流程。例如,实际集成电路设计可要求设计师按照与下面所述序列不同的序列来执行设计流程步骤。
在系统设计112中,设计师描述要实现的功能。设计师还可以执行假设规划以细化功能并检查成本。此外,硬件-软件架构划分可以在此步骤发生。在设计和功能验证114中,可以创建并针对功能准确度而检查硬件描述语言(HDL)设计。
在合成和设计116中,可以将HDL代码转换成网表,其可以被针对目标技术进行优化。此外,可以设计并实现测试以检测成品芯片。在网表验证118中,可以针对与定时约束的符合性且针对与HDL代码的相对应性检查网表。在设计规划120中,可以构造并针对定时和顶层布线而分析用于芯片的总体平面图。接下来,在物理实现122中,可以执行放置和布线。
在分析和提取124中,可以在晶体管层级验证电路功能。在物理验证126中,可以检查设计以修正任何功能、制造、电或光刻问题。在分辨率增强128中,可以对布局执行几何操纵以改善设计的可制造性。最后,在掩膜数据准备130中,可以将设计下线140以用于掩膜生产以产生成品芯片。可例如在物理验证126和/或掩膜数据准备130的步骤处使用本发明的实施例。
MPL的一个挑战是布局分解,其中将布局划分成多个掩膜。针对典型的MPL,当两个特征(在下文中也称为布局的“多边形或多边形对”)之间的距离小于相同色彩间距约束cs时,应将特征分配给不同的掩膜(色彩)以避免着色冲突。有时,可以通过将特征分离成两个碰触部分(在下文中也称为“拼接”)来解决着色冲突。
可通过首先在不改变多边形的原始外形的情况下分割多边形的一部分且然后将多边形的分割部分重新分配给不同于原始多边形的色彩、使得着色冲突被固定而不引入其它着色冲突来形成针脚(stitch)。结果得到的原始多边形的外形可被保留为根据其中两个多边形重叠的设计规则而在预定或规定长度上相互重叠的两个不同着色多边形的组合。
然而,导致针脚的此分离可导致由于覆盖误差而引起的潜在产率损失。因此,布局分解中的一个目标是使冲突和针脚的数目最小化。此外,随着技术节点的进步,引入了更复杂的着色规则。除相同色彩间距约束(cs)之外,不同特征的末端之间的距离可服从不同色彩间距约束其中,ij表示从掩膜(色彩)i至不同掩膜(色彩)j的约束。
图2A描绘了包括对应于色彩分解之前的分别地标记为202、204、206、208、210、212和214的元素的大量多边形a、b、c、d、e、f和g的简化示例性布局200A。用大量多边形中的一些之间的实线来描绘大量的相同色彩间距约束(cs)216。用大量多边形中的一些之间的虚线来描绘大量不同色彩间距约束218。应注意的是多边形由于在多边形内缺乏任何填充图案而如所描绘的那样未被着色。布局200A的分解将是根据大量相同色彩间距约束(cs)216、大量不同色彩间距约束218以及如下所述的实施例。
图2B描绘了两个不同MPL着色分解之后的包括说明不同色彩间距约束218的一对多边形的简化示例性布局200B。在迫使需要将成对多边形中的每个多边形分配给不同掩膜、即被不同地着色的成对多边形之间存在相同色彩间距约束(cs)216。例如,成对多边形可被选作图2A中描绘的布局200A的一部分220。
在图2B的左侧描绘的着色分解包括成对多边形222、224,其中,多边形222被分配给或者被着色为用横条纹填充图案描绘的掩膜1,并且其中,多边形224被分配给或者被着色为用对角条纹填充图案描绘的掩膜2。根据不同色彩间距约束218,由于特征或多边形222被分配给掩膜1,所以其末端的排除 区不应包括根据而被分配给掩膜2的其它特征(诸如多边形224)的任何末端。
在图2B的右侧描绘的不同着色分解包括成对多边形226、228,其在着色之前分别地对应于多边形222、224,其中,多边形226替代地被分配给掩膜2,并且其中,多边形226替代地被分配给掩膜1。不同色彩间距约束可以关于掩膜顺序是不对称的。因此,在成对多边形226、228之间不存在不同色彩间距约束 218,因为在本示例中仅从第一掩膜至第二个进行检查。
图2C描绘了具有结果产生的着色冲突246的先前在图2A中描绘的布局200A的第一多重图案化分解之后的简化示例性布局200C。布局200C包括被分别地分配给掩膜1、掩膜2、掩膜2、掩膜3、掩膜1、掩膜2以及掩膜3之后的多边形232、234、236、238、240、242、244。掩膜3分配被描绘为实心灰色填充图案。布局200C分解可以是用现有方法产生的结果,其中,在特征a与c之间、即在多边形232与236之间发生与不同色彩间距约束的冲突246。即使执行色彩翻转,冲突246仍不能被固定。
图2D描绘了作为无冲突分解算法的先前在图2A中描绘的布局200A的第二多重图案化分解之后的简化示例性布局200D。布局200D包括被分别地分配给掩膜3、掩膜1、掩膜1、掩膜2、掩膜3、掩膜1以及掩膜3之后的多边形252、254、256、258、260、262、264。
此外,某些特征或多边形可能对掩膜不对准敏感,并且因此预先着色或部分着色约束使这些特征局限于同一掩膜(色彩)。有时用特定掩膜(色彩)对预先着色约束进行分配。这些复杂着色规则进一步使复杂分解过程复杂化。
根据本发明的一个实施例,提供了用于用复杂着色规则进行的布局分解的技术,将多重图案化布局分解问题建模为精确覆盖问题。在一个实施例中,基于增强舞蹈链提出了快速/精确的多重图案化布局分解框架。通过同时地考虑基本着色规则和复杂着色规则,该框架是灵活的且是通用的,并且还处理四重和超过四重的图案化。实验结果显示使用这些实施例关于报告的冲突和针脚方面 胜过现有技术工作,同时也处理复杂着色规则。
可如下描述多重图案化布局分解问题。给定一组多边形特征所表示的布线布局、要使用的掩膜的数目k、最小相同色彩间距cs、一组最小不同色彩间距预先着色约束、最小特征尺寸fs以及覆盖裕度、目标是为每个特征分配之中的一个掩膜,使得冲突和针脚的数目被最小化。
接下来说明从具有相同色彩间距约束(cs)的MPLD到精确覆盖的约减。稍后,将示出精确覆盖如何处理复杂着色规则。可将具有基本着色规则的MPLD建模为冲突图上的图着色,其中,顶点表示特征,而边连接两个顶点,如果其违反相同色彩间距约束的话。
图3A描绘了先前在图2A中描绘的布局200A的简化示例性部分300A。部分300A包括先前参考图2A描述且也分别地称为a、b、c的大量多边形202、204、206。在图3A中,部分300A还包括相同色彩间距约束(cs)的两个实例。在多边形202、204之间描绘了相同色彩间距约束(cs)324的一个实例,而在多边形202、206之间描绘了相同色彩间距约束(cs)326的第二实例。
图3B描绘了根据本发明的一个实施例的包括分别地与先前在图3A中描绘的多边形202、204、206相关联的顶点302、304、306的冲突图G 300B的简化示例性构造。冲突图G300B还包括分别地与先前在图3A中描绘的相同色彩间距(cs)324、326的两个实例相关联的大量边334、336,并且其还可分别地被指定为{a,b}、{a,c},或者简单地为ab、ac。
可如下描述与相同色彩间距约束(cs)相关联的图着色问题。给定图G=(V,E)和k个色彩,存在用k个色彩对顶点进行分配、使得没有两个相邻顶 点共享同相色彩?V是顶点集合,并且E是图中的边的集合。根据本发明的实施例,可将布局分解问题建模为精确覆盖问题。可如下描述精确覆盖问题。给定0和1的矩阵,矩阵具有在每个列中包含精确地一个“1”的一组行?
图4描绘了根据本发明的一个实施例的说明从具有相同色彩间距约束(cs)的先前在图3B中描绘的冲突图G 300B的MPLD到精确覆盖的约减的简化示例性矩阵M 400。矩阵M400包括在方框404中的矩阵M 400上方标记或用符号表示的大量的列402(U中的元素),方框404中的大量元素中的每一个与矩阵M 400中的相应不同列相关联。
如下构造大量的列402。针对每个顶点v∈V,创建U中的一个相应元素v。因此,在方框404中描绘的列406、408、410分别地与在图3B中描绘的大量顶点302、304、306相关联。
图4进一步描绘了对于每个边{u,v}∈E而言在U中创建k个元素。因此,针对每个可用色彩c∈{1,...,k}创建元素{u,v}c。因此,在方框404中描绘的列412至414分别地与先前在图3B中描绘的{a,b}或边334相关联,其中,列412表示与掩膜(色彩)1相关联的ab1,并且列414表示与掩膜(色彩)k相关联的abk。掩膜色彩k被描绘为竖条纹的图案。与矩阵中的相邻元素相关联的中间元素401被描绘为三个小的紧密间距黑点。同样地,在方框404中描绘的列416至418分别地与先前在图3B中描绘的{a,c}或边336相关联,其中,列416表示与掩膜(色彩)1相关联的ac1,并且列418表示与掩膜(色彩)k相关联的ack。
U的总尺寸是O(|V|+|E|)。图4描绘了矩阵M 400中的列的总数等于与A+B相等的整数值(或具有该尺度),其中,A等于冲突图G 300B中的多边形的数目的计数(在本示例中为3个多边形:a、b、c),其中,B等于冲突图G 300B中的约束的数目的计数(在本示例中为2个边:ab、ac)乘以k。因此,在本示例中,列的总数为A+B=3+(2×k)。
矩阵M 400还包括在方框424中的矩阵M 400的左侧标记或用符号表示的大量的行420(子集S),方框424中的大量元素中的每一个与矩阵M 400中的相应不同行相关联。如下构造大量的行420。大量的行420被相对于大量的列402正交设置。针对每个顶点v∈V,创建属于S的k个集合,其中,每个集合针对可用色彩c∈{1,...,k}包括用于每个边{u,v}∈E的元素v和{u,v}c。
因此,在方框424中描绘的行426至428分别地与先前在图3B中描绘的顶点302(顶点a)相关联。此外,行426与向掩膜(色彩)1分配顶点302(顶点a)相关联,并且行428与向掩膜(色彩)k分配顶点302(顶点a)相关联。
同样地,在方框424中描绘的行430至432分别地与先前在图3B中描绘的顶点304(顶点b)相关联。此外,行430与向掩膜(色彩)1分配顶点304(顶点b)相关联,并且行432与向掩膜(色彩)k分配顶点304(顶点b)相关联。因此,在方框424中描绘的行434至436分别地与先前在图3B中描绘的顶点306(顶点b)相关联。此外,行434与向掩膜(色彩)1分配顶点306(顶点c)相关联,并且行436与向掩膜(色彩)k分配顶点306(顶点c)相关联。
矩阵M 400在大量的行420中的每一个内还包括作为设置在与列(在该处存在如上所述地针对每个行定义S的子集的直接关联)的行/列交叉点446、448至478处的逻辑1的条目。例如,与顶点a相关联的列406和行426(具有色彩1的顶点a)的交叉点446包括1。同样地,与色彩1的边ab相关联的列412和行426(具有色彩1的顶点a)的交叉点448包括1。同样地,与色彩1的边ac相关联的列416和行426(具有色彩1的顶点a)的交叉点450包括1。同样地,与顶点b相关联的列408和行430(具有色彩1的顶点b)的交叉点452包括1, 并且对于与已着色顶点相关联的大量的行426至436而言诸如此类。
矩阵M 400还包括添加的单元素集合,其包含除对应于顶点的元素之外的每个单独元素。因此,矩阵M 400还包括与列412至418相同的在方框424中标记的大量的行438至444。矩阵M 400还包括如所描绘的那样设置在交叉点472至478处的逻辑1。在一个实施例中,矩阵M 400还可在并未如以上条目所述地列出的所有交叉点处包括逻辑0。
所有集合的总尺寸S是O(|V|+|E|)。图4描绘了矩阵M 400中的行的总数等于与A+B相等的整数值(或具有该尺度),其中,A等于冲突图G 300B中的多边形的数目的计数(在本示例中为3个多边形:a、b、c),并且其中,B等于冲突图G 300B中的约束的数目的计数(在本示例中为2个边:ab、ac)乘以k。因此,在本示例中,列的总数为A+B=(3×k)+(2×k)=5×k。
从冲突图300B至矩阵M 400的上述变换的确认是每个边{u,v}∈E出现在用于每个可能色彩c∈{1,..,k}的顶点u和v的子集两者中,因此防止u、v被分配给相同色彩。使用单元素行来确保每个元素被覆盖。
图5描绘了根据本发明的一个实施例的用于多重图案化布局分解的简化示例性流程图500。流程图500包括以下步骤。同时地参考图2A、2D、3A、3B,首先,基于输入布局505(诸如布局200A或布局300A)和着色约束(诸如大量的相同色彩间距约束(cs)216和大量的不同色彩间距约束218)来构造冲突图300B。
如下构造用以表示MPLD问题的冲突图300B。给定由一组多边形特征(例如多边形202、204、206)构成的布线布局300A,构造相应冲突图G=(V,Es∪Ed∪Ep),其中,每个顶点302、304、306分别地表示相应特征,例如多边形202、204、206。如果两个相应特征u和v之间的距离小于最小相同 色彩间距cs,则存在无向边{u,v}∈Es。在一个实施例中,如果特征u和v之间的距离对于掩膜i,j∈{1,...,k}而言违反最小不同色彩间距则存在有向边(u,v)∈Ed。在另一实施例中,如果相应特征u,v,w,...服从预着色约束(在没有或有指定色彩/掩膜的情况下),则存在超边{u,v,w,...}∈Ep。请注意,在一个实施例中,在必要时可包括更多着色规则。
其次,划分520并简化冲突图以减小问题尺寸。在一个实施例中,可结合四个图分解技术以划分构造的冲突图:1)连通分量分离,2)度小于三的情况下的顶点去除,3)桥检测和去除以及4)关节点检测和复制。
通常在子图组合期间执行色彩翻转。如果色彩翻转是无效的(例如具有指定色彩的不同色彩间距约束或预着色约束),则最后三个技术可在子图组合期间导致额外的冲突;在这种情况下,可仅应用连通分量分离。
第三,生成525针脚候选以实现后续冲突去除。第四,确定530每个子图的着色。在一个实施例中,可在输入布局上执行顶点投影以搜索所有针脚候选。最后,将子图的着色结果组合535以产生已分解布局540,诸如布局200D。
图6描绘了根据本发明的一个实施例的用于如先前在图5中描绘的那样确定用于子图的色彩分配的简化示例性流程图530。如上所述,将具有复杂着色规则的布局分解问题建模为精确覆盖问题。因此,首先将图转换605成没有针脚的精确覆盖矩阵M,如参考图4所述。此外,在实际的实践中,许多布局可能未被成功地分解,并且因此检测冲突也是重要的。因此,色彩分配流程图530包含两遍的精确覆盖求解。
参考图6,第一遍精确覆盖求解1 610寻找精确冲突,而第二遍精确覆盖求解2 620解决与针脚插入的冲突,如果615存在由第一遍的精确覆盖求解1 610引擎的冲突的话。第二遍的精确覆盖求解2 620是在具有针脚的图(下面参考图12B-12D描述)被转620成如稍后所述的具有针脚的精确覆盖矩阵M之后完成的。输出已着色子图和着色冲突(如果有的话)。
每个报告的冲突属于某个不可分解冲突图图案,例如针对TPL中K4(4度的小集合,如稍后参考图12A所述)的报告的一个冲突。用增强舞蹈链加专用算法X*(增强DLX)来实现精确覆盖求解引擎。在某些实施例中,基于MPLD性质来设计特殊处理以加速求解时间。在实施例中描述的方法是灵活的(将同时地考虑基本和复杂着色规则)且通用的(将处理任意的k个掩膜,诸如k≥3或k≥4)。
接下来描述仅考虑基本着色规则且不使用针脚时的着色分配步骤的细节。稍后将说明针脚处理和复杂着色规则处理。虽然精确覆盖也是NP完整的,但D.E.Knuth在Millenial Perspectives in Computer Science,2000,187—214,arXiv:cs/0011047[cs.DS]中的“Dancing links”(其全部内容被整体地通过引用并入本文)中提出了用以解决精确覆盖问题的高效技术,称为舞蹈链数据结构加算法X(DLX)。为了更简单的可视化,图7描绘了具有其精确覆盖矩阵的三重图案化示例,而图8图示出相应的舞蹈链。
图7描绘了根据本发明的一个实施例的具有与先前在图3B中描绘的冲突图300B相关联的其精确覆盖矩阵M 700的三重图案化示例的简化示例性构造。矩阵M 700具有与先前在图4中描绘的矩阵M 400相同的函数和元素,只是矩阵M 700具体地针对k=3个掩膜(色彩)。因此且同时地参考图3B、4和7,矩阵M 700包括与边334和称为ab2的掩膜(色彩)2相关联的列713和与边336和称为ac2的掩膜(色彩)2相关联的列717。列714、718分别地类似于列414、418,只是k=3并针对掩膜(色彩)3用实心灰色填充图案来描绘。
矩阵M 700还包括分别地与顶点302、304、306和掩膜(色彩)2相关联的行727、731、735。矩阵M 700还包括分别地与边334、336和掩膜(色彩)2相关联且分别地称为ab2、ac2的行739、743。行728、732、736、740、744分别地类似于行428、432、436、440、444,只是k=3且针对掩膜(色彩)3用实心灰色填充图案来描绘。
矩阵M 700还在全部与掩膜(色彩)2相关联的行/列交叉点705、707、709、715、719、721、723、737和741处包括1。行/列交叉点754、756、764、770、774和778分别地类似于行/列交叉点454、456、464、470、474和478,只是k =3且针对掩膜(色彩)3用实心灰色填充图案来描绘。
图8描绘了根据本发明的一个实施例的与先前在图7中描绘的矩阵M 700的一部分相关联的简化示例性舞蹈链数据结构800。同时地参考图7和8,舞蹈链使用圆形双重链接表(环面)来表示精确覆盖矩阵。在一个实施例中,矩阵中的仅1被存储在计算机中。
矩阵M 700中的每个“1”对应于舞蹈链数据结构800中的一个节点。换言之,舞蹈链数据结构800包括分别地对应于矩阵M 700中的交叉点446、448、450、705、707、452、754、458、460、715、719、462、764处的“1”条目的节点846、848、850、805、807、852、854、858、860、815、819、862、864。每个节点如分别地用链接箭头870、872所描述的那样向左和向右(同一行中的1)、如分别地用链接箭头874、876所描绘的那样向上和向下(同一列中的1)指向其相邻节点,并且指向用于其列的头部804(例如方框404内部的元素)。
矩阵M 700中的每个行和列对应于舞蹈链数据结构800中的节点的圆形双重链接表。该指示在行和列两者中在列表的结尾处是圆形的,例如使得链接箭头878在舞蹈链数据结构800的最右侧处是与在最左侧处相同的链接。同样地,链接箭头880在舞蹈链数据结构800的最顶侧处是与在最底层处相同的链接。
矩阵中的每个列具有特殊头部(列节点),其被包括在相应列列表中。列节点形成特殊行,包括在精确覆盖求解期间仍存在于矩阵中的所有列。因此,舞蹈链数据结构800包括分别地对应于与矩阵M 700相关联的方框404中的元素406、408、410、412、713、714、416的节点806、808、810、812、813、814、816。
由于精确覆盖矩阵往往是稀疏的,所以此数据结构在尺寸和处理时间两者方面常常是高效的。基于舞蹈链,可快速地选择行作为可能的解,并且针对错误猜测而高效地回溯(取消),如下所述。
接下来,解释在用舞蹈链进行的精确覆盖求解中使用的覆盖和揭露(uncover)操作。假设x指向双重链接表的节点;让L[x]和R[x]指向节点的左侧和右侧。然后覆盖操作L[R[x]]←L[x],R[L[x]]←R[x]将x从列表去除。揭露 操作L[R[x]]←x,R[L[x]]←x将x恢复到列表中。同样地,还可以对向上和向下指针执行覆盖和揭露操作。如图8中所描绘的,也称为ab2的节点807被覆盖。
算法X是用于找到精确覆盖问题的所有解的是错试错法的语句,并且一旦不能找到解,则其终止。然而,针对MPLD,应检测/报告用于不可分解布局的冲突。此外,向一般精确覆盖问题指定了算法X。在某些实施例中,设计了七个特殊处理以减少求解时间,并且通过利用MPLD问题的性质来报告所有冲突。
图9描绘了根据本发明的一个实施例的用于如先前在图6中描绘的精确覆盖求解的简化示例性流程图605/620。同时地参考图3B、7和8,流程图605/620描绘了用于精确覆盖求解的程序的核心引擎,其添加了冲突报告方案。流程图605/620包括以下步骤。首先,输入冲突图G 300B被转换910成精确覆盖矩阵M 700。然后,调用915算法X*来求解矩阵M 700。如果用算法X*未找到可行解920,则将在精确覆盖求解期间报告的最后冲突候选标记925为精确冲突。此外,设定930或在矩阵700中记录当前部分结果,从矩阵M 700暂时地去除已标记冲突的相应边(用覆盖操作),并且精确覆盖求解继续。从步骤915至935重复此过程直至已找到可行解为止。保证此程序以可行着色或以用于不可分解布局的冲突终止。
图10描绘了根据本发明的一个实施例的用于如先前在图9中描绘的算法X*的简化示例性流程图915。流程图915包括以下步骤。同时地参考图3B、7和9,流程图605/620首先描绘的是如果1005矩阵M 700并未留下列节点或者所有顶点列节点(即,对应于G中的顶点的列节点)已被覆盖。算法X*以可行解中值1010。否则,选择或挑选1015未被覆盖列节点cl。该列节点选择是按照G的宽度优先搜索(BFS)遍历顺序,除非某些未被覆盖列节点具有仅一个相关行。cl的相关行rw被定义为在列cl处具有1条目的矩阵M中的行。接下来,覆盖1020列节点cl。然后检查1025是否留下了任何cl的相关行。如果没有留下此类相关行,则将(cl,cl')标记为1030为一个冲突候选,其中,cl'是已覆盖cl的最后相关行的列。如果1025没有留下相关行,则执行1035行操作,用当前矩阵M和冲突图G从该行操作递归地调用算法X*。此过程继续至已找到可行解或者遍历了所有列节点和行为止。最后,揭露1040列cl。
图11描绘了根据本发明的一个实施例的用于如先前在图10中描绘的执行行操作的简化示例性流程图1035。流程图1035包括以下步骤。挑选1105cl的相关行rw成为当前部分解,同时覆盖1115rw上和其受影响行上的节点。用当前矩阵M和冲突图G递归地调用1120算法X*。通过揭露1125rw及其受影响行并将rw从当前解排除1130来回溯相关行rw。如果1135留下与cl有关的任何行rw要处理,则重复行操作。
再次地参考图7、9、10和11作为示例,假设G的BFS顺序是a、b、c。步骤1015首先选择列节点a,并且步骤1105首先考虑第一行779。然后,步骤1110将第一行包括到解中。步骤1115如跨矩阵M 700的被覆盖条目446、448、450、705、707、709、452、754、756、458、460、464、466所描绘的单个短水平线780所描绘的那样覆盖矩阵M 700的第一、第二、第三、第四以及第七行处的所有节点。随后,算法X*挑选用于b的第五行和用于c的第九行。
为了所选精确覆盖求解时间,描述基于MPLD问题的性质的以下特殊实施例。请注意,前六个实施例并不影响解质量。可选地在非常大的冲突图上应用第七实施例。
在第一实施例中,一旦所有顶点列节点都被覆盖(算法X*中的线1),则终止精确覆盖求解过程。基于精确覆盖矩阵被构造的方式,一旦所有顶点列节点都被覆盖,则可用单元素行容易地覆盖未被覆盖列节点的其余部分,并且因此程序更快地终止。
在第二实施例中,按照BFS顺序来访问顶点列,并且最大度的顶点是BFS的根。边列具有最低优先级(算法X*中的步骤1015)。作为在算法X中使用的DFS顺序的替代,如果不存在可行解,按照BFS顺序来访问顶点列可及早地获得冲突。
在第三实施例中,首先选择具有仅一个相关行的未被覆盖列节点(算法X*中的步骤1015)。原因与第二实施例相同。
在第四实施例中,一旦检测到冲突,则将其相应边从矩阵M去除,并且精确覆盖求解过程继续(精确覆盖解算器中的步骤935)。最初,如果发生一个冲突,则算法X终止。相比之下,算法X*尝试找到所有冲突。
在第五实施例中,如果未找到可行解,则标记精确的冲突(cl,cl'),其中,cl'是已覆盖cl的最后相关行的列(精确覆盖解算器中的步骤925,算法X*中的步骤1030)。因此,避免了假冲突报告。
在第六实施例中,程序继续找到其它冲突或者从其中报告冲突的状态结束求解(精确覆盖解算器中的步骤930)。为了加速求解,在检测到精确冲偶图并暂时地去除之后避免了从最初开始。
在第七实施例中,可以应用及早退出启发式。当冲突图非常大时,如果某个冲突被重复地报告超过α次,例如α=1000,则可以将此冲突视为精确冲突,去除该冲突并继续求解。在执行的实验中,未应用及早退出启发式。
如图6中所示,第二遍精确覆盖求解尝试通过针脚插入来解决在第一遍中找到的冲突。不同于针对每个特征确定一个针脚候选的已知工作,本发明的实施例同时地考虑特征或多边形上的所有针脚候选。
图12A描绘了根据本发明的一个实施例的针对TPL具有K4(4度的小集合)的冲突图1200A的简化示例性构造。冲突图1200A包括分别地称为a、b、c、d的顶点1202、1204、1206、1208。冲突图1200A还包括称为ab、ac、ad、bc、bd、cd的大量边1210,使得每个顶点通过边被连接到每个其它顶点。冲突图1200A不可分解成3个色彩,并且将始终在每次TPL着色尝试时产生冲突结果。当与诸如冲突图1200A之类的冲突一起报告子图时,首先针对与该子图有关的每个针脚候选构造针脚插入冲突图。
图12B描绘了根据本发明的一个实施例的用于先前在图2A中描绘的冲突图1200A的包括第一针脚候选1212的冲突图1200B的简化示例性构造。同时地参考图12A和12B,冲突图1200B包括与冲突图1200A相同的元素和函数,具有以下例外。冲突图1200B用包括分别地称为d1、d2的顶点对1214、1216的针脚1212来替换顶点1208。冲突图1200B还包括设置在顶点对1214、1216之间的边d1d2。替换边ad,冲突图1200B还包括设置在顶点对1202、1214之间的边ad1和设置在顶点对1202、1214之间的边ad2。
图12C描绘了根据本发明的一个实施例的用于先前在图2A中描绘的冲突图1200A的包括第二针脚候选1218的冲突图1200C的简化示例性构造。同时地参 考图12A和12C,冲突图1200C包括与冲突图1200A相同的元素和函数,具有以下例外。冲突图1200C用包括分别地称为d3、d4的顶点对1220、1222的针脚1218来替换顶点1208。冲突图1200C还包括设置在顶点对1220、1222之间的边d3d4。替换边ad,冲突图1200C还包括设置在顶点对1202、1222之间的边ad4和设置在顶点对1206、1220之间的边cd3。然后将原始冲突图和所有针脚插入冲突图组合成一个图,并且最后将组合冲突图转换成精确覆盖矩阵并用精确覆盖求解引擎实施例来求解。
图12C描绘了根据本发明的一个实施例的包括先前分别地在图12A、12B、12C中描绘的原始冲突图、第一针脚插入冲突图和第二针脚插入冲突图1200A+1200B+1200C的总计组合的冲突图1200D的简化示例性构造。
在具有针脚插入的已转换矩阵中,除基于原始冲突图生成的行之外,在原始行下面添加用于每个针脚候选的额外行。针对每个添加的行,根据冲突图中的研究的着色和边来添加条目。
图13描绘了根据本发明的一个实施例的先前在图12B中描绘的冲突图1200B的成功的3着色之后的具有针脚1312的冲突图1300的简化示例性构造。同时地参考图12B和13,冲突图1300包括与冲突图1200B相同的元素和函数,具有以下例外。冲突图1300分别地用掩膜1、掩膜2、掩膜3、掩膜3、掩膜2对顶点1202、1204、1206、1214、1216着色。
图14描绘了根据本发明的一个实施例的说明针对具有用于d1、d2的针脚1312的三重图案化示例的从具有基本着色规则的先前在图13中描绘的冲突图1300的MPLD到精确覆盖的缩减约减的简化示例性矩阵1400。应注意的是矩阵1400是较大精确覆盖的矩阵(仅描绘了其一部分)的一部分。根据上述实施例,矩阵1400包括对应于称为d的顶点1208的列1410。矩阵1400还包括对应于边ad1、ad2、ad3、bd1、bd2、bd3、cd1、cd2、cd3等的列1412至1421。
图14描绘了针脚顶点d1和d2,存在用于TPL的六个可能着色组合,因此创建六个相应行。在用于具有掩膜1的d1和具有掩膜2的d2的行中,添加条目d、{a,d}1(用于{a,d1})、{a,d}2(用于{a,d2})、{b,d}1(用于{b,d1})以及{c,d}2(用 于{c,d2})。因此,矩阵1400还包括分别地与(d1掩模1、d2掩模2)、(d1掩模1、d2掩模3)至(d1掩模3、d2掩模2)相对应的行(1437、1438)、(1439、1440)至(1447、1448)。此外,如根据上文描绘并用其相应列识别的,矩阵1400包括“1”的条目。同样地,可以添加对应于d3、d4的行。
请注意,所有针脚顶点共享同一列节点(即,不添加额外列)。因此,可选择原始顶点或一组针脚顶点(如果此针脚解决了某个冲突),并且避免不安全的图组合。用复杂的着色规则,针脚处理采取相同方式。
图15描绘了根据本发明的一个实施例的向先前在图3B中描绘的冲突图300B添加了复杂着色规则的情况下的冲突图1500的简化示例性构造。冲突图1500包括与冲突图300B相同的元素和函数,具有以下例外。为了说明如何可由提出的精确覆盖求解引擎实施例自然地支持复杂的着色规则,在这里介绍两个复杂着色规则:不同色彩间距约束和预着色约束。冲突图1500针对被描绘为单向长划线箭头的不同色彩间距包括称为{a,b,1,2}的边1505和称为{c,a,1,2}的边1510。冲突图1500针对被描绘为双向短划线箭头的预着色约束还包括称为{b,c}的边1515。
图16描绘了根据本发明的一个实施例的说明针对三重图案化示例的从具有复杂着色规则的先前在图15中描绘的冲突图1500的MPLD到精确覆盖的缩减约减的简化示例性矩阵M 1600。同时地参考图7、15和16,矩阵M 1600包括与矩阵M 700相同的元素和函数,具有以下例外。首先,无向冲突边{u,v}的意义被扩展至4元组有向边{u,v,i,j},其中,i,j∈{1,...,k},其中,边{u,v,i,j}意指当顶点u被分配给i时,顶点v不能被分配给j。针对基本着色规则,边{u,v}意指顶点u和v不能具有相同色彩,以因此对应于{v,u,i,i}和然后,针对边{u,v,i,j}(在下)到精确覆盖矩阵的 转换,简单地针对每个边{u,v,i,j},向掩膜i中的顶点u的行中添加用于具有掩膜j的边{u,v}的一个条目。因此,在矩阵M 1600中在交叉点1613、1617处包括1的条目且分别地称为ab2、ac2。
其次,由于预着色约束请求共享相同色彩的一组顶点,所以预着色约束从不在同一边上与不同或相同色彩间距约束共存。因此,基于边{u,v,i,j}的定义而使用用以处理预着色约束的否定列表。可将预着色约束表示为和 因此,矩阵M 1600还包括称为bc1、bc2、bc3的列1619、1620、1621。矩阵M 1600还包括如短划线框1640内描绘并突出显示的在交叉点1622至1630处的1的条目。如果用指定的色彩给定预着色约束,则对应于不允许色彩的行被从矩阵去除。另外,针对从预着色约束到精确覆盖矩阵的转换,针对预着色边不添加单元素行。
在一个实施例中,用于基本/复杂着色规则和针脚插入的精确覆盖矩阵构造不限于要使用任何特定数目的掩膜。针对任意的k或者甚至k≥4,本实施例框架对于k重图案化而言是通用的。执行的实验的结果显示出此能力。基准点布局上的实验结果已显示以上实施例所描述的方法与现有技术工作相比实现了最少的冲突和针脚,并且很好地处理复杂的着色规则。
图17是可结合本发明的实施例的计算机系统的框图。图17仅仅说明结合了本发明的实施例且并不限制如在权利要求中所述的本发明的范围。本领域的技术人员将认识到其它变更、修改以及替换。
在一个实施例中,计算机系统1700通常包括监视器1710、计算机1720、用户输出装置1730、用户输入装置1740、通信接口1750等。
如图17中所示,计算机1720可包括经由总线子系统1790与许多外围装置通信的处理器1760。这些外围装置可包括用户输出装置1730、用户输入装置1740、通信接口1750以及存储子系统,诸如随机存取存储器(RAM)1770和磁盘驱动1780。
用户输入装置1730包括用于向计算机系统1720输入信息的所有可能类型的装置和机制。这些可包括键盘、键区、接合到显示器中的触摸屏、诸如语音识别系统之类的音频输入装置、扩音器及其它类型的输入装置。在各种实施例中,用户输入装置1730通常被体现为计算机鼠标、轨迹球、跟踪板、操纵杆、无线遥控器、绘图平板电脑、语音命令系统、眼跟踪系统等。用户输入装置1730通常允许用户经由诸如按钮的点击等命令来选择出现在监视器1710上的对象、目标、文本等。
用户输出装置1740包括用于从计算机1720输出信息的所有可能类型的装置和机制。这些可包括显示器(例如,监视器1710)、诸如音频输出装置之类的非视觉显示器等。
通信接口1750提供到其它通信网络和装置的接口。通信接口1750可充当用于从其它系统接收数据和向其发送数据的接口。通信接口1750的实施例通常包括以太网卡、调制解调器(电话、卫星、电缆、ISDN)、(异步)数字订户线(DSL)单元、FireWire接口、USB接口等。例如,通信接口1750可被耦合到计算机网络、Fire Wire总线等。在其它实施例中,通信接口1750可在物理上被集成在计算机1720的模板上,并且可以是软件程序,诸如软DSL等。
在各种实施例中,计算机系统1700还可包括使得能够通过诸如HTTP、TCP/IP、RTP/RTSP协议等网络实现通信的软件。在本发明的替换实施例中,还可使用其它通信软件和传输协议,例如IPX、UDP等。
在某些实施例中,计算机1720包括来自Intel的一个或多个Xeon微处理器作为处理器1760。此外,在一个实施例中,计算机1720包括基于UNIX的操作系统。
RAM 1770和磁盘驱动1780是被配置成存储诸如本发明的实施例之类的数据(包括可执行计算机代码、人类可读代码等)的有形介质的示例。其它类型的有形计算机可读介质包括软盘、可移动硬盘、诸如CD-ROM、DVD、条形码之类的光学存储介质、半导体存储器,诸如闪存、非临时只读存储器(ROM)、电池供电易失性存储器、联网存储装置等。RAM 1770和磁盘驱动1780可被配置成存储提供如上所述的本发明的各种示例的功能的基本编程和数据结构。
提供本发明的功能的软件代码模块和指令可被存储在RAM 770和磁盘驱动1780中。这些软件模块可由处理器1760执行。RAM 1770和磁盘驱动1780还可提供用于存储根据本发明使用的数据的储存库。
RAM 1770和磁盘驱动1780可包括许多存储器,其包括用于在程序执行期间存储指令和信息的主随机存取存储器(RAM)和在其中存储固定非临时指令的只读存储器(ROM)。RAM 1770和磁盘驱动1780可包括提供用于程序和数据文件的持久性(非易失性)存储的文件存储子系统。RAM 1770和磁盘驱动1780还可包括可移动存储系统,诸如可移动闪存。
总线子系统1790提供用以允许计算机1720的各种组件和子系统按照预定相互通信的机制。虽然总线子系统1790被示意性地示为单个总线,但总线子系统的替换实施例可利用多个总线。
图17表示能够体现本发明的一部分的计算机系统。对于本领域的技术人员而言将显而易见的是许多其它硬件和软件配置适合于与本发明一起使用。例如,计算机可以是台式、便携式、机架安装、智能电话或平板构造。另外,计算机可以是一系列联网计算机。此外,可设想其它微处理器的使用,诸如PentiumTM或ItaniumTM微处理器;来自Advanced MicroDevices公司的OpteronTM或AthlonXPTM微处理器等。此外,可设想其它类型的操作系统,诸如来自微软公司的等、来自Sun Microsystems的Solaris、LINUX、UNIX等。在其它实施例中,可在芯片或辅助处理板上实现上述技术。
可以以软件或硬件或两者的组合中的逻辑来实现本发明的各种实施例。逻辑可被作为指令集存储在计算机可读或机器可读非临时存储介质中,该指令集适合于命令计算机系统的处理器执行在本发明的实施例中公开的一组步骤。逻辑可形成适合于指引信息处理装置执行在本发明的实施例中公开的一组步骤的计算机程序产品的一部分。基于在本文中提供的公开和讲授内容,本领域的技术人员将认识到用以实现本发明的其它方式和/或方法。
本文中所述的数据结构和代码可部分地或完全存储在计算机可读存储介质和/或硬件模块和/或硬件装置上。计算机可读存储介质包括但不限于易失性存储器/非易失性存储器/磁性和光学存储器装置,诸如磁盘驱动、磁带、CD(光盘)、DVD(数字多功能磁盘或数字视频磁盘)或者能够存储代码和/或数据的现 在已知或以后开发的其它介质。本文中所述硬件模块或设备包括但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、专用或共享处理器和/或现在已知或以后开发的其它硬件模块或设备。
本文中所述的方法和过程可部分地或完全体现为存储在计算机可读存储介质或装置中的代码和/或数据,使得当计算机系统读取并执行该代码和/或数据时,计算机系统执行关联方法和过程。可部分地或完全用硬件模块或设备来体现本方法和过程,使得当硬件模块或设备被激活时,其执行关联方法和过程。可使用代码、数据以及硬件模块或设备的组合来体现本文中公开的方法和过程。
本发明的上述实施例是说明性而非限制性的。各种替换方案和等价物是可能的。虽然已经以示例的方式参考使用三个色彩的三重图案化技术描述了本发明,但应理解的是本发明不受三重图案化技术的限制,而是还可应用于高于三重图案化的技术,诸如在布局分解期间使用超过三个色彩的技术。虽然已经以示例的方式参考相同色彩间距约束和不同色彩间距约束描述了本发明,但应理解的是本发明不受复杂着色规则的数目或类型的限制,只要布局分解可受益于此类其它复杂着色规则即可。另外,本发明的技术和系统适合于用于设计、测试和/或制造以等式的保存、信号流程以及事件或数字系统的组合为特征的系统的多种电子设计自动化(EDA)工具和方法。因此不应参考以上描述来确定本发明的范围,而是替代地应参考待决权利要求以及其全部范围或等价物来确定。
Claims (34)
1.一种用于分解集成电路的一部分的布局的计算机实现方法,所述布局包括第一多个多边形,所述方法包括:
使用计算机来构造表示第一多个约束的第一矩阵,所述第一多个约束中的每一个在所述第一多个多边形中的不同的一对之间;以及
使用计算机对第一矩阵求解以从而当计算机被调用以分解布局时向所述第一多个多边形中的每个不同的一个分配多个掩膜中的一个;以及
第一矩阵以等于第一数目和第二数目的和的尺度为特征,其中,第一数目等于所述第一多个多边形的第一计数乘以所述多个掩膜的第二计数,以及其中,所述第二数目等于所述第一多个约束的第三计数乘以第二计数。
2.根据权利要求1所述的计算机实现方法,其中,所述多个掩膜中的每一个与多重图案化光刻相关联。
3.根据权利要求1所述的计算机实现方法,其中,所述第一多个约束中的每一个促使所述第一多个多边形中的所述一对被分配给所述多个掩膜中的不同的一些。
4.根据权利要求1所述的计算机实现方法,其中,所述布局包括第二多个多边形,所述方法还包括:
使用计算机来构造表示第二多个约束的第一矩阵,所述第二多个约束中的每一个不同于所述第一多个约束中的任何一个,
其中,所述第二多个约束中的每一个促使所述第二多个多边形中的一对被分配给所述多个掩膜中的不同的一些。
5.根据权利要求1所述的计算机实现方法,其中,所述第一矩阵是精确覆盖矩阵。
6.根据权利要求1所述的计算机实现方法,
其中,所述尺度包括整数值。
7.根据权利要求1所述的计算机实现方法,其中,所述第一矩阵包括第一多个行和具有与所述第一多个行不同的取向的多个列,其中,多个值中的一个与所述第一多个行中的一个与所述多个列中的一个之间的交叉点相关联,其中,所述多个值中的每一个是逻辑真值,其中,构造第一矩阵包括:
构造第二多个行,其中,所述第二多个行是所述第一多个行的子集,使得所述第二多个行中的每一个在所述多个列中的每一个中包含精确地一个逻辑真值。
8.根据权利要求1的所述计算机实现方法,还包括:
使用计算机将第一矩阵表示为舞蹈链数据结构以对第一矩阵求解。
9.根据权利要求1所述的计算机实现方法,还包括:
使用计算机来形成表示与布局相关联的图的数据,其中,所述图包括多个顶点和多个边,所述多个顶点中的每一个与所述第一多个多边形中的不同的一个相关联,所述多个边中的每一个与所述第一多个约束中的不同的一个相关联;
使用计算机来将图变换成第一矩阵,其中,所述第一矩阵包括第一多个列,其中,所述第一多个列中的每一个与所述第一多个多边形中的不同的一个相关联;以及
使用计算机来按照与图相关联的宽度优先搜索顺序访问所述第一多个列以对第一矩阵求解。
10.根据权利要求1所述的计算机实现方法,其中,所述第一矩阵包括第一多个行和具有与所述第一多个行不同的取向的多个列,
其中,多个值中的一个与所述第一多个行中的一个与所述多个列中的一个之间的交叉点相关联,
其中,所述多个值中的每一个是逻辑真值,所述方法还包括:
首先使用所述计算机来选择所述第一多个列中的一个,其在所述第一多个列中的选定的一个与所述第一多个行中的一个的交叉点处具有精确地一个逻辑真值,以对第一矩阵求解。
11.根据权利要求1所述的计算机实现方法,还包括:
当对第一矩阵求解并未提供可行解时使用计算机来检测第一冲突,其中,所述第一冲突是所述第一多个约束中的一个,其防止将所述多个掩膜中的一个分配给所述第一多个多边形中的一个;
如果检测到第一冲突,则使用计算机来从第一矩阵去除第一冲突的表示,从而形成第二矩阵;
使用计算机将检测到的第一冲突标记为精确第一冲突;
使用计算机来继续对第二矩阵求解,从而避免从最初开始;以及
当对第二矩阵求解并未提供可行解时,使用计算机来检测第二冲突,其中,所述第二冲突是所述第一多个约束中的一个,其防止将所述多个掩膜中的一个分配给所述第一多个多边形中的一个。
12.根据权利要求1所述的计算机实现方法,还包括:
当对第一矩阵求解并未提供可行解时,使用计算机来拼接所述第一多个多边形中的至少一个以形成第二多个多边形;
使用计算机来构造表示所述第一多个约束和第二多个约束的第二矩阵,其中,所述第一多个约束中的每一个在所述第一多个多边形中的不同的一对之间,其中,所述第二多个约束中的每一个在所述第二多个多边形中的不同的一对之间;以及
使用计算机来对第二矩阵求解以从而向所述第一多个多边形中的每个不同的一个且向所述第二多个多边形中的每个不同的一个分配多个掩膜中的一个。
13.根据权利要求1所述的计算机实现方法,其中,所述多个掩膜的计数大于或等于3。
14.根据权利要求1所述的计算机实现方法,其中,所述第一多个多边形包括第一多边形、第二多边形以及第三多边形,其中,构造第一矩阵还包括:
使第一多边形与矩阵的第一列相关联;
使第二多边形与矩阵的第二列相关联;以及
使第三多边形与矩阵的第三列相关联。
15.根据权利要求14所述的计算机实现方法,其中,所述第一多个约束包括第一多边形与第二多边形之间的第一约束以及第一多边形与第三多边形之间的第二约束,其中,构造第一矩阵还包括:
使矩阵的第一多个列与第一约束相关联,其中,第一多个列中的每一个进一步与所述多个掩膜中的不同的一个相关联;以及
使矩阵的第二多个列与第二约束相关联,其中,所述第二多个列中的每一个进一步与所述多个掩膜中的不同的一个相关联。
16.根据权利要求15所述的计算机实现方法,其中,构造第一矩阵还包括:
使矩阵的第一多个行与第一多边形相关联,其中,第一多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;
使矩阵的第二多个行与第二多边形相关联,其中,所述第二多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;
使矩阵的第三多个行与第三多边形相关联,其中,所述第三多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;
使矩阵的第四多个行与第一约束相关联,其中,所述第四多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;以及
使矩阵的第五多个行与第二约束相关联,其中,所述第五多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联。
17.根据权利要求16所述的计算机实现方法,其中,第三多个列包括第一列、第二列、第三列、所述第一多个列以及所述第二多个列,其中,第六多个行包括所述第一、第二、第三、第四以及第五多个行,其中,构造第一矩阵还包括:
当所述第六多个行中的一个与第三多个列中的一个之间的关联为真时,在所述第六多个行中的一个与第三多个列中的一个之间的每个交叉点处关联逻辑真值。
18.一种用于分解集成电路的一部分的布局的系统,所述布局包括第一多个多边形,所述系统被配置成:
构造表示第一多个约束的第一矩阵,所述第一多个约束中的每一个在所述第一多个多边形中的不同的一对之间;以及
对第一矩阵求解以从而当系统被调用以分解布局时向所述第一多个多边形中的每个不同的一个分配多个掩膜中的一个;以及
第一矩阵以等于第一数目和第二数目的和的尺度为特征,其中,第一数目等于所述第一多个多边形的第一计数乘以所述多个掩膜的第二计数,以及其中,所述第二数目等于所述第一多个约束的第三计数乘以第二计数。
19.根据权利要求18所述的系统,
其中,所述多个掩膜中的每一个与多重图案化光刻相关联。
20.根据权利要求18所述的系统,
其中,所述第一多个约束中的每一个促使所述第一多个多边形中的所述一对被分配给所述多个掩膜中的不同的一些。
21.根据权利要求18所述的系统,
其中,所述布局包括第二多个多边形,所述系统进一步被配置成:
构造表示第二多个约束的第一矩阵,所述第二多个约束中的每一个不同于所述第一多个约束中的任何一个,其中,所述第二多个约束中的每一个促使所述第二多个多边形中的一对被分配给所述多个掩膜中的不同的一些。
22.根据权利要求18所述的系统,其中,所述第一矩阵是精确覆盖矩阵。
23.根据权利要求18所述的系统,其中,所述尺度包括整数值。
24.根据权利要求18所述的系统,其中,所述第一矩阵包括第一多个行和具有与所述第一多个行不同的取向的多个列,其中,多个值中的一个与所述第一多个行中的一个与所述多个列中的一个之间的交叉点相关联,其中,所述多个值中的每一个是逻辑真值,所述系统进一步被配置成:
构造第二多个行,其中,所述第二多个行是所述第一多个行的子集,使得所述第二多个行中的每一个在所述多个列中的每一个中包含精确地一个逻辑真值。
25.根据权利要求18所述的系统,进一步被配置成:
将第一矩阵表示为舞蹈链数据结构以对第一矩阵求解。
26.根据权利要求18所述的系统,进一步被配置成:
形成表示与布局相关联的图的数据,其中,所述图包括多个顶点和多个边,所述多个顶点中的每一个与所述第一多个多边形中的不同的一个相关联,所述多个边中的每一个与所述第一多个约束中的不同的一个相关联;
将所述图变换成第一矩阵,其中,所述第一矩阵包括第一多个列,其中,所述第一多个列中的每一个与所述第一多个多边形中的不同的一个相关联;以及
按照与图相关联的宽度优先搜索顺序访问所述第一多个列以对第一矩阵求解。
27.根据权利要求18所述的系统,其中,所述第一矩阵包括第一多个二行和具有与所述第一多个行不同的取向的多个列,其中,多个值中的一个与所述第一多个行中的一个与所述多个列中的一个之间的交叉点相关联,其中,所述多个值中的每一个是逻辑真值,所述系统进一步被配置成:
首先选择所述第一多个的列中的一个,其在所述第一多个列中的选定的一个与所述第一多个行中的一个的交叉点处具有精确地一个逻辑真值,以对第一矩阵求解。
28.根据权利要求18所述的系统,进一步被配置成:
当对第一矩阵求解并未提供可行解时检测第一冲突,其中,所述第一冲突是所述第一多个约束中的一个,其防止将所述多个掩膜中的一个分配给所述第一多个多边形中的一个;
如果检测到第一冲突,则从第一矩阵去除第一冲突的表示,从而形成第二矩阵;
将检测到的第一冲突标记为精确第一冲突;
继续对第二矩阵求解,从而避免从最初开始;以及
当对第二矩阵求解并未提供可行解时检测第二冲突,其中,所述第二冲突是所述第一多个约束中的一个,其防止将所述多个掩膜中的一个分配给所述第一多个多边形中的一个。
29.根据权利要求18所述的系统,进一步被配置成:
当对第一矩阵求解并未提供可行解时,拼接所述第一多个多边形中的至少一个以形成第二多个多边形;
构造表示所述第一多个约束和第二多个约束的第二矩阵,其中,所述第一多个约束中的每一个在所述第一多个多边形中的不同的一对之间,其中,所述第二多个约束中的每一个在所述第二多个多边形中的不同的一对之间;以及
对第二矩阵求解以从而向所述第一多个多边形中的每个不同的一个且向所述第二多个多边形中的每个不同的一个分配多个掩膜中的一个。
30.根据权利要求18所述的系统,其中,所述多个掩膜的计数大于或等于3。
31.根据权利要求18所述的系统,其中,所述第一多个多边形包括第一多边形、第二多边形以及第三多边形,所述系统进一步被配置成:
使第一多边形与矩阵的第一列相关联;
使第二多边形与矩阵的第二列相关联;以及
使第三多边形与矩阵的第三列相关联。
32.根据权利要求31所述的系统,其中,所述第一多个约束包括第一多边形与第二多边形之间的第一约束以及第一多边形与第三多边形之间的第二约束,所述系统进一步被配置成:
使矩阵的第一多个列与第一约束相关联,其中,第一多个列中的每一个进一步与所述多个掩膜中的不同的一个相关联;以及
使矩阵的第二多个列与第二约束相关联,其中,所述第二多个列中的每一个进一步与所述多个掩膜中的不同的一个相关联。
33.根据权利要求32所述的系统,进一步被配置成:
使矩阵的第一多个行与第一多边形相关联,其中,第一多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;
使矩阵的第二多个行与第二多边形相关联,其中,所述第二多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;
使矩阵的第三多个行与第三多边形相关联,其中,所述第三多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;
使矩阵的第四多个行与第一约束相关联,其中,所述第四多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联;以及
使矩阵的第五多个行与第二约束相关联,其中,所述第五多个行中的每一个进一步与所述多个掩膜中的不同的一个相关联。
34.根据权利要求33所述的系统,其中,第三多个列包括第一列、第二列、第三列、所述第一多个列以及所述第二多个列,其中,第六多个行包括所述第一、第二、第三、第四以及第五多个行,所述系统进一步被配置成:
当所述第六多个行中的一个与所述第三多个列中的一个之间的关联为真时,在所述第六多个行中的一个与所述第三多个列中的一个之间的每个交叉点处关联逻辑真值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562260227P | 2015-11-25 | 2015-11-25 | |
US62/260,227 | 2015-11-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107025320A CN107025320A (zh) | 2017-08-08 |
CN107025320B true CN107025320B (zh) | 2022-01-11 |
Family
ID=57394454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611054776.7A Active CN107025320B (zh) | 2015-11-25 | 2016-11-25 | 考虑复杂着色规则的多重图案化布局分解 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10395001B2 (zh) |
EP (1) | EP3193271B1 (zh) |
CN (1) | CN107025320B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10354886B2 (en) | 2013-02-22 | 2019-07-16 | Synopsys, Inc. | Hybrid evolutionary algorithm for triple-patterning |
WO2015023856A1 (en) | 2013-08-15 | 2015-02-19 | Synopsys, Inc. | Detecting and displaying multi-patterning fix guidance |
US9747407B2 (en) | 2014-02-20 | 2017-08-29 | Synopsys, Inc. | Categorized stitching guidance for triple-patterning technology |
US10372037B2 (en) | 2015-10-30 | 2019-08-06 | Synopsys, Inc. | Constructing fill shapes for double-patterning technology |
US10311195B2 (en) | 2016-01-15 | 2019-06-04 | Synopsys, Inc. | Incremental multi-patterning validation |
US9971863B2 (en) * | 2016-03-01 | 2018-05-15 | Taiwan Semiconductor Manufacturing Co., Ltd. | Rule checking for multiple patterning technology |
US10274829B2 (en) * | 2016-12-09 | 2019-04-30 | Taiwan Semiconductor Manufacturing Co., Ltd. | Multiple patterning decomposition and manufacturing methods for IC |
KR102636094B1 (ko) * | 2016-12-16 | 2024-02-13 | 삼성전자주식회사 | 트리플 패터닝 리소그래피를 위한 집적 회로, 상기 집적 회로의 설계를 위한 컴퓨팅 시스템 및 컴퓨터 구현 방법 |
KR102636095B1 (ko) * | 2016-12-16 | 2024-02-13 | 삼성전자주식회사 | 쿼드러플 패터닝 리소그래피를 위한 집적 회로, 상기 집적 회로의 설계를 위한 컴퓨팅 시스템 및 컴퓨터 구현 방법 |
US11586674B2 (en) * | 2016-12-28 | 2023-02-21 | Khalifa University of Science and Technology | Methods and systems for searching |
US10540398B2 (en) * | 2017-04-24 | 2020-01-21 | Oracle International Corporation | Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it |
US11079685B2 (en) * | 2017-11-14 | 2021-08-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method of manufacturing photo masks |
KR102324172B1 (ko) | 2017-11-21 | 2021-11-08 | 삼성전자주식회사 | 반도체 장치, 반도체 장치의 레이아웃 디자인 방법 및 반도체 장치의 제조 방법 |
US10895864B2 (en) * | 2018-05-23 | 2021-01-19 | Mentor Graphics Corporation | Fabric-independent multi-patterning |
KR20210050319A (ko) | 2019-10-28 | 2021-05-07 | 삼성전자주식회사 | 패턴 형성을 위한 포토마스크 세트의 제조 방법 및 이를 이용한 반도체 소자의 제조 방법 |
CN113096212B (zh) * | 2021-05-07 | 2022-08-16 | 国微集团(深圳)有限公司 | 一种tpt版图的拆分验证方法、系统及存储器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1376283A (zh) * | 1998-09-30 | 2002-10-23 | 凯登丝设计系统公司 | 基于块的设计方法 |
CN102147820A (zh) * | 2010-02-09 | 2011-08-10 | 台湾积体电路制造股份有限公司 | 分解集成电路布局的方法以及计算机可读取媒体 |
CN102841509A (zh) * | 2011-04-04 | 2012-12-26 | Asml荷兰有限公司 | 光刻设备和掩模优化过程与多重图案化过程的集成 |
US8601409B1 (en) * | 2012-07-12 | 2013-12-03 | Taiwan Semiconductor Manufacturing Co, Ltd. | Compression method and system for use with multi-patterning |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0974906A3 (en) | 1998-07-24 | 2008-12-24 | Interuniversitair Microelektronica Centrum Vzw | Method for determining an optimized memory organization of a digital device |
US6408428B1 (en) | 1999-08-20 | 2002-06-18 | Hewlett-Packard Company | Automated design of processor systems using feedback from internal measurements of candidate systems |
US6898773B1 (en) | 2002-01-22 | 2005-05-24 | Cadence Design Systems, Inc. | Method and apparatus for producing multi-layer topological routes |
US6829216B1 (en) | 2000-08-18 | 2004-12-07 | Hitachi Telecom (U.S.A.), Inc. | Method and system for designing a network |
US6704921B2 (en) | 2002-04-03 | 2004-03-09 | Numerical Technologies, Inc. | Automated flow in PSM phase assignment |
US7624367B2 (en) | 2002-11-18 | 2009-11-24 | Cadence Design Systems, Inc. | Method and system for routing |
JP4364524B2 (ja) | 2003-02-20 | 2009-11-18 | 株式会社日立製作所 | パターン検査方法 |
US7647212B2 (en) | 2003-11-14 | 2010-01-12 | Palo Alto Research Center Incorporated | Graph-based negotiation system with encapsulated constraint solver |
US7653892B1 (en) | 2004-08-18 | 2010-01-26 | Cadence Design Systems, Inc. | System and method for implementing image-based design rules |
US7560201B2 (en) | 2006-05-24 | 2009-07-14 | Synopsys, Inc. | Patterning a single integrated circuit layer using multiple masks and multiple masking layers |
US7879537B1 (en) | 2007-08-27 | 2011-02-01 | Cadence Design Systems, Inc. | Reticle and technique for multiple and single patterning |
US20090070550A1 (en) | 2007-09-12 | 2009-03-12 | Solomon Research Llc | Operational dynamics of three dimensional intelligent system on a chip |
JP5082937B2 (ja) | 2008-03-07 | 2012-11-28 | 日本電気株式会社 | 無線通信方法及びシステム |
US8190547B2 (en) | 2008-06-26 | 2012-05-29 | Microsoft Corporation | Semi-exact algorithms for optimization |
US8069423B2 (en) | 2008-08-11 | 2011-11-29 | Cadence Design Systems, Inc. | System and method for model based multi-patterning optimization |
US8086981B2 (en) | 2008-09-10 | 2011-12-27 | Cadence Design Systems, Inc. | Method and system for design rule checking enhanced with pattern matching |
US8209656B1 (en) | 2008-10-14 | 2012-06-26 | Cadence Design Systems, Inc. | Pattern decomposition method |
US8515167B2 (en) | 2009-08-31 | 2013-08-20 | Peking University | High dynamic range image mapping with empirical mode decomposition |
US8402396B2 (en) | 2009-09-29 | 2013-03-19 | The Regents Of The University Of California | Layout decomposition for double patterning lithography |
JP2011249403A (ja) | 2010-05-24 | 2011-12-08 | Toshiba Corp | 半導体装置及びその製造方法 |
US8515724B2 (en) | 2010-06-22 | 2013-08-20 | International Business Machines Corporation | Technology computer-aided design (TCAD)-based virtual fabrication |
US8312394B2 (en) | 2010-11-29 | 2012-11-13 | Synopsys, Inc. | Method and apparatus for determining mask layouts for a spacer-is-dielectric self-aligned double-patterning process |
US8677297B2 (en) | 2010-12-03 | 2014-03-18 | Synopsys, Inc. | Low-overhead multi-patterning design rule check |
US8359556B1 (en) | 2011-06-29 | 2013-01-22 | International Business Machines Corporation | Resolving double patterning conflicts |
US8683392B2 (en) | 2011-07-21 | 2014-03-25 | Taiwan Semiconductor Manufacturing Company, Ltd. | Double patterning methodology |
US8726215B2 (en) | 2011-08-02 | 2014-05-13 | Synopsys, Inc. | Standard cell placement technique for double patterning technology |
US8516403B2 (en) | 2011-09-01 | 2013-08-20 | International Business Machines Corporation | Multiple patterning layout decomposition for ease of conflict removal |
US8434033B2 (en) | 2011-09-01 | 2013-04-30 | International Business Machines Corporation | Mask assignment for multiple patterning lithography |
US8473873B2 (en) | 2011-09-02 | 2013-06-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | Multi-patterning method |
US8468470B2 (en) | 2011-09-21 | 2013-06-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | Multi-patterning method |
US8539396B2 (en) | 2011-12-30 | 2013-09-17 | Taiwan Semiconductor Manufacturing Co., Ltd. | Stitch and trim methods for double patterning compliant standard cell design |
US8484607B1 (en) | 2012-03-06 | 2013-07-09 | International Business Machines Corporation | Decomposing layout for triple patterning lithography |
US8448100B1 (en) | 2012-04-11 | 2013-05-21 | Taiwan Semiconductor Manufacturing Co., Ltd. | Tool and method for eliminating multi-patterning conflicts |
US8434043B1 (en) | 2012-05-25 | 2013-04-30 | Taiwan Semiconductor Manufacturing Co., Ltd. | Methodology for analysis and fixing guidance of pre-coloring layout |
US8745556B2 (en) | 2012-06-28 | 2014-06-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Layout method and system for multi-patterning integrated circuits |
US9360750B2 (en) | 2012-08-31 | 2016-06-07 | Taiwan Semiconductor Manufacturing Company Limited | Balancing mask loading |
US8661371B1 (en) | 2012-12-21 | 2014-02-25 | Cadence Design Systems, Inc. | Method and apparatus for fixing double patterning color-seeding violations |
US8850367B2 (en) | 2013-01-02 | 2014-09-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of decomposable checking approach for mask alignment in multiple patterning |
JP6598421B2 (ja) | 2013-02-22 | 2019-10-30 | キヤノン株式会社 | マスクパターンの決定方法、プログラム、情報処理装置 |
US10354886B2 (en) | 2013-02-22 | 2019-07-16 | Synopsys, Inc. | Hybrid evolutionary algorithm for triple-patterning |
US9740814B1 (en) | 2013-03-11 | 2017-08-22 | Cadence Design Systems, Inc. | Method and system for triple patterning technology (TPT) violation detection and visualization |
US9141752B2 (en) | 2013-03-14 | 2015-09-22 | Taiwan Semiconductor Manufacturing Co., Ltd. | EDA tool and method for conflict detection during multi-patterning lithography |
US9122838B2 (en) | 2013-06-14 | 2015-09-01 | Taiwan Semiconductor Manufacturing Co., Ltd. | Triple-pattern lithography layout decomposition |
US8875065B1 (en) | 2013-06-14 | 2014-10-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Triple-pattern lithography layout decomposition validation |
US9298084B2 (en) | 2013-07-19 | 2016-03-29 | Synopsys Inc. | Preventing double patterning odd cycles |
US8954900B1 (en) | 2013-07-31 | 2015-02-10 | Taiwan Semiconductor Manufacturing Co., Ltd. | Multi-patterning mask decomposition method and system |
WO2015023856A1 (en) | 2013-08-15 | 2015-02-19 | Synopsys, Inc. | Detecting and displaying multi-patterning fix guidance |
US20150234974A1 (en) | 2014-02-17 | 2015-08-20 | Samsung Electronics Co., Ltd. | Multiple patterning design with reduced complexity |
US9747407B2 (en) | 2014-02-20 | 2017-08-29 | Synopsys, Inc. | Categorized stitching guidance for triple-patterning technology |
US9158885B1 (en) * | 2014-05-15 | 2015-10-13 | GlobalFoundries, Inc. | Reducing color conflicts in triple patterning lithography |
US9904756B1 (en) | 2015-03-31 | 2018-02-27 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing DRC clean multi-patterning process nodes with lateral fills in electronic designs |
US10372037B2 (en) | 2015-10-30 | 2019-08-06 | Synopsys, Inc. | Constructing fill shapes for double-patterning technology |
US10311195B2 (en) | 2016-01-15 | 2019-06-04 | Synopsys, Inc. | Incremental multi-patterning validation |
-
2016
- 2016-11-22 US US15/359,579 patent/US10395001B2/en active Active
- 2016-11-24 EP EP16200435.2A patent/EP3193271B1/en active Active
- 2016-11-25 CN CN201611054776.7A patent/CN107025320B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1376283A (zh) * | 1998-09-30 | 2002-10-23 | 凯登丝设计系统公司 | 基于块的设计方法 |
CN102147820A (zh) * | 2010-02-09 | 2011-08-10 | 台湾积体电路制造股份有限公司 | 分解集成电路布局的方法以及计算机可读取媒体 |
CN102841509A (zh) * | 2011-04-04 | 2012-12-26 | Asml荷兰有限公司 | 光刻设备和掩模优化过程与多重图案化过程的集成 |
US8601409B1 (en) * | 2012-07-12 | 2013-12-03 | Taiwan Semiconductor Manufacturing Co, Ltd. | Compression method and system for use with multi-patterning |
Also Published As
Publication number | Publication date |
---|---|
US10395001B2 (en) | 2019-08-27 |
EP3193271B1 (en) | 2021-07-14 |
CN107025320A (zh) | 2017-08-08 |
EP3193271A1 (en) | 2017-07-19 |
US20170147740A1 (en) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025320B (zh) | 考虑复杂着色规则的多重图案化布局分解 | |
KR102401892B1 (ko) | 에지 공차 및 불완전한 사양을 고려한 drc-기반 핫스폿 검출 | |
US8209639B2 (en) | Identifying layout regions susceptible to fabrication issues by using range patterns | |
US8661371B1 (en) | Method and apparatus for fixing double patterning color-seeding violations | |
US7703067B2 (en) | Range pattern definition of susceptibility of layout regions to fabrication issues | |
TWI556124B (zh) | 用於三重圖案化之混合漸進演算法 | |
Tian et al. | A polynomial time triple patterning algorithm for cell based row-structure layout | |
CN107145618B (zh) | 用于多重图案化技术的设计规则检查的方法和系统 | |
US20110296360A1 (en) | Method for checking and fixing double-patterning layout | |
US9471744B2 (en) | Triple-pattern lithography layout decomposition | |
TWI587164B (zh) | 積體電路元件之多重圖案化方法 | |
US20130042217A1 (en) | Structural migration of integrated circuit layout | |
US7823795B2 (en) | Pattern based elaboration of hierarchical L3GO designs | |
US9026958B1 (en) | Method and system for double patterning technology (DPT) odd loop visualization for an integrated circuit layout | |
US9165104B1 (en) | Method and apparatus for identifying double patterning color-seeding violations | |
Tian et al. | Triple patterning aware detailed placement with constrained pattern assignment | |
Su et al. | A novel fast layout encoding method for exact multilayer pattern matching with Prüfer encoding | |
US11681847B2 (en) | Method of manufacturing semiconductor device and system for same | |
Kuang et al. | Incorporating cut redistribution with mask assignment to enable 1D gridded design | |
US7590955B1 (en) | Method and system for implementing layout, placement, and routing with merged shapes | |
Yu et al. | DSA-friendly detailed routing considering double patterning and DSA template assignments | |
Lvov et al. | On coloring and colorability analysis of integrated circuits with triple and quadruple patterning techniques | |
Guo et al. | On Coloring Rectangular and Diagonal Grid Graphs for Multipatterning and DSA Lithography | |
US11900041B2 (en) | Via coloring methods and systems | |
Tian | Layout decomposition for triple patterning lithography |
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 |