CN104133955B - 一种提取电路寄生参数的方法 - Google Patents
一种提取电路寄生参数的方法 Download PDFInfo
- Publication number
- CN104133955B CN104133955B CN201410361292.1A CN201410361292A CN104133955B CN 104133955 B CN104133955 B CN 104133955B CN 201410361292 A CN201410361292 A CN 201410361292A CN 104133955 B CN104133955 B CN 104133955B
- Authority
- CN
- China
- Prior art keywords
- chip circuit
- circuit
- layer
- threedimensional model
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003071 parasitic effect Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 239000000284 extract Substances 0.000 claims abstract description 6
- 238000013461 design Methods 0.000 claims description 15
- 238000004088 simulation Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 13
- 239000004020 conductor Substances 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 8
- 238000013515 script Methods 0.000 claims description 7
- 238000002161 passivation Methods 0.000 claims description 4
- 239000000463 material Substances 0.000 claims description 3
- 230000008676 import Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 230000005611 electricity Effects 0.000 claims 1
- 238000013519 translation Methods 0.000 claims 1
- 238000000605 extraction Methods 0.000 abstract description 10
- 230000003111 delayed effect Effects 0.000 abstract 1
- 238000012938 design process Methods 0.000 abstract 1
- 230000003044 adaptive effect Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种提取电路寄生参数的方法,其包括:建立芯片级集成电路的三维模型;对该三维模型进行逻辑操作并设置该三维模型中的层参量;设置电流流入/流出位置,编辑运行条件和监视进度,使得三维模型建立和芯片电路寄生参数提取自动化;开始仿真该芯片电路,并提取相应的芯片电路寄生参数。将计算所得的寄生参数,反馈到集成电路设计过程,可以更加准确地估计该芯片电路的延时,从而避免实际延时与预计延时相差较大的情况。确保芯片的工作频率能够达到额定运行状态,并且该芯片能够正常工作。
Description
技术领域
本发明涉及分析芯片级集成电路的技术领域,特别是涉及一种频率在5GHz以下、精度要求高并且包含电感参量的芯片级集成电路的寄生参数提取方法。
背景技术
随着集成电路工艺节点的不断缩小,器件结构也推陈出新,集成电路设计中的寄生效应除了对芯片的信号完整性,可靠性造成影响外,对信号时序、噪音和功耗方面的影响也不断增大。因此,在进行寄生参数提取时,提取参数要求得精度越来越高。相比于传统2.5维几何图形提取的方法,利用场求解器直接对3维电路结构进行全波电磁场仿真,求解出的寄生参数精度更高。但当电路规模较大时,全波场求解花费的时间成本也是相当高的。因此,对提取精度和提取时间的两方面折衷后,采用Q3D extractor对3维电路结构的电场和磁场分别建立方程求解的准静态电磁场仿真提取寄生参数的方法,既能提高提取精度,也使仿真时间不至于过长。另外,采用分布式计算,超级计算机等技术也大大提高了其运算能力和速度,使得追求更高的精度成为可能。
中国专利申请CN 103164572 A公开了一种用于集成电路互连线寄生电容的建模方法。所述的建模方法为:针对一个给定互连线结构,用有限元法求其寄生电容的一阶、二阶敏感度,建立对应的二阶寄生电容基础表达式,并用所述表达式计算设计尺寸参数有效范围内若干计算点的寄生电容初值,再用有限元场求解器直接算出这些计算点的寄生电容值,把相同点的这两个电容值相减,得到一系列误差值,用这些误差值拟合出一个误差修正表达式,把此误差修正表达式叠加到之前得到的二阶寄生电容基础表达式上,最终得到所述互连线结构更为精确的寄生电容表达式。然而,此发明的建模方法所针对的对象是集成电路中的任一互连线结构,然后通过有限元场求解器计算若干计算点之间的寄生电容,即经过正交验证后的计算点之间的寄生电容,各个元器件之间以及各互连线之间的连接所造成的寄生参数误差通过修正误差来避免,由此得到的寄生电容表达式的误差将取决于修正误差的精度;另外,此发明只能够应用于提取寄生电容的情况,各元器件之间的派生电感以及集成电路的寄生电感则不能通过此方法所得的计算公式来确定。
发明内容
本发明的目的在于提供一种在较短的时间内提取更高精度的芯片级寄生参数的方法。具体地,本发明可以通过建立一套适用于Q3D接口的Python脚本,可针对不同工艺、不同结构的集成电路物理设计提取寄生参数,可操作性和可重复性强。
本发明的目的可以通过一种提取电路寄生参数的方法来实现,具体包括以下步骤:
(1)根据芯片电路的物理设计,读取该芯片电路的二维版图;
(2)根据该二维版图以及该电路的高度和/或厚度信息,建立相对应的芯片电路的三维模型,其中该芯片电路的各元器件在该三维模型中表示为若干不同的层;
(3)对该三维模型执行逻辑操作并赋予属性参量;
(4)根据该物理设计,设置该三维模型的电流流入/流出位置;
(5)启动场求解器,仿真该芯片电路的运行情况,并提取该芯片电路的寄生参数。
在一实施例中,步骤(3)中的该逻辑操作包括平移该层、扩展该层、逻辑相交/相减该层的重叠部分、以及合并同类型的该层。
在一实施例中,步骤(3)中的该逻辑操作包括根据该物理设计,在该三维模型中添加相对应的介质层和钝化层。
在一实施例中,步骤(3)中的该属性参量根据该芯片电路的导体材质进行赋值。
在一实施例中,步骤(4)中的该电流流入/流出位置为该芯片电路的输入/输出引线。
在一实施例中,步骤(5)中的该寄生参数包括电容矩阵、所测导体的电感、电阻,所述寄生参数构成等效电路模型。
在一实施例中,该方法进一步包括:设置仿真模拟过程的运行条件和监视进度,该芯片电路根据该运行条件自动建立相应的三维模型并开始仿真模拟过程,根据该监视进度检查所述仿真模拟过程是否存在错误;若该仿真模拟过程发生错误时,该场求解器自动发出错误警报,并输出当前计算结果和错误位置。
附图说明
图1是根据本发明实施例的方法流程图。
具体实施方式
下面将结合附图以及具体实施方法来详细说明本发明,在本发明的示意性实施及说明用来解释本发明,但并不作为对本发明的限定。
如图1所示,在步骤1中,使用者可以根据芯片级集成电路的具体物理设计,读取该芯片电路的二维版图文件。在本实施例中,由于GDS文件是集成电路版图设计中最常用的用语言描述图形数据的文件格式,因此GDS文件作为标准单元模型而被读取。其中,标准单元是指IC半定制设计中的已经经过验证的逻辑单元电路,例如与非门电路、加法器电路等。更复杂的芯片级集成电路则可采用不同的标准单元搭建而成,在设计芯片级集成电路的版图时,可以通过合理组合标准单元的GDS,从而得到所需的芯片电路二维版图GDS文件。另外,GDS文件还可以包括该芯片级集成电路的不同掩膜层的二维版图信息。
在步骤2中,使用者可根据芯片电路的高度和/或厚度信息,在各个二维版图GDS文件的基础上,建立相对应的芯片电路的三维模型。在本实施例中,可以将芯片电路的高度和/或厚度信息制作成Layer mapping.tech文件,其中该高度和/或厚度信息在该Layermapping.tech文件中表示为相对应的层高度和/或厚度,然后Layer mapping.tech文件与GDS文件一起导入场求解器中,即可得到芯片电路的初步三维模型。
在本实施例中,选用Q3D Extractor作为有限元场求解器,其属于准静态的电磁场仿真软件,即其仿真结果只在特定的频率范围内是准确的,其中有限元法是其中一种常用的计算Maxwell方程组数值的方法;另外,本发明在提取电路寄生参数时,还会对Maxwell方程组进行简化处理。因此,可以确定在本实施例中Q3D的适用频率上限为5GHz。当一并导入GDS文件和Layer mapping.tech文件时,首先导入GDS文件,然后根据Layer mapping.tech文件的文本信息,有条件地将关联变量从Layer mapping.tech文件传递到GDS文件,从而得到芯片电路的初步三维模型。
上述初步三维模型并不包括芯片电路的介质层和钝化层等。在步骤3中,可以使用场求解器Q3D添加相对应的介质层和钝化层等。
通过这种设置,可以得到更接近实际的芯片电路结构的三维模型,使得在后续的仿真步骤中,当芯片电路处于运行状态时,Q3D可以利用仿真度高的三维模型计算得出更精确的电路寄生参数。
由于上述初步三维模型是基于GDS二维版图文件和Layer mapping.tech文件中的高度和/或厚度信息简单形成的三维模型,在该三维模型中,芯片电路中的一部分元器件可能会产生失真、干涉、相离等现象。当三维模型存在错误时,场求解器Q3D不能进行仿真。在步骤4中,使用者可以使用Q3D对该三维模型中的各个层进行逻辑操作,例如:当元器件的尺寸与设计要求不符时,可以扩展该层;当元器件之间发生相离时,可以平移该层;当元器件之间发生干涉时,可以根据实际情况,对发生干涉的元器件执行相交/相减操作;当紧贴的或发生干涉的元器件是同类型元器件时,可以根据实际情况合并同类型元器件。
在步骤5中,可以使用场求解器Q3D为导体层设置材质参量。考虑到不同的导体材质具有不同的导电率,在计算电路寄生参数时,导电层的导电率是非常重要的参量。利用Q3D建立芯片电路的三维模型时,可以对该三维模型中的各个层赋值,即为各个层设置相对应的导体材质。
在步骤6中,根据该芯片电路的物理设计,可以定义电流流入位置和电流流出位置。该芯片电路可包括一个或多个输入/输出引线。这意味着,该芯片电路可能具有至少一种有效电连接方式,并且当该芯片电路以不同的电连接方式进行连接时,电流流经其内部的电路结构也会不同,也就是说,该芯片电路以不同的电连接方式连接到电源时,其所起的等效电阻作用及其内部衍生的寄生参数也会不同。因此,在进行仿真模拟之前,有必要定义电流流入位置和电流流出位置。一般地,可以根据实际的电连接方式,将电流流入位置设置为source,电流流出位置为sink。
在步骤7中,启动场求解器Q3D,仿真该芯片电路的运行情况,并提取该芯片电路的寄生参数。在仿真过程中,仿真该三维模型可模拟得到该芯片电路的正常运行状态,其中模拟的运行条件和监视进度可以通过程序,例如python程序语言脚本,进行设置和/或限定。另外,还可以使用python,实现芯片电路三维模型建立和芯片电路寄生参数提取的自动化。
在一实施例中,首先将source和sink的位置输入到python程序脚本,同时在该python程序脚本中编辑电源、频率、监视进度如运行时间、计算精度、迭代次数等,然后开始运行场求解器Q3D的仿真功能,Q3D即可计算该芯片电路在特定运行条件下的寄生参数,例如电容矩阵、所测导体的电感、电阻等,还可以输出由这些寄生参数构成的等效电路模型。
另外,在python程序脚本中编辑监视进度,还可以检查在仿真过程中,该芯片电路是否出现运行错误。通过监察一定的对象,Q3D可以根据python程序脚本中的条件语句,判定该芯片电路是否发生错误,并且一旦错误发生,Q3D可立即停止仿真,输出当前的寄生参数计算结果、发生错误的位置,以便于使用者根据输出数据分析该三维模型中的错误并进行修正。
由于场求解器Q3D使用有限元分析方法来计算芯片级集成电路的寄生参数,并且考虑到本发明的目的在于提供高精度的芯片电路寄生参数,控制Q3D所提取的电路寄生参数的误差范围相当重要。有限元分析方法会首先根据激励频率,自动划分自适应网格并计算结构参量矩阵;然后根据使用者设置的参量,自动搜寻分析对象中场值梯度最大的区域,将该区域进一步细化划分。完成划分之后,Q3D才会计算电路寄生参数、计算并分析误差值、细化划分网格并重新迭代,最终得到符合精度要求的最终计算结果。
其中,在自适应划分网格以及细分划分网格的过程中,可以通过设置以下参数,以控制Q3D提取电路寄生参数的计算结果精度:
(1)误差百分比(Percent Error):
误差百分比是确定自适应算法停止的标准,用来控制所期望的求解精度。在每一步的自适应求解过程中,Q3D会计算所有参数矩阵,并且会对当前矩阵和上一步所计算的矩阵进行误差计算。只有当误差满足要求时,才停止自适应算法,否则将再继续划分网格。例如,当前矩阵中求解归一化后的参数矩阵为则有如下表达式:
其中,E表示误差百分比,ij表示遍历所有的矩阵元素,N为当前步数。
(2)每步细化百分比(Percent Refinement Per Pass):
这项设置是确定在每一步的迭代过程中,将有多少个四面体单元会被细化,例如,在输入30的情况下,则最多会有30%的四面体单元会被细化,但是优先针对误差值大的单元进行细化。
(3)迭代步数(Number of Passes):
这项设定是设定自适应算法的最大迭代步数,在当迭代次数达到该值时,即使计算结果并不满足误差百分比,Q3D也不会继续执行迭代计算。
以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种提取电路寄生参数的方法,具体包括以下步骤:
(1)根据芯片电路的物理设计,读取所述芯片电路的GDS二维版图;GDS文件作为标准单元模型而被读取,在设计芯片级集成电路的版图时,通过合理组合标准单元的GDS,得到所需的芯片电路二维版图GDS文件;
(2)根据所述GDS二维版图以及所述电路的高度和/或厚度信息,将二维GDS版图添加高度和厚度信息,建立相对应的芯片电路的三维模型,其中所述芯片电路的各元器件在所述三维模型中表示为若干不同的层;
(3)对所述三维模型按照实际工艺情况执行逻辑操作并赋予属性参量,得到一个能体现并与实际多层复杂的芯片电路相吻合的三维模型;将芯片电路的高度和/或厚度信息制作成Layer mapping.tech文件,其中该高度和/或厚度信息在该Layer mapping.tech文件中表示为相对应的层高度和/或厚度,然后Layer mapping.tech文件与GDS文件一起导入场求解器中,即可得到芯片电路的初步三维模型;
(4)选用Q3D Extractor作为有限元场求解器,对上述三维模型进行电流流入/流出设置,仿真并提取该模型的寄生参数,并巧妙利用脚本接口,使该求解过程脚本化;对Maxwell方程组进行简化处理;所述Q3D的适用频率上限为5GHz;
当一并导入GDS文件和Layer mapping.tech文件时,首先导入GDS文件,然后根据Layermapping.tech文件的文本信息,将关联变量从Layer mapping.tech文件传递到GDS文件,得到芯片电路的初步三维模型;
(5)根据该芯片电路的物理设计,定义电流流入位置和电流流出位置;所述芯片电路包括一个或多个输入/输出引线;启动场求解器Q3D为导体层设置材质参量,仿真所述芯片电路的运行情况,并提取所述芯片电路的寄生参数;利用Q3D建立芯片电路的三维模型时,对该三维模型中的各个层赋值,为各个层设置相对应的导体材质。
2.根据权利要求1所述的方法,其特征在于,所述步骤(3)中的所述逻辑操作包括平移所述层、扩展所述层、逻辑相交/相减所述层的重叠部分、以及合并同类型的所述层。
3.根据权利要求1所述的方法,其特征在于,所述(3)中的所述逻辑操作包括根据所述物理设计,在所述三维模型中添加相对应的介质层和钝化层。
4.根据权利要求1所述的方法,其特征在于,所述(3)中的所述属性参量根据所述芯片电路的导体材质进行赋值。
5.根据权利要求1所述的方法,其特征在于,所述(4)中的所述电流流入/流出位置为所述芯片电路的输入/输出引线。
6.根据权利要求1所述的方法,其特征在于,所述(5)中的所述寄生参数包括电容矩阵、所测导体的电感、电阻,所述寄生参数构成等效电路模型。
7.根据权利要求1所述的方法,进一步包括:
设置仿真模拟过程的运行条件和监视进度;
所述芯片电路根据所述运行条件自动建立相应的三维模型并开始仿真模拟过程;
根据所述监视进度检查所述仿真模拟过程是否存在错误,若所述仿真模拟过程发生错误时,所述场求解器自动发出错误警报,并输出当前计算结果和错误位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410361292.1A CN104133955B (zh) | 2014-07-25 | 2014-07-25 | 一种提取电路寄生参数的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410361292.1A CN104133955B (zh) | 2014-07-25 | 2014-07-25 | 一种提取电路寄生参数的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133955A CN104133955A (zh) | 2014-11-05 |
CN104133955B true CN104133955B (zh) | 2017-12-05 |
Family
ID=51806631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410361292.1A Active CN104133955B (zh) | 2014-07-25 | 2014-07-25 | 一种提取电路寄生参数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104133955B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504220B (zh) * | 2015-01-13 | 2017-05-24 | 成都锐开云科技有限公司 | 一种基于马尔可夫转移矩阵库的寄生电阻提取方法 |
CN104657557A (zh) * | 2015-02-16 | 2015-05-27 | 中山大学 | 采用电磁仿真软件获取芯片级电路电磁辐射特性的方法及装置 |
CN107766609A (zh) * | 2017-09-06 | 2018-03-06 | 全球能源互联网研究院有限公司 | 一种igbt模块的寄生电感提取方法和装置 |
CN109388864B (zh) * | 2018-09-25 | 2022-12-02 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制物理设计高效信号线电迁移分析方法 |
CN108897915A (zh) * | 2018-10-08 | 2018-11-27 | 全球能源互联网研究院有限公司 | 一种igbt芯片矩阵模型自动生成方法及系统 |
CN109446595B (zh) * | 2018-10-10 | 2023-04-07 | 华中科技大学 | 一种提取碳化硅逆变器的寄生参数的方法 |
CN109783885B (zh) * | 2018-12-25 | 2023-08-11 | 山东师范大学 | 一种智能功率模块多物理场耦合仿真分析方法及系统 |
CN109858139A (zh) * | 2019-01-28 | 2019-06-07 | 山东师范大学 | 一种智能功率模块寄生参数提取方法及系统 |
CN110197019B (zh) * | 2019-05-20 | 2021-09-10 | 上海望友信息科技有限公司 | 基于系统封装技术的工艺设计方法、系统、介质及设备 |
CN111624407A (zh) * | 2020-04-08 | 2020-09-04 | 南京航空航天大学 | 一种dc/dc变换器寄生参数提取方法 |
CN112765916B (zh) * | 2021-01-22 | 2024-02-20 | 上海华虹宏力半导体制造有限公司 | 集成电路后仿真参数网表的生成方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7971169B1 (en) * | 2008-08-13 | 2011-06-28 | Lsi Corporation | System and method for reducing the generation of inconsequential violations resulting from timing analyses |
CN102609587A (zh) * | 2012-02-13 | 2012-07-25 | 苏州芯禾电子科技有限公司 | 使用三维快速电磁场仿真技术设计射频集成电路的方法 |
CN103164572B (zh) * | 2013-02-22 | 2015-12-02 | 中国科学院电工研究所 | 一种集成电路互连线寄生电容的建模方法 |
-
2014
- 2014-07-25 CN CN201410361292.1A patent/CN104133955B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104133955A (zh) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133955B (zh) | 一种提取电路寄生参数的方法 | |
CN109783885B (zh) | 一种智能功率模块多物理场耦合仿真分析方法及系统 | |
US9703921B1 (en) | Naturally connecting mixed-signal power networks in mixed-signal simulations | |
US9122833B2 (en) | Method of designing fin field effect transistor (FinFET)-based circuit and system for implementing the same | |
CN104899076B (zh) | 一种超大规模集成电路门级网表仿真的加速方法 | |
CN107533576A (zh) | 针对使用电路模板的电路设计的提取的布局依赖效应的重用 | |
CN102314522B (zh) | 一种模拟集成电路设计优化方法 | |
US9747409B2 (en) | Method of parameter extraction and system thereof | |
CN102609587A (zh) | 使用三维快速电磁场仿真技术设计射频集成电路的方法 | |
CN111352697A (zh) | 灵活的物理功能和虚拟功能映射 | |
CN104408261A (zh) | 一种适用于汽车复杂结构的整车电磁兼容模型建立方法 | |
CN102024067A (zh) | 一种模拟电路工艺移植的方法 | |
CN204946009U (zh) | 电力电子仿真系统 | |
CN108090288A (zh) | 一种通过机器学习获取时序参数的方法 | |
Tan et al. | Verilog hdl simulator technology: a survey | |
CN104657557A (zh) | 采用电磁仿真软件获取芯片级电路电磁辐射特性的方法及装置 | |
WO2023150019A1 (en) | Memory instance reconfiguration using super leaf cells | |
CN112771529B (zh) | 基于Elmore延迟时间(EDT)的电阻模型 | |
US9892227B1 (en) | Systems, methods and storage media for clock tree power estimation at register transfer level | |
US10803222B1 (en) | Methods, systems, and computer program product for implementing an electronic design having embedded circuits | |
CN101794328A (zh) | 针对门输出负载的快速且准确的估计 | |
CN108897915A (zh) | 一种igbt芯片矩阵模型自动生成方法及系统 | |
EP4270237A1 (en) | Model-driven approach for failure mode, effects, and diagnostic analysis (fmeda) automation for hardware intellectual property of complex electronic systems | |
US20240249053A1 (en) | Timing analysis in stacked dies | |
CN117043782A (zh) | 即时生成简化的块模型视图 |
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 |