CN115544958A - 集成电路版图设计缺陷的诊断及自动修复方法 - Google Patents
集成电路版图设计缺陷的诊断及自动修复方法 Download PDFInfo
- Publication number
- CN115544958A CN115544958A CN202211513939.9A CN202211513939A CN115544958A CN 115544958 A CN115544958 A CN 115544958A CN 202211513939 A CN202211513939 A CN 202211513939A CN 115544958 A CN115544958 A CN 115544958A
- Authority
- CN
- China
- Prior art keywords
- integrated circuit
- layout
- circuit
- routing
- node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
- G06F30/3953—Routing detailed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
- G06V30/422—Technical drawings; Geographical maps
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了集成电路版图设计缺陷的诊断及自动修复方法,包括读入原始设计的集成电路版图及对应的集成电路原理图;采用基于等效多端口网络的技术和连通规则检测集成电路版图拓扑结构,得到第一检测结果;使用第一缺陷修复步骤对第一检测结果中的设计缺陷进行自动修复,得到第一修复结果;采用三角形网格剖分以及遍历技术对第一修复结果进行检测,得到第二检测结果;使用第二缺陷修复步骤对第二检测结果中的设计缺陷进行自动修复,得到第二修复结果;通过计算集成电路的电路节点形成的多端口的端口网络导纳矩阵对第二修复结果进行检测,得到第三检测结果;使用第三缺陷修复步骤对第三检测结果中的设计缺陷进行自动修复,完成最终修复。
Description
技术领域
本发明集成电路版图检测技术领域,具体涉及集成电路版图设计缺陷的诊断及自动修复方法。
背景技术
随着通信技术的发展,超大规模集成电路的研究与发展已逐渐展开。为了提高电子设备的性能,缩小体积,降低成本,将晶体管与其他元器件以及线路都集成在一小块半导体基片上。为了实现更多的功能,超大规模集成电路有几层到上百层结构,每层结构极其复杂,集成数千万甚至数亿的晶体管,具有多尺度结构,从厘米级到目前最新的纳米级。
目前,在基于集成电路的原理图设计版图时,主要会出现以下问题:
1、由于现代集成电路的电路元器件密度达到数亿个/平方毫米的量级,这些集成电路的设计不可能靠某个工程师独立完成,需要多个工程师形成的团队协同完成,不同工程师负责完成不同的功能模块,最后将不同工程师完成的功能模块进行拼接,形成完整的集成电路版图设计。由于工程师的工作不可100%准确,不同工程师的工作进行拼接时也会导致界面不清晰,这就不可避免的使得最终设计的集成电路版图的连接关系对应的连接拓扑图与电路原理图的拓扑结构并不一致,如果直接对数十亿、数百亿个晶体管量级的集成电路版图设计中的拓扑结构进行分析并与电路原理图的拓扑结构进行比较以判断集成电路版图设计是否存在缺陷,在工程师的操控下,即使采用最快速的计算机进行辅助也要花费大量的时间;
2、超大规模集成电路的版图由覆铜多边形、走线、过孔、焊盘、隔离垫片等结构组成,这些结构的连接关系来源于形成集成电路版图的原理图,因此其连接关系对应的连接拓扑图应与电路原理图的拓扑结构一致。然而,实际设计的集成电路版图可能因为设置的焊盘、隔离垫片尺寸、走线连接不合理,导致集成电路版图的拓扑关系发生改变,例如会出现隔离垫片半径过大导致断路问题,亦或者焊盘半径过大导致短路问题,以及工程师的疏忽造成过孔事实上的错误连接等问题。
3、实际设计的集成电路版图可能因为设置的焊盘、隔离垫片尺寸以及走线连接不合理,导致集成电路版图的拓扑关系发生改变,基于三角形网格剖分技术和三角形网格遍历与填充技术,能精准检测出实际设计的集成电路版图因为设置的焊盘、隔离垫片尺寸、走线连接不合理导致集成电路版图的拓扑关系发生改变带来的设计缺陷,但却无法更精准的检测应该连接的位置因为接触电阻太大导致虚接的问题,例如走线与覆铜多边形的连接,设计上走线应该连接覆铜多边形,形成一个网络,但由于工程师设计将走线画得太短,导致走线只有很小的面积与多边形接触,从而导致了走线与覆铜多边形的接触电阻过大,导致出现虚接的问题。
所以,传统上检查这类设计缺陷的方法是版图设计工程师依据电路原理图逐个核对,这对于设计简单的只有几层的PCB板来说是可行的,但对于目前的上百层的超大规模集成电路,靠工程师逐个核对的工作量巨大,基本已经变得不可行。
发明内容
针对上述现有技术的不足,本申请提供一种集成电路版图设计缺陷的诊断及自动修复方法。
本申请提出了集成电路版图设计缺陷的诊断及自动修复方法,包括以下步骤:
读入原始设计的集成电路版图及对应的集成电路原理图;
采用基于等效多端口网络的技术和连通规则检测集成电路版图拓扑结构,得到第一检测结果;
如果第一检测结果表明存在设计缺陷,使用第一缺陷修复步骤对所述第一检测结果中的设计缺陷进行自动修复,得到第一修复结果;
采用三角形网格剖分以及遍历技术对所述第一修复结果进行检测,得到第二检测结果;
如果第二检测结果表明存在设计缺陷,使用第二缺陷修复步骤对所述第二检测结果中的设计缺陷进行自动修复,得到第二修复结果;
通过计算集成电路的电路节点形成的多端口的端口网络导纳矩阵对所述第二修复结果进行检测,得到第三检测结果;
如果第三检测结果表明存在设计缺陷,使用第三缺陷修复步骤对所述第三检测结果中的设计缺陷进行自动修复,得到最终修复结果。
在一些实施例的一些可选的实现方式中,所述采用基于等效多端口网络的技术和连通规则检测集成电路版图拓扑结构,得到第一检测结果,包括:
在所述集成电路版图中标定出第一公共电路节点;
根据所述第一公共电路节点等效构建第一多端口网络,基于所述第一多端口网络和所述第一公共电路节点形成第一电路节点-网络编号对;
在所述集成电路原理图中标定出第二公共电路节点;
根据所述第二公共电路节点等效构建第二多端口网络,基于所述第二多端口网络和所述第二公共电路节点形成第二电路节点-网络编号对;
将所述第一电路节点-网络编号对与所述第二电路节点-网络编号对进行比较判断,
如果所述第一电路节点-网络编号对与所述第二电路节点-网络编号对完全吻合,说明所述集成电路版图不存在拓扑结构错误;
如果所述第一电路节点-网络编号对与所述第二电路节点-网络编号对中有任意一对无法相互对应,则说明所述集成电路版图存在拓扑结构错误,根据比较结果确定拓扑结构错误位置,所述拓扑结构错误位置为所述集成电路版图与所述集成电路原理图的网络编号不一致的电路节点所对应的位置。
在一些实施例的一些可选的实现方式中,所述使用第一缺陷修复步骤对所述第一检测结果中的设计缺陷进行自动修复,得到第一修复结果,包括:
根据所述拓扑结构错误位置确定不吻合位置,所述不吻合位置包括覆铜多边形内的电路节点/由走线转换的覆铜多边形内的电路节点;
如果集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号不一致,则根据所述集成电路原理图判断所述集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号一致,将覆铜多边形内的电路节点与覆铜多边形进行电气连接;
如果集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号一致,则根据所述集成电路原理图判断所述集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号不一致,将覆铜多边形内的电路节点与覆铜多边形进行断开;
在一些实施例的一些可选的实现方式中,所述采用三角形网格剖分以及遍历技术对所述第一修复结果进行检测,得到第二检测结果,包括:
填写集成电路原理图中电路节点的网络编号;
根据所述集成电路原理图和所述集成电路版图的位置关系标定出所述集成电路原理图中的电路节点在集成电路版图中对应的位置,并将所述位置作为集成电路版图的电路节点;
将所述集成电路版图中的走线、由过孔引起的焊盘以及隔离垫片转换为版图多边形并与原始定义的覆铜多边形进行多边形布尔运算,形成统一的版图多边形;所述原始定义的覆铜多边形为版图设计文件中定义为版图多边形且多边形顶点为逆时针排列的多边形;
根据所述版图多边形和所述集成电路版图中的电路节点,生成带约束的三角形网格剖分;
对带约束的三角形网格剖分进行遍历并进行网络编号填写;
根据所述集成电路原理图中的电路节点在所述集成电路版图中对应的位置点所关联的三角形获取所述位置点的网络编号;
将集成电路版图中电路节点的网络编号与集成电路原理图中电路节点的网络编号进行比较判断,根据判断结果确定所述集成电路版图是否有设计缺陷,具体的步骤为:依据用户定义的所述集成电路原理图中电路节点与集成电路版图中的位置关系,建立所述位置点的网络编号与集成电路原理图中电路节点的网络编号的映射关系,如果这个映射关系是一对一的映射,则确定所述集成电路版图的不存在设计缺陷,如果这个映射关系并非一对一的映射,则确定所述集成电路版图的存在设计缺陷,且映射关系不对应的电路节点所在的位置为设计缺陷所在的位置。
在一些实施例的一些可选的实现方式中,所述使用第二缺陷修复步骤对所述第二检测结果中的设计缺陷进行自动修复,得到第二修复结果,包括:
如果映射关系不对应的电路节点所在的位置为走线端点对应的电路节点,采用第一走线修复步骤对走线进行自动修复;
如果映射关系不对应的电路节点所在的位置为过孔端点对应的电路节点,采用第一焊盘修复步骤对过孔端点的焊盘进行自动修复。
在一些实施例的一些可选的实现方式中,所述第一走线修复步骤包括:
步骤X1.1:检测走线段内是否存在焊盘和隔离垫片,如果存在焊盘和隔离垫片,检查隔离垫片直径与走线宽度的关系,如果隔离垫片直径不小于走线宽度,检查隔离垫片的最小允许直径是否小于走线宽度,如果小于,设置焊盘和隔离垫片直径为各自允许的最小直径,否则,首先设置焊盘和隔离垫片直径为各自允许的最小直径,再在隔离垫片的位置对走线进行修改,使得走线避开隔离垫片,围绕这个隔离垫片将原走线分解为多段相连的走线,每两个相连走线夹角为钝角,且保证走线与焊盘最小间距不小于允许的最小间距,转入步骤X1.2;
步骤X1.2:检测走线段内是否存在焊盘和隔离垫片,如果只存在焊盘,设置焊盘直径为允许的最小直径,检测焊盘是否与走线之外的版图结构接触,如果接触,则在焊盘之外增加隔离垫片并转入步骤X1.1,如果不接触,则转入步骤X1.3;
步骤X1.3:检测走线段内是否存在焊盘和隔离垫片,如果不存在焊盘和隔离垫片,检测走线本身是否和走线之外的版图结构接触,如果接触,在接触的位置对走线进行修改,使得走线避开接触的版图结构。
所述第一焊盘修复步骤包括:检测过孔端点的焊盘是否和焊盘之外的版图结构接触,如果接触,在焊盘之外增加隔离垫片,且设置焊盘和隔离垫片直径为各自的最小直径。
在一些实施例的一些可选的实现方式中,所述版图结构为版图上的覆铜,所述版图结构包括覆铜多边形、所述走线之外的其他走线以及所述焊盘之外的其他焊盘。
在一些实施例的一些可选的实现方式中,所述通过计算集成电路的电路节点形成的多端口的端口网络导纳矩阵对所述第二修复结果进行检测,得到第三检测结果,包括:
基于统一的版图多边形和所述集成电路版图的电路节点对每层集成电路版图进行网格剖分,使得所述集成电路版图中的电路节点在网格剖分中的节点编号在前且与集成电路原理图中所有电路节点编号一致;
基于多层集成电路叠层结构的特点将三维的多层集成电路等效为多层的二维结构,基于网格剖分形成的场域,采用有限元法形成整个集成电路的有限元刚度矩阵;
反复利用星形-三角形变换法消除有限元方程组对应的有限元刚度矩阵中除标定的电路节点形成的端口之外的内部节点,形成与标定的电路节点对应的端口导纳矩阵;
通过检查关联矩阵与端口导纳矩阵的一致性确定待检测集成电路版图连通的正确性,即从所述关联矩阵选取任意两个待测电路节点,根据所述端口导纳矩阵检查所述待测电路节点的导纳值,基于预先设定的导纳阈值对所述待测电路节点的导纳值进行连通性检测,得到检测结果。
在一些实施例的一些可选的实现方式中,所述使用第三缺陷修复步骤对所述第三检测结果中的设计缺陷进行自动修复,得到最终修复结果,包括:
针对集成电路版图中与集成电路原理图中电路节点对应的位置点,找出各位置点的网络编号与集成电路原理图中电路节点的连通性不一致的位置点;
如果不一致的位置点为走线端点对应的电路节点,采用第二走线修复步骤对走线进行自动修复;
如果不一致的位置点为过孔端点对应的电路节点,采用第二焊盘修复步骤对过孔端点的焊盘进行自动修复。
在一些实施例的一些可选的实现方式中,所述第二走线修复步骤包括:
步骤X2.1:检测走线段内是否存在焊盘和隔离垫片,如果存在焊盘和隔离垫片,设置焊盘和隔离垫片直径为各自允许的最小直径,检测修改后的隔离垫片直径与走线的宽度,如果隔离垫片直径超过走线宽度的一半,在隔离垫片的位置对走线进行修改,使得走线避开隔离垫片,可以围绕这个隔离垫片将原走线分解为多段相连的走线,每两个相连走线夹角为钝角,且保证走线与焊盘最小间距不小于允许的最小间距,转入步骤X2.2;
步骤X2.2:检测走线段端点与走线之外的版图结构接触情况,如果接触宽度小于走线宽度的一半,延长走线直到接触宽度为走线宽度。
所述第二焊盘修复步骤包括:检测过孔端点的焊盘和焊盘之外的版图结构接触情况,增大焊盘半径,使得焊盘和焊盘之外的版图结构接触宽度在焊盘半径不超过最大允许的焊盘半径的情况下达到最大。
本发明的有益效果:
1、在对集成电路版图的拓扑结构进行检测时,并不直接针对所有最底层的版图信息进行分析,而是将基于IP核形成的固定的集成电路版图等效为多端口网络,这个端口数量即为IP核与其连接的电路节点数量。基于等效的多端口网络对整个集成电路版图设计进行分析,将大大简化分析的拓扑结构数量,提高缺陷检测效率,并且能准确分析出拓扑结构错误位置,提高检测精度。
2、完成了拓扑结构的检测修复后,当出现隔离垫片半径过大导致断路问题,亦或者焊盘半径过大导致短路问题,以及工程师的疏忽造成过孔事实上的错误连接等问题时,通过三角形网格剖分以及遍历对集成电路版图的网络编号进行填充根据电路节点在版图中对应的各位置点所属的三角形,获取各位置点的网络编号,并将各位置点的网络编号与集成电路原理图中电路节点的网络编号对应,如果各位置点的网络编号与集成电路原理图中电路节点的网络编号完全对应,则可确定被检测的集成电路版图设计没有缺陷,否则,这个设计是有缺陷的,据此检测出隔离垫片半径过大导致的断路、焊盘半径过大的导致短路以及工程师的疏忽造成过孔事实上的错误连接等问题,从而实现对集成电路版图设计缺陷的精准检测。
3、完成了对隔离垫片半径过大导致断路问题,亦或者焊盘半径过大导致短路问题,以及工程师的疏忽造成过孔事实上的错误连接等问题的修复后,当出现无法更精准的检测应该连接的位置因为接触电阻太大导致虚接的问题时,通过统一的版图多边形及其边,以及版图中的电路节点,对每层集成电路版图进行网格剖分,且使得版图中的电路节点在网格剖分中的节点编号在前,与集成电路原理图中所有电路节点编号一致;基于网格剖分形成的场域,采用有限元法形成有限元刚度矩阵;反复利用星形-三角形变换法消除所述有限元刚度矩阵中除标定个数的电路节点形成的端口之外的内部节点,形成与标定的电路节点数量对应端口数量网络的端口导纳矩阵;通过检测端口导纳矩阵中与关联矩阵对应的电路节点之间的导纳值,从而检测出电路节点间的导通性是否合格,精准判断出工程师设计过程中的缺陷。
本发明能分层次地对集成电路版图进行快速高精度诊断及自动修复,能在很大程度上自动修复集成电路版图设计的缺陷。
附图说明
图1为本发明的总体流程图。
图2为得到第一检测结果的过程图。
图3为得到第二检测结果的过程图。
图4为得到第三检测结果的过程图。
图5为IP在集成电路版图形成的等效多端口网络标定方式示意图。
图6为版图连通规则示意图。
图7为IP电路原理图形成的等效多端口网络标定方式示意图。
图8为电路连通规则示意图。
图9为中间层缺少隔离垫片导致短路的示意图。
图10为正确的增加隔离垫片的示意图。
图11为任意一层版图的覆铜层、焊盘和隔离垫片示意图。
图12为覆铜层、焊盘和隔离垫片转换为版图多边形的示意图。
图14为焊盘和隔离垫片半径过大导致断路的示意图。
图15为正确的焊盘和隔离垫片半径保证连通的示意图。
图16为走线避开接触的版图结构的示意图。
图17为一个多层二维结构的版图的三角形网格剖分示意图。
图18为有限元刚度矩阵的等效导纳网络示意图。
图19为星形结构示意图。
图20为三角形结构示意图。
图21为导纳网络的刚度矩阵的内部节点消去过程示意图。
图22为导纳网络的刚度矩阵的内部节点消去过程示意图。
图23为导纳网络的刚度矩阵的内部节点消去过程示意图。
图24为导纳网络的刚度矩阵的内部节点消去过程示意图。
图25为过短的走线导致虚接的示意图。
图26为延长走线保证良好连接的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制;相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请提出了一种本申请提出了集成电路版图设计缺陷的诊断及自动修复方法,如图1所示,包括步骤S100-S700:
S100:读入原始设计的集成电路版图及对应的集成电路原理图;
S200:采用基于等效多端口网络的技术和连通规则检测集成电路版图拓扑结构,得到第一检测结果;
在一些实施例的一些可选的实现方式中,所述采用基于等效多端口网络的技术和连通规则检测集成电路版图拓扑结构,得到第一检测结果,如图2所示,包括步骤S210a-S240:
S210a:在所述集成电路版图中标定出第一公共电路节点;
标定第一公共电路节点的具体步骤包括:
找出所述集成电路版图包含的IP核,根据IP核找出对应的集成电路模块;
确定每个IP核的PIN脚与所述集成电路版图对应的第一连接点,所述第一连接点为所述集成电路模块与所述集成电路版图电气连接的位置;
对所述第一连接点进行标定,得到第一公共电路节点。
其中,如图5所示,图5为某个覆铜层上嵌入名为DIE的IP核,假设该IP核有6个PIN脚与集成电路版图相连,分别为P1-P6,则该IP核对应的集成电路模块与之外的其他集成电路版图(这里为覆铜层)电气连接的位置为P1-P6,标定出这个位置P1-P6,P1-P6为第一公共电路节点。
S220a:根据所述第一公共电路节点等效构建第一多端口网络,基于所述第一多端口网络和所述第一公共电路节点形成第一电路节点-网络编号对;
形成第一电路节点-网络编号对的总体步骤包括:
将每个IP核对应的集成电路模块与其他集成电路的第一公共电路节点等效为第一多端口网络;
从所述第一公共电路节点出发,依据版图连通规则将所述第一多端口网络之外的集成电路的电路节点所在的网络编号,得到第一电路节点-网络编号对。
进一步的,形成第一电路节点-网络编号对的具体步骤包括:
步骤Q1:找出所述集成电路版图包含的IP核,根据所述IP核找出对应的集成电路模块,根据所述IP核的数量进行编号,分别为1,2,…,NIP,NIP为IP核的数目;
步骤Q2:将第j个IP核与之外的其他集成电路版图电气连接的位置对应的第一公共电路节点进行编号,将其编号为j,j=1,2,…,NIP;设置k=1,所述k表示电路节点编号的起始序号;设置i=1,所述i表示待处理的第i个IP核;
步骤Q3:对第i个IP核与之外的其他集成电路版图电气连接的位置对应的第一公共电路节点进行编号,如果对应的第一公共电路节点已经编号且编号值小于i,则设置i=i+1并重新转入步骤Q3;
否则,将所有对应的第一公共电路节点编号设置为k,并设置第i个IP核与之外的其他集成电路版图电气连接的位置对应的第一公共电路节点集合为{Pi};
步骤Q4:判断集合{Pi}是否为空集,如果集合{Pi}为空集则设置i=i+1,k=k+1,如果i>NIP退出,否则i≤NIP则重新转入步骤Q3;
如果集合{Pi}不为空集,则从集合{Pi}中取出一个电路节点,基于版图连通规则搜索所有与取出的电路节点形成电气连接的电路节点作为第一待确认电路节点,搜索结果包括:
如果搜索到的所述第一待确认电路节点已经编号且编号值j等于当前编号k,则所述第一待确认电路节点不加入到集合{Pi};
如果搜索到的所述第一待确认电路节点已经编号且编号值j大于当前编号k,则所述第一待确认电路节点为第j个IP核与之外的其他集成电路版图电气连接的位置对应的第一公共电路节点,将所有编号为j的第一公共电路节点加入到集合{Pi},并将所有编号为j的第一公共电路节点的编号修改为k;
如果搜索到的所述第一待确认电路节点未编号,将所述第一待确认电路节点加入到集合{Pi},并将所述第一待确认电路节点的编号设置为k;
重复执行步骤Q4,直到所有与取出的电路节点形成电气连接的电路节点完成编号后,形成第一电路节点-网络编号对。
其中,所述版图连通规则包括第一版图连通规则、第二版图连通规则、第三版图连通规则和第四版图连通规则;
所述第一版图连通规则包括:覆铜多边形与所有部分或全部位于其内部且与覆铜多边形形成连接的元器件形成的电路节点形成电气连接;
如图6所示,其中,图6包括多个覆铜层与走线、过孔连接关系,覆铜层1与走线1相连,内部包含过孔在该层的中心点V1,覆铜层2内部包含过孔在该层的中心点V2。由于走线1的端点T1在覆铜层1的内部且与覆铜层1形成连接,V1在覆铜层1的内部且与覆铜层1成连接,因此电路节点T1与V1与覆铜层1形成电气连接,而过孔在覆铜层2存在隔离垫片,使得中心点V2与覆铜层2没有形成连接,因此电路节点V2与覆铜层2没有形成电气连接。
所述第二版图连通规则包括:走线连通所述走线两个端点所在的元器件,使所述走线的两个端点对应的电路节点形成电气连接;
如图6所示,图6中的走线1两个端点对应的电路节点为T1, T2,则电路节点T1与T2形成电气连接。
所述第三版图连通规则包括:垂直方向穿过上下层的过孔连通上下层对应的上下两个端点所在的元器件,使上下层对应端点对应的电路节点形成电气连接;
过孔经过的层如果在覆铜多边形内,且过孔穿过的位置没有设置隔离垫片,过孔穿过的位置形成电路节点,该电路节点与过孔上下端点对应的电路节点及该覆铜多边形形成电气连接;
过孔上下端点如果在覆铜多边形内,且所在位置没有设置隔离垫片,过孔上下端点对应的电路节点与覆铜多边形形成电气连接;
如图6所示,图6中过孔的上端点V1在覆铜层1的内部且与覆铜层1成连接,因此V1与覆铜层1形成电气连接,而过孔在覆铜层2存在隔离垫片,使得中心点V2与覆铜层2没有形成连接,因此电路节点V2与覆铜层2没有形成电气连接。
所述第四版图连通规则包括:键合线和引线连通位于不同叠层的两个端点所在的元器件,使元器件的两个端点对应的电路节点形成电气连接;
如图6所示,图6中的键合线连接覆铜层2和覆铜层3上的元器件,其两个端点对应的电路节点W1和W2形成电气连接。
S210b:在所述集成电路原理图中标定出第二公共电路节点;
其中,先找出所述集成电路原理图中的电路支路交汇点,所述电路支路交汇点为所述第二公共电路节点,所述电路支路为没有分支的一段电路。
S220b:根据所述第二公共电路节点等效构建第二多端口网络,基于所述第二多端口网络和所述第二公共电路节点形成第二电路节点-网络编号对;
其中,标定第一、第二等效多端口网络的方式如图5和图7所示,将图7集成电路节点1,6,7,3,5,4抽出去,形成6端口网络P1-P6,6端口内部对应的集成电路模块可以看作一个黑盒子,这个黑盒子内部的集成电路模块形成了一个IP核,其他集成电路设计人员想要实现如图5集成电路的功能,不必重新设计图5所示的集成电路模块,也不需要关心该集成电路模块的内部电路,只需要将该IP核应用过来,将设计的其他集成电路与上图所示的集成电路模块等效的6端口网络P1-P6进行正确的连接即可,并且在标定第一等效多端口时,这个等效的6端口网络在集成电路版图设计中也等效为集成电路版图的IP核,如图5的DIE以及外面的P1~P6所示,设计人员不需要重新设计DIE内的集成电路版图,只需要将这个版图应用过来,将设计的其他部分的版图与该DIE内的集成电路版图的P1~P6进行正确的连接即可,即完成了对第二等效多端口网络的标定。
其中,形成第二电路节点-网络编号对的总体步骤包括:
将每个IP核对应的集成电路模块与其他集成电路的第二公共电路节点等效为第二多端口网络;
从所述第二公共电路节点出发,依据电路连通规则将所述第二多端口网络之外的集成电路的电路节点所在的网络编号,得到第二电路节点-网络编号对,所述电路连通规则包括:所述集成电路原理图中任何两个形成电路支路的电路节点形成电气连接,如图8所示,图8为一个电路原理示意图,图中有7个电路节点,图中的任何两个形成电路支路的电路节点均形成电气连接,如电路节点1和2形成电路支路,那么电路节点1和2形成电气连接,电路节点2和3形成电路支路,那么电路节点2和3形成电气连接。
进一步的,形成第二电路节点-网络编号对的具体步骤包括:
步骤QI:找出所述集成电路原理图包含的IP核,根据所述IP核找出对应的集成电路模块,根据所述IP核的数量进行编号,分别为1,2,…,nip,nip为IP核的数目;
步骤QⅡ:将第J个IP核与之外的其他集成电路原理图电气连接的位置对应的第二公共电路节点进行编号,将其编号为J,J=1,2,…,nip;设置K=1,所述K表示电路节点编号的起始序号;设置I=1,所述I表示待处理的第I个IP核;
步骤QⅢ:对第I个IP核与之外的其他集成电路原理图电气连接的位置对应的第二公共电路节点进行编号,如果对应的第二公共电路节点已经编号且编号值小于I,则设置I=I+1并重新转入步骤QⅢ;
否则,将所有对应的第二公共电路节点编号设置为K,并设置第I个IP核与之外的其他集成电路原理图电气连接的位置对应的第二公共电路节点集合为{PI};
步骤QⅣ:判断集合{PI}是否为空集,如果集合{PI}为空集则设置I=I+1,K=K+1,如果I>nip退出,否则I≤nip则重新转入步骤QⅢ;
如果集合{PI}不为空集,则从集合{PI}中取出一个电路节点,基于电路连通规则搜索所有与取出的电路节点形成电气连接的电路节点作为第二待确认电路节点,搜索结果包括:
如果搜索到的所述第二待确认电路节点已经编号且编号值J等于当前编号K,则所述第二待确认电路节点不加入到集合{PI};
如果搜索到的所述第二待确认电路节点已经编号且编号值J大于当前编号K,则所述第二待确认电路节点为第J个IP核与之外的其他集成电路原理图电气连接的位置对应的第二公共电路节点,将所有编号为J的第二公共电路节点加入到集合{PI},并将所有编号为J的第二公共电路节点的编号修改为K;
如果搜索到的所述第二待确认电路节点未编号,将所述第二待确认电路节点加入到集合{PI},并将所述第二待确认电路节点的编号设置为K;
重复执行步骤QⅣ,直到所有与取出的电路节点形成电气连接的电路节点完成编号后,形成第二电路节点-网络编号对。
将所述第一电路节点-网络编号对与所述第二电路节点-网络编号对进行比较判断,
S230:如果所述第一电路节点-网络编号对与所述第二电路节点-网络编号对完全吻合,说明所述集成电路版图不存在拓扑结构错误;
S240:如果所述第一电路节点-网络编号对与所述第二电路节点-网络编号对中有任意一对无法相互对应,则说明所述集成电路版图存在拓扑结构错误,根据比较结果确定拓扑结构错误位置,所述拓扑结构错误位置为所述集成电路版图与所述集成电路原理图的网络编号不一致的电路节点所对应的位置。
具体判断规则为:
假设某个集成电路的电路节点为10个,形成了2个网络,其网络编号如下表所示,针对依据集成电路原理图设计的版图,按步骤S210a-S220a和步骤S210b-S220b获得的网络编号如表1所示,表1:
电路节点序号 | 电路节点网络编号 | 对应的位置点网络编号 |
1 | 1 | 2 |
2 | 1 | 2 |
3 | 2 | 1 |
4 | 2 | 1 |
5 | 2 | 1 |
6 | 2 | 1 |
7 | 2 | 1 |
8 | 1 | 3 |
9 | 2 | 1 |
10 | 2 | 1 |
表中可以看出,被检测的集成电路版图设计存在缺陷,原因在于电路节点网络编号1同时映射了对应的位置点网络编号2和3,不是一对一的映射。
S300:使用第一缺陷修复步骤对所述第一检测结果中的设计缺陷进行自动修复,得到第一修复结果;
其中,根据所述拓扑结构错误位置确定不吻合位置,所述不吻合位置包括覆铜多边形内的电路节点/由走线转换的覆铜多边形内的电路节点;
图9与图10给出了一个简单的带有过孔的3层版图在网络编号不一致情况下如何修复的例子。
如果集成电路中间层版图的覆铜多边形的网络编号与覆铜多边形内过孔穿过位置的电路节点的网络编号不一致,但根据所述集成电路原理图判断所述集成电路中间层版图的覆铜多边形的网络编号与覆铜多边形内过孔穿过位置的电路节点的网络编号一致,此时应将覆铜多边形内的电路节点与覆铜多边形进行电气连接;而图10所示为覆铜多边形内的电路节点带有隔离垫片,因此应删除该隔离垫片,使得覆铜多边形内的电路节点接触覆铜多边形(即将图10变为图9);
如果集成电路中间层版图的覆铜多边形的网络编号与覆铜多边形内过孔穿过位置的电路节点的网络编号一致,但根据所述集成电路原理图判断所述集成电路中间层版图的覆铜多边形的网络编号与覆铜多边形内过孔穿过位置的电路节点的网络编号不一致,此时应将覆铜多边形内的电路节点与覆铜多边形进行断开;而图9所示为中间层缺少隔离垫片导致短路,此时应在覆铜多边形内的电路节点上增加焊盘和隔离垫片(即将图9变为图10,图10为正确的增加隔离垫片);
S400:采用三角形网格剖分以及遍历技术对所述第一修复结果进行检测,得到第二检测结果;
如图3所示,包括步骤S410-步骤S470:
S410:填写集成电路原理图中电路节点的网络编号;
具体步骤包括:
步骤W1-1:对所述集成电路原理图中的所有电路节点进行编号,形成集成电路原理图所有电路节点的集合{i},i=1,2,…,N,N为电路节点数量;
步骤W1-2:对所述集成电路原理图中的所有电路支路填写电路节点,形成关联矩阵;
其中,设电路支路为l,关联矩阵为A,关联矩阵的大小为N行N列。具体方法为:首先初始化关联矩阵的所有元素为0,电路支路为l j, j=1,2,…,M,M为集成电路原理图的所有电路支路条数,找出该电路支路连接的两个节点m和n,则修改关联矩阵A的元素Amn= Anm=1,其中Amn为关联矩阵A的m行,n列的元素;
步骤W1-3:设定初始化参数:当前处理电路节点k=1;当前网络编号Net=1;电路节点处理集合{Processi}元素的值为0,i表示第i个电路节点,i=1,2,…,N,N为电路节点数量,前线集合为Vfront={k};
步骤W1-4:如果所述前线集合为空集,设置Net=Net+1,转入步骤W1-5;如果前线集合不为空集,则转入步骤W1-7;
步骤W1-5:设置k=k+1,如果当前处理节点大于电路节点数量,则填写所述集成电路原理图中电路节点的网络编号的步骤结束,否则转入步骤W1-6;
步骤W1-6:如果Processk=0,则将当前处理电路节点加入到所述前线集合并转入步骤W1-7,如果Processk=1,则转入步骤W1-5;
步骤W1-7:取出所述前线集合中的最后一个电路节点v,且将所述最后一个电路节点从所述前线集合移除,然后进行判断:
如果Processv=0,设置Netv=Net,Netv为电路节点v的网络编号,设置Processv=1,查找所述关联矩阵中第v行值为1的所有列编号,将所述列编号对应的Process值为0的电路节点加入到所述前线集合中,转入步骤W1-4,直到填写集成电路原理图中电路节点的网络编号的步骤结束为止;如果Processv=1,则直接转入步骤W1-4。
S420:根据所述集成电路原理图和所述集成电路版图的位置关系标定出所述集成电路原理图中的电路节点在集成电路版图中对应的位置,并将所述位置作为集成电路版图的电路节点;
其中,根据所述集成电路原理图生成网络表文件,所述网络表文件包括元器件类型、元器件管脚对应的电路节点名称、所述电路节点名称所对应的封装PCB 器件信息以及所有的网络信息;
依据所述元器件管脚对应的电路节点名称和元器件对应的网络信息填写集成电路原理图中电路节点的网络编号;
依据所述元器件管脚在所述集成电路版图中对应的相同电路节点名称,标定出所述集成电路原理图中的电路节点在所述集成电路版图中对应的位置。
S430:将所述集成电路版图中的走线、由过孔引起的焊盘以及隔离垫片转换为版图多边形并与原始定义的覆铜多边形进行多边形布尔运算,形成统一的版图多边形;所述原始定义的覆铜多边形为版图设计文件中定义为版图多边形且多边形顶点为逆时针排列的多边形;
具体形成统一的版图多边形的步骤为:
步骤W2-1:将定义起始点、终止点和宽度的走线转换为矩形;
其中,转换为矩形的方式为:以所述起始点和所述终止点之间的走线线条长度为中心,向所述宽度的两边分别扩展二分之一的预设宽度,形成所述矩形;所述预设宽度即为设置的走线宽度。
步骤W2-2:将由过孔引起的隔离垫片转换为挖空多边形;
其中,所述挖空多边形由隔离垫片所定义的形状而定:
如果定义的形状为圆,可将其转换为挖空的正n边形,根据精度要求可取n=6, 8,12, 18等,n值越大,表示要求的精度越高,但同时带来的计算量越大;
如果定义的形状为椭圆,可在椭圆上按极坐标下等弧度的方式取离散点,可根据精度要求取离散点的个数,离散点个数越大,表示要求的精度越高;
如果定义的形状为多边形,直接取定义的多边形;
步骤W2-3:将由过孔引起的焊盘转换为覆铜多边形;
其中,所述覆铜多边形由焊盘所定义的形状而定:
如果定义的形状为圆,根据精度要求可将其转换为正n边形,根据精度要求可取n=6, 8, 12, 18等,n值越大,表示要求的精度越高,但同时带来的计算量越大;
如果定义的形状为椭圆,可在椭圆上按极坐标下等弧度的方式取离散点,可根据精度要求取离散点的个数,离散点个数越大,表示要求的精度越高;
如果定义的形状为多边形,直接取定义的多边形;
其中,如图11所示,图11为任意一层版图的覆铜层、焊盘和隔离垫片示意图。如果过孔和由过孔带来的焊盘所在的网络与覆铜层所在的网络不是同一个网络,则需要在覆铜层和焊盘之间增加隔离垫片。
进一步的,如图12所示,图12为覆铜层、焊盘和隔离垫片转换为版图多边形的示意图。这里直接将隔离垫片和焊盘用正八边形来近似,取正多边形的顶点与其中心的距离为圆半径,以此定义正多边形的大小。对于覆铜多边形,其多边形定义为(1,2,3,4),编号为逆时针排列,对于隔离垫片定义的挖空多边形,其多边形定义为(5,6,7,8,9,10,11,12),编号为顺时针排列;对于挖空多边形内的焊盘定义的填充多边形,其多边形定义为(13,14,15,16,17,18,19,20),编号为逆时针排列。
步骤W2-4:将定义在覆铜多边形内的挖空圆转换为在覆铜多边形内挖空正多边形;
步骤W2-5:对所述矩形和原始定义的覆铜多边形均进行布尔“并”操作,形成第一新覆铜多边形;
其中,包括由走线转换的矩形和原始定义的覆铜多边形;
步骤W2-6:对所述第一新覆铜多边形、所述挖空多边形和所述挖空正多边形均进行布尔“差”操作,形成第二新覆铜多边形;
步骤W2-7:对所述第二新覆铜多边形和所述步骤W2-3中形成的覆铜多边形均进行布尔“并”操作,形成统一的版图多边形,这个统一的版图多边形即为最终的覆铜多边形;
所述原始定义的覆铜多边形为版图设计文件中定义为版图多边形且多边形顶点为逆时针排列的多边形。
S440:根据所述版图多边形和所述集成电路版图中的电路节点,生成带约束的三角形网格剖分;
如图13所示:
步骤W3-1:根据所述版图多边形的所有顶点和所述集成电路版图的电路节点对应的集成电路版图中的位置坐标点形成Delaunay三角形网格;
步骤W3-2:收集所述Delaunay三角形网格中所有不属于两个三角形公共边的多边形的边,按照边长排序形成集合Lost;
步骤W3-4:从所述边的一个顶点A出发,搜索包含所述顶点A且顶点C、D位于所述边两侧的三角形ΔACD,ΔACD的边与边相交,交换所述三角形ΔACD与其邻居三角形ΔDCE的公共边,得到三角形ΔACE与ΔEDA;其中,所述邻居三角形为与搜索的三角形有公共边的三角形;
步骤W3-6:判断所述集合Lost是否为空集,若否,重新从所述集合Lost中取出边长最长的边,将边长最长的边从所述集合Lost中移除后继续执行步骤W3-4,若是,则直接形成带约束的三角形网格剖分。
S450:对带约束的三角形网格剖分进行遍历并进行网络编号填写;
其中,包括对标定出的集成电路原理图中的电路节点在所述集成电路版图中对应的每个位置点进行记录,记录每个位置点关联的三角形;所述位置点关联的三角形包括该三角形的一个顶点和所述位置点,一个位置点关联多个三角形。
进一步的,对带约束的三角形网格剖分进行遍历并进行网络编号填写的具体步骤包括:
步骤W4-1:依次对每个覆铜多边形进行编号并将带约束的三角形网格剖分中所有三角形的编号初始设置为未编号,设置当前为第q=1个待处理的覆铜多边形;
步骤W4-2:将当前***网格单元设置为集合Front,所述集合Front为空,从第q个覆铜多边形的任意边e出发,找到这个边关联的左三角形t,设置三角形t的编号为第q个覆铜多边形的编号,然后将所述三角形t加入到集合Front中;其中,第q个覆铜多边形任意边e的左三角形为包含该边e且三角形边e的方向与第q个覆铜多边形边e的方向相同的三角形;
步骤W4-3:从所述集合Front取出一个三角形t并将其从所述集合Front中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且公共边不为任何覆铜多边形的边,则将所述三角形t的一个或多个邻居三角形加入所述集合Front中,并将新加入所述集合Front的三角形的编号为第q个覆铜多边形的编号;其中,公共边为与所述三角形t相邻的三角形与所述三角形t的公共边;
步骤W4-4:判断所述集合Front是否为空集,若不为空集,则转入步骤W4-3,若为空集,先设置q=q+1,然后转入步骤W4-2,直到所述集合Front为空;
步骤W4-5:判断所有的覆铜多边形是否处理完毕,若处理完毕,结束对覆铜多边形的叠加;若未处理完毕,则返回继续对未处理完毕的覆铜多边形进行处理,直到所有的覆铜多边形处理完成。
S460:根据所述集成电路原理图中的电路节点在所述集成电路版图中对应的位置点所关联的三角形获取所述位置点的网络编号;
具体包括:对每个集成电路原理图中的电路节点在所述集成电路版图中对应的位置点所关联的三角形,找出任意一个关联的三角形,将其编号作为所述位置点的编号,所述位置点的编号为所述位置点的网络编号。
S470:将集成电路版图中电路节点的网络编号与集成电路原理图中电路节点的网络编号进行比较判断,根据判断结果确定所述集成电路版图是否有设计缺陷;
具体的步骤为:依据用户定义的所述集成电路原理图中电路节点与集成电路版图中的位置关系,建立所述位置点的网络编号与集成电路原理图中电路节点的网络编号的映射关系,如果这个映射关系是一对一的映射,则确定所述集成电路版图的不存在设计缺陷,如果这个映射关系并非一对一的映射,则确定所述集成电路版图的存在设计缺陷,且映射关系不对应的电路节点所在的位置为设计缺陷所在的位置。
S500:使用第二缺陷修复步骤对所述第二检测结果中的设计缺陷进行自动修复,得到第二修复结果;
在一些实施例的一些可选的实现方式中,所述使用第二缺陷修复步骤对所述第二检测结果中的设计缺陷进行自动修复,得到第二修复结果,包括:
如果映射关系不对应的电路节点所在的位置为走线端点对应的电路节点,采用第一走线修复步骤对走线进行自动修复;
如果映射关系不对应的电路节点所在的位置为过孔端点对应的电路节点,采用第一焊盘修复步骤对过孔端点的焊盘进行自动修复。
在一些实施例的一些可选的实现方式中,所述第一走线修复步骤包括:
步骤X1.1:如图14-图15所示,检测走线段内是否存在焊盘和隔离垫片,如果存在焊盘和隔离垫片,检查隔离垫片直径与走线宽度的关系,如果隔离垫片直径不小于走线宽度,检查隔离垫片的最小允许直径是否小于走线宽度,如果小于,设置焊盘和隔离垫片直径为各自允许的最小直径,如图15所示;否则,首先设置焊盘和隔离垫片直径为各自允许的最小直径,再在隔离垫片的位置对走线进行修改,使得走线避开隔离垫片,围绕这个隔离垫片将原走线分解为5段相连的走线,每两个相连走线夹角为135︒,且保证走线与焊盘最小间距不小于允许的最小间距,转入步骤X1.2;
步骤X1.2:检测走线段内是否存在焊盘和隔离垫片,如果只存在焊盘,设置焊盘直径为允许的最小直径,检测焊盘是否与走线之外的版图结构接触,如果接触,则在焊盘之外增加隔离垫片并转入步骤X1.1,如果不接触,则转入步骤X1.3;
步骤X1.3:检测走线段内是否存在焊盘和隔离垫片,如果不存在焊盘和隔离垫片,检测走线本身是否和走线之外的版图结构接触,如果接触,在接触的位置对走线进行修改,使得走线避开接触的版图结构,如图16所示。
所述第一焊盘修复步骤包括:检测过孔端点的焊盘是否和焊盘之外的版图结构接触,如果接触,在焊盘之外增加隔离垫片,且设置焊盘和隔离垫片直径为各自的最小直径。
所述版图结构为版图上的覆铜,所述版图结构包括覆铜多边形、所述走线之外的其他走线以及所述焊盘之外的其他焊盘。
S600:通过计算集成电路的电路节点形成的多端口的端口网络导纳矩阵对所述第二修复结果进行检测,得到第三检测结果;
如图4所示,具体包括步骤S610-S640:
S610:基于统一的版图多边形和所述集成电路版图的电路节点对每层集成电路版图进行网格剖分,使得所述集成电路版图中的电路节点在网格剖分中的节点编号在前且与集成电路原理图中所有电路节点编号一致;
S620:基于多层集成电路叠层结构的特点将三维的多层集成电路等效为多层的二维结构,基于网格剖分形成的场域,采用有限元法形成整个集成电路的有限元刚度矩阵;
其中,多层集成电路中实际PCB板或芯片封装的板尺寸远大于金属层的厚度,将多层集成电路的三维的多层集成电路问题简化为多层的二维结构的问题。
边界条件:
其中,式中I(u)为泛函,h为金属层的厚度,为网格单元e的电导率;为网格单元e的节点的电位向量;为网格单元e的面;表示网格单元e的边;为表面电流密度,是由外部电路产生的未知量;为第一边界;为电位u在第一边界上的值,用表示;为外部电路的体电流密度;为电位u分布的横坐标,为电位u分布的纵坐标。是由外部电路产生的未知量。对以上泛函取极值,并在离散的空间对泛函中的积分进行近似,即可获得有限元方程组。
S630:反复利用星形-三角形变换法消除有限元方程组对应的有限元刚度矩阵中除标定的电路节点形成的端口之外的内部节点,形成与标定的电路节点对应的端口导纳矩阵;
具体的,反复利用星形-三角形变换法消除所述有限元刚度矩阵除前N个电路节点形成的端口之外的内部节点,形成以N个电路节点形成的N端口网络导纳矩阵Y;
式中为导纳网络中与待消去的导纳网络节点关联的第a个导纳网络节点和待消去的导纳网络节点的互导纳;为导纳网络中与待消去的导纳网络节点关联的第b个导纳网络节点和待消去的导纳网络节点的互导纳;为与待消去的导纳网络节点关联的第a个导纳网络节点和与待消去的导纳网络节点关联的第b个导纳网络节点的互导纳,对应有限元刚度矩阵非对角元第a行、第b列的元素;为导纳网络中与待消去的导纳网络节点关联的第c个导纳网络节点和待消去的导纳网络节点的互导纳;g为与待消去的导纳网络节点关联的导纳网络节点的数量;
反复利用所述星形-三角形变换公式进行三角形-星形变换,以消去有限元方程组对应的有限元刚度矩阵中除标定的电路节点形成的端口之外的内部节点,形成与标定的电路节点对应的端口导纳矩阵Y。
其中,作为一个具体的实施例,如图17所示,为一个多层二维结构的版图的三角形网格剖分示意图。如图17所示,整个版图剖分形成8个三角形网格,9个网格剖分节点,其中,节点1,3,8为与待分析的子***相连的端口网络节点。
图18中的节点对应于有限元矩阵的未知量节点,a、b节点之间的互导纳对应刚度矩阵非对角元第a行、第b列的元素,而节点a的自导纳则为所有节点a相关联的互导纳的和。
由于与待分析的子***相连的端口为1,3,8,最终目的是提取端口为1,3,8对应的阻抗网络模型。需要对图17所示的等效导纳网络反复进行星形-三角形变换,以消去非端口节点。
其中,图19-图20为3端口的星形-三角形变换图 , 图19为星形结构示意图,图20为三角形结构示意图。图8-图9对应的星形-三角形变换公式为:
通过上述公式,即可消去内部节点4。
3端口星形-三角形变换可推广到N端口:假设在导纳电路中有N+1个节点,节点N+1与所有节点1,2,…,N相连,那这个N端口的星形-三角形变换公式为:
基于上述思想和变换方法,即可消去有限元刚度矩阵非端口的内部节点,最终形成端口的导纳网络。
图21-图24为导纳网络的刚度矩阵的内部节点消去过程示意图,如图21-图24所示,导纳网络的刚度矩阵的内部节点消去过程具体为:
如图24所示,消去节点4,6,2的过程与消去节点5的过程相同 ,最终形成3端口的导纳矩阵,最后,形成的端口1,3,8的导纳矩阵如下:
S640:通过检查关联矩阵与端口导纳矩阵的一致性确定待检测集成电路版图连通的正确性,即从所述关联矩阵选取任意两个待测电路节点,根据所述端口导纳矩阵检查所述待测电路节点的导纳值,基于预先设定的导纳阈值对所述待测电路节点的导纳值进行连通性检测,得到检测结果。
具体的检测方法包括:
对关联矩阵元素Amn(m=1,2,…,N, n=1,2,…,N),其对应两个电路节点m和n,检查Ymn的值;
其中ε为预先设定的导纳阈值,所述导纳阈值为预先设定的集成电路版图中电路节点连通时导纳的最小阈值。
所以,进行第三检测的核心在于通过生成以电路节点为端口的导纳矩阵并通过矩阵元素大小判断连通性是否正确,从而达到精确诊断的效果。
S700:使用第三缺陷修复步骤对所述第三检测结果中的设计缺陷进行自动修复,得到最终修复结果。
具体包括:
针对集成电路版图中与集成电路原理图中电路节点对应的位置点,找出各位置点的网络编号与集成电路原理图中电路节点的连通性不一致的位置点;
如果不一致的位置点为走线端点对应的电路节点,采用第二走线修复步骤对走线进行自动修复;
如果不一致的位置点为过孔端点对应的电路节点,采用第二焊盘修复步骤对过孔端点的焊盘进行自动修复。
在一些实施例的一些可选的实现方式中,所述第二走线修复步骤包括:
步骤X2.1:如图14-图15所示,检测走线段内是否存在焊盘和隔离垫片,如果存在焊盘和隔离垫片,设置焊盘和隔离垫片直径为各自允许的最小直径,检测修改后的隔离垫片直径与走线的宽度,如果隔离垫片直径超过走线宽度的一半,在隔离垫片的位置对走线进行修改,使得走线避开隔离垫片,可以围绕这个隔离垫片将原走线分解为5段相连的走线,每两个相连走线夹角为135︒,且保证走线与焊盘最小间距不小于允许的最小间距,如图16所示,转入步骤X2.2;
步骤X2.2:检测走线段端点与走线之外的版图结构接触情况,如果接触宽度小于走线宽度的一半,延长走线直到接触宽度为走线宽度,如图25-图26所示;
所述第二焊盘修复步骤包括:检测过孔端点的焊盘和焊盘之外的版图结构接触情况,增大焊盘半径,使得焊盘和焊盘之外的版图结构接触宽度在焊盘半径不超过最大允许的焊盘半径的情况下达到最大。
以上仅是本发明优选的实施方式,需指出的是,对于本领域技术人员在不脱离本技术方案的前提下,作出的若干变形和改进的技术方案应同样视为落入本权利要求书要求保护的范围。
Claims (10)
1.集成电路版图设计缺陷的诊断及自动修复方法,其特征在于:包括以下步骤:
读入原始设计的集成电路版图及对应的集成电路原理图;
采用基于等效多端口网络的技术和连通规则检测集成电路版图拓扑结构,得到第一检测结果;
如果第一检测结果表明存在设计缺陷,使用第一缺陷修复步骤对所述第一检测结果中的设计缺陷进行自动修复,得到第一修复结果;
采用三角形网格剖分以及遍历技术对所述第一修复结果进行检测,得到第二检测结果;
如果第二检测结果表明存在设计缺陷,使用第二缺陷修复步骤对所述第二检测结果中的设计缺陷进行自动修复,得到第二修复结果;
通过计算集成电路的电路节点形成的多端口的端口网络导纳矩阵对所述第二修复结果进行检测,得到第三检测结果;
如果第三检测结果表明存在设计缺陷,使用第三缺陷修复步骤对所述第三检测结果中的设计缺陷进行自动修复,得到最终修复结果。
2.根据权利要求1所述的方法,其特征在于:所述采用基于等效多端口网络的技术和连通规则检测集成电路版图拓扑结构,得到第一检测结果,包括:
在所述集成电路版图中标定出第一公共电路节点;
根据所述第一公共电路节点等效构建第一多端口网络,基于所述第一多端口网络和所述第一公共电路节点及版图连通规则形成第一电路节点-网络编号对;
在所述集成电路原理图中标定出第二公共电路节点;
根据所述第二公共电路节点等效构建第二多端口网络,基于所述第二多端口网络和所述第二公共电路节点及电路原理图连通规则形成第二电路节点-网络编号对;
将所述第一电路节点-网络编号对与所述第二电路节点-网络编号对进行比较判断,
如果所述第一电路节点-网络编号对与所述第二电路节点-网络编号对完全吻合,说明所述集成电路版图不存在拓扑结构错误;
如果所述第一电路节点-网络编号对与所述第二电路节点-网络编号对中有任意一对无法相互对应,则说明所述集成电路版图存在拓扑结构错误,根据比较结果确定拓扑结构错误位置,所述拓扑结构错误位置为所述集成电路版图与所述集成电路原理图的网络编号不一致的电路节点所对应的位置。
3.根据权利要求2所述的方法,其特征在于:所述使用第一缺陷修复步骤对所述第一检测结果中的设计缺陷进行自动修复,得到第一修复结果,包括:
根据所述拓扑结构错误位置确定不吻合位置,所述不吻合位置包括覆铜多边形内的电路节点/由走线转换的覆铜多边形内的电路节点;
如果集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号不一致,则根据所述集成电路原理图判断所述集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号一致,将覆铜多边形内的电路节点与覆铜多边形进行电气连接;
如果集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号一致,则根据所述集成电路原理图判断所述集成电路版图的覆铜多边形的网络编号与覆铜多边形内的电路节点的网络编号不一致,将覆铜多边形内的电路节点与覆铜多边形进行断开。
4.根据权利要求3所述的方法,其特征在于:所述采用三角形网格剖分以及遍历技术对所述第一修复结果进行检测,得到第二检测结果,包括:
填写集成电路原理图中电路节点的网络编号;
根据所述集成电路原理图和所述集成电路版图的位置关系标定出所述集成电路原理图中的电路节点在集成电路版图中对应的位置,并将所述位置作为集成电路版图的电路节点;
将所述集成电路版图中的走线、由过孔引起的焊盘以及隔离垫片转换为版图多边形并与原始定义的覆铜多边形进行多边形布尔运算,形成统一的版图多边形;所述原始定义的覆铜多边形为版图设计文件中定义为版图多边形且多边形顶点为逆时针排列的多边形;
根据所述版图多边形和所述集成电路版图中的电路节点,生成带约束的三角形网格剖分;
对带约束的三角形网格剖分进行遍历并进行网络编号填写;
根据所述集成电路原理图中的电路节点在所述集成电路版图中对应的位置点所关联的三角形获取所述位置点的网络编号;
将集成电路版图中电路节点的网络编号与集成电路原理图中电路节点的网络编号进行比较判断,根据判断结果确定所述集成电路版图是否有设计缺陷,具体的步骤为:依据用户定义的所述集成电路原理图中电路节点与集成电路版图中的位置关系,建立所述位置点的网络编号与集成电路原理图中电路节点的网络编号的映射关系,如果这个映射关系是一对一的映射,则确定所述集成电路版图的不存在设计缺陷,如果这个映射关系并非一对一的映射,则确定所述集成电路版图的存在设计缺陷,且映射关系不对应的电路节点所在的位置为设计缺陷所在的位置。
5.根据权利要求4所述的方法,其特征在于:所述使用第二缺陷修复步骤对所述第二检测结果中的设计缺陷进行自动修复,得到第二修复结果,包括:
如果映射关系不对应的电路节点所在的位置为走线端点对应的电路节点,采用第一走线修复步骤对走线进行自动修复;
如果映射关系不对应的电路节点所在的位置为过孔端点对应的电路节点,采用第一焊盘修复步骤对过孔端点的焊盘进行自动修复。
6.根据权利要求5所述的方法,其特征在于:所述第一走线修复步骤包括:
步骤X1.1:检测走线段内是否存在焊盘和隔离垫片,如果存在焊盘和隔离垫片,检查隔离垫片直径与走线宽度的关系,如果隔离垫片直径不小于走线宽度,检查隔离垫片的最小允许直径是否小于走线宽度,如果小于,设置焊盘和隔离垫片直径为各自允许的最小直径,否则,首先设置焊盘和隔离垫片直径为各自允许的最小直径,再在隔离垫片的位置对走线进行修改,使得走线避开隔离垫片,围绕这个隔离垫片将原走线分解为多段相连的走线,每两个相连走线夹角为钝角,且保证走线与焊盘最小间距不小于允许的最小间距,转入步骤X1.2;
步骤X1.2:检测走线段内是否存在焊盘和隔离垫片,如果只存在焊盘,设置焊盘直径为允许的最小直径,检测焊盘是否与走线之外的版图结构接触,如果接触,则在焊盘之外增加隔离垫片并转入步骤X1.1,如果不接触,则转入步骤X1.3;
步骤X1.3:检测走线段内是否存在焊盘和隔离垫片,如果不存在焊盘和隔离垫片,检测走线本身是否和走线之外的版图结构接触,如果接触,在接触的位置对走线进行修改,使得走线避开接触的版图结构;
所述第一焊盘修复步骤包括:检测过孔端点的焊盘是否和焊盘之外的版图结构接触,如果接触,在焊盘之外增加隔离垫片,且设置焊盘和隔离垫片直径为各自的最小直径。
7.根据权利要求6所述的方法,其特征在于:所述版图结构为版图上的覆铜,所述版图结构包括覆铜多边形、所述走线之外的其他走线以及所述焊盘之外的其他焊盘。
8.根据权利要求7所述的方法,其特征在于:所述通过计算集成电路的电路节点形成的多端口的端口网络导纳矩阵对所述第二修复结果进行检测,得到第三检测结果,包括:
基于统一的版图多边形和所述集成电路版图的电路节点对每层集成电路版图进行网格剖分,使得所述集成电路版图中的电路节点在网格剖分中的节点编号在前且与集成电路原理图中所有电路节点编号一致;
基于多层集成电路叠层结构的特点将三维的多层集成电路等效为多层的二维结构,基于网格剖分形成的场域,采用有限元法形成整个集成电路的有限元刚度矩阵;
反复利用星形-三角形变换法消除有限元方程组对应的有限元刚度矩阵中除标定的电路节点形成的端口之外的内部节点,形成与标定的电路节点对应的端口导纳矩阵;
通过检查关联矩阵与端口导纳矩阵的一致性确定待检测集成电路版图连通的正确性,即从所述关联矩阵选取任意两个待测电路节点,根据所述端口导纳矩阵检查所述待测电路节点的导纳值,基于预先设定的导纳阈值对所述待测电路节点的导纳值进行连通性检测,得到检测结果。
9.根据权利要求8所述的方法,其特征在于:所述使用第三缺陷修复步骤对所述第三检测结果中的设计缺陷进行自动修复,得到最终修复结果,包括:
针对集成电路版图中与集成电路原理图中电路节点对应的位置点,找出各位置点的网络编号与集成电路原理图中电路节点的连通性不一致的位置点;
如果不一致的位置点为走线端点对应的电路节点,采用第二走线修复步骤对走线进行自动修复;
如果不一致的位置点为过孔端点对应的电路节点,采用第二焊盘修复步骤对过孔端点的焊盘进行自动修复。
10.根据权利要求9所述的方法,其特征在于:所述第二走线修复步骤包括:
步骤X2.1:检测走线段内是否存在焊盘和隔离垫片,如果存在焊盘和隔离垫片,设置焊盘和隔离垫片直径为各自允许的最小直径,检测修改后的隔离垫片直径与走线的宽度,如果隔离垫片直径超过走线宽度的一半,在隔离垫片的位置对走线进行修改,使得走线避开隔离垫片,可以围绕这个隔离垫片将原走线分解为多段相连的走线,每两个相连走线夹角为钝角,且保证走线与焊盘最小间距不小于允许的最小间距,转入步骤X2.2;
步骤X2.2:检测走线段端点与走线之外的版图结构接触情况,如果接触宽度小于走线宽度的一半,延长走线直到接触宽度为走线宽度;
所述第二焊盘修复步骤包括:检测过孔端点的焊盘和焊盘之外的版图结构接触情况,增大焊盘半径,使得焊盘和焊盘之外的版图结构接触宽度在焊盘半径不超过最大允许的焊盘半径的情况下达到最大。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211513939.9A CN115544958B (zh) | 2022-11-30 | 2022-11-30 | 集成电路版图设计缺陷的诊断及自动修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211513939.9A CN115544958B (zh) | 2022-11-30 | 2022-11-30 | 集成电路版图设计缺陷的诊断及自动修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115544958A true CN115544958A (zh) | 2022-12-30 |
CN115544958B CN115544958B (zh) | 2023-03-10 |
Family
ID=84721915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211513939.9A Active CN115544958B (zh) | 2022-11-30 | 2022-11-30 | 集成电路版图设计缺陷的诊断及自动修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115544958B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011394A (zh) * | 2023-01-04 | 2023-04-25 | 之江实验室 | 一种异常检测方法、装置、设备及存储介质 |
CN116522855A (zh) * | 2023-07-05 | 2023-08-01 | 北京智芯仿真科技有限公司 | 一种优化集成电路多电源多负载的供电方法及*** |
CN116542220A (zh) * | 2023-07-05 | 2023-08-04 | 北京智芯仿真科技有限公司 | 集成电路直流压降计算模型的自动设置与诊断方法及*** |
CN117034857A (zh) * | 2023-10-10 | 2023-11-10 | 北京智芯仿真科技有限公司 | 多边形大面积重叠的集成电路版图网络标识方法及装置 |
CN117151021A (zh) * | 2023-10-31 | 2023-12-01 | 北京智芯仿真科技有限公司 | 基于覆铜形状拓扑结构诊断集成电路版图设计缺陷的方法 |
CN117272914A (zh) * | 2023-10-31 | 2023-12-22 | 北京智芯仿真科技有限公司 | 基于四叉树快速确定覆铜形状形成拓扑结构的方法及装置 |
CN117574838A (zh) * | 2024-01-15 | 2024-02-20 | 北京智芯仿真科技有限公司 | 基于确定的集成电路版图网表信息的版图诊断方法及装置 |
CN117852482A (zh) * | 2024-01-15 | 2024-04-09 | 北京智芯仿真科技有限公司 | 针对走线的集成电路版图网表信息的快速诊断方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452492A (zh) * | 2007-11-29 | 2009-06-10 | 北京中电华大电子设计有限责任公司 | 集成电路版图与原理图一致性检查的局部重签名修复方法 |
CN101630337A (zh) * | 2009-07-28 | 2010-01-20 | 浪潮电子信息产业股份有限公司 | 一种提高芯片成品率的实现方法 |
US20100121585A1 (en) * | 2008-11-11 | 2010-05-13 | Nec Laboratories America, Inc. | Systems and methods for locating defective components of a circuit |
CN107656839A (zh) * | 2017-08-11 | 2018-02-02 | 天津大学 | 集成电路安全性评估与检测方法 |
CN113554631A (zh) * | 2021-07-30 | 2021-10-26 | 西安电子科技大学 | 一种基于改进网络的芯片表面缺陷检测方法 |
-
2022
- 2022-11-30 CN CN202211513939.9A patent/CN115544958B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452492A (zh) * | 2007-11-29 | 2009-06-10 | 北京中电华大电子设计有限责任公司 | 集成电路版图与原理图一致性检查的局部重签名修复方法 |
US20100121585A1 (en) * | 2008-11-11 | 2010-05-13 | Nec Laboratories America, Inc. | Systems and methods for locating defective components of a circuit |
CN101630337A (zh) * | 2009-07-28 | 2010-01-20 | 浪潮电子信息产业股份有限公司 | 一种提高芯片成品率的实现方法 |
CN107656839A (zh) * | 2017-08-11 | 2018-02-02 | 天津大学 | 集成电路安全性评估与检测方法 |
CN113554631A (zh) * | 2021-07-30 | 2021-10-26 | 西安电子科技大学 | 一种基于改进网络的芯片表面缺陷检测方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011394A (zh) * | 2023-01-04 | 2023-04-25 | 之江实验室 | 一种异常检测方法、装置、设备及存储介质 |
CN116011394B (zh) * | 2023-01-04 | 2023-09-01 | 之江实验室 | 一种异常检测方法、装置、设备及存储介质 |
CN116522855A (zh) * | 2023-07-05 | 2023-08-01 | 北京智芯仿真科技有限公司 | 一种优化集成电路多电源多负载的供电方法及*** |
CN116542220A (zh) * | 2023-07-05 | 2023-08-04 | 北京智芯仿真科技有限公司 | 集成电路直流压降计算模型的自动设置与诊断方法及*** |
CN116522855B (zh) * | 2023-07-05 | 2023-09-05 | 北京智芯仿真科技有限公司 | 一种优化集成电路多电源多负载的供电方法及*** |
CN116542220B (zh) * | 2023-07-05 | 2023-09-15 | 北京智芯仿真科技有限公司 | 集成电路直流压降计算模型的自动设置与诊断方法及*** |
CN117034857A (zh) * | 2023-10-10 | 2023-11-10 | 北京智芯仿真科技有限公司 | 多边形大面积重叠的集成电路版图网络标识方法及装置 |
CN117034857B (zh) * | 2023-10-10 | 2024-01-12 | 北京智芯仿真科技有限公司 | 多边形大面积重叠的集成电路版图网络标识方法及装置 |
CN117151021A (zh) * | 2023-10-31 | 2023-12-01 | 北京智芯仿真科技有限公司 | 基于覆铜形状拓扑结构诊断集成电路版图设计缺陷的方法 |
CN117272914A (zh) * | 2023-10-31 | 2023-12-22 | 北京智芯仿真科技有限公司 | 基于四叉树快速确定覆铜形状形成拓扑结构的方法及装置 |
CN117151021B (zh) * | 2023-10-31 | 2023-12-29 | 北京智芯仿真科技有限公司 | 基于覆铜形状拓扑结构诊断集成电路版图设计缺陷的方法 |
CN117272914B (zh) * | 2023-10-31 | 2024-03-12 | 北京智芯仿真科技有限公司 | 基于四叉树快速确定覆铜形状形成拓扑结构的方法及装置 |
CN117574838A (zh) * | 2024-01-15 | 2024-02-20 | 北京智芯仿真科技有限公司 | 基于确定的集成电路版图网表信息的版图诊断方法及装置 |
CN117852482A (zh) * | 2024-01-15 | 2024-04-09 | 北京智芯仿真科技有限公司 | 针对走线的集成电路版图网表信息的快速诊断方法及*** |
CN117574838B (zh) * | 2024-01-15 | 2024-04-12 | 北京智芯仿真科技有限公司 | 基于确定的集成电路版图网表信息的版图诊断方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115544958B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115544958B (zh) | 集成电路版图设计缺陷的诊断及自动修复方法 | |
CN115600549B (zh) | 基于网格剖分确定集成电路版图设计缺陷的精准检测方法 | |
CN115600550B (zh) | 基于端口电阻确定集成电路版图设计缺陷的精准检测方法 | |
CN111539178B (zh) | 一种基于神经网络的芯片版图设计方法和***及制作方法 | |
CN111898330B (zh) | 基于多层次并行策略的集成电路电磁响应计算方法及装置 | |
US8468482B1 (en) | Modeling and simulating the impact of imperfectly patterned via arrays on integrated circuits | |
CN115544949B (zh) | 基于等效多端口网络检测集成电路版图拓扑结构的方法 | |
CN117034857B (zh) | 多边形大面积重叠的集成电路版图网络标识方法及装置 | |
CN111931458B (zh) | 基于混合阶有限元的三维集成电路电磁场计算方法及装置 | |
CN117057308B (zh) | 大面积叠加的集成电路版图融合与精准诊断方法及装置 | |
CN117034858B (zh) | 大面积叠加的集成电路版图快速网格剖分方法及装置 | |
CN110688807B (zh) | 一种多层集成电路直流电场的场路耦合方法及装置 | |
CN111931457A (zh) | 基于混合阶有限元的多层集成电路电磁场计算方法及装置 | |
TW200421134A (en) | A method of IC design and integration | |
US20170017744A1 (en) | Modeling of Power Distribution Networks for Path Finding | |
CN113947054A (zh) | 适用性高的芯片版图设计方法 | |
CN117272914B (zh) | 基于四叉树快速确定覆铜形状形成拓扑结构的方法及装置 | |
CN116522854B (zh) | 多供电***的集成电路仿真模型生成与计算方法及*** | |
CN104731987B (zh) | 一种早期版图的寄生电阻电容估算方法 | |
US6542834B1 (en) | Capacitance estimation | |
CN112307710B (zh) | 一种***级集成电路的直流压降分析方法及*** | |
CN115618802A (zh) | 一种用于集成电路版图检测孤岛的方法和*** | |
CN109116112A (zh) | 一种导通电阻测试结构及方法 | |
CN117852482B (zh) | 针对走线的集成电路版图网表信息的快速诊断方法及*** | |
CN116432599B (zh) | 一种用于集成电路sink管脚优化的方法和*** |
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 |