CN104517000A - 确定布局设计是否是n-可染色的方法 - Google Patents

确定布局设计是否是n-可染色的方法 Download PDF

Info

Publication number
CN104517000A
CN104517000A CN201310704190.0A CN201310704190A CN104517000A CN 104517000 A CN104517000 A CN 104517000A CN 201310704190 A CN201310704190 A CN 201310704190A CN 104517000 A CN104517000 A CN 104517000A
Authority
CN
China
Prior art keywords
layout
candidate unit
unit
units
conflict graph
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.)
Granted
Application number
CN201310704190.0A
Other languages
English (en)
Other versions
CN104517000B (zh
Inventor
林宏隆
徐金厂
何建霖
杨稳儒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of CN104517000A publication Critical patent/CN104517000A/zh
Application granted granted Critical
Publication of CN104517000B publication Critical patent/CN104517000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

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

本发明提供了一种确定用于制造集成电路的部件层的布局设计是否为N-可染色的方法,包括从布局设计的布局单元中标识出候选单元组。候选单元组中的每个候选单元都是基础布局单元组中的一个基础布局单元或者复合布局单元组中的一个复合布局单元,并且复合布局单元组中的该复合布局单元的布局组成单元已被确定为N-可染色。确定候选单元组中的第一候选单元是否为N-可染色。当第一候选单元是N-可染色并且不是顶层布局单元时,生成第一候选单元的邻接敏感冲突图。本发明提供了一种集成电路设计***。本发明还提供了一种存储指令集的非瞬态存储介质。

Description

确定布局设计是否是N-可染色的方法
技术领域
本发明总体涉及半导体,更具体地,涉及半导体布局的设计方法和***。
背景技术
在半导体制造处理中,有时通过使用多次曝光或多重图案化技术来形成单个部件层,从而提高该层的空间分辨率。例如,如果使用N次曝光或图案化处理(即,N次曝光或N重图案化)来制造部件层,并且N是不小于2的正整数,那么与针对部件层的布局设计相对应的布局图案被分为N个不同的组以用于相应的曝光或图案化处理。有时,以类似于解决图论(graph theory)中的染色问题的方式来实施图案分配处理。因此,图案分配处理有时也被称为“染色处理”,并且,如果布局设计的布局图案能够被分配为N个不同的图案化组,则布局设计有时也被称为“N-可染色”。布局设计的图案分配处理的性能通常表现为计算资源需求和耗时。
发明内容
根据本发明的一个方面,提供了一种确定用于制造集成电路的部件层的布局设计是否为N-可染色的方法,N是不小于2的正整数,布局设计包括以分层方式布置的布局单元,布局单元包括基础布局单元组和复合布局单元组,复合布局单元组包括顶层布局单元,顶层布局单元代表布局设计,并且该方法包括:从布局单元中标识出候选单元组,候选单元组中的每个候选单元都是基础布局单元组中的一个基础布局单元或者复合布局单元组中的一个复合布局单元,并且复合布局单元组中的一个复合布局单元的布局组成单元已被确定为N-可染色;确定候选单元组中的第一候选单元是否为N-可染色;以及当第一候选单元为N-可染色并且不是顶层布局单元时,通过硬件处理单元,生成第一候选单元的邻接敏感冲突图。
优选地,以迭代方式重复进行标识操作、确定操作以及生成操作。
优选地,该方法还包括:当顶层单元是N-可染色时,报告布局设计是N-可染色;以及当布局单元中有任何一个不是N-可染色时,报告布局设计不是N-可染色。
优选地,该方法还包括:确定候选单元组中的第二候选单元是否为N-可染色,其中,以并行处理方式处理确定第一候选单元是否为N-可染色和确定第二候选单元是否为N-可染色。
优选地,生成第一候选单元的邻接敏感冲突图,包括:在第一候选单元内限定邻接敏感区;生成与落在邻接敏感区中的布局图案组相对应的顶点组;当能够给顶点组中的两个顶点分配相同颜色时,通过相同颜色链路来连接这两个顶点;以及当能够给顶点组中的两个顶点分配不同颜色时,通过不同颜色链路来连接这两个顶点。
优选地,生成第一候选单元的邻接敏感冲突图还包括:当邻接敏感冲突图在包括另一个顶点之前具有两个或更多不同的配置时,将另一个顶点包括在邻接敏感冲突图中,另一个顶点与第一候选单元中未落在邻接敏感区内的布局图案相对应。
优选地,第一候选单元内的邻接敏感区被限定在第一候选单元的单元边界和第一候选单元的封锁边界之间,通过将第一候选单元的单元边界向内移动一距离来限定封锁边界,距离等于或大于预设阈值距离和预设的单元重叠允许公差之和。
优选地,第一候选单元包括布局组成单元的组合,并且该方法还包括:根据第一候选单元的布局组成单元的邻接敏感冲突图,生成第一候选单元的冲突图。
优选地,生成第一候选单元的冲突图包括:当两个顶点分别来自布局组成单元中的两个相邻布局单元的相应邻接敏感冲突图时,通过不同颜色链路来连接两个顶点;并且两个顶点代表的布局图案之间的距离小于预设阈值距离。
优选地,该方法还包括:从第一候选单元的冲突图中去除一个或多个可省略的顶点。
优选地,从第一候选单元的冲突图中去除一个或多个顶点包括:当一个或多个可省略的顶点中的一个顶点连接至第一候选单元的冲突图中个数少于(N-1)的顶点时,从第一候选单元的冲突图中去除一个或多个可省略的顶点中的这个顶点。
优选地,该方法还包括:在确定顶层单元是N-可染色之后,对布局设计实施N-可染色。
优选地,对布局设计实施N-可染色包括:实施染色操作以对布局单元中的一个布局单元的冲突图的顶点进行染色;实施合并操作以将布局单元中的一个布局单元的布局组成单元的冲突图与进行染色操作之后的布局单元中的一个布局单元的冲突图合并;以及从顶层布局单元开始以迭代方式实施染色操作和合并操作,直至布局单元的冲突图被合并和染色。
根据本发明的另一方面,提供了一种集成电路设计***,包括:非瞬态存储介质,其中编码有指令集;硬件处理单元,与非瞬态存储介质通信连接,并且被配置为执行指令集,从而:从用于制造集成电路的部件层的布局设计的布局单元中标识出候选单元组,候选单元组中的每个候选单元都是基础布局单元组中的一个基础布局单元或者复合布局单元组中的一个复合布局单元,并且复合布局单元组中的一个复合布局单元的布局组成单元已被确定为N-可染色;确定候选单元组的第一候选单元是否为N-可染色;以及当第一候选单元是N-可染色并且第一候选单元不是顶层布局单元时,生成第一候选单元的邻接敏感冲突图,顶层布局单元是布局设计。
优选地,硬件处理单元被配置为以迭代方式重复实施标识操作、确定操作以及生成操作。
优选地,硬件处理单元被配置为进一步确定候选单元组中的第二候选单元是否为N-可染色,并且以并行处理方式处理确定第一候选单元是否为N-可染色和确定第二候选单元是否为N-可染色。
优选地,当执行指令集以生成第一候选单元的邻接敏感冲突图时,硬件处理单元还被配置为:在第一候选单元内限定邻接敏感区;生成与落在邻接敏感区内的布局图案组相对应的顶点组;当能够给顶点组中的两个顶点分配相同颜色时,通过相同颜色链路连接这两个顶点;以及当能够给顶点组中的两个顶点分配不同颜色时,通过不同颜色链路连接这两个顶点。
优选地,当执行指令集时,硬件处理单元还被配置为:当第一候选单元包括布局组成单元的组合时,根据第一候选单元的布局组成单元的邻接敏感冲突图,生成第一候选单元的冲突图。
优选地,当执行指令集时,硬件处理单元还被配置为:实施染色操作以对布局单元中的一个布局单元的冲突图的顶点进行染色;实施合并操作以将布局单元中的一个布局单元的布局组成单元的冲突图与进行染色操作后的布局单元中的一个布局单元的冲突图合并;以及从顶层布局单元开始以迭代方式实施染色操作和合并操作,直至布局单元的冲突图被合并和染色。
根据本发明的又一方面,提供了一种编码有指令集的非瞬态存储介质,指令集被配置为使硬件处理单元执行包括以下步骤的方法:从用于制造集成电路的部件层的布局设计的布局单元中标识出候选单元组,候选单元组中的每个候选单元都是基础布局单元组中的一个基础布局单元或者复合布局单元组中的一个复合布局单元,并且复合布局单元组中的一个复合布局单元的布局组成单元已被确定为N-可染色;确定候选单元组的第一候选单元是否为N-可染色;以及当第一候选单元是N-可染色并且不是顶层布局单元时,生成第一候选单元的邻接敏感冲突图,顶层布局单元是布局设计。
优选地,指令集被配置为使硬件处理单元以迭代方式重复地实施标识操作、确定操作以及生成操作。
优选地,指令集被配置为使硬件处理单元还实施:确定候选单元组中的第二候选单元是否为N-可染色,并且以并行处理的方式处理确定第一候选单元是否为N-可染色的和确定第二候选单元是否为N-可染色。
优选地,生成第一候选单元的邻接敏感冲突图包括:在第一候选单元内限定邻接敏感区;生成与落在邻接敏感区中的布局图案组相对应的顶点组;当能够给顶点组中的两个顶点分配相同颜色时,通过相同颜色链路连接这两个顶点;以及当能够给顶点组中的两个顶点分配不同颜色时,通过不同颜色链路连接这两个顶点。
优选地,指令集被配置为使硬件处理单元还实施:实施染色操作以对布局单元中的一个布局单元的冲突图的顶点进行染色;实施合并操作以将布局单元中的一个布局单元的布局组成单元的冲突图与进行染色操作之后的布局单元中的一个布局单元的冲突图合并;以及从顶层布局单元开始以迭代方式实施染色操作和合并操作,直至布局单元的冲突图被合并和染色。
附图说明
通过实例的方式示出一个或多个实施例,但是这些实施例并不限制在附图的图例中,其中具有相似参考标号的元件表示相似的元件。
图1A是根据一个或多个实施例的布局设计的树形图;
图1B和图1C是根据一个或多个实施例的顶层布局单元152及其处于不同层次级的布局组成单元的示图;
图2A是根据一个或多个实施例的示例性基础布局单元的示图;
图2B是根据一个或多个实施例的图2A的示例性基础布局单元的冲突图;
图3A是根据一个或多个实施例的其中限定有邻接敏感区的示例性基础布局单元的示图;
图3B是根据一个或多个实施例的图3A的示例性基础布局单元的邻接敏感冲突图;
图3C是根据一个或多个实施例的另一个示例性基础布局的邻接敏感冲突图;
图4A是根据一个或多个实施例的其中限定有邻接敏感区的基础布局单元的示图;
图4B是根据一个或多个实施例的图4A的示例性基础布局单元的冲突图;
图4C至图4D是根据一个或多个实施例的图4A的示例性基础布局单元的不同邻接敏感冲突图;
图4E是根据一个或多个实施例的图4A的示例性基础布局单元的修改后的邻接敏感冲突图;
图5A和图5B是根据一个或多个实施例的两个基础布局单元的邻接敏感冲突图;
图5C是根据一个或多个实施例的复合布局单元的邻接敏感冲突图;
图6A至图6C是根据一个或多个实施例的示出不同连接度的示例性冲突图;
图7A是根据一个或多个实施例的冲突图;
图7B是根据一个或多个实施例的对图7A的冲突图进行菱形减少后形成的冲突图;
图7C是根据一个或多个实施例的冲突图;
图7D是根据一个或多个实施例的对图7C的冲突图进行菱形减少后形成的冲突图;
图8是根据一个或多个实施例的确定布局设计是否为N-可染色的方法的流程图;以及
图9是根据一个或多个实施例的集成电路设计***的功能性框图。
具体实施方式
应当理解,以下公开内容提供了一个或多个不同的实施例或实例,以实施本发明的不同特征。以下将描述部件和布置的特定实例以简化本发明。当然,这些仅是实例并且不旨在限制本发明。根据工业中的标准实践,视图中的各种部件没有按比例绘制并且仅用于说明的目的。
此外,例如,可使用“下面的”、“上面的”、“水平的”、“垂直的”、“在…上方”、“在…下方”、“在…之上”、“在…之下”、“顶部”、“底部”、“左”、“右”等空间关系术语及其派生词(例如,“水平地”、“向下地”、“向上地”等),以便于描述本发明中一个部件与另一部件的关系。这些空间关系术语预期包括包含这些部件的器件的不同方位。
在诸多应用中,集成电路包括不同电路块的组合。每一个电路块也是其他电路块的组合。因此,在一些实施例中,集成电路包括以分层方式布置的不同电路块。在一些应用中,半导体制造公司提供的一组预设计电路块通常被称为适合被预定的制造工艺制造的标准单元。在一些实施例中,用于制造集成电路的部件层的布局设计被电路设计者或布局工程师组织为相应电路块的布局单元并且也是以分层的方式布置。
在一些实施例中,为了确定制造集成电路的部件层的布局设计是否为N-可染色的,以迭代方式对单个的布局单元反复进行分析处理。在一些实施例中,分析处于较低层级的布局单元,然后处于较高层级的布局单元可获取处于较低层级的布局单元的邻接敏感信息(abutment-sensitiveinformation)。因此,不是对布局设计的所有布局图案同时进行分析,而是在一些实施例中,将确定布局设计是否为N-可染色的过程划分为较小的分析处理的多次迭代。在一些实施例中,基于本申请的至少一个实施例实施的布局设计分析的计算的复杂度和计算的时间均要低于对布局设计的所有布局图案同时实施分析时的计算的复杂度和计算的时间。
在本发明的描述中,例如,将N设置为3。所公开的主题也适用于其他的N-可染色问题,其中,N为2或大于3。
集成电路的分层设计
图1A是根据一个或多个实施例的布局设计的树形图100。布局设计可用于制造集成电路的部件层。由于集成电路的分层设计,布局设计也包括布局单元112、113、114、116、117、118、122、124、126、128、132、134、136、142以及152,上述布局单元对应于不同层级或类型的电路块并且以分层方布置。
布局设计的布局单元包括一组基础布局单元112、113、114、116、117和118以及一组复合布局单元122、124、126、128、132、134、136、142以及152。在一些实施例中,基础布局单元112、113、114、116、117和118与集成电路公司基于预设的制造工艺而预设计的标准单元相对应。例如,基础布局单元112、113、114、116、117和118是包括AND、NAND、OR、NOR、NOT、BUFFER单元等的标准单元。
在一些实施例中,基础布局单元112、113、114、116、117和118与集成电路设计***(诸如,执行用于布局布线的软件程序的计算机)中的最小布局块相对应。在一些实施例中,复合布局单元组对应于电路设计者为便于电路设计处理而限定的不同电路块。
例如,复合布局单元组包括可用于表示整个布局设计的顶层布局单元152。图1B是根据一个或多个实施例的顶层布局单元152及其布局组成单元的示图。较高层级单元的布局组成单元是较高层级单元将其直接称作较高层级单元的构件块的布局单元。在本实例中,顶层布局单元152是布局单元142和两个布局单元136(136-1和136-2)的组合,因此布局单元142、136-1和136-2是顶层布局单元152的布局组成单元。图1C是根据一个或多个实施例的布局单元152以及布局单元142、136-1和136-2的布局组成单元的图形。布局单元142是布局单元132和134的组合。布局单元136-1是布局单元122(122-1)和128(128-1)以及基础布局单元117(117-1a和117-1b)的组合,因此,布局单元122-1、128-1、117-1a和117-1b是布局单元136-1的布局组成单元。布局单元136-2是布局单元122(122-2)、128(128-2)以及基础布局单元117(117-2a和117-2b)的组合,因此布局单元122-2、128-2、117-2a和117-2b是布局单元136-2的布局组成单元。
此外,如图1A所示,布局单元132是布局单元122、124和126的组合;布局单元134是布局单元124和126的组合;布局单元122是基础布局单元112、113、116和117的组合;布局单元124是基础布局单元112、113、116和117的另一个组合;布局单元126是基础布局单元112、113、114、116和117的组合;以及布局单元128是基础布局单元112、116和118的组合。
在一些实施例中,复合布局单元122、124、126、128、132、134、136、142和152与包括存储器阵列、控制器、输入/输出单元或任何电路块(适合在集成电路设计中被单独验证和重复使用)的电路块相对应。
基础布局单元的冲突图
图2A是根据一个或多个实施例的示例性基础布局单元200的示图。在一些实施例中,布局单元200可用作图1所示的基础布局单元112、113、114、116、117和118中的一个。布局单元200包括单元边界210和布局图案222、223、224、226和227。在本实例中,布局图案222和224之间的距离D1、布局图案223和224之间的距离D2、布局图案224和226之间的距离D3、布局图案223和226之间的距离D4、布局图案226和227之间的距离D5以及布局图案224和227之间的距离D6均小于预设的阈值距离,该阈值距离有时被称为“G0距离”。为了适当地制造布局设计200所表示的部件,距离小于G0距离的布局图案被分配给不同的图案化组。同时,在本实例中,布局图案222和223之间的距离D7大于G0距离。因此,能够将布局图案222和223分配给相同或不同的图案组。
图2B是根据一个或多个实施例的图2A的示例性基础布局单元200的冲突图240。将布局单元转化为相应的冲突图包括设定顶点或节点,其中,每个顶点或节点均表示布局单元,并且当两个顶点之间距离小于G0距离时,用边将两个顶点连接起来。例如,顶点或节点A、B、C、D和E分别表示布局图案222、223、224、226和227。因为距离D1小于G0距离,所以,通过边252将顶点A和C连接起来。类似地,通过边253、254、255、256和257分别连接顶点B和C、顶点B和D、顶点C和D、顶点C和E以及顶点D和E。因为距离D7大于G0距离,所以不通过任何边连接顶点A和B。因此,布局图案200的图案分配处理被转化为解决冲突图240的染色问题。
邻接敏感冲突图
对于布局单元,诸如,基础布局单元112、113、114、116、117或118,或者复合布局单元122、124、126、128、132、134、136、142或152,如果存在相应的邻接敏感冲突图,则将其推导出并且使其可用于较高层级的另一布局单元。在一些实施例中,邻接敏感冲突图包括顶点,该顶点涉及到与较高层级的冲突图中的邻近布局单元形成边。因此,减少了较高层级处理的信息量。
图3A是根据一个或多个实施例的其中限定有邻接敏感区310的基础布局单元300的图形。为了说明的目的,图3A所示的示例性基础布局单元300具有与图2A所示的布局单元200相似的结构。用同一参考标号表示与布局单元200的部件相似的布局单元300的部件。而且,布局单元300的冲突图与图2B所示的冲突图相类似。
邻接敏感区310被限定为单元边界210和封锁边界(blockage boundary)320之间的区域。落于邻接敏感区310内的布局图案与邻近布局单元的另一个布局图案的距离能够小于G0距离。在一些实施例中,如果布局图案远离单元边界210的距离大于G0距离和/或布局单元的预设位移,则布局图案与相邻布局单元的任何布局图案之间的距离均不可能小于G0距离。
在一些实施例中,通过将单元边界210向内移动预设距离W来形成封锁边界320。在一些实施例中,预设距离W等于或大于预设阈值距离(即,G0距离)和预设单元重叠允许公差。如上所示,在封锁边界320内侧的顶点(诸如,表示布局图案223、224或226的顶点)与表示邻近布局单元的布局图案的顶点不会形成附加边。而且,在邻接敏感冲突图中会存在表示至少部分落于邻接敏感区310中的布局图案(诸如,邻接敏感的布局图案222或227)的顶点。
图3B是根据一个或多个实施例的图3A的示例性基础布局单元的邻接敏感冲突图340。在邻接敏感冲突图340中,因为布局图案222和227部分落于邻接敏感区310内,所以存在与布局图案222和227相对应的顶点A和E。如图2B中所示,如果N被设为3,由于顶点A和E能够被分配相同或不同的颜色,所以,对邻接敏感冲突图中的顶点A和E的染色没有加以限制。因此,在图3B中,无需增加边或链路(link)来连接顶点A和E。
图3C是根据一个或多个实施例的另一个示例性基础布局的邻接敏感冲突图350。邻接敏感除了布局图案223向页面的左侧位移以成为布局图案223’,而布局图案224向页面的右侧位移以成为布局图案224’之外,邻接敏感冲突图350用于与布局单元300相似的单元。布局图案223’和224’仍位于布局单元边界210内并且部分地落于邻接敏感区310内。在邻接敏感冲突图350中存在与布局图案222、223’、224’和227相对应的顶点A、B’、C’和E。顶点A、B’、C’和E的染色仍与冲突图240所示的顶点A、B、C和E的染色一致。
此外,如图2B和3C所示,用于分配给顶点A、B’、C’和E的颜色是相关联的,因此,顶点A、B’、C’和E的染色的相互关系也存在于邻接敏感冲突图350中。在一些实施例中,当两个顶点能够被分配相同的颜色时,被称为“相同颜色链路”的第一类型边连接两个顶点。在一些实施例中,当两个顶点能够被分配不同的颜色时,被称为“不同颜色链路”的第二类型边连接两个顶点。例如,基于冲突图350,由于顶点A和C’能够被分配不同的颜色,所以通过不同颜色链路362连接顶点A和C’。基于类似的原因,通过不同颜色链路364连接顶点B’和C’,以及通过不同颜色连接链路366连接顶点C’和E’。而且,在3-染色处理中,顶点B’和E被分配相同的颜色,因此通过相同颜色链路372连接顶点B’和E。
在一些实施例中,根据结合图3A至图3C示出的处理而制备的邻接敏感冲突图350省略了封锁边界320内部的某些细节。因此,在一些实施例中,并不是与邻接敏感冲突图相对应的布局单元的所有可能染色结果(即,整个解空间)都包含在邻接敏感冲突图中。
例如,图4A是根据一个或多个实施例的其中限定有邻接敏感区410的示例性基础布局单元400的示图。为了说明的目的,除了布局单元400中不含布局图案227之外,图4A所示的示例性基础布局单元400具有与图2A所示的布局单元200相似的配置。使用相同的参考标号表示与布局单元200的部件相似的布局单元400的部件。封锁边界420位于布局单元内,并且邻接敏感区410被限定为单元边界210和封锁边界420之间的区域。布局图案222、223和226至少部分地落于邻接敏感区410内,并且布局图案224位于封锁边界420内部。
图4B是根据一个或多个实施例的图4A的示例性基础布局单元400的冲突图430。在冲突图430中,在处理(类似于结合图2A和2B示出的处理)之后,顶点A、B、C和D分别表示布局图案222、223、224和226。边252、253、254和255分别连接顶点A和C、顶点B和C、顶点B和D以及顶点C和D。
图4C是根据一个或多个实施例的图4A的示例性基础布局单元400的邻接敏感冲突图440。基于结合图3A至图3C描述的方法,冲突图430被进一步地简化为邻接敏感冲突图440。如图4C所示,因为顶点A和B能够被分配相同的颜色,所以通过相同颜色链路452连接顶点A和B,因为顶点B和D能够被分配不同的颜色,所以通过不同颜色链路454连接顶点B和D。
图4D是根据一个或多个实施例的图4A的示例性基础布局单元400的另一个邻接敏感冲突图460。基于结合图4A至图4C描述的方法,冲突图430也能够被简化为邻接敏感冲突图460。如图4D所示,因为顶点A和D能够被分配相同的颜色,所以通过相同颜色链路472连接顶点A和D,因为顶点B和D能够被分配不同的颜色,所以通过不同颜色链路474连接顶点B和D。
但是,在结合图4C至图4D示出的用于实施3-染色处理的实例中,因为必须给顶点B和D分配不同的颜色,所以不能给顶点A分配与顶点B和D均相同的颜色。因此,在至少一个实施例中,邻接敏感冲突图440和460中的每一个都表示冲突图430的解空间的非重叠部分。
图4E是根据一个或多个实施例的图4A的示例性基础布局单元400的经过修改的邻接敏感冲突图480。在至少另一个实施例中,从邻接敏感冲突图440或460中推导出修改的邻接敏感冲突图480,以包括冲突图430的全部解空间。例如,即使当顶点C与封锁边界420内部的布局图案224相对应时,连接顶点(诸如,顶点C)被添回到邻接敏感冲突图480中。根据冲突图430,通过相同色链路或不同颜色链路来连接顶点A、B、D和增加的连接顶点C。在图4E示出的实施例中,顶点A和C、顶点B和D、顶点B和C以及顶点C和D是分别由边252、254、253和255链接的成对顶点,由此给这些顶点分配不同的颜色。所以,不同颜色链路492连接顶点A和C,不同颜色链路494连接顶点B和D、不同颜色链路496连接顶点B和C以及不同颜色链路498连接顶点C和D。
组合邻接敏感冲突图
对于复合布局单元(诸如,图1示出的布局单元122、124、126、128、132、134、136、142或152)来说,根据组合复合布局单元的布局组成单元的邻接敏感冲突图来制备上述复合布局单元的冲突图。结合图5A至图5C,会进一步详细介绍通过组合布局组成单元的邻接敏感冲突图(例如,图5A示出的冲突图510和图5B示出的冲突图530)来创建冲突图(例如,图5C中示出的冲突图540)的处理过程。
图5A和5B是根据一个或多个实施例的两个基础布局单元的邻接敏感冲突图510和530。邻接敏感冲突图510和530只表示为用以说明组合多个邻接敏感冲突图的非限制性实例。邻接敏感冲突图510对应于第一类型的布局单元并且以与图3A和图3C示出的实例的类似方式得出。邻接敏感冲突图310具有由不同色链路522、524和526连接的顶点F和H、顶点G和H以及顶点H和J。邻接敏感冲突图510具有由同色链路528连接的顶点G和J。因为本实例中的顶点I对应于封锁边界512内部的布局图案,所以邻接敏感冲突图510中不包含顶点I并且用十字号表示顶点I。而且,邻接敏感冲突图530对应于第二类型的布局单元并且以与图3A和图3B示出的实例的类似方式得出。邻接敏感冲突图530具有顶点K和O,但是因为本实例中的顶点L、M和N对应于相应封锁边界532内部的布局图案,所以邻接敏感顶点L、M和N不包含在邻接敏感冲突图830中并且用十字号标出。
图5C是根据一个或多个实施例的复合布局单元的邻接敏感冲突图540。在至少一个实施例中,复合布局单元具有两个第一类型单元552和554以及两个第二类型单元556和558。例如,单元552的邻接敏感冲突图具有以类似于连接图5A中的顶点F、G、H和J的方式连接的顶点F1、G1、H1和J1。单元554的邻接敏感冲突图具有以类似于连接图5A中的顶点F、G、H和J的方式连接的F2、G2、H2和J2。单元556的邻接敏感冲突图具有以类似于设置图5B中的顶点O和J的方式设置的顶点K1和O1。单元558的邻接敏感冲突图具有以类似于设置图5B中的顶点O和J的方式设置的顶点K2和O2。邻接敏感冲突图540仅表示为用以说明组合多个邻接敏感冲突图的非限制性实例。
此外,在一些实施例中,选择性添加同色链路或不同色链路来连接相邻布局单元的顶点。例如,在图5C示出的实施例中,因为顶点K2和F2对应于由单元554和558合并的布局图案,所以顶点K2和F2是指同一布局图案,由此由相同颜色链路562来连接。而且,由于顶点F1和F2对应于之间距离小于G0距离的布局图案,所以不能为顶点F1和F2分配相同的颜色,因此由不同颜色链路564来连接顶点F1和F2。另一方面,因为顶点O1与附近的顶点(G1和K2)的分隔距离等于或大于G0距离,所以顶点O1不需要同色链路或不同色链路。
顶点减少
为了简化布局单元的冲突图,诸如,冲突图240或邻接敏感冲突图350或540,使用许多顶点减少处理来确定哪个顶点可以省略。在一些实施例中,如果顶点的染色与同一冲突图中的其他顶点的染色无关,或如果从同一个冲突图中的其他顶点的染色结果可推出该顶点的染色,那么该顶点可省略。也就是说,在有和没有可省略的顶点的情况下进行的分析均会得出冲突图是否为N-可染色的相同结论。因此,如果确定没有可省略的顶点的冲突图为N-可染色,那么,具有可省略的顶点的冲突图也为N-可染色。
在一些实施例中,当冲突图中的顶点连接至小于(N-1)个顶点(或连接度)时,可省略该顶点。
图6A至图6C是根据一个或多个实施例的描述不同连接度的冲突图600A、600B和600C,其中,N设为3。为了说明的目的,用以给冲突图染色的三种颜色为红色(R)、绿色(G)和蓝色(B)。在一些实施例中,冲突图600A、600B或600C是图1示出的一个布局单元的部分冲突图。
图6A是描述具有0连接度的顶点610的第一示例性冲突图600A。冲突图600A具有彼此连接的顶点622、624和626。冲突图600A也具有未与顶点622、624和626中的任何一个连接的顶点610,因此被称为具有0连接度。在一些实施例中,顶点610可省略,原因是顶点610的染色与其他顶点622、624和626的染色无关。例如,不管顶点622、624和626的染色结果如何,能够将顶点610染为R色、G色或B色。
图6B是描述具有一个连接度的顶点610的第二示例性冲突图600B。冲突图600B具有彼此连接的顶点622、624和626。冲突图600B也具有通过边632连接至顶点622的顶点610,因此也被称为具有1连接度。在一些实施例中,顶点610可省略,原因是只要确定了其他顶点622、624和626的染色,就能得出顶点610的染色。例如,顶点622染为R色之后,在不影响其他顶点的情况下将顶点610染为G色或B色。
图6C是根据一个或多个实施例的描述具有两个连接度的顶点610的示例性第三冲突图600C。冲突图600C具有彼此连接的顶点622、624和626。冲突图600C也具有通过边632连接至顶点622并且通过边634连接至另一个顶点642的顶点610,因此被称为具有两个连接度。在一些实施例中,顶点610可省略,原因是只要确定了622、624、626和642的染色,就能马上确定顶点610的染色。例如,将顶点622染为R色之后,当顶点642染为R色时,在不影响其他顶点的情况下,能够将顶点610染为G色或B色。在可选的实例中,在将顶点622染为R色后,当将顶点642染为G色时,在不影响其他顶点的情况下,能够将顶点610染为B色。
N-可染色分析—菱形减少
基于图论的很多处理可用于确定冲突图(诸如,冲突图240)是否为N-可染色。在一些实施例中,称作“菱形减少”的处理可用于确定冲突图是否为N-可染色。结合图7A至图7D将进一步说明菱形减少处理。
例如,图7A是根据一个或多个实施例的冲突图700A。冲突图700A描述了顶点A通过边712连接至顶点C,顶点B通过边713和边714分别连接至顶点C和顶点D,顶点E通过边716和边717分别连接至顶点C和顶点D,以及顶点C通过边715也连接至顶点D。顶点B和E属于共享顶点C和D以及连接两者的边715的两个三角形,并且顶点B、C、D和E共同形成菱形。例如,假设要给冲突图700A分配三种不同的颜色,只要确定了顶点C和D的颜色,就用相同的颜色给顶点B和E染色。图7B是根据一个或多个实施例的对图7A中的冲突图进行菱形减少后产生的冲突图700B。包括边713、717和715和顶点B、C和D的三角形可用于表示包括边716、717和715以及顶点C、D和E的三角形而不影响冲突图700A的N-可染色的结果。因此,只要确定了组合顶点B/E的N-可染色结果,就能确定顶点B和E的染色结果。
图7C是根据一个或多个实施例的冲突图700C。冲突图700C描述了顶点A’通过边722连接至顶点C’、顶点B’通过边723、边724和边728分别连接至顶点C’、顶点D’和顶点E’,顶点E’还通过边726和边727分别连接至顶点C’和顶点D’,以及顶点C’通过边725也连接至顶点D’。图7D是根据一个或多个实施例的对图7C中的冲突图700C进行菱形减少后产生的冲突图700D。根据图7A和7B示出的方法,包括边723、724和725以及顶点B’、C’和D’的三角形用于表示包括边726、727和725以及顶点C’、D’和E’的三角形。组合顶点B’/E’使边728形成一个环路。进行菱形减少之后产生的冲突图中的环路说明不能给与该环路相关的组合顶点相对应的顶点(诸如,本实例中的顶点B’和E’)染上相同的颜色。由此,组合顶点B’和E’存在染色冲突。所以,冲突图700C不是3可染色的。
确定布局设计是否为N-可染色的方法
图8是根据一个或多个实施例的确定布局设计802(例如,图1中的顶层布局单元152所表示的布局设计)是否为N-可染色的方法800的流程图。应该理解,在图8示出的方法800之前、其中和/或之后可进行附加操作,以及本发明只简单描述了其他某些处理。在一些实施例中,该方法是由图9中描述的硬件处理单元912执行的指令集914a。
在操作810中,接收用于制造集成电路的部件层的布局设计802。如图1所示,在一些实施例中,布局设计802包括以分层方式设置的顶层布局单元152和多个布局单元112、113、114、116、117、118、122、124、126、128、132、134、136和142。在一些实施例中,布局设计802可以以数据库文件格式(例如,图形数据***(GDS II)、开放式原图***交换标准(OPEN ARTWORK SYSTEM INTERCHANGE STANDARD,OASIS))或其他合适的格式存储在非瞬态存储装置中(诸如,图9中的存储介质914)。在一些实施例中,布局设计802包括关于布局设计802的布局单元(诸如,布局单元112、113、114、116、117、118、122、124、126、128、132、134、136、142和152)以及如何分层布置这些布局单元的信息。在一些实施例中,布局设计802包括一组基础布局单元112、113、114、116、117和118和一组复合布局单元122、124、126、128、132、134、136、142和152,并且该复合布局单元组包括表示布局设计本身的顶层布局单元152。
如图8所示,在操作815中,标识布局单元中的一组候选单元。将方法800的候选单元限定为基础布局单元组中的一个(诸如,布局单元112、113、114、116、117和118)或复合布局单元组中的一个(诸如,布局单元122、124、126、128、132、134、136、142和152)。在一些实施例中,如果候选单元是复合单元,为了获益于较低层级上的布局单元的邻接敏感冲突图,则已经确定该复合单元的布局组成单元为N-可染色。但是,在该阶段,还没有确定候选单元是否为N-可染色。
标识候选单元组之后,制备相应的标识的布局单元的冲突图。
在一些实施例中,在操作815中,将基础布局单元,例如图2A中的布局单元200标识为候选单元,原因是布局单元200是基础布局单元并且还没有确定布局单元200是否为N-可染色。在一些实施例中,结合图2A和2B示出的处理,制备图2B描述的冲突图240。
在一些实施例中,在操作815中,当已经确定了复合布局单元(例如,图5C示出的布局单元)的布局组成单元的邻接敏感冲突图为N-可染色时,将该复合布局单元标识为候选单元。根据复合布局单元的布局组成单元的邻接敏感冲突图来制备复合布局单元的冲突图。在一些实施例中,根据图5A至图5C示出的处理来制备图5C示出的冲突图540。因此,在一些实施例中,操作815还包括根据单元552、554、556和558的邻接敏感冲突图,生成冲突图540。
在操作820中,通过进行顶点减少处理来降低标识的候选单元的冲突图的复杂性。许多顶点减少处理也可用于确定哪个顶点可省略,从而简化操作830中要分析的冲突图。在一些实施例中,根据图6A至图6C示出的处理,进行顶点减少。
在一些实施例中,省略操作820。在一些实施例中,在进行操作830的过程中进行操作820,这在下文会进一步地给出说明。
在操作825中,从标识的候选单元池中选择出一个或多个候选单元。例如,如果目前将基础布局单元112、113、114、116、117和118标识为候选单元,则从布局单元112、113、114、116、117和118中选择一个或多个来分析这些布局单元是否为N-可染色。在一些实施例中,选择两个或多个候选单元以并行处理的方式进行分析。在一些实施例中,并行处理指一个或多个处理器通过多任务或多线程进行多项分析。在一些实施例中,并行处理指多个处理器中的每个处理器均被分配同时进行多项分析中相应的分析。在一些实施例中,任意地或根据一个或多个因素(包括布局单元被其他较高层级上的布局单元所使用的频率、单元大小、冲突图中的总边数或相邻单元的数量)选择候选单元。
在操作830中,进行分析来确定选择的候选单元是否为N-可染色。用来确定候选单元是否为N-可染色的应用算法很多。在一些实施例中,操作830包括建立真值表以枚举染色顶点的可能组合,并且从枚举出的组合中标识出一个或多个解(即,不相邻顶点具有相同颜色)。在一些实施例中,当N设为3时,操作830包括进行图7A至图7D示出的菱形减少,从而确定是否存在染色冲突。
如图4A至图4D所示,从相同的冲突图430中可得出两个或多个可能的邻接敏感冲突图440和460。在一些实施例中,每个可选邻接敏感冲突图440或460与冲突图430的整个解空间的子集一致。在一些实施例中,在操作825中,只选择邻接敏感冲突图440和460中的一个来进行操作830中的分析。在一些实施例中,如果分析可选邻接敏感冲突图中的一个,诸如,邻接敏感冲突图440,并且该邻接冲突图使依赖于邻接敏感冲突图440的布局单元不是N-可染色,则分析另一个可选的邻接敏感冲突图,诸如,邻接敏感冲突图460。在一些实施例中,不是选择可选的邻接敏感冲突图中的一个,而是在操作825中选择与冲突图430的整个解空间一致的经过修改的邻接冲突图(诸如,冲突图480)以用于操作830。
分析了选择的候选单元的冲突图之后,在操作835中,确定了分析的候选单元是否为N-可染色。如果分析的候选单元为N-可染色,则该方法继续至操作840,以提取出候选单元的邻接敏感信息。否则,该方法继续至操作880,这将在下文给出进一步的说明。
在一些实施例中,邻接敏感信息以邻接敏感冲突图(诸如,邻接敏感冲突图350、440、460或480)的格式来制备。邻接敏感冲突图包括候选单元的顶点的子集、一个或多个同色链路或一个或多个不同色链路。在一些实施例中,如果候选单元的布局图案没有一个会影响邻近候选单元的其他单元,则候选单元的邻接敏感冲突图不包括顶点、相同颜色链路和不同颜色链路。在一些实施例中,根据图3A至图3B和图4A至图4E示出的处理来制备邻接敏感冲突图。
在一些实施例中,如果正在被处理的布局单元是顶层布局单元(诸如,顶层布局单元152),则省略操作840。在一些实施例中,仍然对顶层布局单元进行操作840,这是因为当将当前集成电路作为构造块来设计另一个集成电路时,仍可使用提取出的顶层布局单元的邻接敏感冲突图。例如,在一些实施例中,布局单元142是另一个集成电路设计的顶层单元。因此,如果当分析另一个集成电路设计(其中,布局单元142是其顶层单元)时已经得出布局单元142的邻接敏感冲突图,则分析顶层单元152时,可使用来自另一个集成电路的布局单元142的邻接敏感冲突图。
在一些实施例中,在操作825中选择两个或多个候选单元以进行并行分析。在至少一个实施例中,对每个选择的候选单元都并行进行操作830、835和840的集合。
在操作840中提取了相应的邻接敏感冲突图之后,该方法继续至操作845,以确定当前所有标识的候选单元是否都被分析了。如果已经分析了当前所有标识的候选单元,该方法进行操作850。否则,该方法进行操作825,以选择还没有被分析的一个或多个候选单元。
在操作850中,确定操作815是否已经处理了比当前标识的候选单元的层级高的所有布局单元。如果确定当前分析的候选单元为N-可染色,则在操作815中会再次检查相对于当前分析的候选单元处于上级的单元。如果没有比当前标识的候选单元的层级更高的布局单元,则该方法继续至操作855。
在一些实施例中,以迭代的方式重复进行操作815至操作850,直至处理了布局设计的所有布局单元。
在操作855中,分析了接收的布局设计的所有布局单元(诸如,顶层布局单元152所表示的布局设计的布局单元112、113、114、116、117、118、122、124、126、128、132、134、136、142和152)之后,确定N-可染色是否存在染色冲突。如果没有染色冲突并且顶层单元是N-可染色,该方法进行操作860以当确定顶层单元为N-可染色时,报告布局设计为N-可染色。报告布局设计为N-可染色之后,该方法选择性地进行操作865,以进行布局设计的染色。
在一些实施例中,操作865首先包括对顶层布局单元152的冲突图的顶点进行染色。在完成对顶层布局单元152的冲突图的顶点染色之后,则其布局组成单元(诸如,布局单元142、136-1和136-2)的冲突图(相对于相应的封锁边界320、420、512或532内的顶点)被提升,即,从较低层级中提出并且与顶层布局单元152的冲突图合并。然后,以迭代的方式执行布局单元的相应布局组成单元的冲突图的提升,直至将布局设计的布局单元的冲突图合并且进行染色。
例如,对于图5C示出的比布局单元552、554、556和558的层级高的布局单元来说,确定了相应冲突图540的顶点F1、G1、H1、J1、F2、G2、H2、J2、K1、O1、K2和O2的颜色,然后其布局组成单元(例如,布局单元552、554、556以及558)的相对于相应封锁边界内的顶点(布局单元552和554的相应顶点I以及布局单元556和558的相应顶点L、M和N)的冲突图被提升,以与较高层级的布局单元的冲突图540合并。这种染色方法也被称为“气泡染色方法”,原因是提高较低层级的冲突图,从而以迭代的方式每次与较高层级的冲突图合并。
另一方面,如果在任何布局单元中存在任何染色冲突,则该方法进行操作870,以报告布局设计不是N-可染色。报告布局设计不是N-可染色之后,该方法进行操作875,其中,电路设计者或布局工程师相应地修改布局设计802。在一些实施例中,省略操作875并且将布局设计802标记为不可N-可染色。
而且,返回到操作835,如果分析的候选单元不是N-可染色,该方法继续至操作880。在操作880中,如果该方法被设置为无论何时在操作830中出现冲突都要停止所有分析,则该方法继续至操作870,以报告布局设计不是N-可染色。但是,如果在操作880没有将该方法设置为停止所有分析,则该方法继续至操作885。
在操作885中,如果该方法被设置为继续分析其他标识的候选单元,则该方法进行操作845。如果将该方法设置为跳过分析其他标识的候选单元,则该方法进行操作850。
图9是根据一个或多个实施例的集成电路设计***900的功能框图。集成电路设计***900包括第一计算机***910、第二计算机***920、联网的存储设备930以及连接第一计算机***910、第二计算机***920和联网的存储设备930的网络940。在一些实施例中,省略了第二计算机***920、联网的存储设备930和网络940中的一个或多个。
第一计算机***910包括与非瞬态计算机可读存储介质914通讯连接的硬件处理单元912,非瞬态计算机可读存储介质914被编有(即,存储)指令集914a、布局设计914b(例如,图8中的元件802)或用于存储冲突图或邻接敏感冲突图的任何中间数据914c。处理单元912与计算机可读存储介质914电连接和通信连接。处理单元912被配置为执行存储在非瞬态计算机可读存储介质914中的指令集914a,从而使计算机910可用作电路设计工具以实施如结合图8所述的N-可染色分析。
在一些实施例中,指令集914a、布局设计914b或中间数据914c存储在非瞬态存储介质而不是存储介质914中。在一些实施例中,指令集914a、布局设计914b和中间数据914c中的一些或所有存储在联网的存储设备930或第二计算机***920中的非瞬态存储介质中。在这种情况下,通过网络940,处理单元912可访问指令集914a、布局设计914b和中间数据914c中存储在计算机910外部的一些或所有。
在一些实施例中,处理单元912是中央处理单元(CPU)、多处理器、分布式处理***、专用集成电路(ASIC)和/或适合的处理单元。
在一些实施例中,计算机可读存储介质914是电子的、磁性的、光学的、电磁的、红外线的和/或半导体***(或装置或设备)。例如,计算机可读存储介质914包括半导体或固体存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬盘和/或光盘。在一些使用光盘的实施例中,计算机可读存储介质914包括只读光盘存储器(CD-ROM)、可读写式光盘(CD-R/W)和/或数字化视频光盘(DVD)。
在至少一些实施例中,计算机***910包括输入/输出接口916和显示单元917。输入/输出接口916连接至处理单元912并且允许电路设计者操作第一计算机***910。在至少一个实施例中,显示单元917以实时方式显示执行指令集914a的状态以及优选提供图形用户界面(GUI)。在至少一些实施例中,输入/输入接口916和显示单元917允许操作者以交互的方式操作计算机***910。
在至少一些实施例中,计算机***900还包括连接至处理单元912的网络接口918。网络接口918允许计算机***910与网络940通信,网络940与一个或多个其他计算机***连接。网络接口包括无线网络接口(诸如,BLUETOOTH、WIFI、WIMAX、GPRS或WCDMA)或有线网络接口(诸如,ETHERNET、USB或IEEE-1394)。
根据一个实施例,一种确定用于制造集成电路的部件层的布局设计是否为N-可染色的方法包括:从布局设计的布局单元中标识出一组候选单元。候选单元组中的每个候选单元都是基础布局单元组中的一个或复合布局单元组中的一个,并且复合布局单元组中的复合布局单元的布局组成单元已被确定为N-可染色。确定候选单元组中的第一候选单元是否为N-可染色。当第一候选单元为N-可染色并且第一候选单元不是顶层布局单元时,产生第一候选单元的邻接敏感冲突图。
根据另一个实施例,一种集成电路设计***包括存储有指令集的非瞬态存储介质以及与非瞬态存储介质通信连接的硬件处理单元。硬件处理单元被配置为执行指令集以从用于制造集成电路的部件层的布局设计的布局单元中标识出候选单元组;以确定候选单元组中的第一候选单元是否为N-可染色;以及当第一候选单元为N-可染色并且不是顶层布局单元时,生成第一候选单元的邻接敏感冲突图,其中,顶层布局单元本身是布局设计。候选单元组中的每个候选单元都是基础布局单元组中的一个或者复合布局单元组中的一个,并且复合布局单元组中的该复合布局单元的布局组成单元已被确定为N-可染色。
根据另一个实施例,提供了一种存储指令集的非瞬态存储介质。指令集被配置为使硬件处理单元执行一种方法,该方法包括从用于制造集成电路的部件层的布局设计的布局单元中标识出候选单元组;确定候选单元组中的第一候选单元是否为N-可染色;以及当第一候选单元为N-可染色并且不是顶层布局单元时,生成第一候选单元的邻接敏感冲突图,其中,顶层布局单元本身是布局设计。候选单元组中的每个候选单元都是基础布局单元组中的一个或者复合布局单元组中的一个,并且复合布局单元组中的该复合布局单元的布局组成单元已被确定为N-可染色。
上面描述了若干实施例的特征,从而使本领域普通技术人员可以更好地理解本发明的各个方面。本领域普通技术人员应该理解,他们可以很容易地使用本发明作为基础来设计或修改其他用于达到与本文所介绍的实施例相同的目的和/或实现相同优点的工艺和结构。本领域普通技术人员也应该意识到,这种等效构造并不背离本发明的精神和范围,并且在不背离本发明的精神和范围的情况下,他们可以对本发明作出多种变化、替换和修改。

Claims (10)

1.一种确定用于制造集成电路的部件层的布局设计是否为N-可染色的方法,N是不小于2的正整数,所述布局设计包括以分层方式布置的布局单元,所述布局单元包括基础布局单元组和复合布局单元组,所述复合布局单元组包括顶层布局单元,所述顶层布局单元代表所述布局设计,并且所述方法包括:
从所述布局单元中标识出候选单元组,所述候选单元组中的每个候选单元都是所述基础布局单元组中的一个基础布局单元或者所述复合布局单元组中的一个复合布局单元,并且所述复合布局单元组中的所述一个复合布局单元的布局组成单元已被确定为N-可染色;
确定所述候选单元组中的第一候选单元是否为N-可染色;以及
当所述第一候选单元为N-可染色并且不是所述顶层布局单元时,通过硬件处理单元,生成所述第一候选单元的邻接敏感冲突图。
2.根据权利要求1所述的方法,其中,以迭代方式重复进行所述标识操作、所述确定操作以及所述生成操作。
3.根据权利要求1所述的方法,还包括:
当所述顶层单元是N-可染色时,报告所述布局设计是N-可染色;以及
当所述布局单元中有任何一个不是N-可染色时,报告所述布局设计不是N-可染色。
4.根据权利要求1所述的方法,还包括:确定所述候选单元组中的第二候选单元是否为N-可染色,其中,以并行处理方式处理确定所述第一候选单元是否为N-可染色和确定所述第二候选单元是否为N-可染色。
5.根据权利要求1所述的方法,其中,生成所述第一候选单元的邻接敏感冲突图,包括:
在所述第一候选单元内限定邻接敏感区;
生成与落在所述邻接敏感区中的布局图案组相对应的顶点组;
当能够给所述顶点组中的两个顶点分配相同颜色时,通过相同颜色链路来连接这两个顶点;以及
当能够给所述顶点组中的两个顶点分配不同颜色时,通过不同颜色链路来连接这两个顶点。
6.根据权利要求5所述的方法,其中,生成所述第一候选单元的邻接敏感冲突图还包括:
当所述邻接敏感冲突图在包括另一个顶点之前具有两个或更多不同的配置时,将所述另一个顶点包括在所述邻接敏感冲突图中,所述另一个顶点与所述第一候选单元中未落在所述邻接敏感区内的布局图案相对应。
7.根据权利要求5所述的方法,其中,所述第一候选单元内的邻接敏感区被限定在所述第一候选单元的单元边界和所述第一候选单元的封锁边界之间,通过将所述第一候选单元的单元边界向内移动一距离来限定所述封锁边界,所述距离等于或大于预设阈值距离和预设的单元重叠允许公差之和。
8.根据权利要求1所述的方法,其中,所述第一候选单元包括所述布局组成单元的组合,并且所述方法还包括:
根据所述第一候选单元的布局组成单元的邻接敏感冲突图,生成所述第一候选单元的冲突图。
9.一种集成电路设计***,包括:
非瞬态存储介质,其中编码有指令集;
硬件处理单元,与所述非瞬态存储介质通信连接,并且被配置为执行所述指令集,从而:
从用于制造集成电路的部件层的布局设计的布局单元中标识出候选单元组,所述候选单元组中的每个候选单元都是基础布局单元组中的一个基础布局单元或者复合布局单元组中的一个复合布局单元,并且所述复合布局单元组中的所述一个复合布局单元的布局组成单元已被确定为N-可染色;
确定所述候选单元组的第一候选单元是否为N-可染色;以及
当所述第一候选单元是N-可染色并且所述第一候选单元不是顶层布局单元时,生成所述第一候选单元的邻接敏感冲突图,所述顶层布局单元是所述布局设计。
10.一种编码有指令集的非瞬态存储介质,所述指令集被配置为使硬件处理单元执行包括以下步骤的方法:
从用于制造集成电路的部件层的布局设计的布局单元中标识出候选单元组,所述候选单元组中的每个候选单元都是基础布局单元组中的一个基础布局单元或者复合布局单元组中的一个复合布局单元,并且所述复合布局单元组中的所述一个复合布局单元的布局组成单元已被确定为N-可染色;
确定所述候选单元组的第一候选单元是否为N-可染色;以及
当所述第一候选单元是N-可染色并且不是顶层布局单元时,生成所述第一候选单元的邻接敏感冲突图,所述顶层布局单元是所述布局设计。
CN201310704190.0A 2013-10-03 2013-12-19 确定布局设计是否是n‑可染色的方法 Active CN104517000B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/045,532 2013-10-03
US14/045,532 US10013520B2 (en) 2013-10-03 2013-10-03 Method of determining if layout design is N-colorable

Publications (2)

Publication Number Publication Date
CN104517000A true CN104517000A (zh) 2015-04-15
CN104517000B CN104517000B (zh) 2018-02-13

Family

ID=52778014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310704190.0A Active CN104517000B (zh) 2013-10-03 2013-12-19 确定布局设计是否是n‑可染色的方法

Country Status (2)

Country Link
US (1) US10013520B2 (zh)
CN (1) CN104517000B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223924B2 (en) * 2013-10-02 2015-12-29 Taiwan Semiconductor Manufacturing Co., Ltd. Method and system for multi-patterning layout decomposition
CN106156381B (zh) * 2015-04-02 2019-07-05 台湾积体电路制造股份有限公司 半导体器件阵列的参数确定方法和装置
KR102230503B1 (ko) * 2015-04-14 2021-03-22 삼성전자주식회사 레이아웃 디자인 시스템, 이를 이용한 마스크 패턴 제조 시스템 및 방법
US10670973B2 (en) 2015-05-20 2020-06-02 Asml Netherlands B.V. Coloring aware optimization
US9842185B2 (en) 2015-08-21 2017-12-12 Qualcomm Incorporated Systems and methods for group constraints in an integrated circuit layout
US9959380B2 (en) * 2016-03-28 2018-05-01 Motivo, Inc. Integrated circuit design systems and methods
US10936778B2 (en) 2016-03-28 2021-03-02 Motivo, Inc. And optimization of physical cell placement
US10521545B2 (en) * 2016-04-15 2019-12-31 Taiwan Semiconductor Manufacturing Co., Ltd. Placement constraint method for multiple patterning of cell-based chip design
US10318698B2 (en) * 2016-12-14 2019-06-11 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for assigning color pattern
US10311201B2 (en) * 2017-08-07 2019-06-04 Globalfoundries Inc. Alignment key design rule check for correct placement of abutting cells in an integrated circuit
US10509881B2 (en) * 2017-09-28 2019-12-17 Taiwan Semiconductor Manufacturing Co., Ltd. Method for coloring circuit layout and system for performing the same
US11079685B2 (en) 2017-11-14 2021-08-03 Taiwan Semiconductor Manufacturing Co., Ltd. Method of manufacturing photo masks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059447A1 (en) * 2004-09-10 2006-03-16 Fujitsu Limited Integrated circuit design support apparatus, integrated circuit design support method, and integrated circuit design support program
US20090125866A1 (en) * 2007-11-13 2009-05-14 Albert Ren-Rui Wang Method for performing pattern decomposition for a full chip design
CN102005369A (zh) * 2010-09-10 2011-04-06 上海集成电路研发中心有限公司 一种用于外延工艺的光刻对准方法
US20130145340A1 (en) * 2011-06-28 2013-06-06 Qiao Li Determination Of Uniform Colorability Of Layout Data For A Double Patterning Manufacturing Process

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240344B2 (en) * 2003-08-13 2007-07-03 Texas Instruments Incorporated Register allocation and code spilling using interference graph coloring
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
US8647893B1 (en) * 2012-08-28 2014-02-11 International Business Machines Corporation Method for post decomposition density balancing in integrated circuit layouts, related system and program product
US8910095B2 (en) * 2013-02-19 2014-12-09 Mentor Graphics Corporation Layout decomposition for triple patterning lithography
US10354886B2 (en) * 2013-02-22 2019-07-16 Synopsys, Inc. Hybrid evolutionary algorithm for triple-patterning
DE112014003741T5 (de) * 2013-08-15 2016-05-25 Synopsys, Inc. Detektieren und Anzeigen einer Behebungsführung für Multi-Strukturierung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059447A1 (en) * 2004-09-10 2006-03-16 Fujitsu Limited Integrated circuit design support apparatus, integrated circuit design support method, and integrated circuit design support program
US20090125866A1 (en) * 2007-11-13 2009-05-14 Albert Ren-Rui Wang Method for performing pattern decomposition for a full chip design
CN102005369A (zh) * 2010-09-10 2011-04-06 上海集成电路研发中心有限公司 一种用于外延工艺的光刻对准方法
US20130145340A1 (en) * 2011-06-28 2013-06-06 Qiao Li Determination Of Uniform Colorability Of Layout Data For A Double Patterning Manufacturing Process

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAITONG TIAN ETC.: "A Polynomial Time Triple Patterning Algorithm for Cell Based Row-Structure Layout", 《IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN(ICCAD)2012》 *

Also Published As

Publication number Publication date
CN104517000B (zh) 2018-02-13
US20150100935A1 (en) 2015-04-09
US10013520B2 (en) 2018-07-03

Similar Documents

Publication Publication Date Title
CN104517000A (zh) 确定布局设计是否是n-可染色的方法
CN103514314B (zh) 用于多重图案化集成电路的布局方法和***
CN107145618B (zh) 用于多重图案化技术的设计规则检查的方法和***
US8601409B1 (en) Compression method and system for use with multi-patterning
US8943445B2 (en) Method of merging color sets of layout
US8468470B2 (en) Multi-patterning method
US9141752B2 (en) EDA tool and method for conflict detection during multi-patterning lithography
CN117078831A (zh) 生成分层加速结构并进行相交测试的方法、光线跟踪***
US9390223B2 (en) Method of determining whether a layout is colorable
US9251299B1 (en) Methods, systems, and articles of manufacture for associating track patterns with rules for electronic designs
KR102338365B1 (ko) 레이아웃 분리 방법 및 레이아웃 분리 시스템
US9165104B1 (en) Method and apparatus for identifying double patterning color-seeding violations
US8949747B1 (en) Double patterning coloring with color balancing
US9514266B2 (en) Method and system of determining colorability of a layout
Tian et al. Triple patterning aware detailed placement with constrained pattern assignment
US8751975B2 (en) RC corner solutions for double patterning technology
US20180068046A1 (en) Multiple patterning method, system for implementing the method and layout formed
Gao et al. Self-aligned double patterning friendly configuration for standard cell library considering placement impact
CN110489511A (zh) 等高线接边高程错误修正方法、***及电子设备和介质
Guo et al. On coloring rectangular and diagonal grid graphs for multiple patterning lithography
US8959460B1 (en) Layout decomposition method
Wei et al. LESAR: A dynamic line-end spacing aware detailed router
Guo et al. On Coloring Rectangular and Diagonal Grid Graphs for Multipatterning and DSA Lithography

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant