CN112149336A - 三维集成电路电磁仿真高质量网格快速生成方法及装置 - Google Patents

三维集成电路电磁仿真高质量网格快速生成方法及装置 Download PDF

Info

Publication number
CN112149336A
CN112149336A CN202011331519.XA CN202011331519A CN112149336A CN 112149336 A CN112149336 A CN 112149336A CN 202011331519 A CN202011331519 A CN 202011331519A CN 112149336 A CN112149336 A CN 112149336A
Authority
CN
China
Prior art keywords
layer
polygons
triangular
mesh
integrated circuit
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
CN202011331519.XA
Other languages
English (en)
Other versions
CN112149336B (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.)
Beijing Wisechip Simulation Technology Co Ltd
Original Assignee
Beijing Wisechip Simulation Technology Co 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 Beijing Wisechip Simulation Technology Co Ltd filed Critical Beijing Wisechip Simulation Technology Co Ltd
Priority to CN202011331519.XA priority Critical patent/CN112149336B/zh
Publication of CN112149336A publication Critical patent/CN112149336A/zh
Application granted granted Critical
Publication of CN112149336B publication Critical patent/CN112149336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本发明提供了三维集成电路电磁仿真高质量网格快速生成方法及装置:步骤1收集并设置所有层的集成电路版图多边形的层信息,将各层多边形投影到同一层并进行初始网格剖分;恢复多边形的边并在多边形边的交点插入新的网格节点;对投影到同一层的多边形的边进行简化与对齐并进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;步骤2将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据多边形的层信息确定平行平板场域跨越的层,从而确定分割的三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分。分别在xy平面方向和z方向进行自适应细分,避免了在小尺度区域产生过于密集的三维网格。

Description

三维集成电路电磁仿真高质量网格快速生成方法及装置
技术领域
本发明涉及集成电路技术领域,特别涉及一种三维集成电路电磁仿真高质量网格快速生成方法及装置。
背景技术
随着集成电路产业的飞速发展,传统的二维平面的封装技术已经无法满足日益增长的芯片性能和封装密度的要求,三维封装技术已经成为高密度芯片封装的一个不可逆转的趋势。三维集成电路就是将多块平面芯片从垂直方向上进行堆叠,使用金线键合或者其他方式进行互连,从而形成一种立体的封装结构。由于三维技术最大可能地利用了芯片的立体空间,以堆叠的形式使得在单位面积内能封装更多的晶体管,有效地降低了芯片的延时和功耗,在提高芯片性能的同时降低了芯片的制造成本。随着芯片特征尺寸的不断缩小,芯片上单位面积内可集成越来越多的晶体管。而为了获得更高的芯片性能,芯片的工作频率不断提升,电源电压不断降低,噪声容限也不断缩小。因而所产生的电源完整性和信号完整性问题,已经成为芯片设计中的关键性问题,因此针对三维集成电路进行电磁仿真,分析其电源完整性问题、信号完整性问题已成为迫在眉睫需要解决的问题。
早期,针对结构简单的集成电路对其电源完整性和信号完整性问题主要采用简化的传输线法或有限差分法,以上方法不需要针对复杂结构的集成电路进行复杂的网格剖分,计算速度快,但由于对集成电路版图进行了很大的近似,在处理早期结构简单、规则的版图计算结果是准确的,但对于近年来结构越来越复杂版图则产生不可比对的误差。近年来,针对带有结构复杂的集成电路版图的多层集成电路采用基于场的方法计算,对各层集成电路版图采用二维非结构网格剖分,在网格剖分的过程中考虑了版图的复杂结构,因此其计算结果更为准确,但这种方法采用的是二维网格对计算场域进行离散,其假设的前提是集成电路版图尺寸远远大于集成电路金属层的厚度以及金属层之间的介质层的厚度,对于目前正在发展的三维集成电路来说,其电源、信号不光在各层的平面结构传递,还在垂直方向产生大量的互连,且集成电路电源部分的供电金属线的宽度越来越窄,已经可以和金属层或介质层厚度相比拟,此时,这个假设已经显现出越来越大的误差,因此有必要直接采用三维电磁场数值计算方法如三维有限元法直接对整个三维集成电路进行电磁仿真。然而,由于这种发展的三维集成电路结构上具有非常明显的多尺度特征,其尺度范围从互连线宽的纳米级到电源层版图区域的厘米级,层间距、过孔尺寸也从微米级到纳米级,如果直接对这样的多尺度的复杂的三维集成电路进行三维非结构的四面体网格剖分,将花费大量的CPU时间,并且,可能会在小尺度区域产生过于密集的网格,导致最终产生数量庞大的网格,对三维非结构的四面体网格剖分技术以及由此产生的超大规模稀疏矩阵的求解技术将是一个极大的挑战。
本发明提出一种三维集成电路电磁仿真高质量网格快速生成方法及装置。实现了通过二维网格剖分的时间复杂度对多尺度的复杂的三维集成电路进行平面上非结构的三维三棱柱网格剖分,并且采取了分别在xy平面方向和z方向的自适应细分的方式,完全避免了在小尺度区域产生过于密集的三棱柱网格。
发明内容
(一)发明目的
为克服上述现有技术存在的至少一种缺陷,本发明提供了一种三维集成电路电磁仿真高质量网格快速生成方法及装置,通过二维网格剖分的时间复杂度对多尺度的复杂的三维集成电路进行平面上非结构的三维三棱柱网格剖分,并且采取分别在xy平面方向和z方向的自适应细分的方式来完全避免在小尺度区域产生过于密集的三维网格。
(二)技术方案
作为本发明的第一方面,本发明公开了一种三维集成电路电磁仿真高质量网格快速生成方法,包括以下步骤:
步骤1,收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;
步骤2,将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分。
一种可能的实施方式中,在所述步骤1中,所述收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;包括:
步骤1.1,获取多层所述集成电路版图包含多个顶点的多个所述多边形,增加两个能覆盖所有层的所述集成电路版图多边形的矩形多边形,分别作为顶层空气层和底层空气层的所述多边形;
步骤1.2,设置各层所述多边形的层信息,并用二进制数字代表各自的层;
步骤1.3,将各层的多个所述多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的所述多边形信息和所在层的层信息;
步骤1.4,合并投影后重合的多个所述多边形的边的所述多边形信息和所述多边形的层信息;
步骤1.5,根据所述边交换法将所述Delaunay三角形网格对齐到多个所述多边形的各个边,同时计算多个不同层的所述多边形的边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格。
一种可能的实施方式中,在所述步骤1中,所述对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;包括:
步骤1.6,基于所述第一三角形网格,在每个所述多边形的内外分别形成夹住所述多边形的内外辅助多边形,并通过设定的距离阈值控制所述内外辅助多边形与所述多边形的距离;
步骤1.7,对落在所述内外辅助多边形之间的各层所述多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将投影到同一层的多层所述多边形还原到各层中,同时更新所述三角形网格及其层信息,形成第二三角形网格;
步骤1.8,基于网格尺寸和单元质量控制技术对所述第二三角形网格进行自适应网格细分,形成更新的所述第二三角形网格。
一种可能的实施方式中,在所述步骤2中,所述将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;包括:
步骤2.1:根据包括金属层和介质层的每层纵向上的排列顺序,记录所述集成电路版图每层唯一的区域编号;
步骤2.2:设定纵向上的坐标原点,根据所述集成电路版图每层的厚度及区域编号顺序,记录每层的位置信息;
步骤2.3:基于所述步骤1获得的所述第二三角形网格,将所有所述三角形网格在厚度方向扩展为一个所述三棱柱,所述三棱柱的上下底面三角形为所述第二三角形网格对应的所述三角形,上下底面位置为层界面最大值和最小值,从而形成第一三棱柱网格;
步骤2.4:基于所述步骤2.3获得的所述第一三棱柱网格,将所有所述三棱柱沿z方向按zinterface进行分割,每个所述三棱柱被分割为N-1个所述三棱柱,形成第二三棱柱网格,其中N为所述集成电路版图包括上下空气层的层界面个数,zinterface为层界面的位置。
一种可能的实施方式中,在所述步骤2中,所述根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分;包括:
步骤2.5:基于所述步骤1.7获得的所述第二三角形网格,根据所述三角形网格的层信息,还原所述三角形网格被哪些层界面的所述多边形共用;
步骤2.6:根据所述步骤2.5确定的所述三角形网格被哪些层界面的所述多边形共用,以此推算出其依次包含的区域,进而确定所述第二三棱柱网格中每个所述三棱柱所在的区域;
步骤2.7,实现所述三棱柱网格在z方向统一的由细到粗的渐进变化的细分过程。
作为本发明的第二方面,本发明公开了一种三维集成电路电磁仿真高质量网格快速生成装置,包括:
第一模块,用于收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;
第二模块,用于将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分。
一种可能的实施方式中,在所述第一模块中,所述收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;包括:
第一单元,用于获取多层所述集成电路版图包含多个顶点的多个所述多边形,增加两个能覆盖所有层所述集成电路版图多边形的矩形多边形,分别作为顶层空气层和底层空气层的所述多边形;
第二单元,用于设置各层所述多边形的层信息,并用二进制数字代表各自的层;
第三单元,用于将各层的多个所述多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的所述多边形信息和所在层的层信息;
第四单元,用于合并投影后重合的多个所述多边形的边的所述多边形信息和所述多边形的层信息;
第五单元,用于根据所述边交换法将所述Delaunay三角形网格对齐到多个所述多边形的各个边,同时计算多个不同层的所述多边形的边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格。
一种可能的实施方式中,在所述第一模块中,所述对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;包括:
第六单元,用于基于所述第一三角形网格,在每个所述多边形的内外分别形成夹住所述多边形的内外辅助多边形,并通过设定的距离阈值控制所述内外辅助多边形与所述多边形的距离;
第七单元,用于对落在所述内外辅助多边形之间的各层所述多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将投影到同一层的多层所述多边形还原到各层中,同时更新所述三角形网格及其层信息,形成第二三角形网格;
第八单元,用于基于网格尺寸和单元质量控制技术对所述第二三角形网格进行自适应网格细分,形成更新的所述第二三角形网格。
一种可能的实施方式中,在所述第二模块中,所述将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;包括:
用于根据包括金属层和介质层的每层纵向上的排列顺序,记录所述集成电路版图每层唯一的区域编号;
用于设定纵向上的坐标原点,根据所述集成电路版图每层的厚度及区域编号顺序,记录每层的位置信息;
用于基于所述第一模块获得的所述第二三角形网格,将所有所述三角形网格在厚度方向扩展为一个所述三棱柱,所述三棱柱的上下底面三角形为所述第二三角形网格对应的所述三角形,上下底面位置为层界面最大值和最小值,从而形成第一三棱柱网格;
用于所述第三单元获得的所述第一三棱柱网格,将所有所述三棱柱沿z方向按zinterface进行分割,每个所述三棱柱被分割为N-1个所述三棱柱,形成第二三棱柱网格,其中N为所述集成电路版图包括上下空气层的层界面个数,zinterface为层界面的位置。
一种可能的实施方式中,在所述第二模块,所述根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分;包括:
用于基于所述第七单元获得的所述第二三角形网格,根据所述三角形网格的层信息,还原所述三角形网格被哪些层界面的所述多边形共用;
用于根据确定的所述三角形网格被哪些层界面的所述多边形共用,以此推算出其依次包含的区域,进而确定所述第二三棱柱网格中每个所述三棱柱所在的区域;
用于实现所述三棱柱网格在z方向统一的由细到粗的渐进变化的细分过程。
(三)有益效果
本发明提供的一种三维集成电路电磁仿真高质量网格快速生成方法及装置,通过步骤1收集并设置所有层的集成电路版图多边形的层信息,将所有层的多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有多边形的边,在多边形边的交点插入新的网格节点;对投影到同一层的多边形的边进行简化与对齐,并对简化与对齐后的多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对所述三角形网格进行自适应细分;通过步骤2将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据多边形的层信息确定其平行平板场域跨越的层,从而确定分割的三棱柱所在的区域;从z方向对所述三棱柱网格进行自适应细分。实现了通过二维网格剖分的时间复杂度对多尺度的复杂的三维集成电路进行平面方向非结构的三维三棱柱网格剖分;采取了分别在xy平面方向和z方向的自适应细分的方式,避免了在小尺度区域产生过于密集的三维网格(即三棱柱网格)。
附图说明
以下参考附图描述的实施例是示例性的,旨在用于解释和说明本发明,而不能理解为对本发明的保护范围的限制。
图1是本发明提供的一种三维集成电路电磁仿真高质量网格快速生成方法的流程图。
图2是本发明提供的一种三维集成电路电磁仿真高质量网格快速生成方法及装置的简单的多层集成电路版图金属层与介质层示意图。
图3是本发明提供的一种三维集成电路电磁仿真高质量网格快速生成方法及装置的多层集成电路版图的区域编号与层界面位置关系示意图。
图4是本发明提供的一种三维集成电路电磁仿真高质量网格快速生成装置的结构示意图。
具体实施方式
为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。
需要说明的是:在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,均仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
下面参考图1-3详细描述本发明提供的一种三维集成电路电磁仿真高质量网格快速生成方法的第一实施例。如图1-3所示,本实施例提供的高质量网格快速生成方法主要包括有:步骤1和步骤2。
本发明直接针对尺度范围为厘米级到纳米级的复杂的三维集成电路进行三维非结构的网格剖分,但与传统三维非结构的四面体网格剖分不同,本专利将基于平行平板场域识别技术,对这样的多尺度的复杂的三维集成电路进行平面非结构的三维三棱柱网格剖分。
本专利在形成的第二三角形网格和第二三棱柱网格的基础上,分别在xy平面方向和z方向进行自适应网格细分,以此形成三维超大规模集成电路的自适应细分的三棱柱网格。
首先通过步骤1收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行二维非结构三角形网格剖分;从xy平面方向对所述三角形网格进行自适应细分;进而通过步骤2将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对所述三棱柱网格进行自适应细分。
从上述可以看出,本专利实现了通过二维网格剖分的时间复杂度对多尺度的复杂的三维集成电路进行了平面方向非结构的三维三棱柱网格剖分,并且采取分别在xy平面方向和z方向的自适应细分的方式,完全避免在小尺度区域产生过于密集的三棱柱网格。
所述步骤1可以为三维超大规模集成电路版图多边形收集与带层信息的三角形网格剖分。
其中,在所述步骤1中,所述收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;包括:
步骤1.1,获取多层所述集成电路版图包含多个顶点的多个所述多边形,除此之外在顶层之上和底层之下再增加两个能覆盖所有层的所述集成电路版图多边形的矩形多边形,分别作为顶层空气层和底层空气层的所述多边形;
步骤1.2,设置各层所述多边形的层信息,这种多边形的层信息应该既能唯一代表多边形所在的层,又能进行任意层之间的合并等布尔操作;如对于图2所示的多层集成电路版图,其为有4个金属层和3个介质层的集成电路模型,则共有2个空气层,4个金属层及3个介质层,即共有9层,为10个层界面;并用二进制数字代表各自的层,如果多边形位于哪个层界面,则该层界面所在的二进制的位为1。由于需要考虑金属层的厚度,因此位于金属层上的多边形的层信息同时包含金属层上下层界面。对图2所示的多层集成电路版图,可设置多边形的层信息如表1所示。
表1 图2所示多层集成电路各层多边形的层信息
多边形所在的层 层信息 备注
底层空气层 1 第0层,2<sup>0</sup>
金属层1 6 第1,2层,2<sup>1</sup>+2<sup>2</sup>
金属层2 24 第3,4层,2<sup>3</sup>+2<sup>4</sup>
金属层3 96 第5,6层,2<sup>5</sup>+2<sup>6</sup>
金属层4 384 第7,8层,2<sup>7</sup>+2<sup>8</sup>
顶层空气层 512 第9层,2<sup>9</sup>
步骤1.3,将各层的多个所述多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的所述多边形信息和所在层的层信息;
步骤1.4,合并投影后重合的多个所述多边形的边的所述多边形信息和所述多边形的层信息。
例如图2所示的多层集成电路版图,某个金属层1和金属层2上的多边形重合,进行合并后,这两个多边形合并为一个多边形,其层信息为:6+24=30。
步骤1.5,根据所述边交换法将所述Delaunay三角形网格对齐到多个所述多边形的各个边,同时计算多个不同层的所述多边形的边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格;在所述步骤1.5中,先试图恢复多边形的边,如果两个相交的边都为多边形的边(即无法恢复时),则在交点插入新的网格节点。
其中,在所述步骤1中,所述对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分,从xy平面方向对三角形网格进行自适应细分;包括:
步骤1.6,基于所述第一三角形网格,在每个所述多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0P 9,并通过设定的距离阈值控制所述内外辅助多边形与所述多边形P的距离;
步骤1.7,对落在所述内外辅助多边形之间的各层所述多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将投影到同一层的多层所述多边形还原到各层中,同时更新所述三角形网格及其层信息,形成第二三角形网格;
步骤1.8,直接基于网格尺寸和单元质量控制技术对所述包含对齐简化后的多边形的第二三角形网格进行自适应网格细分,形成更新的所述第二三角形网格。
所述步骤1.8包括:
步骤1.8.1,重复的在第二三角形网格中插入偏心中点,消除丢失的集成电路版图的多边形的边和被侵蚀的多边形的边;
步骤1.8.2,设定通过步骤1.8.1的第二三角形网格中待自适应细分的三角形为质量差的三角形或为最大边边长大于设定边长阈值的三角形;
步骤1.8.3,根据设定的比值阈值、最小角阈值或边长阈值获取集成电路版图的初始非结构网格中的所述待自适应细分的三角形,并将确定的所有待自适应细分的三角形放入待自适应细分的三角形集合中;所述比值阈值为:设定的三角形的外接圆的半径与其最短边的长度之比的最大限值;
步骤1.8.4,将所述待自适应细分的三角形的偏心外接圆圆心作为插入节点插入到所述待自适应细分的三角形中,以更新所述集成电路版图多边形的非结构网格剖分和所述集成电路版图中多边形的边;
重复上述步骤直至待自适应细分的三角形集合为空。
上述偏心中点按以下方法确定:
在三角形网格中找到与所述丢失边或被侵蚀边
Figure 990170DEST_PATH_IMAGE001
的第一顶点A或第二顶点B距离最近的顶点,作为最近点C;如果
Figure 438469DEST_PATH_IMAGE002
,交换第一顶点A和所述第二顶点B的位置使得
Figure 952627DEST_PATH_IMAGE003
在所述丢失边或被侵蚀边上按设定条件确定偏心中点O;所述设定条件为:所述偏心中点O使得
Figure 269207DEST_PATH_IMAGE004
等于所述设定的最小角阈值
Figure 818000DEST_PATH_IMAGE005
;所述
Figure 437200DEST_PATH_IMAGE005
为质量达到设定要求的三角形的最小角阈值;
判断线段
Figure 110758DEST_PATH_IMAGE006
Figure 44079DEST_PATH_IMAGE007
间的关系,若
Figure 509696DEST_PATH_IMAGE008
,则将所述丢失边或被侵蚀边的中点作为新的偏心中点O,若
Figure 158852DEST_PATH_IMAGE009
,则所确定的偏心中点O位置不变。
上述丢失的边为:多边形的边不是三角形网格中任何三角形的边;上述被侵蚀的多边形的边为:如果多边形的边的直径圆包含其它网格节点,且与之相连的三角形至少有一个是质量差的三角形,则该边为被侵蚀的多边形的边。
上述待自适应细分的三角形的偏心外接圆圆心按以下方法确定:
第一步,确定所述待自适应细分的三角形的外接圆圆心,设置该外接圆圆心为候选的待插入点;
第二步,当候选的待插入点不侵蚀任何集成电路版图多边形的边,且该待自适应细分的三角形的边不包含集成电路版图多边形的边时,候选的待插入点即为待自适应细分的三角形的偏心外接圆圆心,结束;
第三步,当候选的待插入点侵蚀某个集成电路版图多边形的边时,在被侵蚀的边上找到一点作为候选的待插入点,该点与该集成电路版图多边形的边的相邻边形成的三角形最小角为
Figure 647602DEST_PATH_IMAGE005
,设置候选的待插入点为三角形的偏心外接圆圆心,结束;所述相邻边为与该集成电路版图多边形的边共顶点的集成电路版图多边形的边;
第四步,当该三角形的边包含集成电路版图多边形的边,且候选的待插入点与所述包含集成电路版图多边形的边的三角形边的两个顶点形成的三角形不是质量差的三角形时,候选的待插入点即为三角形的偏心外接圆圆心,结束;
第五步,当该三角形的边包含集成电路版图多边形的边,且候选的待插入点与所述包含集成电路版图多边形的边的三角形边的两个顶点形成的三角形是质量差的三角形时,在质量差的三角形除候选的待插入点之外的另外两个顶点形成的边的中垂线上找到一点作为候选的待插入点,该点对两个顶点形成的边的张开角为
Figure 181351DEST_PATH_IMAGE005
第六步,返回第二步。
所述步骤2可以为三维超大规模集成电路进行快速的三棱柱网格剖分。
上述步骤1,已经将所有层(包括顶层空气层和底层空气层)的集成电路版图多边形投影到同一层,并且经过对齐和简化处理,再在此基础上形成经过自适应细分的第二三角形网格,步骤2将在以上步骤1的基础上,直接快速形成三维多层超大规模集成电路的三棱柱网格剖分。
基于以上更新的第二三角形网格,再完成下述步骤S2.1~S2.6,即完成了根据层界面对三棱柱在z方向进行初步分割的操作。
其中,在所述步骤2中,所述将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱,包括:
步骤2.1:根据包括金属层和介质层的每层纵向上的排列顺序(从上到下或从下到上),记录所述集成电路版图每层唯一的区域编号;例如,对于图2所示的多层集成电路版图,其共有2个空气层,4个金属层及3个介质层,可设置其区域编号如表2所示;
表2 图2所示多层集成电路各层区域编号信息
层信息 区域编号
底层空气层 1
金属层1 2
介质层1 3
金属层2 4
介质层2 5
金属层3 6
介质层3 7
金属层4 8
顶层空气层 9
步骤2.2:设定纵向上的坐标原点,根据所述集成电路版图每层的厚度及区域编号顺序,记录每层的位置信息,包括顶层空气层和底层空气层、金属层以及介质层,例如,对于图2所示的集成电路版图,其为有4个金属层和3个介质层的集成电路模型,则共有2个空气层,4个金属层及3个介质层,即共有9层,为10个层界面,记录这些层界面的位置,记为zinterface={z1, z2, …, z10},其中z1~z10如图3所示,其排列顺序与步骤2.1中的区域编号顺序一致;
步骤2.3:基于所述步骤1获得的第二三角形网格,将所有所述三角形网格在厚度方向扩展为一个所述三棱柱,所述三棱柱的上下底面三角形为所述第二三角形网格对应的所述三角形,上下底面位置为层界面最大值和最小值,从而形成第一三棱柱网格;由于步骤1.1在所有层集成电路版图多边形的基础上增加了覆盖所有层集成电路版图多边形的矩形多边形作为顶层空气层和底层空气层的多边形,所以第二三角形网格的所有三角形的层均包含顶层层界面(即最上层层界面)和底层层界面(即最下层层界面),因此,所有三角形扩展的三棱柱上下底面位置相同,均为顶层层界面(即最上层层界面)和底层层界面(即最下层层界面)所在的位置。
步骤2.4:基于所述步骤2.3获得的所述第一三棱柱网格,将所有所述三棱柱沿z方向(即在厚度方向)按zinterface进行分割,每个所述三棱柱被分割为N-1个所述三棱柱,形成第二三棱柱网格,其中N为所述集成电路版图包括上下空气层(即顶层空气层和底层空气层)的层界面个数,zinterface为层界面的位置。
其中,在所述步骤2中,所述根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分;还包括:
步骤2.5:基于所述步骤1.7获得的所述第二三角形网格,根据所述三角形网格的层信息,还原所述三角形网格被哪些层界面的多边形共用;如对于图2所示的集成电路示意图,假设第二三角形网格中的某个三角形的层编码为543,则543=29+23+24+21+22+20,即该三角形网格被第0层(即底层空气层,用编码式中的20表示)、金属层1(用编码式中的21+22表示)、金属层2(用编码式中的23+24表示)及第9层(即顶层空气层,用编码式中的29表示)共用;
步骤2.6:根据所述步骤2.5确定的所述三角形网格被哪些层界面的多边形共用,以此推算出其依次包含的区域,进而确定所述第二三棱柱网格中每个所述三棱柱所在的区域。如对于图2所示的集成电路示意图,假设第二三角形网格中的某个三角形的层编码为543,其被第0层(即底层空气层)、金属层1、金属层2及第9层(即顶层空气层)共用,则依据图3所示的多层集成电路版图的区域编号与层界面位置关系示意图,可确定该三角形网格对应的第二三棱柱网格中每个三棱柱所在的区域从下到上依次为:区域1、区域2、区域3、区域4、区域5、区域7、区域7、区域9和区域9。
可通过步骤2.7实现所述三棱柱网格在z方向统一的由细到粗的渐进变化的细分过程。
通常情况下,空气层厚度远大于介质层厚度,介质层厚度远大于金属层厚度,显然在z方向不进行网格细分是不合理的,为此本专利提出一种z方向渐变的细分方法。其思路在于,设置一个小尺寸到大尺寸的渐变过渡的近似比例r 0,使得z方向的尺寸从薄层到厚层是渐进变化的。针对本专利讨论的三维超大规模集成电路模型,薄层与厚层的位置关系可归结为以下两种情况:
1) 一边为薄层,一边为厚层:介质层/金属层-空气层
设薄层上三棱柱网格z方向上的长度为t 1, 厚层厚度为t 2,则应找到这样一个渐变比例r,使得
Figure 439157DEST_PATH_IMAGE010
式中n为厚层上细分的段数,n应满足以下公式
Figure 275526DEST_PATH_IMAGE011
显然,如果
Figure 313890DEST_PATH_IMAGE012
r=r 0,否则,可通过二分法计算r:
首先,设置n=1,逐渐增大n,使得n满足式(2),
然后,基于计算的n,设r left=r 0,
Figure 323434DEST_PATH_IMAGE013
反复进行以下计算:
Step 1: 设
r=(r left+ r right )/2
Step 2: 计算
Figure 888276DEST_PATH_IMAGE014
如果
Figure 754601DEST_PATH_IMAGE015
r right =r
转入step 1,否则,如果
Figure 217943DEST_PATH_IMAGE016
r left =r
转入step 1,否则,r即为计算的正确结果,结束。式中
Figure 968862DEST_PATH_IMAGE017
为设置的值为足够小的误差精度,如取
Figure 201260DEST_PATH_IMAGE018
一种实施例为:设最上层金属层上等分3份,即将金属层在z方向分为3份,每个三棱柱网格z方向长度为5 nm,空气层厚度为1 cm,设置薄层到厚层的渐变过渡比例为r 0=1.5。经计算,可得厚层(空气层)上细分的段数n=33,r=1.50143756,三棱柱网格z方向长度由小到大依次如表3所示。
表3 金属层过渡到空气层时空气层的细分网格的长度渐进变化
Figure 504065DEST_PATH_IMAGE020
其中,E-9指的是10的-9次方,E-8、E-7等以此类推。
2) 上下为薄层,中间为厚层:金属层-介质层-金属层
设上下薄层(金属层)上三棱柱网格z方向上的长度为t 1,中间厚层(介质层)厚度为t 2,则应找到这样一个渐变比例r,使得
Figure 387794DEST_PATH_IMAGE021
式中2n-1为厚层上细分的段数,n应满足以下公式
Figure 4720DEST_PATH_IMAGE022
显然,如果
Figure 888363DEST_PATH_IMAGE023
r=r 0,否则,可通过二分法计算r:
首先,设置n=1,逐渐增大n,使得n满足式(5),
然后,基于计算的n,设r left=r 0,
Figure 503015DEST_PATH_IMAGE024
反复进行以下计算:
Step 1: 设
r=(r left+ r right )/2
Step 2: 计算
Figure 675370DEST_PATH_IMAGE025
如果
Figure 892725DEST_PATH_IMAGE026
r right =r
转入step 1,否则,如果
Figure 21087DEST_PATH_IMAGE027
r left =r
转入step 1,否则,r即为计算的正确结果,结束。式中
Figure 868957DEST_PATH_IMAGE028
为设置的值为足够小的误差精度,如取
Figure 590925DEST_PATH_IMAGE029
另一种实施例为:设上下层金属层上等分3份,即将金属层在z方向分为3份,每个三棱柱网格z方向长度为5 nm,中间介质层厚度为1 μm,设置薄层到厚层的渐变过渡比例为r 0=1.5。经计算,可得厚层(空气层)上细分的段数2n-1=17,r=1.51561265,三棱柱网格z方向长度由小到大依次如表4所示。
表4 金属层-介质层-金属层过渡时介质层的细分网格的长度渐进变化
层编号 长度(m)
1 7.5780633E-9
2 1.1485409E-8
3 1.7407431E-8
4 2.6382922E-8
5 3.9986290E-8
6 6.0603728E-8
7 9.1851776E-8
8 1.3921171E-7
9 2.1099104E-7
10 1.3921171E-7
11 9.1851776E-8
12 6.0603728E-8
13 3.9986290E-8
14 2.6382922E-8
15 1.7407431E-8
16 1.1485409E-8
17 7.5780633E-9
以上三棱柱网格在z方向统一的由细到粗的渐进变化的细分,一方面保证了三棱柱网格的渐进变化满足场的渐进变化规律,使得电磁仿真的计算结果更加准确,另一方面,这种自适应细分保证了通过二维非结构网格自适应细分的速度来实现三维网格自适应细分的速度,且不会导致局部过于密集的三棱柱网格。
本发明通过步骤1收集并设置所有层的集成电路版图多边形的层信息,将所有层的多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有多边形的边,在多边形边的交点插入新的网格节点;对投影到同一层的多边形的边进行简化与对齐,并对简化与对齐后的多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对所述三角形网格进行自适应细分;通过步骤2将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据多边形的层信息确定其平行平板场域跨越的层,从而确定分割的三棱柱所在的区域;从z方向对所述三棱柱网格进行自适应细分。本发明所述的一种三维集成电路电磁仿真高质量网格快速生成方法,实现了通过二维网格剖分的时间复杂度对多尺度的复杂的三维集成电路进行平面方向非结构的三维三棱柱网格剖分,并且采取了分别在xy平面方向和z方向的自适应细分的方式,完全避免了在小尺度区域产生过于密集的网格。
下面参考图2-4详细描述本发明提供的一种三维集成电路电磁仿真高质量网格快速生成装置的第一实施例。如图2-4所示,本实施例提供的高质量网格快速生成装置主要包括有:第一模块和第二模块。
第一模块,用于收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行二维非结构三角形网格剖分;从xy平面方向对所述三角形网格进行自适应细分;
第二模块,用于将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对所述三棱柱网格进行自适应细分。
从上述可以看出,本专利实现了通过二维网格剖分的时间复杂度对多尺度的复杂的三维集成电路进行平面方向非结构的三维三棱柱网格剖分,并且采取分别在xy平面方向和z方向的自适应细分的方式,完全避免了在小尺度区域产生过于密集的三棱柱网格。
其中,在所述第一模块中,所述收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点,包括:
第一单元,用于获取多层所述集成电路版图包含多个顶点的多个所述多边形,除此之外在顶层之上和底层之下再增加两个能覆盖所有层所述集成电路版图多边形的矩形多边形,分别作为顶层空气层和底层空气层的所述多边形;
第二单元,用于设置各层所述多边形的层信息,这种多边形的层信息应该既能唯一代表多边形所在的层,又能进行任意层之间的合并等布尔操作;如对于图2所示的多层集成电路版图,其为有4个金属层和3个介质层的集成电路模型,则共有2个空气层,4个金属层及3个介质层,即共有9层,为10个层界面;并用二进制数字代表各自的层,如果多边形位于哪个层界面,则该层界面所在的二进制的位为1。由于需要考虑金属层的厚度,因此位于金属层上的多边形的层信息同时包含金属层上下层界面。对图2所示的多层集成电路版图,可设置多边形的层信息如上述表1所示。
第三单元,用于将各层的多个所述多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的所述多边形信息和所在层的层信息;
第四单元,用于合并投影后重合的多个所述多边形的边的所述多边形信息和所述多边形的层信息。
例如图2所示的多层集成电路版图,某个金属层1和金属层2上的多边形重合,进行合并后,这两个多边形合并为一个多边形,其层信息为:6+24=30。
第五单元,用于根据所述边交换法将所述Delaunay三角形网格对齐到多个所述多边形的各个边,同时计算多个不同层的所述多边形的边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格;在所述第五单元中,先试图恢复多边形的边,如果两个相交的边都为多边形的边(即无法恢复时),则在交点插入新的网格节点。
其中,在所述第一模块中,所述对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;从xy平面方向对三角形网格进行自适应细分;包括:
第六单元,用于基于所述第一三角形网格,在每个所述多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0P 9,并通过设定的距离阈值控制所述内外辅助多边形与所述多边形P的距离;
第七单元,用于对落在所述内外辅助多边形之间的各层所述多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将投影到同一层的多层所述多边形还原到各层中,同时更新所述三角形网格及其层信息,形成第二三角形网格;
第八单元,用于直接基于网格尺寸和单元质量控制技术对所述包含对齐简化后的多边形的第二三角形网格进行自适应网格细分,形成更新的所述第二三角形网格。
所述第八单元,包括:
第一子单元,用于重复的在第二三角形网格中插入偏心中点,消除丢失的集成电路版图的多边形的边和被侵蚀的多边形的边;
第二子单元,用于设定通过第一子单元的第二三角形网格中待自适应细分的三角形为质量差的三角形或为最大边边长大于设定边长阈值的三角形;
第三子单元,用于根据设定的比值阈值、最小角阈值或边长阈值获取集成电路版图的初始非结构网格中的所述待自适应细分的三角形,并将确定的所有待自适应细分的三角形放入待自适应细分的三角形集合中;所述比值阈值为:设定的三角形的外接圆的半径与其最短边的长度之比的最大限值;
第四子单元,用于将所述待自适应细分的三角形的偏心外接圆圆心作为插入节点插入到所述待自适应细分的三角形中,以更新所述集成电路版图多边形的非结构网格剖分和所述集成电路版图中多边形的边;
重复上述第一子单元至第四子单元的操作直至待自适应细分的三角形集合为空。
上述偏心中点按以下方法确定:
在三角形网格中找到与所述丢失边或被侵蚀边
Figure 549654DEST_PATH_IMAGE030
的第一顶点A或第二顶点B距离最近的顶点,作为最近点C;如果
Figure 283255DEST_PATH_IMAGE031
,交换第一顶点A和所述第二顶点B的位置使得
Figure 98764DEST_PATH_IMAGE032
在所述丢失边或被侵蚀边上按设定条件确定偏心中点O;所述设定条件为:所述偏心中点O使得
Figure 245712DEST_PATH_IMAGE033
等于所述设定的最小角阈值
Figure 195082DEST_PATH_IMAGE034
;所述
Figure 907823DEST_PATH_IMAGE034
为质量达到设定要求的三角形的最小角阈值;
判断线段
Figure 831917DEST_PATH_IMAGE035
Figure 403843DEST_PATH_IMAGE036
间的关系,若
Figure 704375DEST_PATH_IMAGE037
,则将所述丢失边或被侵蚀边的中点作为新的偏心中点O,若
Figure 802781DEST_PATH_IMAGE038
,则所确定的偏心中点O位置不变。
上述丢失的边为:多边形的边不是三角形网格中任何三角形的边;
上述被侵蚀的多边形的边为:如果多边形的边的直径圆包含其它网格节点,且与之相连的三角形至少有一个是质量差的三角形,则该边为被侵蚀的多边形的边。
上述待自适应细分的三角形的偏心外接圆圆心按以下方法确定:
第一步,确定所述待自适应细分的三角形的外接圆圆心,设置该外接圆圆心为候选的待插入点;
第二步,当候选的待插入点不侵蚀任何集成电路版图多边形的边,且该待自适应细分的三角形的边不包含集成电路版图多边形的边时,候选的待插入点即为待自适应细分的三角形的偏心外接圆圆心,结束;
第三步,当候选的待插入点侵蚀某个集成电路版图多边形的边时,在被侵蚀的边上找到一点作为候选的待插入点,该点与该集成电路版图多边形的边的相邻边形成的三角形最小角为
Figure 897776DEST_PATH_IMAGE039
,设置候选的待插入点为三角形的偏心外接圆圆心,结束;所述相邻边为与该集成电路版图多边形的边共顶点的集成电路版图多边形的边;
第四步,当该三角形的边包含集成电路版图多边形的边,且候选的待插入点与所述包含集成电路版图多边形的边的三角形边的两个顶点形成的三角形不是质量差的三角形时,候选的待插入点即为三角形的偏心外接圆圆心,结束;
第五步,当该三角形的边包含集成电路版图多边形的边,且候选的待插入点与所述包含集成电路版图多边形的边的三角形边的两个顶点形成的三角形是质量差的三角形时,在质量差的三角形除候选的待插入点之外的另外两个顶点形成的边的中垂线上找到一点作为候选的待插入点,该点对两个顶点形成的边的张开角为
Figure 940687DEST_PATH_IMAGE040
第六步,返回第二步。
上述第一模块,已经将所有层(包括顶层空气层和底层空气层)的集成电路版图多边形投影到同一层,并且经过对齐和简化处理,再在此基础上形成经过自适应细分的第二三角形网格,第二模块将在以上第一模块的基础上,直接快速形成三维多层超大规模集成电路的三棱柱网格剖分。
其中,在所述第二模块中,所述将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱,包括:
用于根据包括金属层和介质层的每层纵向上的排列顺序(从上到下或从下到上),记录所述集成电路版图每层唯一的区域编号;例如,对于图2所示的多层集成电路版图,其共有2个空气层,4个金属层及3个介质层,可设置其区域编号如上述表2所示;
用于设定纵向上的坐标原点,根据所述集成电路版图每层的厚度及区域编号顺序,记录每层的位置信息,包括顶层空气层和底层空气层、金属层以及介质层,例如,对于图2所示的集成电路版图,其为有4个金属层和3个介质层的集成电路模型,则共有2个空气层,4个金属层及3个介质层,即共有9层,为10个层界面,记录这些层界面的位置,记为zinterface={z1,z2, …, z10},其中z1~z10如图3所示,其排列顺序与上述的区域编号顺序一致。
用于基于所述第一模块获得的所述第二三角形网格,将所有所述三角形网格在厚度方向扩展为一个所述三棱柱,所述三棱柱的上下底面三角形为所述第二三角形网格对应的所述三角形,上下底面位置为层界面最大值和最小值,从而形成第一三棱柱网格;由于第一单元在所有层集成电路版图多边形的基础上增加了覆盖所有层集成电路版图多边形的矩形多边形作为顶层空气层和底层空气层的多边形,所以第二三角形网格的所有三角形的层均包含顶层层界面(即最上层层界面)和底层层界面(即最下层层界面),因此,所有三角形扩展的三棱柱上下底面位置相同,均为顶层层界面(即最上层层界面)和底层层界面(即最下层层界面)所在的位置。
用于所述第三单元获得的所述第一三棱柱网格,将所有所述三棱柱沿z方向(即在厚度方向)按zinterface进行分割,每个所述三棱柱被分割为N-1个所述三棱柱,形成第二三棱柱网格,其中N为所述集成电路版图包括上下空气层(顶层空气层和底层空气层)的层界面个数,zinterface为层界面的位置。
其中,在所述第二模块中,所述根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分,包括:
用于基于所述第七单元获得的所述第二三角形网格,根据所述三角形网格的层信息,还原所述三角形网格被哪些层界面的所述多边形共用;如对于图2所示的集成电路示意图,假设第二三角形网格中的某个三角形的层编码为543,则543=29+23+24+21+22+20,即该三角形网格被第0层(即底层空气层,用编码式中的20表示)、金属层1(用编码式中的21+22表示)、金属层2(用编码式中的23+24表示)及第9层(即顶层空气层,用编码式中的29表示)共用。
用于根据确定的所述三角形网格被哪些层界面的所述多边形共用,以此推算出其依次包含的区域,进而确定所述第二三棱柱网格中每个所述三棱柱所在的区域。如对于图2所示的集成电路示意图,假设第二三角形网格中的某个三角形的层编码为543,其被第0层(即底层空气层)、金属层1、金属层2及第9层(即顶层空气层)共用,则依据图3所示的多层集成电路版图的区域编号与层界面位置关系示意图,可确定该三角形网格对应的第二三棱柱网格中每个三棱柱所在的区域从下到上依次为:区域1、区域2、区域3、区域4、区域5、区域7、区域7、区域9和区域9。
可通过第二模块实现所述三棱柱网格在z方向统一的由细到粗的渐进变化的细分过程。
通常情况下,空气层厚度远大于介质层厚度,介质层厚度远大于金属层厚度,显然在z方向不进行网格细分是不合理的,为此本专利提出一种z方向渐变的细分方法。其思路在于,设置一个小尺寸到大尺寸的渐变过渡的近似比例r 0,使得z方向的尺寸从薄层到厚层是渐进变化的。针对本专利讨论的三维超大规模集成电路模型,薄层与厚层的位置关系可归结为以下两种情况:
1) 一边为薄层,一边为厚层:介质层/金属层-空气层
设薄层上三棱柱网格z方向上的长度为t 1, 厚层厚度为t 2,则应找到这样一个渐变比例r,使得
Figure 107226DEST_PATH_IMAGE041
式中n为厚层上细分的段数,n应满足以下公式
Figure 732243DEST_PATH_IMAGE042
显然,如果
Figure 201401DEST_PATH_IMAGE043
r=r 0,否则,可通过二分法计算r:
首先,设置n=1,逐渐增大n,使得n满足式(2),
然后,基于计算的n,设r left=r 0,
Figure 544658DEST_PATH_IMAGE044
反复进行以下计算:
Step 1: 设
r=(r left+ r right )/2
Step 2: 计算
Figure 249309DEST_PATH_IMAGE045
如果
Figure 181361DEST_PATH_IMAGE046
r right =r
转入step 1,否则,如果
Figure DEST_PATH_IMAGE047
r left =r
转入step 1,否则,r即为计算的正确结果,结束。式中
Figure 680476DEST_PATH_IMAGE048
为设置的值为足够小的误差精度,如取
Figure DEST_PATH_IMAGE049
一种实施例为:设最上层金属层上等分3份,即将金属层在z方向分为3份,每个三棱柱网格z方向长度为5 nm,空气层厚度为1 cm,设置薄层到厚层的渐变过渡比例为r 0=1.5。经计算,可得厚层(空气层)上细分的段数n=33,r=1.50143756,三棱柱网格z方向长度由小到大依次如上述表3所示。
2) 上下为薄层,中间为厚层:金属层-介质层-金属层
设上下薄层(金属层)上三棱柱网格z方向上的长度为t 1,中间厚层(介质层)厚度为t 2,则应找到这样一个渐变比例r,使得
Figure 917553DEST_PATH_IMAGE050
式中2n-1为厚层上细分的段数,n应满足以下公式
Figure DEST_PATH_IMAGE051
显然,如果
Figure 160316DEST_PATH_IMAGE052
r=r 0,否则,可通过二分法计算r:
首先,设置n=1,逐渐增大n,使得n满足式(5),
然后,基于计算的n,设r left=r 0,
Figure 681296DEST_PATH_IMAGE053
反复进行以下计算:
Step 1: 设
r=(r left+ r right )/2
Step 2: 计算
Figure 616891DEST_PATH_IMAGE054
如果
Figure 934740DEST_PATH_IMAGE055
r right =r
转入step 1,否则,如果
Figure 856559DEST_PATH_IMAGE056
r left =r
转入step 1,否则,r即为计算的正确结果,结束。式中
Figure 372991DEST_PATH_IMAGE057
为设置的值为足够小的误差精度,如取
Figure 417171DEST_PATH_IMAGE058
另一种实施例为:设上下层金属层上等分3份,即将金属层在z方向分为3份,每个三棱柱网格z方向长度为5 nm,中间介质层厚度为1 μm,设置薄层到厚层的渐变过渡比例为r 0=1.5。经计算,可得厚层(空气层)上细分的段数2n-1=17,r=1.51561265,三棱柱网格z方向长度由小到大依次如上述表4所示。
以上三棱柱网格在z方向统一的由细到粗的渐进变化的细分,一方面保证了三棱柱网格的渐进变化满足场的渐进变化规律,使得电磁仿真的计算结果更加准确,另一方面,这种自适应细分保证了通过二维非结构网格自适应细分的速度来实现三维网格自适应细分的速度,且不会导致局部过于密集的三棱柱网格。
本发明通过第一模块收集并设置所有层的集成电路版图多边形的层信息,将所有层的多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有多边形的边,在多边形边的交点插入新的网格节点;对投影到同一层的多边形的边进行简化与对齐,并对简化与对齐后的多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对所述三角形网格进行自适应细分;通过第二模块将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据多边形的层信息确定其平行平板场域跨越的层,从而确定分割的三棱柱所在的区域;从z方向对所述三棱柱网格进行自适应细分。本发明所述的一种三维集成电路电磁仿真高质量网格快速生成装置,实现了通过二维网格剖分的时间复杂度对多尺度的复杂的三维集成电路进行平面方向非结构的三维三棱柱网格剖分,并且采取了分别在xy平面方向和z方向的自适应细分的方式,完全避免了在小尺度区域产生过于密集的网格。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种三维集成电路电磁仿真高质量网格快速生成方法,其特征在于,包括以下步骤:
步骤1,收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;
步骤2,将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分。
2.根据权利要求1所述的三维集成电路电磁仿真高质量网格快速生成方法,其特征在于,在所述步骤1中,所述收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;包括:
步骤1.1,获取多层所述集成电路版图包含多个顶点的多个所述多边形,增加两个能覆盖所有层的所述集成电路版图多边形的矩形多边形,分别作为顶层空气层和底层空气层的所述多边形;
步骤1.2,设置各层所述多边形的层信息,并用二进制数字代表各自的层;
步骤1.3,将各层的多个所述多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的所述多边形信息和所在层的层信息;
步骤1.4,合并投影后重合的多个所述多边形的边的所述多边形信息和所述多边形的层信息;
步骤1.5,根据所述边交换法将所述Delaunay三角形网格对齐到多个所述多边形的各个边,同时计算多个不同层的所述多边形的边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格。
3.根据权利要求2所述的三维集成电路电磁仿真高质量网格快速生成方法,其特征在于,在所述步骤1中,所述对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;包括:步骤1.6,基于所述第一三角形网格,在每个所述多边形的内外分别形成夹住所述多边形的内外辅助多边形,并通过设定的距离阈值控制所述内外辅助多边形与所述多边形的距离;
步骤1.7,对落在所述内外辅助多边形之间的各层所述多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将投影到同一层的多层所述多边形还原到各层中,同时更新所述三角形网格及其层信息,形成第二三角形网格;
步骤1.8,基于网格尺寸和单元质量控制技术对所述第二三角形网格进行自适应网格细分,形成更新的所述第二三角形网格。
4.根据权利要求3所述的三维集成电路电磁仿真高质量网格快速生成方法,其特征在于,在所述步骤2中,所述将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;包括:
步骤2.1:根据包括金属层和介质层的每层纵向上的排列顺序,记录所述集成电路版图每层唯一的区域编号;
步骤2.2:设定纵向上的坐标原点,根据所述集成电路版图每层的厚度及区域编号顺序,记录每层的位置信息;
步骤2.3:基于所述步骤1获得的所述第二三角形网格,将所有所述三角形网格在厚度方向扩展为一个所述三棱柱,所述三棱柱的上下底面三角形为所述第二三角形网格对应的所述三角形,上下底面位置为层界面最大值和最小值,从而形成第一三棱柱网格;
步骤2.4:基于所述步骤2.3获得的所述第一三棱柱网格,将所有所述三棱柱沿z方向按zinterface进行分割,每个所述三棱柱被分割为N-1个所述三棱柱,形成第二三棱柱网格,其中N为所述集成电路版图包括上下空气层的层界面个数,zinterface为层界面的位置。
5.根据权利要求4所述的三维集成电路电磁仿真高质量网格快速生成方法,其特征在于,在所述步骤2中,所述根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分;包括:
步骤2.5:基于所述步骤1.7获得的所述第二三角形网格,根据所述三角形网格的层信息,还原所述三角形网格被哪些层界面的所述多边形共用;
步骤2.6:根据所述步骤2.5确定的所述三角形网格被哪些层界面的所述多边形共用,以此推算出其依次包含的区域,进而确定所述第二三棱柱网格中每个所述三棱柱所在的区域;
步骤2.7,实现所述三棱柱网格在z方向统一的由细到粗的渐进变化的细分过程。
6.一种三维集成电路电磁仿真高质量网格快速生成装置,其特征在于,包括:
第一模块,用于收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;
第二模块,用于将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分。
7.根据权利要求6所述的三维集成电路电磁仿真高质量网格快速生成装置,其特征在于,在所述第一模块中,所述收集并设置所有层的集成电路版图多边形的层信息,将所有层的所述多边形投影到同一层并进行初始网格剖分;采用边交换法恢复所有所述多边形的边,在不同层的所述多边形的边的交点插入新的网格节点;包括:
第一单元,用于获取多层所述集成电路版图包含多个顶点的多个所述多边形,增加两个能覆盖所有层所述集成电路版图多边形的矩形多边形,分别作为顶层空气层和底层空气层的所述多边形;
第二单元,用于设置各层所述多边形的层信息,并用二进制数字代表各自的层;
第三单元,用于将各层的多个所述多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的所述多边形信息和所在层的层信息;
第四单元,用于合并投影后重合的多个所述多边形的边的所述多边形信息和所述多边形的层信息;
第五单元,用于根据所述边交换法将所述Delaunay三角形网格对齐到多个所述多边形的各个边,同时计算多个不同层的所述多边形的边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格。
8.根据权利要求7所述的三维集成电路电磁仿真高质量网格快速生成装置,其特征在于,在所述第一模块中,所述对投影到同一层的所述多边形的边进行简化与对齐,并对简化与对齐后的所述多边形及整个集成电路版图区域进行三角形网格剖分;从xy平面方向对三角形网格进行自适应细分;包括:
第六单元,用于基于所述第一三角形网格,在每个所述多边形的内外分别形成夹住所述多边形的内外辅助多边形,并通过设定的距离阈值控制所述内外辅助多边形与所述多边形的距离;
第七单元,用于对落在所述内外辅助多边形之间的各层所述多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将投影到同一层的多层所述多边形还原到各层中,同时更新所述三角形网格及其层信息,形成第二三角形网格;
第八单元,用于基于网格尺寸和单元质量控制技术对所述第二三角形网格进行自适应网格细分,形成更新的所述第二三角形网格。
9.根据权利要求8所述的三维集成电路电磁仿真高质量网格快速生成装置,其特征在于,在所述第二模块中,所述将剖分的三角形网格在厚度方向扩展为三棱柱网格,并根据层界面纵向位置将其分割为多个三棱柱;包括:
用于根据包括金属层和介质层的每层纵向上的排列顺序,记录所述集成电路版图每层唯一的区域编号;
用于设定纵向上的坐标原点,根据所述集成电路版图每层的厚度及区域编号顺序,记录每层的位置信息;
用于基于所述第一模块获得的所述第二三角形网格,将所有所述三角形网格在厚度方向扩展为一个所述三棱柱,所述三棱柱的上下底面三角形为所述第二三角形网格对应的所述三角形,上下底面位置为层界面最大值和最小值,从而形成第一三棱柱网格;
用于所述第三单元获得的所述第一三棱柱网格,将所有所述三棱柱沿z方向按zinterface进行分割,每个所述三棱柱被分割为N-1个所述三棱柱,形成第二三棱柱网格,其中N为所述集成电路版图包括上下空气层的层界面个数,zinterface为层界面的位置。
10.根据权利要求9所述的三维集成电路电磁仿真高质量网格快速生成装置,其特征在于,在所述第二模块中,所述根据所述多边形的层信息确定其平行平板场域跨越的层,从而确定分割的所述三棱柱所在的区域;从z方向对三棱柱网格进行自适应细分;包括:用于基于所述第七单元获得的所述第二三角形网格,根据所述三角形网格的层信息,还原所述三角形网格被哪些层界面的所述多边形共用;
用于根据确定的所述三角形网格被哪些层界面的所述多边形共用,以此推算出其依次包含的区域,进而确定所述第二三棱柱网格中每个所述三棱柱所在的区域;
用于实现所述三棱柱网格在z方向统一的由细到粗的渐进变化的细分过程。
CN202011331519.XA 2020-11-24 2020-11-24 三维集成电路电磁仿真高质量网格快速生成方法及装置 Active CN112149336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011331519.XA CN112149336B (zh) 2020-11-24 2020-11-24 三维集成电路电磁仿真高质量网格快速生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011331519.XA CN112149336B (zh) 2020-11-24 2020-11-24 三维集成电路电磁仿真高质量网格快速生成方法及装置

Publications (2)

Publication Number Publication Date
CN112149336A true CN112149336A (zh) 2020-12-29
CN112149336B CN112149336B (zh) 2021-03-02

Family

ID=73887253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011331519.XA Active CN112149336B (zh) 2020-11-24 2020-11-24 三维集成电路电磁仿真高质量网格快速生成方法及装置

Country Status (1)

Country Link
CN (1) CN112149336B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112836415A (zh) * 2021-02-26 2021-05-25 英特工程仿真技术(大连)有限公司 一种电磁场非匹配棱边元的插值方法
CN114550980A (zh) * 2022-03-08 2022-05-27 苏州兴派丽智能科技有限公司 一种导电膜、其制备方法以及显示装置
CN114970443A (zh) * 2022-06-14 2022-08-30 上海格宇软件有限公司 一种基于区域分解和网格压印的芯片网格生成方法及系统
CN118334276A (zh) * 2024-06-12 2024-07-12 芯瑞微(上海)电子科技有限公司 基于pcb模型的混合元共形网格生成装置及其相关设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251770A1 (en) * 2004-05-04 2005-11-10 Frank Mark D System and method for determining signal coupling coefficients for lines
JP2019159905A (ja) * 2018-03-14 2019-09-19 富士通株式会社 生成プログラム、生成装置及び生成方法
CN110674615A (zh) * 2019-12-06 2020-01-10 北京唯智佳辰科技发展有限责任公司 一种集成电路版图多边形自适应简化处理方法及装置
CN110675502A (zh) * 2019-11-26 2020-01-10 北京唯智佳辰科技发展有限责任公司 多层集成电路版图多边形对齐和简化处理方法及装置
CN110689569A (zh) * 2019-12-10 2020-01-14 北京唯智佳辰科技发展有限责任公司 集成电路版图场域识别与网格细分处理方法及装置
CN111737947A (zh) * 2020-08-06 2020-10-02 北京智芯仿真科技有限公司 一种基于场路耦合的集成电路全波ibis模型提取方法及装置
CN111737943A (zh) * 2020-08-06 2020-10-02 北京智芯仿真科技有限公司 一种基于等效电路模型的集成电路ibis模型提取方法及系统
CN111898330A (zh) * 2020-06-08 2020-11-06 北京智芯仿真科技有限公司 基于多层次并行策略的集成电路电磁响应计算方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251770A1 (en) * 2004-05-04 2005-11-10 Frank Mark D System and method for determining signal coupling coefficients for lines
JP2019159905A (ja) * 2018-03-14 2019-09-19 富士通株式会社 生成プログラム、生成装置及び生成方法
CN110675502A (zh) * 2019-11-26 2020-01-10 北京唯智佳辰科技发展有限责任公司 多层集成电路版图多边形对齐和简化处理方法及装置
CN110674615A (zh) * 2019-12-06 2020-01-10 北京唯智佳辰科技发展有限责任公司 一种集成电路版图多边形自适应简化处理方法及装置
CN110689569A (zh) * 2019-12-10 2020-01-14 北京唯智佳辰科技发展有限责任公司 集成电路版图场域识别与网格细分处理方法及装置
CN111898330A (zh) * 2020-06-08 2020-11-06 北京智芯仿真科技有限公司 基于多层次并行策略的集成电路电磁响应计算方法及装置
CN111737947A (zh) * 2020-08-06 2020-10-02 北京智芯仿真科技有限公司 一种基于场路耦合的集成电路全波ibis模型提取方法及装置
CN111737943A (zh) * 2020-08-06 2020-10-02 北京智芯仿真科技有限公司 一种基于等效电路模型的集成电路ibis模型提取方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112836415A (zh) * 2021-02-26 2021-05-25 英特工程仿真技术(大连)有限公司 一种电磁场非匹配棱边元的插值方法
CN112836415B (zh) * 2021-02-26 2023-12-05 英特工程仿真技术(大连)有限公司 一种电磁场非匹配棱边元的插值方法
CN114550980A (zh) * 2022-03-08 2022-05-27 苏州兴派丽智能科技有限公司 一种导电膜、其制备方法以及显示装置
CN114970443A (zh) * 2022-06-14 2022-08-30 上海格宇软件有限公司 一种基于区域分解和网格压印的芯片网格生成方法及系统
CN118334276A (zh) * 2024-06-12 2024-07-12 芯瑞微(上海)电子科技有限公司 基于pcb模型的混合元共形网格生成装置及其相关设备

Also Published As

Publication number Publication date
CN112149336B (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
CN112149336B (zh) 三维集成电路电磁仿真高质量网格快速生成方法及装置
CN112132973B (zh) 三维集成电路电磁仿真全三维网格快速生成方法及装置
CN112131774B (zh) 用于集成电路三棱柱网格剖分的混合阶有限元方法及装置
CN110689569B (zh) 集成电路版图场域识别与网格细分处理方法及装置
CN111898330B (zh) 基于多层次并行策略的集成电路电磁响应计算方法及装置
Trotts et al. Simplification of tetrahedral meshes with error bounds
CN111931458B (zh) 基于混合阶有限元的三维集成电路电磁场计算方法及装置
US10312192B2 (en) Integrated circuit having staggered conductive features
CN111767688B (zh) 集成电路版图多边形非结构网格自适应细分方法和系统
KR102320067B1 (ko) 집적 회로 구조물, 레이아웃 다이어그램 방법, 및 시스템
CN111243094B (zh) 一种基于点灯法的三维模型精确体素化方法
US7844939B2 (en) Mask pattern correction program and system
CN110807289A (zh) 基于后验误差估计的集成电路自适应有限元网格细分方法
CN109551768A (zh) 一种基于stl的3d打印文件的数据处理方法
TW202219807A (zh) 用於電容值提取的系統、方法及儲存媒體
CN112290955B (zh) 基于集成电路阻抗网络提取的网格节点编码方法及系统
KR101586765B1 (ko) 반도체 공정 기반 3차원 가상 형상 모델링 방법
Mattison A high quality, low cost router for MOS/LSI
CN111814422B (zh) 集成电路电磁仿真多重网格法的插值矩阵构造方法及装置
CN114330214B (zh) 一种包含走线的集成电路快速高精度计算的方法及装置
US7098912B1 (en) Method of modifying a volume mesh using sheet insertion
CN112052641B (zh) 大规模集成电路版图非结构网格偏心中点生成方法和系统
US20120304134A1 (en) Exposure data generation method
CN114330213B (zh) 一种基于版图多边形走线的自动识别转换方法及装置
JP3288190B2 (ja) Lsiのレイアウト設計方法およびその装置

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