技术领域
本发明涉及集成电路领域,特别是涉及一种基于集成电路阻抗网络提取的网格节点编码方法及系统。
背景技术
多层超大规模集成电路阻抗网络模型的提取是集成电路后端验证的一个重要工作,其常规的提取方法是简化的传输线法或基于场的计算方法计算超大规模集成电路的S参数矩阵,再基于S参数矩阵转换为阻抗网络模型。传输线法计算速度快,但由于对集成电路版图进行了很大的近似,在处理早期结构简单、规则的版图计算结果是准确的,但对于近年来结构越来越复杂、尺度范围为厘米级到纳米级的版图则产生不可比对的误差。基于场的方法计算,在网格剖分的过程中考虑了版图的复杂结构,因此其计算结果是准确的,但这种方法需要完全求解整个稀疏矩阵获得场的分布,再根据场的分布针对预先定义的端口计算端口量的大小(如电流、电压、功率等),从而计算出S参数矩阵,最后,将这个S参数矩阵转化为阻抗网络模型。这种方法能够针对集成电路的复杂版图结构给出很精确的计算结果,但其求解整个稀疏矩阵的时间很长,且获得场的分布后,还需要额外的过程计算S参数矩阵再转化为阻抗网络模型,因此这种方法计算时间长,过程复杂,且S参数矩阵的计算、S参数矩阵转化为阻抗网络模型等过程中还会产生不可避免的误差。
基于上述问题,为了减少计算时间,降低计算的复杂度,不按照传统的方法计算场的分布,再通过计算端口量的大小计算多端口的S参数矩阵,最后由S参数矩阵转换为阻抗矩阵,而是通过消去法直接由有限元稀疏矩阵代表的导纳网络消去非端口的有限元网格内部节点从而获得端口的导纳矩阵。但这个消去的过程中,内部节点的消去顺序会影响最终获得的多端口网络阻抗矩阵的精度,不合适的内部节点消去顺序可能会造成计算的结果不准确,不能有效的提取阻抗网络模型。
发明内容
本发明的目的是提供一种基于集成电路阻抗网络提取的网格节点编码方法及系统,提高多层超大规模集成电路阻抗网络模型提取的精确度。
为实现上述目的,本发明提供了如下方案:
一种基于集成电路阻抗网络提取的网格节点编码方法,包括:
获取多层集成电路版图;所述多层集成电路版图包含多个顶点的多个多边形;
对所述多层集成电路版图进行网格剖分,得到将多层集成电路版图进行分割的非结构的三角形网格;
对所述三角形网格中的端口依次进行连续编码;所述端口为用户预先定义的待计算的多端口网络阻抗矩阵中的多个端口;
获取所述三角形网格中的网格节点到所述端口的距离;
根据所述三角形网格中的网格节点到所述端口的距离对相应的网格节点进行编码;所述三角形网格中的网格节点到所述端口的距离与所述网格节点的编码成正相关,即距离越大,网格节点的编码越大;
根据编码后的三角形网格上的网格节点的信息,列写计算集成电路的电位场的有限元方程组,得到有限元稀疏矩阵;所述有限元稀疏矩阵关联的是有限元网格的节点;所述有限元网格的网格节点的编码与所述编码后的三角形网格的网格节点的编码相同;所述有限元网格的编码与所述编码后的三角形网格的编码相同;所述网格节点的信息包括电压、电流、功率、电导率、电位、介电常数、磁导率、电场强度以及磁场强度;
根据所述有限元网格的网格节点的编码,反复利用三角形-星形变换消去所述有限元稀疏矩阵非端口的网格节点,得到多端口网络导纳矩阵;
根据所述多端口网络导纳矩阵提取阻抗网络模型。
可选的,所述对所述多层集成电路版图进行网格剖分,得到将多层集成电路版图进行分割的非结构的三角形网格,之后还包括:
对所述三角形网格进行编码。
可选的,所述获取所述三角形网格中的网格节点到所述端口的距离,具体包括:
对所述三角形网格中的网格节点进行初始化;所述初始化后的网格节点的编码均为0;
根据编码后的端口确定与所述编码后的端口相关联的三角形网格;所述编码后的端口相关联的三角形网格为三角形顶点包括所述端口的三角形网格;
获取与所述编码后的端口相关联的三角形网格中未处理的网格节点;
依次计算与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离;
对与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离按从小到大进行排序,得到距离序列;
获取与所述相关的三角形网格有公共边的邻居三角形网格;
依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离;
将所述邻居三角形网格中未处理的网格节点与所述端口的距离插入到原有的距离序列中去,形成更新的从小到大的距离序列;
获取与所述邻居三角形有公共边的新的邻居三角形网格,并返回所述依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离的步骤,直至所有三角形网格的网格节点处理完成,得到更新后的由小到大排列的距离序列;
根据所述由小到大排列的距离序列对所有端口之外的三角形网格节点进行连续编码;距离小的编码小,距离大的编码大。
可选的,所述根据所述有限元网格的网格节点的编码,反复利用三角形-星形变换消去所述有限元稀疏矩阵非端口的网格节点,得到多端口网络导纳矩阵,具体包括:
利用所述三角形-星形变换按照网格节点编码由大到小的顺序依次消去所述有限元网格的除端口之外的网格节点,得到多端口网络的导纳矩阵。
一种基于集成电路阻抗网络提取的网格节点编码系统,包括:
多层集成电路版图获取模块,用于获取多层集成电路版图;所述多层集成电路版图包含多个顶点的多个多边形;
网格剖分模块,用于对所述多层集成电路版图进行网格剖分,得到将多层集成电路版图进行分割的非结构的三角形网格;
端口编码模块,用于对所述三角形网格中的端口依次进行连续编码;所述端口为用户预先定义的待计算的多端口网络阻抗矩阵中的多个端口;
网格节点到端口距离获取模块,用于获取所述三角形网格中的网格节点到所述端口的距离;
网格节点编码模块,用于根据所述三角形网格中的网格节点到所述端口的距离对相应的网格节点进行编码;所述三角形网格中的网格节点到所述端口的距离与所述网格节点的编码成正相关,即距离越大,网格节点的编码越大;
有限元稀疏矩阵确定模块,用于根据编码后的三角形网格上的网格节点的信息,列写计算集成电路的电位场的有限元方程组,得到有限元稀疏矩阵;所述有限元稀疏矩阵关联的是有限元网格的节点;所述有限元网格的网格节点的编码与所述编码后的三角形网格的网格节点的编码相同;所述有限元网格的编码与所述编码后的三角形网格的编码相同;所述网格节点的信息包括电压、电流、功率、电导率、电位、介电常数、磁导率、电场强度以及磁场强度;
多端口网络的导纳矩阵确定模块,用于根据所述有限元网格的网格节点的编码,反复利用三角形-星形变换消去所述有限元稀疏矩阵非端口的网格节点,得到多端口网络导纳矩阵;
阻抗网络模型提取模块,用于根据所述多端口网络导纳矩阵提取阻抗网络模型。
可选的,还包括:
三角形网格编码模块,用于对所述三角形网格进行编码。
可选的,所述网格节点到端口距离获取模块具体包括:
初始化单元,用于对所述三角形网格中的网格节点进行初始化;所述初始化后的网格节点的编码均为0;
相关联的三角形网格确定单元,用于根据编码后的端口确定与所述编码后的端口相关联的三角形网格;所述编码后的端口相关联的三角形网格为三角形顶点包括所述端口的三角形网格;
未处理的网格节点获取单元,用于获取与所述编码后的端口相关联的三角形网格中未处理的网格节点;
第一距离确定单元,用于依次计算与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离;
距离序列确定单元,用于对与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离按从小到大进行排序,得到距离序列;
邻居三角形网格获取单元,用于获取与所述相关的三角形网格有公共边的邻居三角形网格;
第二距离确定单元,用于依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离;
距离序列更新单元,用于将所述邻居三角形网格中未处理的网格节点与所述端口的距离插入到原有的距离序列中去,形成更新的从小到大的距离序列;
更新后的距离序列确定单元,用于获取与所述邻居三角形有公共边的新的邻居三角形网格,并返回所述依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离的步骤,直至所有三角形网格的网格节点处理完成,得到更新后的由小到大排列的距离序列;
连续编码单元,用于根据所述由小到大排列的距离序列对所有端口之外的三角形网格节点进行连续编码;距离小的编码小,距离大的编码大。
可选的,所述多端口网络的导纳矩阵确定模块具体包括:
多端口网络的导纳矩阵确定单元,用于利用所述三角形-星形变换按照网格节点编码由大到小的顺序依次消去所述有限元网格的除端口之外的网格节点,得到多端口网络的导纳矩阵。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码方法及系统,根据三角形网格中的网格节点距所述端口距离的远近对三角形网格中的网格节点进行编码,根据编码并反复利用三角形-星形变换消去所述有限元稀疏矩阵非端口的网格节点,得到多端口网络导纳矩阵。避免了在网格节点消去的过程中,更先消去距离端口更近的更重要的网格节点,而造成阻抗网络模型精确度低的现象,而是首先消去距离端口远的不重要的网格节点,然后逐步消去距离端口近的重要的网格节点,避免首先消去距离近的网格节点导致其更大的误差在不断消去过程中不断进行放大,进而提高多层超大规模集成电路阻抗网络模型提取的精确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码方法流程示意图;
图2为现有技术中三角形网格的网格节点的编码及三角形网格的编码示意图;
图3为本发明所提供的三角形网格的网格节点的编码及三角形网格的编码示意图;
图4为本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于集成电路阻抗网络提取的网格节点编码方法及系统,提高多层超大规模集成电路阻抗网络模型提取的精确度。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码方法流程示意图,如图1所示,本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码方法,包括:
S101,获取多层集成电路版图;所述多层集成电路版图包含多个顶点的多个多边形。
在S101之前,还包括:
确定所述多层集成电路的三维模型;所述三维模型是指模型中的电导率、磁导率、介电常数等电磁参数的分布均为三维空间坐标的函数以及模型中的电位、磁位、电场强度、磁场强度等场量的分布均为三维空间坐标的函数;
将所述多层集成电路的三维模型简化为二维模型。
S102,对所述多层集成电路版图进行网格剖分,得到将多层集成电路版图进行分割的非结构的三角形网格。其中,S102是在二维模型进行的网格剖分。
S102具体包括:
对于多层集成电路的直流场分析模型,对集成电路版图各层的多个多边形根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,基于该Delaunay三角形网格对版图多边形进行不失精度的简化;基于简化的版图多边形对由多边形定义的集成电路计算区域进行自适应细分,形成非结构三角形网格。
对于多层集成电路的交变电磁场分析模型,将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的多边形信息和所在层的层信息。
合并所述投影后重合的多个多边形边的所述多边形信息和层信息。
根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格。
基于所述第一三角形网格,将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中。
根据所述所有三角形和所述各个多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边。
根据计算精度要求和不同平行平板场域的公共区域,对所述各个平行平板场域内的三角形进行自适应网格细分处理,最终形成非结构三角形网格。
S102之后还包括:
对所述三角形网格进行编码。
S103,对所述三角形网格中的端口依次进行连续编码;所述端口为用户预先定义的待计算的多端口网络阻抗矩阵中的多个端口。
S104,获取所述三角形网格中的网格节点到所述端口的距离。
S104具体包括:
对所述三角形网格中的网格节点进行初始化;所述初始化后的网格节点的编码均为0。
根据编码后的端口确定与所述编码后的端口相关联的三角形网格;所述编码后的端口相关联的三角形网格为三角形顶点包括所述端口的三角形网格。
获取与所述编码后的端口相关联的三角形网格中未处理的网格节点。
依次计算与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离。
对与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离按从小到大进行排序,得到距离序列。
获取与所述相关的三角形网格有公共边的邻居三角形网格。
依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离。
将所述邻居三角形网格中未处理的网格节点与所述端口的距离插入到原有的距离序列中去,形成更新的从小到大的距离序列。
获取与所述邻居三角形有公共边的新的邻居三角形网格,并返回所述依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离的步骤,直至所有三角形网格的网格节点处理完成,得到更新后的由小到大排列的距离序列。
根据所述由小到大排列的距离序列对所有端口之外的三角形网格节点进行连续编码;距离小的编码小,距离大的编码大。
S105,根据所述三角形网格中的网格节点到所述端口的距离对相应的网格节点进行编码;所述三角形网格中的网格节点到所述端口的距离与所述网格节点的编码成正相关,即距离越大,网格节点的编码越大。
由场的分布和衰减规律可知,越是远离用户设定端口的位置,其网格节点、介质变化对端口的影响越小,反之,接近用户设定端口的位置,其网格节点、介质变化对端口的影响越大。
图2为现有技术中三角形网格的网格节点的编码及三角形网格的编码示意图,图3为本发明所提供的三角形网格的网格节点的编码及三角形网格的编码示意图,由图2和图3所示,三角形网格中的网格节点的具体编码过程如下:
(1)将用户定义的3个端口对应的网格节点编号为1~3,如图3所示。
在端口节点编码的基础上,对剩下的网格节点进行编号。编号的方法为,以已经编码的端口为中心,通过三角形邻居逐步向未处理的网格节点传递。
(2)设置所有网格节点的编码状态为0,表示所有节点均未处理,即定义数组encoded=0;设置初始距离序列为空集:dlist={}。
(3)设置所有网格单元(三角形)的传递状态为0,表示所有三角形单元均未传递,即定义数组infected=0。
(4)依次对用户定义的端口进行编码,并设置其编码状态。假设用户定义的3个端口原始编码依次为i
(5)找到已经编码的端口节点关联的三角形,形成集合T。这里节点关联的三角形定义为包含该节点的三角形,如图1中端口1这个节点关联的三角形为T
(6)对集合T的所有三角形,找出未处理的顶点,依次计算各顶点到用户设置端口节点的权重距离,将权重距离按由小到大的顺序插入到现有距离序列中。如果找到的未处理顶点个数为0,转入步骤9。其中权重距离的定义如下:
式中
dlist={d
(7)将集合T元素未传递的邻居添加到集合T中,形成新的集合T。对当前集合T,T
T={T
这里单元邻居定义为:邻居三角形为与该三角形有公共边的三角形。
(8)更新集合T。如果集合T元素为已传递,或集合T元素所有邻居均为已传递,或邻居也在集合T中,将该元素从集合T中删除。T更新为:
T={T
(9)按排序后的距离序列顺序对网格节点重新编码。假设最终更新的距离序列为:
dlist={d
S106,根据编码后的三角形网格上的网格节点的信息,列写计算集成电路的电位场的有限元方程组,得到有限元稀疏矩阵;所述有限元稀疏矩阵关联的是有限元网格的节点;所述有限元网格的网格节点的编码与所述编码后的三角形网格的网格节点的编码相同;所述有限元网格的编码与所述编码后的三角形网格的编码相同;所述网格节点的信息包括电压、电流、功率、电导率、电位、介电常数、磁导率、电场强度以及磁场强度。
S106具体包括:
基于简化的二维场问题,基于剖分的网格列写计算集成电路的电位场的有限元方程组,得到有限元稀疏矩阵。
对于直流场模型,所述多层集成电路的三维模型是指直流电场模型中电导率
边界条件(2):
式中,
多层超大规模集成电路中实际PCB板或芯片封装的板尺寸远大于金属层的厚度,将多层集成电路的三维直流场问题简化为二维直流场问题。
所述对各层集成电路直流电场二维模型采用有限元法建立的场域求解方程组为方程组(3):
式中,所述
对于交变电磁场模型,所述多层集成电路的三维模型是指多层超大规模集成电路频域仿真中电磁响应特征的三维模型中介电常数
式中
当多层超大规模集成电路中实际PCB板或芯片封装的板尺寸远大于金属层时,多层超大规模集成电路频域仿真中一个频点的电磁响应特征的三维模型可简化为二维模型,此时模型中介电常数
式中
经过三维模型到二维模型的等效,可得该二维模型对应的二维有限元泛函极值公式为:
式中,
利用公式(3)的极值条件,可形成求解电位场的有限元稀疏矩阵。
S107,根据所述有限元网格的网格节点的编码,反复利用三角形-星形变换消去所述有限元稀疏矩阵非端口的网格节点,得到多端口网络导纳矩阵。
S107具体包括:
利用所述三角形-星形变换按照网格节点编码由大到小的顺序依次消去所述有限元网格的除端口之外的网格节点,得到多端口网络的导纳矩阵。
S108,根据所述多端口网络导纳矩阵提取阻抗网络模型。
图4为本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码系统结构示意图,如图4所示,本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码系统,包括:多层集成电路版图获取模块401、网格剖分模块402、端口编码模块403、网格节点到端口距离获取模块404、网格节点编码模块405、有限元稀疏矩阵确定模块406、多端口网络的导纳矩阵确定模块407和阻抗网络模型提取模块408。
多层集成电路版图获取模块401用于获取多层集成电路版图;所述多层集成电路版图包含多个顶点的多个多边形。
网格剖分模块402用于对所述多层集成电路版图进行网格剖分,得到将多层集成电路版图进行分割的非结构的三角形网格。
端口编码模块403用于对所述三角形网格中的端口依次进行连续编码;所述端口为用户预先定义的待计算的多端口网络阻抗矩阵中的多个端口。
网格节点到端口距离获取模块404用于获取所述三角形网格中的网格节点到所述端口的距离。
网格节点编码模块405用于根据所述三角形网格中的网格节点到所述端口的距离对相应的网格节点进行编码;所述三角形网格中的网格节点到所述端口的距离与所述网格节点的编码成正相关,即距离越大,网格节点的编码越大。
有限元稀疏矩阵确定模块406用于根据编码后的三角形网格上的网格节点的信息,列写计算集成电路的电位场的有限元方程组,得到有限元稀疏矩阵;所述有限元稀疏矩阵关联的是有限元网格的节点;所述有限元网格的网格节点的编码与所述编码后的三角形网格的网格节点的编码相同;所述有限元网格的编码与所述编码后的三角形网格的编码相同;所述网格节点的信息包括电压、电流、功率、电导率、电位、介电常数、磁导率、电场强度以及磁场强度。
多端口网络的导纳矩阵确定模块407用于根据所述有限元网格的网格节点的编码,反复利用三角形-星形变换消去所述有限元稀疏矩阵非端口的网格节点,得到多端口网络导纳矩阵。
阻抗网络模型提取模块408用于根据所述多端口网络导纳矩阵提取阻抗网络模型。
本发明所提供的一种基于集成电路阻抗网络提取的网格节点编码系统,还包括:三角形网格编码模块。
三角形网格编码模块用于对所述三角形网格进行编码。
所述网格节点到端口距离获取模块404具体包括:初始化单元、相关联的三角形网格确定单元、未处理的网格节点获取单元、第一距离确定单元、距离序列确定单元、邻居三角形网格获取单元、第二距离确定单元、距离序列更新单元、更新后的距离序列确定单元和连续编码单元。
初始化单元用于对所述三角形网格中的网格节点进行初始化;所述初始化后的网格节点的编码均为0。
相关联的三角形网格确定单元用于根据编码后的端口确定与所述编码后的端口相关联的三角形网格;所述编码后的端口相关联的三角形网格为三角形顶点包括所述端口的三角形网格。
未处理的网格节点获取单元用于获取与所述编码后的端口相关联的三角形网格中未处理的网格节点。
第一距离确定单元用于依次计算与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离。
距离序列确定单元用于对与所述编码后的端口相关联的三角形网格中未处理的网格节点与所述端口的距离按从小到大进行排序,得到距离序列。
邻居三角形网格获取单元用于获取与所述相关的三角形网格有公共边的邻居三角形网格。
第二距离确定单元用于依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离。
距离序列更新单元用于将所述邻居三角形网格中未处理的网格节点与所述端口的距离插入到原有的距离序列中去,形成更新的从小到大的距离序列。
更新后的距离序列确定单元用于获取与所述邻居三角形有公共边的新的邻居三角形网格,并返回所述依次计算所述邻居三角形网格中未处理的网格节点与所述端口的距离的步骤,直至所有三角形网格的网格节点处理完成,得到更新后的由小到大排列的距离序列。
连续编码单元用于根据所述由小到大排列的距离序列对所有端口之外的三角形网格节点进行连续编码;距离小的编码小,距离大的编码大。
所述多端口网络的导纳矩阵确定模块407具体包括:编码排序单元和多端口网络的导纳矩阵确定单元。
多端口网络的导纳矩阵确定单元用于利用所述三角形-星形变换按照网格节点编码由大到小的顺序依次消去所述有限元网格的除端口之外的网格节点,得到多端口网络的导纳矩阵。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
机译: 多个传感器网络中的传感器节点,基于传感器树的基于网格树的创建方法以及基于网格树的空间查询处理系统
机译: 网格网络系统,客户端节点,网格节点和客户端节点的通信方法
机译: 基于网格或树的无线传感器网络的路径负载控制路由系统以及一种能够优化网络中传感器节点电池消耗的方法