具体实施方式
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。
如图1所示,本申请实施例提供一种通孔单元的确定方法,本申请提供的通孔单元的确定方法可以包括:
S10、从当前版图设计信息中识别出布线金属层的金属线宽度。
其中,所述布线金属层包括布线金属顶层和布线金属底层。如图2所示,标号1为布线金属顶层,w1为布线金属顶层的金属线宽度;标号2为布线金属底层,w2为布线金属底层的金属线宽度。
S20、计算所述布线金属层的金属线宽度与通孔单元库中各通孔单元金属层的金属宽度分别对应的宽度差。
其中,所述通孔单元金属层包括:通孔单元金属顶层和通孔单元金属底层。如图3所示,标号11为通孔单元金属顶层,w11为通孔单元金属顶层的金属宽度;标号22为通孔单元金属底层,w22为通孔单元金属底层的金属宽度。
本实施例中的通孔单元库中包含不同通孔单元信息分别对应不同的通孔单元金属层的金属宽度,所述通孔单元信息包括通孔尺寸、通孔的包裹距离,以及通孔个数和通孔间距。其中,通孔的包裹距离为通孔单元金属层包裹通孔在四个方向上的距离,若通孔为方孔,则包裹距离不区分方向;若通孔为长孔,包裹距离按通孔的两个短边方向的包裹距离在前、两个长边方向的包裹距离在后的规则来定义。
需要说明的是,本实施例可根据技术文件中设计检查规则在自动布局布线工具中生成通孔单元库,技术文件中设计检查规则包括:一系列金属线宽度、通孔尺寸、该宽度金属线对该尺寸通孔的包裹距离,以及设计检查规则中定义的通孔最小个数和通孔间距。其中,金属线宽度、通孔尺寸、以及该宽度金属线对该尺寸通孔的包裹距离为一组数据,同一金属线宽度、同一通孔尺寸,可为多种包裹距离关系,以及以检查方式来区分有无切割层的包裹距离。
较优地,本实施例可根据金属线宽度、通孔尺寸、以及包裹距离,自动选取合适的通孔单元。金属线宽度较小时,选取的通孔单元也比较小,金属线宽度较大时,生成的通孔单元较大或者生成通孔单元阵列。最终,通过设计检查规则自动生成通孔单元库,并在后续步骤中基于通孔单元库择优选用通孔单元完成布线工作。
如图4和图5所示,通孔单元包括通孔3、通孔单元金属顶层11、通孔单元金属底层22,以及通孔单元金属顶层11和通孔单元金属底层22对通孔3的包裹距离。图4和图5列举的通孔单元类型仅为设计检查规则中定义需检查的两类通孔单元,图4为方孔,图4为长孔。图4和图5中还标注了通孔单元金属层对通孔3的包裹距离,分别为E1、E2、E3和E4。当通孔为长孔时,技术文件中的包裹距离会按一定规则定义,即通孔的两个短边方向的包裹距离在前、两个长边方向的包裹距离在后的规则,该规则通过检查方式定义。
在本发明提供的一个可选实施例中,所述计算所述布线金属层的金属线宽度与通孔单元库中各通孔单元金属层的金属宽度分别对应的宽度差,包括:
S201、从所述通孔单元库中获取所述通孔单元金属顶层的金属宽度在所述布线金属顶层的金属线宽度预置范围内的通孔单元金属层的金属宽度;和/或获取所述通孔单元金属底层的金属宽度在所述布线金属底层的金属线宽度预置范围内的通孔单元金属层的金属宽度。
其中,预置范围具体根据实际布线信息进行设置,如预置该预置范围为布线金属顶层/底层线宽度区间20-100nm之内。在本实施例中,通孔单元库可以按照通孔单元金属顶层的金属宽度和/或通孔单元金属底层的金属宽度的数值大小从小到大进行排序,或是从大到小进行排序,然后根据排序结果从通孔单元库中获取通孔单元金属顶层的金属宽度在布线金属顶层的金属线宽度预置范围内的通孔单元金属层的金属宽度;和/或获取通孔单元金属底层的金属宽度在布线金属底层的金属线宽度预置范围内的通孔单元金属层的金属宽度。
例如,当前版图中布线金属顶层的金属线的最小宽度w1为20nm,最大宽度为w2 为100nm,布线金属底层的金属线的最小宽度w2为40nm,最大宽度为120nm,预置范围:布线金属顶层预置区间为20~100nm,布线金属底层预置区间为40~120nm;则从通孔单元库中获取通孔单元金属顶层的金属宽度w11为20-100 nm对应的通孔单元金属层的金属宽度,和/或通孔单元金属底层的金属宽度w22为40-120 nm对应的通孔单元金属层的金属宽度。
S202、计算所述布线金属层的金属线宽度与从所述通孔单元库中获取的各通孔单元金属层的金属宽度分别对应的宽度差。
其中,所述计算所述布线金属层的金属线宽度与从所述通孔单元库中获取的各通孔单元金属层的金属宽度分别对应的宽度差,包括:计算所述布线金属顶层的金属线宽度与所述通孔单元金属顶层的金属宽度的第一差值绝对值;计算所述布线金属底层的金属线宽度与所述通孔单元金属底层的金属宽度的第二差值绝对值;将所述第一差值绝对值和所述第二差值绝对值的和值确定为所述宽度差。
如图6所示,标号3为通孔,图6中的a为布线金属层,图6中的b1、b2、b3为通孔单元。则计算布线金属顶层的金属线宽度w1与图6中的b1、b2、b3中通孔单元金属顶层的金属宽度w11分别对应的第一差值绝对值,计算布线金属底层的金属线宽度w2与图6中的b1、b2、b3中通孔单元金属底层的金属宽度w22分别对应的第二差值绝对值,之后确定图6中的b1、b2、b3分别对应的第一差值绝对值和第二差值绝对值的和值,若图6中的b1与图6中的a布线金属层的宽度差最小,则将图6中的b1确定为布线金属层的通孔单元。
S30、根据宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元。
通过检查在技术文件里定义的一系列设计检查规则,包括金属线宽度、通孔尺寸、该宽度金属线对该尺寸通孔的包裹距离,以及通孔最小个数和通孔间距,自动布局布线工具可根据以上条件自动生成合适的通孔单元库,生成的通孔单元符合设计检查规则中的尺寸和个数,并在布局布线中根据具体版图信息择优选用通孔单元。其中,技术文件中金属线宽度、通孔尺寸按一定顺序来定义,列举的金属线宽度为设计检查规则中定义的所有宽度,通孔尺寸为设计检查规则中定义的所有尺寸,包裹距离为设计检查规则中定义的所有距离。列举的金属线宽度、通孔尺寸、该宽度金属线对该尺寸通孔的包裹距离可以生成包含所有类型的通孔单元库,布线时可自动择优选取通孔单元。
本发明通过技术文件中定义的设计检查规则中定义的金属线宽度、通孔尺寸、该宽度金属线对该尺寸通孔的包裹距离,以及通孔最小个数和通孔间距,并根据具体版图信息择优选用通孔单元,布局布线工具依据版图设计信息择优选取通孔单元。该方法可有效精简技术文件的书写,不易出错,得到的通孔单元类型全面,自动布局布线评分选取合适的通孔单元,自动性和兼容性更强,并且对于版图中自定义的通孔单元也具有兼容性,可大大提高设计效率。
在本发明提供的一个针对先进工艺的可选实施例中,所述根据宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元之前,所述方法还包括:
确定所述布线金属层是否包含切割层;
若所述布线金属层包含切割层,则获取通孔单元信息中通孔的包裹距离满足设计规则的通孔单元金属层的金属宽度;
所述根据宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元,包括:
根据通孔的包裹距离满足设计规则的通孔单元金属层的金属宽度中宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元。
在本发明提供的一个可选实施例中,所述根据宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元之前,所述方法还包括:
获取通孔单元信息中通孔尺寸满足设计规则的通孔单元金属层的金属宽度;
所述根据宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元,包括:
根据通孔尺寸满足设计规则的通孔单元金属层的金属宽度中宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元。
需要说明的是,本实施例可根据不同金属线宽度以及金属线有无切割层选取不同通孔单元。如图6所示,金属线宽度较小时,布线时可自动选取较小的通孔单元。如图7所示,当金属线有切割层4时,布线时选取的通孔单元符合有切割层4时的包裹距离。金属线有无切割层通过在技术文件中的检查方式定义。
在本实施例中,若通孔最小个数为1,则其通孔间距设置为0;若通孔最小个数大于1,其通孔间距为设计检查规则中定义的最大间距;若定义的通孔最小个数大于1,可自动生成符合设计检查规则的通孔单元阵列。具体的,当金属线宽度较大时,需要较大尺寸的通孔单元或者通孔单元阵列,如图6所示,金属线宽度较大,需要的通孔最小个数大于1,自动布局布线工具会自动生成并选取通孔单元阵列,满足设计检查规则要求的通孔尺寸和个数。
本申请实施例提供的一种通孔单元的确定方法,首先从当前版图设计信息中识别出布线金属层的金属线宽度;然后计算布线金属层的金属线宽度与通孔单元库中各通孔单元金属层的金属宽度分别对应的宽度差,最后根据宽度差最小的通孔单元金属层对应的通孔单元信息,确定布线金属层的通孔单元。由于本申请中的通孔单元库中包含不同通孔单元信息分别对应不同的通孔单元金属层的金属宽度,因此可通过计算布线金属层的金属线宽度与通孔单元库中各通孔单元金属层的金属宽度分别对应的宽度差,可确定对应的通孔单元。相对于现有技术中人工定义通孔单元,本申请可基于布线金属层的金属线宽度自动确认对应的通孔单元,从而通过本发明可以提高通孔单元的确定效率。
在采用对应各个功能划分各个功能模块的情况下,图8示出了上述和实施例中涉及的通孔单元的确定装置的一种可能的组成示意图,如图8所示,该通孔单元的确定装置可以包括:
识别模块81,用于从当前版图设计信息中识别出布线金属层的金属线宽度;
计算模块82,用于计算所述布线金属层的金属线宽度与通孔单元库中各通孔单元金属层的金属宽度分别对应的宽度差,所述通孔单元库中包含不同通孔单元信息分别对应不同的通孔单元金属层的金属宽度;
确定模块83,用于根据宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元。
在一个可选的实施例中,所述布线金属层包括布线金属顶层和布线金属底层,所述通孔单元金属层包括通孔单元金属顶层和通孔单元金属底层;计算模块82,具体用于:
从所述通孔单元库中获取所述通孔单元金属顶层的金属宽度在所述布线金属顶层的金属线宽度预置范围内的通孔单元金属层的金属宽度;和/或获取所述通孔单元金属底层的金属宽度在所述布线金属底层的金属线宽度预置范围内的通孔单元金属层的金属宽度;
计算所述布线金属层的金属线宽度与从所述通孔单元库中获取的各通孔单元金属层的金属宽度分别对应的宽度差。
在一个可选的实施例中,计算模块82,具体用于:
计算所述布线金属顶层的金属线宽度与所述通孔单元金属顶层的金属宽度的第一差值绝对值;
计算所述布线金属底层的金属线宽度与所述通孔单元金属底层的金属宽度的第二差值绝对值;
将所述第一差值绝对值和所述第二差值绝对值的和值确定为所述宽度差。
在一个可选的实施例中,所述通孔单元信息包括通孔尺寸、通孔的包裹距离,以及通孔个数和通孔间距,所述通孔的包裹距离包括所述通孔单元金属层包裹所述通孔在四个方向上的距离。
在一个可选的实施例中,确定模块83,还用于:
确定所述布线金属层是否包含切割层;
若所述布线金属层包含切割层,则获取通孔单元信息中通孔的包裹距离满足设计规则的通孔单元金属层的金属宽度;
根据通孔的包裹距离满足设计规则的通孔单元金属层的金属宽度中宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元。
在一个可选的实施例中,确定模块83,还用于:
获取通孔单元信息中通孔尺寸满足设计规则的通孔单元金属层的金属宽度;
根据通孔尺寸满足设计规则的通孔单元金属层的金属宽度中宽度差最小的通孔单元金属层对应的通孔单元信息,确定所述布线金属层的通孔单元。
在一个可选的实施例中,若通孔为方孔,则包裹距离不区分方向;若通孔为长孔,包裹距离按通孔的两个短边方向的包裹距离在前、两个长边方向的包裹距离在后的规则来定义。
基于同一申请构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述实施例提供的通孔单元的确定方法的步骤。
具体地,所述存储介质能够为通用的存储介质,如移动磁盘、硬盘等,所述存储介质上的计算机程序被运行时,能够执行上述通孔单元的确定方法,通过计算布线金属层的金属线宽度与通孔单元库中各通孔单元金属层的金属宽度分别对应的宽度差,可确定对应的通孔单元。相对于现有技术中人工定义通孔单元,本申请可基于布线金属层的金属线宽度自动确认对应的通孔单元,从而通过本发明可以提高通孔单元的确定效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。