调整单元布局的方法与流程

专利2022-05-09  77


本揭示是有关于一种方法,特别是关于一种用于调整单元布局的方法。



背景技术:

自动放置布线(automatedplaceandroute;apr)工具经常用于在集成电路(integratedcircuit;ic)布局中执行布线设计。此些工具最佳化功率、效能及面积,同时确保遵循技术及设计约束。所涉及的技术约束取决于制造过程的限制及硬度约束。约束违规(如由非法布线图所致)导致设计规则检查违规(designrulecheckviolations;drcviolations)。在用于半导体工业的标准放置布线(placeandroute;pnr)流程中,在重复几次布线后,设计中的drc得以分析并识别根本原因。



技术实现要素:

本揭露的一实施方式为一种调整单元布局的方法,包括:获得一单元群组中每一单元的一特征向量,其中一单元的该特征向量包括一特征集中每一特征的一分数值,其中是为表征该单元群组而选择该特征集;基于该些单元的特征向量的端点之间的距离,将该群组中的该些单元群集进一选定数目的群集中;基于与该特征集相关联的一优先级特征列表,在该选定数目的群集中生成一排序临界单元列表;以及基于该排序临界单元,输出该排序临界单元列表,以供调整单元布局。

附图说明

当结合附图阅读时,根据以下详细描述可更好地理解本揭示案的态样。应注意,根据工业标准实践,各种特征未按比例绘制。事实上,为论述清楚,各特征的尺寸可任意地增加或缩小。

图1为根据一些实施例的在布局设计中侦测临界单元的方法的流程图;

图2a为根据一些实施例的单元布置的示意图;

图2b为根据一些实施例的单元布置的示意图;

图2c为根据一些实施例的单元布置的示意图;

图2d为根据一些实施例的布局部分的示意图;

图2e为根据一些实施例的在图2d的布局部分中的经选择单元的计数的表格;

图3为根据一些实施例的用于表征单元群组的特征集的表格;

图4为根据一些实施例的确定用于分割单元的群集的经选定数目的方法的流程图;

图5a至图5b为根据一些实施例生成排序群集列表的方法的流程图;

图5c为根据一些实施例的群集排序的表格;

图6a为根据一些实施例的在给定群集中生成有序单元列表的方法的流程图;

图6b为根据一些实施例的列出单元分数值的表格;

图7为根据一些实施例生成排序临界单元列表的方法的流程图;

图8为根据一些实施例的电子设计自动化(electronicdesignautomation;eda)系统的方块图;

图9为根据一些实施例的集成电路(integratedcircuit;ic)制造系统及与其关联的ic制造流程的方块图。

【符号说明】

100:方法

110:过程

120:过程

130:过程

140:过程

150:过程

160:过程

170:过程

210a:区域

210b:区域

210c:区域

210d:区域

210e:区域

210f:区域

210g:区域

210h:区域

210i:区域

400:方法

402:过程

404:过程

406:过程

408:过程

409:过程

410:过程

412:过程

500:方法

510:过程

520:过程

530:过程

540:过程

550:过程

560:过程

570:过程

572:过程

574:过程

575:过程

576:过程

577:过程

578:过程

579:过程

580:过程

585:过程

590:过程

600:方法

620:过程

630:过程

640:过程

650:过程

660:过程

670:过程

680:过程

690:过程

700:方法

710:过程

720:过程

730:过程

740:过程

760:过程

770:过程

780:过程

790:过程

800:电子设计自动化(eda)系统

802:硬件处理器

804:非暂态计算机可读储存媒体

806:计算机程序代码

807:标准单元库

808:总线

810:i/o接口

812:网络接口

814:网络

842:使用者界面

900:集成电路(integratedcircuit;c)制造系统

920:设计室

922:ic设计布局图

930:遮罩室

932:数据准备

944:遮罩制造

945:遮罩

950:icfab

952:制造工具

953:半导体晶圆

960:ic元件

具体实施方式

以下揭示内容提供许多不同实施例或实例,以便实现所提供标的的不同特征。下文描述部件、材料、值、步骤、操作、材料、布置、或类似者的特定实例,以简化本揭示案。当然,这些实例仅为实例且不意欲为限制性。可以预期其他部件、值、操作、材料、布置、或类似者。举例而言,于随后描述中在第二特征上方或在第二特征上第一特征的形成可包括第一及第二特征形成为直接接触的实施例,以及亦可包括额外特征可形成在第一及第二特征之间,使得第一及第二特征可不直接接触的实施例。另外,本揭示案在各实例中可重复元件符号及/或字母。此重复为出于简单清楚的目的,并且本身不指示所论述各实施例及/或配置之间的关系。

另外,空间相对术语,诸如“在……之下”、“在……下方”、“下部”、“在……上方”、“上部”及类似术语,在此为便于描述可用于描述诸图中所图示一个元件或特征与另一(些)元件或(多个)特征的关系。除图形中描绘的取向外,空间相对术语意欲包含元件在使用或操作中的不同定向。设备可为不同取向(旋转90度或在其他的取向)及可因此同样地解释在本文使用的空间相对的描述词。

图1为根据一些实施例的在集成电路的布局图中侦测临界单元的方法的流程图。在过程110处,选择单元群组。在一些实施例中,从自动放置布线(apr)数据库选择单元群组,其中针对apr数据库中的单元的至少一部分识别设计规则检查(drc)违规。在经选定apr数据库中,在侦测临界单元的过程中使用的drc违规的数目足够大,使得其足以侦测全部临界单元或侦测至少大部分的临界单元。同时,drc违规的数目不太大,以致不能复杂化用于侦测临界单元的分析过程。在一些实施例中,drc违规的数目在100至1500的范围中。

在选择单元群组之后,方法进行至过程120,其中获得相关特征及相关单元数据。过程120包括查找用于表征单元群组的特征集。在一些实施例中,特征集包括一或更多个drc特征,诸如顶部drc标记的特征(位于drc标记的位置处的单元实例的计数),邻近于drc标记的特征(在drc标记的位置处邻近于另一种单元放置的单元实例的计数),以及最邻近drc标记的特征(在drc标记处在另一种单元的最近水平/垂直边缘的单元实例的计数)。drc标记指示布局中drc违规的位置。

图2a为根据一些实施例的与顶部drc标记的特征相关的单元布置的示意图。顶部drc标记的特征为感兴趣单元直接落在drc标记顶部的实例的次数。换言之,如由drc标记识别的drc违规在感兴趣单元的边界内。在一些实施例中,用于表征感兴趣单元的顶部drc标记的特征是与感兴趣单元的对应计数变数相关联。在图2a中,作为分配给顶部drc标记的特征的分数值,对于表示为“x”的drc标记,增加单元a的对应计数变数,因为单元a直接位于标记“x”的顶部。当由于drc标记“x”在单元a的边界内,分配给单元a的顶部drc标记的特征的分数值增加一个计数时,分配给单元b、单元c、单元d、及单元e中每一者的顶部drc标记的特征的分数值不由单元a的边界内的drc标记“x”的存在而改变。

图2b为根据一些实施例的与邻近于drc标记的特征相关的单元布置的示意图。邻近于drc标记的特征为感兴趣单元邻近于其边界包括drc标记的另一单元的实例的次数。在一些实施例中,用于表征给定单元的邻近于drc标记的特征是与对应分数值相关联,此对应分数值为给定单元的对应计数变数。在图2b中,作为分配给邻近于drc标记的特征的分数值,由于表示为“x”的drc标记而增加单元b、单元c、单元d、及单元e中每一者的对应计数变数,这是因为单元b、单元c、单元d、及单元e中每一者为单元a的邻近者,位于drc标记“x”顶部。当由于相邻单元a中的drc标记“x”,将分配给单元b、单元c、单元d、及单元e中每一者的邻近于drc标记的特征的分数值增加一个计数时,分配给单元a的邻近于drc标记的特征的分数值不由单元a中drc标记“x”的存在而改变。

图2c为根据一些实施例的与最邻近drc标记的特征相关的单元布置的示意图。最邻近drc标记的特征为感兴趣单元邻近于另一单元的实例的次数,此另一单元的边界在最靠近drc标记的水平或垂直边缘处包括drc标记。在一些实施例中,用于表征给定单元的最靠近drc标记的特征是与给定单元的对应计数变数相关联。在图2c中,作为分配给最靠近drc标记的特征的分数值,由于表示为“x”的drc标记而增加单元d及单元e中每一者的对应计数变数,这是因为单元d及单元e中每一者为单元的邻近者,其位于drc标记顶部,在最靠近drc标记“x”的水平或垂直边缘处。当因为临近单元a中drc标记“x”与单元d或单元e中的一者靠近,将分配给单元d及单元e中每一者的最靠近drc标记的特征的分数值增加一个计数时,分配给单元a、单元b、及单元c中每一者的最靠近drc标记特征的分数值不由单元a中drc标记“x”的存在而改变。

在图1中过程的一些实施例中,用于表征单元群组的特征集包括一或更多个引脚密度特征。引脚密度特征提供信息,其关于drc违规是否与设计的高引脚密度区域中单元的放置相关。在一些实施例中,用于表征给定单元的引脚密度特征与设计中各种引脚密度的区域中给定单元的分布相关。在一些实施例中,为了生成给定单元的引脚密度分布,选择具有各种引脚密度的设计的区域,以供计算每个区域中给定单元的数目。另外,选择每个表示引脚密度的范围的多个箱仓(bin),以汇总各个区域中给定单元的计数。在一些实施例中,计算区域中的引脚密度作为区域中引脚的数目与区域中可用核心位置的数目之间的比率,同时计算区域中可用核心位置的数目作为区域的查询面积与由一个核心位置占据的面积之间的比率。区域中可用核心位置的数目提供了可能在区域中实现的引脚的最大数目,并且因此100%引脚密度对应于全部可用的核心位置由引脚占据的区域。

例如,在图2d中,选择九个区域(例如,210a、210b、210c、210d、210e、210f、210g、210h、210i)的群组,用于计算每个区域中单元a的数目。区域210a、210c、210e、及210h的每一者中存在一个单元a。区域210g中存在两个单元a。区域210b、210d、210f、及210i的每一者都不存在单元a。区域210a、210b、及210c具有60%、80%、及60%的对应引脚密度。区域210d、210e、及210f具有60%、20%、及40%的对应引脚密度。区域210g、210h、及210i具有90%、70%、及70%的对应引脚密度。

图2d的各种区域中的单元a的计数被汇总在图2e中。在图2e的表格中,第一列列出每个表示引脚密度范围的九个箱仓,而表格中的第二列列出九个箱仓的每一者中单元a的对应计数。存在一个单元a放置区域(例如,210e),其具有范围大于0%但小于或等于20%的引脚密度。存在两个单元a放置区域(例如,210a及210c),其具有范围大于50%但小于或等于60的引脚密度。存在一个单元a放置区域(例如,210h),其具有范围大于60%但小于或等于70%的引脚密度。存在二个单元a放置区域(例如,210g),其具有范围大于90%但小于或等于100%的引脚密度。在图2e的表格中,九个箱仓(列于第一列中)组成用于表征任何给定单元的九个引脚密度特征,以及九个箱仓(列于第二列中)的每一者中给定单元的计数为九个引脚密度特征中对应一者的分数值。

在图2d中,选择九个区域群组,用于计算每个区域中给定单元的数目。在其他实施例中,选择多于九个或少于九个区域的群组,用于计算每个区域中给定单元的数目。在图2d中,九个区域的每一区域位于nxn窗中,其中n(诸如10)为根据标准单元高度的数目量测的尺寸。在一些实施例中,多个区域的群组的每个区域位于nxm窗中,并且n不同于m,其中n及m每一者为根据标准单元高度的数目量测的尺寸。另外,图2e中每个箱仓的下界及上界的选择被提供作为实例。箱仓的下界及上界(除了图2e中所示之外)落在本揭示案的预期范畴内。

在图1中方法的一些实施例中,用于表征单元群组的特征集包括一或更多个放置密度特征。放置密度特征提供信息,其关于drc违规是否与设计的高放置密度区域中单元的放置相关。在一些实施例中,用于表征给定单元的放置密度特征与各种放置密度的区域中给定单元的分布相关。在一些实施例中,为了生成给定单元的放置密度分布的表示,选择具有各种放置密度(诸如20%、40%、…、或90%)的区域群组,用于计算每个区域中给定单元的数目。另外,选择每个表示放置密度的范围的多个箱仓,以汇总各种区域中给定单元的计数。

在一些实施例中,生成具有两列的表格,用于表示给定单元的放置密度分布。在表格中,多个箱仓(列于第一列中)组成用于表征任何给定单元的多个引脚密度特征,以及多个箱仓(列于第二列中)的每一者中给定单元的计数为多个引脚密度特征中对应一者的分数值。在一些实施例中,生成用于表示放置密度分布的表格的过程与生成用于表示引脚密度分布的表格的过程类似(诸如计算图2d中示出的九个区域的每一者中单元a的数目及汇总类似于图2e中表格的表格中单元a的计数)。图2d中九个箱仓的选择被提供作为实例。在其他实施例中,选择多于九个或少于九个箱仓,用于表征引脚密度的单元统计数目。图2e中每个箱仓的下界及上界的选择亦被提供作为实例。箱仓的下界及上界(除了图2e中所示之外)落在本揭示案的预期范畴内。

在图1方法的一些实施例中,用于表征单元群组的特征集包括两个用法相关特征,其为按面积划分的单元用法及按计数划分的单元用法。两种用法相关特征被包括在用于表征单元群组的特征集中,因为给定单元的使用量影响给定单元在总体设计中的临界程度。按面积划分的单元用法(当以百分比表示时)以下式给出:

按计数划分的单元用法(当以百分比表示时)以下式给出:

在图1方法的一些实施例中,用于表征单元群组的特征集包括两个单元固有特征,其为个别单元引脚计数及个别单元引脚密度。在一些实施例中,各个单元引脚计数为单元中所有信号引脚的总数,而各个单元引脚密度为以每平方微米的单位量测的引脚计数与各个单元面积的比率。

返回至图1的方法,过程120包括获得相应特征及相应单元数据。在一些实施例中,单元数据由尺寸nxm的数据矩阵表示,其中n为从apr数据库获得的设计中的单元数,及m为每个单元提取的特征数。在一个特定实例中,当用于表征设计中的单元的特征集由二十五个元素的列表表示(例如,图3的表格中所示的特征)时,以及当设计中单元数为600时,单元数据由尺寸600x25的数据矩阵表示。

在一些实施例中,在获得相关特征及相关单元数据的过程120期间,去除与不在目标设计中使用的任何单元相关的数据。在一些实施例中,在过程120期间,从用于表征单元的特征集中去除不传送相关数据的特征。例如,特征(对于每个单元类型具有相同值)对区别不同单元的特征没有用,由此从特征集中去除此特征以供在图1中的另外过程(例如,140、150、及160)中使用。在一些实施例中,在过程120期间,从特征集中去除一些高度相关特征,以供在进一步过程中使用,因为高度相关特征传送冗余信息。在一些实施例中,去除具有与相同特征种类的另一特征超过95%相关性的任何特征。

在图1中,在获得相关特征及相关单元数据(在过程120处)之后,生成优先级特征列表(在过程300处)。在一些实施例中,从用于表征单元群组的特征集,生成优先级特征列表。图3为根据一些实施例的用于表征单元群组的特征集的表格。在图3中,用于表征单元群组的特征集包括组成五个种类特征的二十五个特征。五个种类的特征以优先级顺序列出并以下列序列出现:drc特征、引脚密度特征、放置密度特征、用法相关特征、及单元固有特征。用于表征单元群组的特征集是由二十五个特征的列表识别。在一些实施例中,使用更多或更少数目的特征及/或元素以表征单元。二十五个元素的列表中的每个元素f(i)对应于二十五个特征中的一者(其中指数i=1、2、3,…、或25)。

在图3的表格中,存在三个drc特征:顶部drc标记的特征、邻近于drc标记的特征、及最靠近drc标记的特征,其对应于特征f(1)、f(2)、及f(3)。在表格中,存在对应于特征f(4)-f(12)的九个引脚密度特征及对应于特征f(13)-f(21)的九个放置密度特征。在表格中,存在两种用法相关特征:按面积划分的单元用法及按计数划分的单元用法,其对应于特征f(22)及f(23)。在表格中,存在两种单元固有特征:个别单元引脚密度及个别单元引脚计数,其对应于特征f(24)及f(25)。

在图3的表格中,五个种类特征以优先级顺序列出,并且因此至少部分地优先列出表格中的二十五个特征列表。特别地,相比于引脚密度特征的种类内的特征f(4)-f(12)的任一者,drc特征的种类内的特征f(1)-f(3)的每一者具有更高优先级。相比于放置密度特征的种类内的特征f(13)-f(21)的任一者,特征f(4)-f(12)的每一者具有更高优先级。相比于用法相关特征的种类内的特征f(22)-f(23)的任一者,特征f(13)-f(21)的每一者具有更高优先级。相比于单元固有特征的种类内的特征f(24)-f(25)的任一者,特征f(22)-f(23)的每一者具有更高优先级。

此外,在图3的表格中,五个种类特征的每一者内的特征亦以优先级顺序列出,并且因此表格中二十五个特征的列表组成优先级特征的列表。特征f(1)、f(2)及f(3)在drc特征的种类中以优先级顺序降序列出。特征f(4)、特征f(5)、特征f(6)、特征f(7)、特征f(8)、特征f(9)、特征f(10)、特征f(11)及特征f(12)在引脚密度特征的种类内以优先级降序列出。特征f(13)、特征f(14)、特征f(15)、特征f(16)、特征f(17)、特征f(18)、特征f(19)、特征f(20)及特征f(21)在放置密度特征的种类内以优先级降序列出。特征f(22)及特征f(23)在用法相关特征的种类内以优先级降序列出。特征f(23)及特征f(24)在单元固有特征的种类内以优先级降序列出。

在一些实施例中,基于领域特定知识,从用于表征单元群组的特征集,生成优先级特征列表。例如,为了识别临界单元以避免drc违规,预期地是,根据一些实施例,drc相关特征应具有最高优先级中的一者。在另一实例中,因为引脚可用性差,最终导致drc违规,以及因为有问题的单元布局与引脚可用性差相关,所以可以预期,根据一些实施例,最大密度箱仓(例如,90-100%箱仓)应在引脚密度特征的种类中具有最高优先级,而最小密度箱仓(例如,0-20%箱仓)在引脚密度特征的种类内应具有最低优先级。在此实例中,引脚密度特征的种类内的优先级分配是可理解的,因为更高引脚密度区域中的单元更倾向于布线问题。

在图1中,在生成优先级特征的列表(在过程300处)之后,生成单元的特征向量(在过程140处)。在一些实施例中,基于用于表征单元群组的特征集生成单元的特征向量,并且特征集中特征的数目确定每个特征向量的尺寸。在一些实施例中,由优先级特征的列表表示特征集,并且优先级特征列表中的特征的数目(例如n)确定每个特征向量的尺寸。在一些实施例中,每个特征向量表示一个单元并对应于n维空间中的端点。在n维空间中,给定单元的特征向量的端点坐标是由分配给给定单元的特征的分数值来确定。给定单元的每个特征为经分配的一个分数值。例如,在一些实施例中,给定单元的顶部drc标记的特征经分配具有分数值,此分数值是布局设计中给定单元直接落在drc标记顶部的次数。在一些实施例中,在引脚密度特征的种类中,箱仓中给定单元的计数被分配给给定单元的对应引脚密度特征,此计数表示引脚密度的范围(例如,在80%至90%的范围中)。

在一些实施例中,在其他过程(例如,图1的150或160)中进一步使用单元的特征向量之前,利用对应比例常数缩放分配给单元的每个特征的分数值。在一些实施例中,为了确定缩放给定特征的比例常数,计算群组中所有单元中给定特征的分数值分布的标准偏差,以及选择比例常数使得缩放之后给定特征的分数值分布具有单位标准偏差。在一些实施例中,缩放优先级特征列表中的每个特征,使得每个特征具有单位标准偏差的分数值分布。

在图1中,在生成单元的特征向量(在过程140处)之后,将单元分割成群集(在过程150处),并且生成排序临界单元的输出列表(在过程160处)用于提供给使用者。随后,在过程170处,基于排序临界单元,由使用者调整单元布局,以减少由自动放置布线(apr)工具生成的drc违规的数目。在一些实施例中,由单元名称或单元id识别排序临界单元的输出列表中的经排序临界单元,并且每个经排序临界单元与排序数相关联。在一些实施例中,排序临界单元被逐页显示在计算机屏幕上或列印在印表机中。在一些实施例中,将排序临界单元保存在apr数据库中。在一些实施例中,排序临界单元的排序数用以变更现有apr数据库。例如,在一些实施例中,若现有apr数据库中的给定单元亦为排序临界单元的输出列表中的经排序临界单元,则通过将给定单元与对应排序数相关联来变更现有apr数据库。在一些实施例中,当按排序数查询时,将排序临界单元提供给使用者。

在一些实施例中,假设每个群集(在过程150处生成)表示共享某些公共特征的单元类别。在一些实施例中,每个特征向量表示一个单元并对应于n维空间中的点。单元群组由n维空间中的点群组表示。在一些实施例中,使用k平均群集演算法将单元分割成群集(在过程150处)。k平均群集演算法为一种向量量化方法,最初来源于信号处理,在数据挖掘中用于群集分析。对于数据挖掘应用,k平均群集演算法将n个观测值分割成k个群集,其中每个观测值属于具有最近均值的群集,作为群集的原型。当基于与n维空间中的点之间的距离相关的距离函数,利用k平均群集演算法将点群组分成预定数目的群集时,将单元群组相应地分成相同数目的群集。在一些实施例中,n维空间中两点之间的距离为欧几里德距离。

在一些实施例中,基于特定领域知识,使用者提供在k平均群集演算法中使用的群集数。在一些实施例中,基于其他方法,确定用于分割单元的群集数。图4为根据一些实施例的将单元分割成选定数目的群集及确定过程期间的选定数目的方法的流程图。在图4中,在方法开始处,应生成群集的数目为未知的。为了选择应生成的群集的数目,将用于指定群集数目的数目k初始化至初始值(在过程402处),及将单元分成总共k个群集(在过程404处)。在一些实施例中,将数目k初始化至一(例如,k=1)。在过程404、过程406、过程408、及过程409迭代期间将数目k增大多倍(在过程409处),直到满足稳定状态。随后,在过程410处,数目k在满足稳定状态时变为用于群集化单元的选定数目,并且将单元分割成选定数目的群集。

在过程404、过程406、过程408、及过程409的每次迭代期间,将单元分成k个群集(在过程404处)。在一些实施例中,基于k平均群集演算法将单元分成k个群集(在过程404处)。在过程404处,每个单元对应于特征向量并由n维空间中的点表示。基于k平均群集演算法,将n维空间中的点集合分成k个群集(在过程404处)。点的每个群集表示对应单元的群集。

在图4中,在将单元分成k个群集(在过程404处)之后,生成k个群集中排序最高临界单元的列表(在过程406处)。在用于生成排序最高临界单元列表的一些实施例中,从单元排序演算法获得排序临界单元的列表。选择列表顶部中的选定数目的临界单元,以形成排序最高临界单元的列表。用于排序k个群集中单元的单元排序演算法的实例为图7中的方法700。在一些实施例中,排序最高临界单元的列表包括五个最高临界单元(即,选定数目为五),五个最高临界单元位于从单元排序演算法获得的排序临界单元的列表中。

在图4中,排序最高临界单元的列表在过程408中使用,以确定是否满足稳定状态。若不满足稳定状态(如在过程408处确定),则将增加数目k的值(在过程409处),以及过程的另一迭代将在过程404处开始(其中当数目k采取在过程409处获得新值时将单元分成k个群集)。在一些实施例中,群集的数目k由变数k的值来表示,若不满足稳定状态(在过程408处),则将变数k的值(在过程409处)增大一(即,将值k 1分配给变数k)。将变数k的值增加大于一的整数亦会在本揭示案的预期范畴内。在过程408处,若满足稳定状态,则方法进行至过程410,及数目k的最新值变为用于群集化单元的选定数目。在一些实施例中,若满足稳定状态,则生成用于提供给使用者的排序临界单元的输出列表(在过程412处)。在一些实施例中,当排序k个群集中的单元时,排序临界单元的输出列表(现在包括选定数目的群集)为先前形成的排序临界单元的列表。

在用于确定是否满足稳定状态(在过程408处)的一些实施例中,在具有数目k的过程迭代期间生成排序临界单元的当前列表,以及在具有数目k-1的过程迭代期间生成排序临界单元的先前列表。从排序临界单元的当前列表中选择经选定数目的(例如,五个)最高临界单元,以形成数目k的排序最高临界单元的第一列表,以及从排序临界单元的先前列表选择选定数目的(例如,五个)最高临界单元,以形成数目k-1的排序最高临界单元的第二列表。在一些实施例中,当数目k的排序最高临界单元的第一列表与数目k-1的排序最高临界单元的第二列表之间的比较指示第一列表与第二列表具有相同临界单元时,满足稳定状态。在一些实施例中,当数目k的排序最高临界单元的第一列表与数目k-1的排序最高临界单元的第二列表之间的比较指示第一列表与第二列表无超过阈值数目的不同的临界单元时,满足稳定状态。例如,在一些实施例中,为了满足稳定状态,允许数目k的第一列表中排序最高临界单元(例如5个)中的仅一者与数目k-1的第二列表中的排序最高临界单元不同。在一些实施例中,为了满足稳定状态,允许数目k的第一列表中排序最高临界单元(例如5个)中的仅二者与数目k-1的第二列表中的排序最高临界单元不同。

在图4中,在过程406处,从基于单元排序演算法获得的排序临界单元列表,生成排序最高临界单元列表。在一些实施例中,图7的方法700用于从单元群组生成排序临界单元列表。方法700包括排序群集的方法500及排序选定群集中单元的方法600。结合图5a至图5c及图6a至图6b更详细地解释了方法500及方法600的示例性实施例。

图5a至图5b为根据一些实施例生成排序群集列表的方法500的流程图。关于图5c中实例解释图5a至图5b的流程图。图5c为根据一些实施例的按照优先级特征列表中前六个特征中每一特征的群集排序的表格。在图5c中,以遵循根据列中对应特征的排序的顺序,在六个列的每一列中列出具有id1、id2、id3、id4、及id5的五个群集。例如,当按照第一优先级特征排序五个群集时,在对应于第一优先级特征的列中以id1、id3、id4、id5、及id2的顺序列出五个群集。当按照第二优先级特征排序五个群集时,在对应于第二优先级特征的列中以id1、id3、id4、id5、及id2的顺序列出五个群集。当按照第三优先级特征排序五个群集时,在对应于第三优先级特征的列中以id1、id2、id3、id4、及id5的顺序列出五个群集。

在方法500中,将排序群集的列表初始化至空白列表(在过程510处),以及装载优先级特征的列表(在过程520处)。在一个实例中,优先级特征的装载列表为如图3的表格所示的优先级特征的列表。在图3中,优先级特征的装载列表中的前三特征为顶部drc标记的特征、邻近于drc标记的特征、及最靠近drc标记的特征。过程530处选择的最高优先级特征为顶部drc标记的特征。

在图5a中,在装载优先级特征的列表(在过程520处)之后,优先级特征列表中最高优先级特征为第一选择(在过程530处)并设置作为用于排序群集的当前处理特征(在过程540处)。分析从群集过程(诸如图1中过程150及图4中方法400)获得的群集,以根据当前处理特征去除可忽略的群集(在过程550处)。当用于当前处理特征的给定群集的分数值低于阈值时,给定群集为可忽略的。在一些实施例中,阈值被选中作为所有获得群集的所有分数值的前百分之40处的分数值。对于此选定特征,忽略所有具有当前处理特征的分数值低于前百分之40的群集。在图5c的实例中,第一优先级特征为经选择作为当前处理特征的最高优先级特征。因为第一优先级特征的群集id5及id2的分数值低于前百分之40,所以忽略群集id5及id2。

在图5a中,在过程550处,在去除可忽略群集之后,从所提供的的群集生成选定群集列表。接下来,在过程560处,根据当前处理特征从选定群集列表生成本地排序群集的列表。接着,在过程570处,将本地排序群集的列表并入排序群集的列表中。以下关于图5b更详细地描述合并过程570。此后,若需要进一步处理优先级特征列表中的一或更多个特征(如在过程580处确定),则选择根据优先级立即遵循当前处理特征的下一个特征(在过程590处),并且将选定特征设置作为当前处理特征(在过程540处)以进行下一次迭代。重复过程540、过程550、过程560、及过程580的迭代,直到无特征需要进一步处理为止。若优先级特征的列表中无特征需要进一步处理(如在过程580处确定),则方法500进行至过程585,并且将最终迭代的末端处的排序群集列表保存作为输出。

在一些实施例中,在根据选定优先级特征生成本地排序群集列表的过程560期间,将所提供的分配给群集的选定优先级特征的分数值彼此比较。在一些实施例中,为了计算给定群集的选定优先级特征的分数值,通过将n维空间中的点的所有特征向量(每个表示单元)添加在一起以获得总和及将总和除以给定群集中的点数,来计算给定群集的指向质量中心的特征向量。从指向给定群集的质量中心的特征向量的坐标分量,确定给定群集的选定优先级特征的分数值。

在图5a中,在过程550及过程560处,去除可忽略群集,并且生成本地排序群集的列表。举例而言,关于图5c解释过程550及过程560。在图5c中,在去除具有id5及id2的群集之后,根据第一优先级特征的本地排序群集的列表包括以群集id1、群集id3、及群集id4的顺序列出的群集。在第二迭代中,在去除具有id5及id2的群集之后,根据第二优先级特征的本地排序群集的列表包括以群集id1、群集id3、及群集id4的顺序列出的群集。在第三迭代中,在去除具有id4及id5的群集之后,根据第三优先级特征的本地排序群集的列表包括以群集id1、群集id2、及群集id3的顺序列出的群集。

在图5a中,在每次迭代中,在生成当前处理特征的本地排序群集的列表(在过程560处)之后执行过程570。图5b为根据一些实施例的将本地排序群集列表(根据任一优先级特征)合并入排序群集列表中的过程570的细节(考虑到特征的优先级)的流程图。在图5b中,每个群集是从本地排序群集列表获得并个别合并入排序群集列表中。本地排序群集列表中的最高排序群集经首先选择用于处理(在过程572处)并经设置作为当前处理群集(在过程574处)。若当前处理群集不在排序群集列表中(如过程575处确定),则将当前处理群集附加至排序群集列表(在过程576处),及过程570进行至过程578。若当前处理群集已在排序群集列表中(如过程575处确定),则忽视当前处理群集(在过程577处),及过程570进行至过程578。

在图5a中,在过程576或过程577处处理当前处理群集之后,若当前处理群集不在本地排序群集列表中的末端处(如在过程578处确定),则选择根据排序立即遵循列表中当前处理群集的下一个群集(在过程579处)。将选定群集(在过程579处)设置作为当前处理特征(在过程574处),以供下一次迭代。重复迭代(包括过程574、过程575、过程576或577的一个、及过程578),直到处理本地排序群集列表中每个群集为止。在处理本地排序群集列表中最后群集(如过程578处确定)之后,过程570结束。在一些实施例中,在图5a中,过程580在过程570之后。

举例而言,关于图5c解释图5a中方法500及图5b中过程570。在图5c中,在第一次迭代期间,将根据第一优先级特征的本地排序群集的第一列表合并入初始为空白列表的排序群集列表中;因此,在与第一列表合并之后的排序群集列表中,第一元素为群集id1,第二元素为群集id3,及第三元素为群集id4。随后,在第二次迭代期间,将根据第二优先级特征的本地排序群集的第二列表合并入排序群集列表中。因为第二列表中群集id1、群集id3、及群集id4已经在排序群集列表中,所以将第二列表合并入排序群集列表中不会变更排序群集列表。接下来,在第三次迭代期间,将根据第三优先权特征的本地排序群集的第三列表合并入排序群集列表中。因为第三列表中群集id2不在排序群集列表中,所以将群集id2附加至排序群集列表中作为第四元素。与第三列表合并之后的排序群集列表包括以id1、id3、id4、及id2的顺序列出的群集。类似地,将根据其他优先级特征(例如,第四优先级特征、第五优先级特征、及第六优先级特征)中每一者的本地排序群集列表合并入排序群集列表中。在将排序群集列表中的本地排序群集的最后列表合并入排序群集列表中之后,排序群集列表将由其他过程(例如,过程580)使用。

生成排序临界单元列表的方法700包括生成排序群集列表的方法500及在给定群集中生成有序单元列表的方法600。尽管关于图5a至图5c描述方法500,但是下文中关于图6a至图6b描述方法600。

图6a为根据一些实施例的在给定群集中生成有序单元列表的方法600的流程图。图6a的流程图关于图6b中实例解释。图6b为根据一些实施例列出分配给前三优先级特征中每一者的单元的分数值的表格。第一列列出分配给单元的第一优先级特征的分数值,第二列列出分配给单元的第二优先级特征的分数值,以及第三列列出分配给单元的第三优先级特征的分数值。提供额外列以列出分配给单元的其他优先级特征(例如,第四特征、第五特征、及第六特征)的分数值。

在图6b的实例中,分配给单元a、单元b、单元c、单元d、单元e、及单元f的第一优先级特征的分数值为对应10、8、8、4、4、及4。分配给单元a、单元b、单元c、单元d、单元e、及单元f的第二优先级特征的分数值为对应5、2、6、8、8、及7。分配给单元a、单元b、单元c、单元d、单元e、及单元f的第三优先级特征的分数值为对应6、7、3、6、4、及9。

在图6a中,在过程620处,根据优先级特征列表中的最高优先级特征排序给定群集中的单元。若在排序中无单元与其他单元并列(如在过程630处确定),则从单元的排序生成给定群集中有序单元列表(在过程680处)。若在排序中一些单元与其他单元并列(如在过程630处确定),则优先级特征列表中第二最高优先级特征经选择(在过程640处)并经设置作为当前处理特征(在过程650处)。接着,在过程660处,与其他单元并列的单元是基于当前处理特征排序,并且更新单元的排序。在此针对排序中的并列检查更新的单元排序(在过程670处)。若在排序中无单元与其他单元并列,则从更新的单元排序生成给定群集中有序单元列表(在过程680处)。若在排序中一些单元仍然与其他单元并列(如过程670处确定),则选择根据优先级立即遵循当前处理特征的下一个特征(在过程690处),并且将选定特征设置作为当前处理特征(在过程650处)以进行下一次迭代。重复过程650、过程660、及过程670的迭代,直到不存在排序中与其他单元并列的单元。

举例而言,关于图6b解释图6a的方法600。在图6b中,根据第一优先级特征(其为优先级特征列表中最高优先级特征)排序给定群集中的单元。单元a具有第一优先级的分数值10,并被排序为第一元素。单元b及单元c,每个具有第一优先级的分数值8,在组成第二元素及第三元素的相等排序群组中排序。单元d、单元e、及单元f,每个具有第一优先级的分数值4,在由第四元素、第五元素、及第六元素组成的相等排序群组中排序。

当针对具有相同排序的单元检查了根据第一优先级特征的单元的排序(例如,在图6a的过程630处)时,选择第二优先级特征以解决具有相同排序的单元的排序。根据第二优先级特征排序单元b及单元c(例如,在图6a的过程660处)。因为单元b具有分数值2及单元c具有分数值6,所以单元c被排序为第二元素及单元b被排序为第三元素。亦根据第二优先级特征排序单元d、单元e、及单元f(例如,在图6a的过程660处)。因为单元d及单元e中每一者具有分数值8及单元f具有分数值7,所以当单元d及单元e在组成第四元素及第五元素的相同排序群组中排序时单元f被排序为第六元素。

当针对具有相同排序的单元,检查处理第二优先级特征之后的单元的更新的排序(例如,在图6a的过程670处)时,选择第三优先级特征(例如,在图6a的过程690处)以进行下一次迭代以解决单元d及单元e的剩余并列排序。根据第三优先级特征排序单元d及单元e(例如,在图6a的过程660处)。因为单元d具有分数值6及单元e具有分数值4,所以单元d被排序为第四元素而单元e被排序为第五元素。当针对并列排序检查处理第三优先级特征之后单元的更新排序(例如,在图6a的过程670处)时,单元a、单元b、单元c、单元d、单元e、及单元f之间无并列排序,并且从单元的更新排序生成给定群组中有序单元列表(例如,在图6a的过程680处)。有序单元列表包括以单元a、单元c、单元b、单元d、单元e、及单元f的顺序列出的单元。

在一些实施例中,在图7的方法700中,图5a中方法500用于排序群集,以及图6a中方法600用于排序给定群集中的单元。图7为根据一些实施例的由从一或更多个apr数据库获得的单元生成排序临界单元列表的方法700的流程图。在图7中,从一或更多个apr数据库收集单元群组(在过程710处),以及将排序临界单元列表初始化至空白列表(在过程720处)。随后,由于方法500,从收集的单元群组生成排序群集列表。根据一些实施例的方法500的流程图在图5a中示出。此后,排序群集列表中最高排序群集经选择(在过程730处)并设置作为当前处理群集(在过程740处)。接着,由于方法600,生成当前处理群集中有序单元列表。根据一些实施例的方法600的流程图在图6a中示出。接下来,在过程760处,将当前处理群集中有序单元列表附加至有序临界单元列表。

在过程760之后,若当前处理群集不在排序群集列表中的末端处(如过程770处确定),则选择根据排序立即遵循列表中当前处理群集的下一个群集(在过程790处)。将选定群集(在过程790处)设置作为当前处理特征(在过程740处),以供下一次迭代。重复迭代(包括过程740、过程600、及过程760),直到处理排序群集列表中每个群集为止。在每次迭代中,当前处理群集中单元经排序(在过程600处)及附加至排序临界单元列表(在过程760处)。在处理排序群集列表中最后群集之后(如过程770处确定),生成用于输出的排序临界单元列表(在过程780处)。

图8为根据一些实施例的电子设计自动化(eda)系统800的方块图。

在一些实施例中,eda系统800包括apr系统。设计布局图的本文所述方法表示根据一或更多个实施例的电线路径布置,例如,根据一些实施例可使用eda系统800实施。

在一些实施例中,eda系统800为通用计算元件,包括硬件处理器802及非暂态计算机可读储存媒体804。储存媒体804使用计算机程序代码806(即,可执行指令集)编码,亦即储存计算机程序代码806。硬件处理器802执行指令806表示(至少部分地)eda工具,其根据一或更多个实施例(下文提及的过程及/或方法)实施本文所述方法的部分或全部。

处理器802经由总线808电耦接至计算机可读储存媒体804。处理器802亦经由总线808电耦接至i/o接口810。网络接口812亦经由总线808电连接至处理器802。网络接口812连接至网络814,以便处理器802及计算机可读储存媒体804能够经由网络814连接至外部元件。处理器802用以执行在计算机可读储存媒体804中编码的计算机程序代码806,以致使系统800可用于执行所述过程及/或方法的部分或全部。在一或更多个实施例中,处理器802为中央处理器(centralprocessingunit;cpu)、多处理器、分散式处理系统、特殊应用集成电路(applicationspecificintegratedcircuit;asic)、及/或适当处理单元。

在一或更多个实施例中,计算机可读储存媒体804为电子、磁性的、光学的、电磁的、红外线及/或半导体系统(或设备或元件)。例如,计算机可读储存媒体804包括半导体或固态记忆体、磁带、可移动计算机磁片、随机存取记忆体(randomaccessmemory;ram)、只读记忆体(read-onlymemory;rom)、刚性磁片及/或光盘。在使用光盘的一或更多个实施例中,计算机可读储存媒体804包括只读光盘记忆体(compactdiskreadonlymemory;cd-rom)、读/写光盘(cd-r/w)、及/或数字视频光盘(digitalvideodisc;dvd)。

在一或更多个实施例中,储存媒体804储存计算机程序代码806,其用以致使系统800(其中此种执行表示(至少部分地)eda工具)可用于执行所述过程及/或方法的部分或全部。在一或更多个实施例中,储存媒体804亦储存促进执行所述过程及/或方法的部分或全部的信息。在一或更多个实施例中,储存媒体804储存包括如本文揭示的此种标准单元的标准单元库807。

eda系统800包括i/o接口810。i/o接口810耦接至外部电路系统。在一或更多个实施例中,i/o接口810包括键盘、键板、鼠标、轨迹球、轨迹板、触摸屏、及/或游标方向键以用于与处理器802交换信息及命令。

eda系统800亦包括耦接至处理器802的网络接口812。网络接口812允许系统800与网络814通信,一或更多个其他计算机系统连接至网络接口812。网络接口812包括无线网络接口,诸如bluetooth、wifi、wimax、gprs或wcdma;或有线网络接口,诸如ethernet、usb或ieee-1364。在一或更多个实施例中,在两个或更多个系统800中实施所述过程及/或方法的部分或全部。

系统800用以经由i/o接口810接收信息。经由i/o接口810接收的信息包括指令、数据、设计规则、标准单元库、及/或用于通过处理器802处理的其他参数的一或更多者。信息经由总线808传递至处理器802。eda系统800经配置以经由i/o接口810接收有关ui的信息。信息储存在作为使用者界面(userinterface;i)842的计算机可读媒体804中。

在一些实施例中,所述过程及/或方法的部分或全部实施为通过处理器执行的独立软件应用。在一些实施例中,所述过程及/或方法的部分或全部实施为一软件应用,此软件应用为附加软件应用的部分。在一些实施例中,所述过程及/或方法的部分或全部实施为一软件应用的外挂程序。在一些实施例中,所述过程及/或方法的至少一个实施为一软件应用,此软件应用为eda工具的部分。在一些实施例中,所述过程及/或方法的部分或全部实施为由eda系统800使用的软件应用。在一些实施例中,包括标准单元的布局图使用诸如的工具或另一适当布局生成工具生成,工具可从cadencedesignsystems公司购得。

在一些实施例中,过程作为在非暂态计算机可读媒体中储存的程序的功能实现。非暂态计算机可读记录媒体的实例包括但不限制于,外部的/可移动的及/或内部的/嵌入的储存器或记忆体单元,例如,诸如dvd的光盘、诸如硬盘的磁盘、诸如rom、ram、记忆体卡等的半导体记忆体的一或更多者。

图9为根据一些实施例的ic制造系统900及与其关联的ic制造流程的方块图。在一些实施例中,基于布局图,使用制造系统900在半导体集成电路层中制造一或更多个半导体遮罩(a)或至少一个部件(b)的至少一者。

在图9中,ic制造系统900包括实体,诸如设计室920、遮罩室930及ic制造商/晶圆厂(fabricator;fab)950,其与制造ic元件960相关的设计、发展及制造循环及/或服务彼此相互作用。系统900中的实体由通信网络连接。在一些实施例中,通信网络为单一网络。在一些实施例中,通信网络为各种不同网络,诸如内部网络及网际网络。通信网络包括有线及/或无线通信通道。每个实体与一或更多个其他实体相互作用并且提供服务至一或更多个其他实体及/或从一或更多个其他实体接收服务。在一些实施例中,设计室920、遮罩室930及ic晶圆厂950的两个或更多个由单个更大公司所拥有。在一些实施例中,设计室920、遮罩室930及ic晶圆厂950的两个或更多个共存于共同设施中且使用共同资源。

设计室(或设计团队)920生成ic设计布局图922。ic设计布局图922包括为ic元件960设计的各种几何图案。几何图案对应于组成待制造的ic元件960的各种部件的金属、氧化物或半导体层的图案。各种层组合以形成各种ic特征。举例而言,ic设计布局图922的部分包括各种ic特征,诸如主动区域、栅电极、源极及漏极、层间互连的金属线或通孔、及用于接合垫的开口,此些ic特征将形成于半导体基板(诸如硅晶圆)中及各种材料层(设置于此半导体基板上)中。设计室920实施适合的设计程序以形成ic设计布局图922。设计程序包括逻辑设计、实体设计及/或放置及布线的一或更多者。ic设计布局图922存在于具有几何图案信息的一或更多个数据文件中。例如,ic设计布局图922可以gdsii文件格式或dfii文件格式表示。

遮罩室930包括数据准备932及遮罩制造944。遮罩室930使用ic设计布局图922制造一或更多个遮罩945,遮罩945待用于根据ic设计布局图922制造ic元件960的各种层。遮罩室930执行遮罩数据准备932,其中ic设计布局图922转换成代表性数据文件(representativedatafile;“rdf”)。遮罩数据制备932将rdf提供至遮罩制造944。遮罩制造944包括遮罩写入器。遮罩写入器将rdf转换成基板上的影像,基板诸如遮罩(主光罩)945或半导体晶圆953。设计布局图922由遮罩数据准备932操纵以符合遮罩写入器的特定特性及/或ic晶圆厂950的必要条件。在图9中,遮罩数据准备932及遮罩制造944图示为分离元件。在一些实施例中,遮罩数据准备932及遮罩制造944可统一称为遮罩数据准备。

在一些实施例中,遮罩数据准备932包括光学邻近校正(opticalproximitycorrection;opc),其使用微影增强技术以补偿像差,诸如可能由绕射、干涉、其他过程效应等引起的像差。opc调整ic设计布局图922。在一些实施例中,遮罩数据准备932包括进一步的解析度增强技术(resolutionenhancementtechniques;ret),诸如离轴照明、亚解析度辅助特征、相变遮罩、其他适合技术等或其组合。在一些实施例中,亦使用反相微影技术(inverselithographytechnology;ilt),其将opc处理为逆像问题。

在一些实施例中,遮罩数据准备932包括遮罩规则检查器(maskrulechecker;mrc),其利用一组遮罩产生规则检查已经在opc中经受过程的ic设计布局图922,这些规则包括某些几何及/或连接性限制以确保充足余量,以解决半导体制造过程中的变化性等等。在一些实施例中,mrc修改ic设计布局图922以补偿遮罩制造944期间的限制,其可取消由opc执行的修改的部分以满足遮罩产生规则。

在一些实施例中,遮罩数据准备932包括微影术过程检查(lithographyprocesschecking;lpc),其模拟将由ic晶圆厂950实施的处理以制造ic元件960。lpc基于ic设计布局图922模拟此过程以产生模拟制造元件,诸如ic元件960。lpc模拟中的处理参数可包括与ic制造循环的各种过程关联的参数、与用于制造ic的工具关联的参数、及/或制造过程的其他态样。lpc考虑了各种因素,诸如空间成像对比、焦深(depthoffocus;“dof”)、遮罩错误增强因素(maskerrorenhancementfactor;“meef”)、其他适当因素等或其组合。在一些实施例中,在由lpc已经创造模拟制造的元件后,若模拟元件不足够接近形状以满足设计规则,则重复opc及/或mrc以进一步改进ic设计布局图922。

应理解,为了简明的目的,遮罩数据准备932的以上描述已经简化。在一些实施例中,数据准备932包括诸如逻辑操作(logicoperation;lop)的附加特征以根据制造规则更改ic设计布局图922。另外,在数据准备932期间应用于ic设计布局图922的过程可以各种不同顺序执行。

在遮罩数据准备932之后及遮罩制造944期间,基于修改的ic设计布局图922制造遮罩945或遮罩组945。在一些实施例中,遮罩制造944包括基于ic设计布局图922执行一或更多次微影曝光。在一些实施例中,使用电子束(electron-beam;e-beam)或多个电子束的机构以基于修改的ic设计布局图922在遮罩(光罩或主光罩)945上形成图案。遮罩945可以各种技术形成。在一些实施例中,使用二元技术形成遮罩945。在一些实施例中,遮罩图案包括不透明区及透明区。用于曝光已经涂覆在晶圆上的影像敏感材料层(例如,光阻剂)的辐射束,诸如紫外线(uv)束,由不透明区阻断及透射穿过透明区。在一个实例中,遮罩945的二元遮罩版本包括透明基板(例如,熔凝石英)、及涂覆在二元遮罩的不透明区中的不透明材料(例如,铬)。在另一实例中,使用相转移技术形成遮罩945。在遮罩945的相转移遮罩(phaseshiftmask;sm)版本中,形成于相转移遮罩上的图案中的各种特征,用以具有适当的相位差以提高解析度及成像品质。在各种实例中,相转移遮罩可为衰减psm或交替psm。由遮罩制造944生成的遮罩用于各种过程中。例如,此种遮罩用于离子植入过程中以在半导体晶圆953中形成各种掺杂区域,用于蚀刻过程中以在半导体晶圆953中形成各种蚀刻区域,及/或用于其他适当过程中。

ic晶圆厂950为ic制造企业,包括用于制造各种不同ic产品的一或更多个制造设施。在一些实施例中,ic晶圆厂950为半导体制造厂。例如,可能存在用于多个ic产品的前端制造(前段(front-end-of-line;feol)制造)的制造设施,而第二制造设施可为ic产品的互连及包装提供后端制造(后段(back-end-of-line;beol)制造)时,且第三制造设施可为制造企业提供其他服务。

ic晶圆厂950包括配置以在半导体晶圆953执行各种制造操作使得根据遮罩(例如,遮罩945)制造ic元件960的制造工具952。在各种实施例中,制造工具952包括以下各项的一或更多者:晶圆步进器、离子植入器、光刻胶涂布器、制程腔室,例如cvd腔室或lpcvd熔炉、cmp系统、电浆蚀刻系统、晶圆清洗系统,或能够执行如本文论述的一或更多个制造过程的其他制造设备。

ic晶圆厂950使用由遮罩室930制造的遮罩945制造ic元件960。因而,ic晶圆厂950至少间接地使用ic设计布局图922制造ic元件960。在一些实施例中,半导体晶圆953通过ic晶圆厂950使用遮罩945来制造以形成ic元件960。在一些实施例中,ic制造包括至少间接地基于ic设计布局图922而执行一或更多个微影曝光。半导体晶圆953包括硅基板或具有形成于其上的材料层的其他适合基板。半导体晶圆953进一步包括各种掺杂区、介电质特征、多级互连等(在后续制造步骤中形成)的一或更多者。

关于集成电路(ic)制造系统(例如,图9的系统900)的细节及与其关联的ic制造流程在以下文件中找到:例如,2016年2月9日授权的美国专利第9,256,709号;2015年10月1日揭示的美国预授权揭示案第20150278429号;2014年2月6日揭示的美国预授权公开案第20140040838号;及2007年8月21日授权的美国专利第7,260,442号,以上各者的内容以引用方式整个并入本文中。

本说明书的一态样关于一种方法。方法包括获得单元群组中每个单元的特征向量的步骤,其中单元的特征向量包括为表征单元群组而选择的特征集中的每个特征的分数值。方法包括以下步骤:基于单元的特征向量的端点之间的距离,将群组中单元群集化成选定数目的群集。方法包括以下步骤:基于与特征集相关联的优先级特征列表,在选定数目的群集中生成排序临界单元列表。方法包括以下步骤:基于排序临界单元,输出排序临界单元列表,以供调整单元布局。在上述及以下实施例的一或更多者中,此方法还包含利用一k平均群集演算法将该群组中该些单元群集化进该选定数目的群集中。在上述及以下实施例的一或更多者中,此方法还包含基于与特征向量的端点之间的该些距离相关的一距离函数,利用一k平均群集演算法将该群组中的该些单元群集化进该选定数目的群集中。在上述及以下实施例的一或更多者中,中生成该排序临界单元列表还包括基于该优先级特征列表,排序该些群集。在上述及以下实施例的一或更多者中,生成该排序临界单元列表还包括排序至少一或更多个排序群集中的单元,以生成该排序临界单元列表。在上述及以下实施例的一或更多者中,其中从一自动放置布线(apr)数据库收集该单元群组,其包括针对该apr数据库中的单元的至少一部分识别的设计规则检查(drc)违规。在上述及以下实施例的一或更多者中,其中一单元的该特征向量包括与设计规则检查(drc)违规相关的一或更多个元素。在上述及以下实施例的一或更多者中,其中与设计规则检查(drc)违规相关的该一或更多个元素包括该单元直接落在一drc标记顶部的次数,该单元邻近于直接在一drc标记顶部的另一单元的次数,或该单元邻近于另一单元的次数,该另一单元直接落在一drc标记顶部,在最接近该drc标记的一水平或一垂直边缘处。在上述及以下实施例的一或更多者中,其中一单元的该特征向量包括与该apr数据库中该单元的一引脚密度相关的一或更多元素。在上述及以下实施例的一或更多者中,其中一单元的该特征向量包括与该apr数据库中该单元的一放置密度相关的一或更多元素。在上述及以下实施例的一或更多者中,此方法还包含确定用于群集化该些单元的该选定数目。

本说明书的另一态样关于一种计算机程序代码,此计算机程序代码储存在非暂态计算机可读媒体上。计算机程序代码经配置以致使具有至少一个处理器的系统执行以下步骤:获得单元群组中每个单元的特征向量,以及将数目k初始化至初始值。单元的特征向量包括为表征单元群组而选择的特征集中每个特征的分数值。计算机程序代码亦用以致使系统执行以下步骤:重复生成数目k的增值直到满足稳定状态为止,以及针对数目k的每个值,将单元群集化入总共k个群集中及在k个群集中生成排序最高临界单元列表。在上述及以下实施例的一或更多者中,其中群集化该些单元还包括利用一k平均群集演算法将该些单元群集化进总共k个群集中。在上述及以下实施例的一或更多者中,其中生成该些k个群集中排序最高临界单元的该列表还包括基于与该特征集相关联的一优先级特征列表,在该些k个群集中生成一排序临界单元列表;以及从排序临界单元的该列表选择一预定数目的排序最高临界单元,以形成排序最高临界单元的该列表。在上述及以下实施例的一或更多者中,其中当该数目k的一第一列表的排序最高临界单元与一数目k-1的一第二列表的排序最高临界单元之间的一比较指示该第一列表与该第二列表具有相同临界单元时,满足该稳定状态。在上述及以下实施例的一或更多者中,其中当该数目k的一第一列表的排序最高临界单元与一数目k-1的一第二列表的排序最高临界单元之间的一比较指示该第一列表与该第二列表无超过一阈值数目的不同临界单元时,满足该稳定状态。

本说明书的另一态样关于一种计算机程序代码,此计算机程序代码储存在非暂态计算机可读媒体上。计算机程序代码用以致使具有至少一个处理器的系统执行以下步骤:载入具有按使用者输入排序的优先级的优先级特征列表,及获得单元群组中每个单元的特征向量。单元的特征向量包括为表征单元群组而选择的特征集中每个特征的分数值。计算机程序代码进一步用以致使系统执行以下步骤:基于与特征集相关联的优先级特征列表确定用于群集化单元的选定数目,及将群组中单元群集化入选定数目的群集中。计算机程序代码进一步用以致使系统执行以下步骤:基于与特征集相关联的优先级特征列表在选定数目的群集中生成排序临界单元的列表,以及基于排序临界单元,输出排序临界单元列表以供调整单元布局。在上述及以下实施例的一或更多者中,其中群集化该些单元还包括利用一k平均群集演算法将该些单元群集化进总共k个群集中。在上述及以下实施例的一或更多者中,其中确定用于群集化单元的该选定数目还包括将一数目k初始化至一初始值;重复生成该数目k的一增值直到满足一稳定状态为止,并且针对该数目k的每个值,将该些单元群集化进总共k个群集中及在该些k个群集中生成一列表的排序临界单元;以及当满足该稳定状态时,从该些k个群集中的该列表的排序临界单元确定该选定数目的群集中的该列表的排序临界单元。在上述及以下实施例的一或更多者中,其中在该选定数目的群集中生成该列表的排序临界单元包括:基于该列表的优先级特征排序该些群集以生成一列表的排序群集;以及基于该列表的优先级特征,排序该列表的排序群集中一或更多个排序群集中每一者的单元,以生成该列表的排序临界单元。

熟悉此领域的普通技术人员可轻易看出,本揭示实施例的一或更多个满足上文阐述的优势的一或更多个。在阅读上述说明书之后,熟悉此领域的普通技术人员将能够实行各种变化、等同物的置换及如本文广泛揭示的各种其他实施例。因此,应当认为,在此要求的保护仅由所附权利要求书及其等同物中所包含的定义限制。


技术特征:

1.一种调整单元布局的方法,其特征在于,包括:

获得一单元群组中每一单元的一特征向量,其中一单元的该特征向量包括一特征集中每一特征的一分数值,其中是为表征该单元群组而选择该特征集;

基于该些单元的特征向量的端点之间的距离,将该单元群组中的该些单元群集进一选定数目的群集中;

基于与该特征集相关联的一优先级特征列表,在该选定数目的群集中生成一排序临界单元列表;以及

基于排序临界单元,输出该排序临界单元列表,以供调整单元布局。

技术总结
本揭露提供一种调整单元布局的方法,包括获得单元群组中的每个单元的特征向量。单元的特征向量包括为表征单元群组而选择的特征集中每个特征的分数值。方法包括:基于单元的特征向量的端点之间的距离,将群组中的单元群集化入选定数目的群集中。方法包括以下步骤:基于与特征集相关联的优先级特征列表,在选定数目的群集中生成排序临界单元列表。方法包括:基于排序临界单元,输出排序临界单元列表,以用于调整单元布局。

技术研发人员:维尔马·阿纽拉;徐孟楷;张志伟
受保护的技术使用者:台湾积体电路制造股份有限公司
技术研发日:2020.12.04
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-7897.html

最新回复(0)