一种基于区域分解和网格压印的芯片网格生成方法及系统与流程

文档序号:31340937发布日期:2022-08-31 10:10阅读:143来源:国知局
一种基于区域分解和网格压印的芯片网格生成方法及系统与流程

1.本发明涉及有限元仿真领域,特别是涉及一种基于区域分解和网格压印的芯片网格生成方法及系统。


背景技术:

2.随着芯片的设计频率越来越高,经典的基尔霍夫电压和电流定律已经无法满足设计分析。因此需要通过专门的电磁仿真,利用麦克斯韦方程获取无源器件和系统在频带范围内不同频率点下的s参数。电磁仿真的标准流程有以下四个部分:图形预处理、网格剖分、矩阵求解及后处理。网格剖分作为电磁仿真流程中不可或缺的一步,能够直接影响仿真结果的准确性和有效性。
3.目前芯片领域通常采用三维集成电路设计,通过在垂直方向上堆叠多个设备层使其能够设计出结构更为紧凑、性能更高、功耗更小的芯片,这是传统的二维芯片设计所不具备的。然而三维集成电路的复杂结构及其对网格的特殊要求使得网格剖分工作变得十分困难及繁琐,严重影响了设计效率。因此,为了保证芯片设计的高效性与可靠性,为其设计专用的稳定可靠可控的网格生成算法是十分必要的。


技术实现要素:

4.本发明的目的是提供一种基于区域分解和网格压印的芯片网格生成方法及系统,可提高芯片有限元网格的质量。
5.为实现上述目的,本发明提供了如下方案:
6.一种基于区域分解和网格压印的芯片网格生成方法,包括:
7.获取芯片各设备层的布局信息;所述设备层包括导体层及导体层上开设的通孔;
8.对各设备层的布局信息进行解析,建立芯片几何模型;所述芯片几何模型中包括表征各设备层边界信息的多边形区域;
9.针对任一设备层,采用区域分解算法,将表征所述设备层边界信息的多边形区域分解为多个子区域;
10.采用二进制背包格算法,根据设定剖分尺寸及最大放大倍数,将各子区域的边界进行离散化处理,得到各子区域对应的离散边界;
11.针对任一子区域,根据所述子区域的离散边界,对所述子区域进行网格划分,得到所述子区域对应的子网格;
12.根据各子区域对应的子网格,确定所述设备层的有限元网格;
13.对各设备层的有限元网格进行布尔操作,确定各设备层之间的堆叠区域网格;
14.根据各设备层之间的堆叠区域网格,采用网格压印算法对各设备层的有限元网格进行压印,得到所述芯片的有限元网格。
15.为实现上述目的,本发明还提供了如下方案:
16.一种基于区域分解和网格压印的芯片网格生成系统,包括:
17.数据获取单元,用于获取芯片各设备层的布局信息;所述设备层包括导体层及导体层上开设的通孔;
18.建模单元,与所述数据获取单元连接,用于对各设备层的布局信息进行解析,建立芯片几何模型;所述芯片几何模型中包括表征各设备层边界信息的多边形区域;
19.区域分解单元,与所述建模单元连接,用于针对任一设备层,采用区域分解算法,将表征所述设备层边界信息的多边形区域分解为多个子区域;
20.离散单元,与所述区域分解单元连接,用于采用二进制背包格算法,根据设定剖分尺寸及最大放大倍数,将各子区域的边界进行离散化处理,得到各子区域对应的离散边界;
21.网格划分单元,分别与所述区域分解单元及所述离散单元连接,用于针对任一子区域,根据所述子区域的离散边界,对所述子区域进行网格划分,得到所述子区域对应的子网格;
22.设备层网格确定单元,与所述网格划分单元连接,用于根据各子区域对应的子网格,确定所述设备层的有限元网格;
23.堆叠区域确定单元,与所述设备层网格确定单元连接,用于对各设备层的有限元网格进行布尔操作,确定各设备层之间的堆叠区域网格;
24.压印单元,分别与所述设备层网格确定单元及所述堆叠区域确定单元连接,用于根据各设备层之间的堆叠区域网格,采用网格压印算法对各设备层的有限元网格进行压印,得到所述芯片的有限元网格。
25.根据本发明提供的具体实施例,本发明公开了以下技术效果:采用区域分解算法,将表征设备层边界信息的多边形区域分解为多个子区域,能够有效提高有限元网格中矩形的占比率;采用二进制背包格算法,根据设定剖分尺寸及最大放大倍数,将各子区域的边界进行离散化处理,得到各子区域对应的离散边界,能够在反映导体趋肤效应的前提下合理可控地实现网格的疏密过渡,提高电磁仿真的计算精度与可靠度;根据离散边界对子区域进行网格划分,得到子网格,根据子网格确定设备层的有限元网格;采用网格压印算法对各设备层的有限元网格进行压印,得到芯片的有限元网格,解决了大型芯片中网格相容的问题,提高了有限元网格的质量,为芯片的三维集成电路设计提供了有利的条件。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
27.图1为本发明基于区域分解和网格压印的芯片网格生成方法的流程图;
28.图2为特征顶点示意图;
29.图3为区域分解算法的示意图;
30.图4为不同类型边进行离散的示意图;
31.图5为转角区域网格生成方法示意图;
32.图6为转角区域中进行点合并的示意图;
33.图7为推进波前法的示意图;
34.图8为层间堆叠区域的优先级的示意图;
35.图9为有限元网格生成方法的示例流程图;
36.图10为芯片模型各设备层的几何结构图;
37.图11为芯片模型的整体结构示意图;
38.图12为二进制背包格的示例图;
39.图13为推进波前法的流程图;
40.图14为网格压印算法的示意图;
41.图15为芯片的有限元网格示意图;
42.图16为芯片的有限元网格剖分示意图;
43.图17为本发明基于区域分解和网格压印的芯片网格生成系统的模块结构示意图。
44.符号说明:
45.数据获取单元-1,建模单元-2,区域分解单元-3,离散单元-4,网格划分单元-5,设备层网格确定单元-6,堆叠区域确定单元-7,压印单元-8。
具体实施方式
46.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.本发明的目的是提供一种基于区域分解和网格压印的芯片网格生成方法及系统,能够有效提高有限元网格中矩形的占比率,在反映导体趋肤效应的前提下合理可控地实现网格的疏密过渡,提高电磁仿真的计算精度与可靠度,解决了大型芯片中网格相容的问题,提高了有限元网格的质量,为芯片的三维集成电路设计提供了有利的条件。
48.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
49.如图1所示,本发明基于区域分解和网格压印的芯片网格生成方法包括:
50.s1:获取芯片各设备层的布局信息。所述设备层包括导体层及导体层上开设的通孔。具体地,获取表征芯片布局信息的gdsii文件。
51.s2:对各设备层的布局信息进行解析,建立芯片几何模型。所述芯片几何模型中包括表征各设备层边界信息的多边形区域。在本实施例中,对表征芯片布局信息的gdsii文件进行解析并建模。将导体层及连接导体层的通孔统一用多边形区域描述并分类。按照用户设定的合并尺寸对通孔进行合并。同时对通孔进行检查,若通孔的边界超出其所连接的导体层,则将超出的部分进行切除。
52.s3:针对任一设备层,采用区域分解算法,将表征所述设备层边界信息的多边形区域分解为多个子区域。在本实施例中,以表征各设备层边界信息的多边形区域的边界为输入,递归调用区域分解算法将多边形区域分解为以矩形区域为主的若干个子区域。区域分解算法首先生成一个约束delaunay三角化的背景网格,通过在平行的边界间生成垂线以进行区域分解。采用区域分解算法能够有效提高有限元网格中矩形的占比率,有助于减小电磁仿真矩阵求解时的矩阵规模并能够提高其求解的计算效率。
53.s4:采用二进制背包格算法,根据设定剖分尺寸及最大放大倍数,将各子区域的边界进行离散化处理,得到各子区域对应的离散边界。以对有限元网格的疏密程度进行控制,能够更好的模拟导体的趋肤效应。采用二进制背包格离散算法能够在反映导体趋肤效应的前提下合理可控地实现网格的疏密过渡,提高了电磁仿真的计算精度与可靠度。
54.s5:针对任一子区域,根据所述子区域的离散边界,对所述子区域进行网格划分,得到所述子区域对应的子网格。
55.s6:根据各子区域对应的子网格,确定所述设备层的有限元网格。
56.s7:对各设备层的有限元网格进行布尔操作,确定各设备层之间的堆叠区域网格。
57.s8:根据各设备层之间的堆叠区域网格,采用网格压印算法对各设备层的有限元网格进行压印,得到所述芯片的有限元网格。具体地,调用网格压印算法,获得各设备层间的网格相容的共形网格。采用网格压印算法解决了大型ic(integrated circuit chip,集成电路)芯片模型中网格相容的问题,为芯片的三维集成电路设计提供了有利的条件。
58.进一步地,所述多个子区域包括矩形区域、三角形区域及其他形状区域。
59.步骤s3具体包括:
60.s31:从表征所述设备层边界信息的多边形区域中选取特征顶点。所述特征顶点为所述多边形区域中内角大于180
°
的顶点。
61.s32:从所述多边形区域中确定各特征顶点对应的候选边。具体地,步骤s32包括:
62.s321:采用delaunay三角剖分算法,对所述多边形区域进行剖分,得到背景三角网格;所述背景三角网格中包括多个三角形单元。
63.s322:针对任一特征顶点,在所述背景三角网格中确定包含所述特征顶点的多个三角形单元。
64.s323:从多个三角形单元的顶点中选取候选点;所述候选点为三角形单元中与特征顶点在所述多边形区域的边界上不相邻的顶点;候选点所连接的多边形区域的边界为所述特征顶点对应的候选边。具体地,如图2所示,将三角形单元中顶点(不包含该特征顶点及其相邻顶点)所连接的边界作为侯选边储存起来。图2中所标注的特征顶点属于两个三角形,这两个三角形中除该特征顶点外共有3个顶点,其中2个顶点与特征顶点在边界上是相邻的,因此选择右上方的顶点所连接的边界作为初始侯选边。在初始候选边中根据设定条件确定最终的候选边(多边形边界)。其中,设定条件为:(1)特征顶点在候选边上的投影落在侯选边内部;(2)由特征顶点向候选边所作的垂线不与其他边界或已作垂线相交;(3)所作垂线与特征顶点前后边界所形成的两个夹角之中至少有一个为90
°

65.s33:针对任一特征顶点,从所述特征顶点向所述特征顶点对应的候选边作垂线,得到多个矩形区域,如图3所示。
66.s34:将相邻两个矩形区域之间的转角区域分为多个三角形区域。所述多边形中除矩形区域及三角形区域以外的区域为其他形状区域。
67.更进一步地,所述离散边界包括端头离散边界、半端头离散边界及一般离散边界。
68.步骤s4具体包括:
69.s41:针对任一子区域,将所述子区域的边界分为端头边、半端头边及一般边。所述端头边为两个顶点所在的角均为直角的边。所述半端头边为一个顶点所在的角为直角的边。所述一般边为两个顶点所在的角均非直角的边。具体地,若子区域的一个边为多边形区
域的边界边,则根据边的两个顶点所在的多边形内角的角度对边进行分类。若子区域的一个边为多边形内部的边,且边的两个顶点均在多边形的边界上,则根据边的两个顶点与多边形边界形成的角进行分类。如图3所示。
70.s42:针对端头边,根据设定剖分尺寸及最大放大倍数,从两个顶点处采用二进制背包格算法,对所述端头边进行离散化,得到端头离散边界。
71.s43:针对半端头边,根据设定剖分尺寸及最大放大倍数,从直角的顶点处采用二进制背包格算法,对所述半端头边进行离散化,得到半端头离散边界。
72.s44:针对一般边,根据设定剖分尺寸及最大放大倍数,确定最大剖分尺寸,并根据所述最大剖分尺寸对所述一般边进行离散化,得到一般离散边界。一般边不调用二进制背包格算法,将按最大剖分尺寸进行均分离散。如图4所示。
73.在本实施例中,二进制背包格的具体实施方法为:第1格为1倍的设定剖分尺寸宽度,第二格为2倍的设定剖分尺寸宽度...依次类推,第n格为2n倍的设定剖分尺寸宽度。将设定剖分尺寸乘以最大放大倍数作为最大剖分尺寸。当单元格的长度超过最大剖分尺寸时,将该单元格的长度限制为最大剖分尺寸。具体地,二进制背包格的长度公式为:
[0074][0075]
其中,ln表示第n个单元格的长度,w表示网格剖分尺寸,m为最大放大倍数。
[0076]
进一步地,所述子网格包括矩形网格、三角形网格及混合网格。
[0077]
步骤s5具体包括:
[0078]
s51:若所述子区域为矩形区域,则根据所述子区域的离散边界,采用映射法在所述子区域内生成矩形网格。由于矩形区域的对边分段数相等,因此采用映射法生成结构化的四边形网格。
[0079]
s52:若所述子区域为三角形区域,则根据所述子区域的离散边界,采用矩形插入法在所述子区域内生成矩形网格,并采用三角形网格填充所述子区域内除矩形网格外的其他区域。
[0080]
具体地,步骤s52包括:
[0081]
s521:根据所述子区域的离散边界,在所述子区域内插入多个矩形网格。如图5所示,通过插入矩形,可将转角区域a拆分为一个矩形b1和两个直角三角形的区域c1和d1。递归插入矩形生成尽可能多的矩形网格b2-bn。
[0082]
s522:针对任一矩形网格,遍历所述子区域斜边上的点,针对所述子区域斜边上的任一节点,确定所述节点与所述矩形网格各顶点的距离。
[0083]
s523:若所述节点与所述矩形网格e的任一顶点的距离小于设定距离阈值,则将所述节点与所述矩形网格对应的顶点合并,得到合并单元。若子区域斜边上的所有节点与矩形网格的任一顶点的距离均大于或等于设定距离,则不进行合并。
[0084]
由于子区域的边界已经离散,插入的矩形的一个顶点通常并不位于直角三角形的斜边上。遍历斜边上的节点,寻找距离该矩形顶点最近的节点并计算两者之间的距离。若两个节点距离过近,可能会产生质量较差的狭长三角形,为了避免这种情况,需要将这两点进行合并。
[0085]
s524:将所述合并单元拆分为两个三角形f1和f2。如图6所示。
[0086]
s525:采用三角形网格对所述子区域中剩余的区域进行填充。本实施例中,子区域为三角形区域时,最终将三角形区域划分为矩形网格和三角形网格。
[0087]
s53:若所述子区域既不是矩形区域也不是三角形区域,则根据所述子区域的离散边界,采用变步长的aft(advancing-front technique,推进波前法)在所述子区域内生成矩形占优的混合网格。
[0088]
具体地,步骤s53包括:
[0089]
s531:根据所述子区域的离散边界,采用delaunay三角剖分算法,对所述子区域进行剖分,得到初始三角化网格。
[0090]
s532:在所述初始三角化网格中确定初始前沿边及初始前沿节点。所述初始前沿边为所述初始三角化网格的边界。初始前沿节点为初始前沿边上的点。
[0091]
s533:针对第i次迭代,根据第i时刻各前沿节点的位置,确定第i时刻各前沿节点的推进方向及推进步长,0《i≤i,i为迭代阈值;初始时刻各前沿节点为各初始前沿节点。具体地,推进方向为前沿节点处夹角的角平分线方向。推进步长由迭代次数和前沿节点的位置决定。如图7所示。
[0092]
对于边界节点,推进步长为网格剖分尺寸。
[0093]
对于内部节点,推进步长为最大剖分尺寸。对于前沿节点推进后生成的新前沿节点,其推进步长为原节点的2倍,超过最大剖分尺寸时其将被限制为最大剖分尺寸。
[0094]
s534:根据第i时刻各前沿节点的推进方向及推进步长,确定第i+1时刻各前沿节点的位置。
[0095]
s535:针对第i+1时刻任一前沿节点,判断所述前沿节点的位置是否满足设定插入条件;若所述前沿节点的位置满足设定插入条件,则将所述前沿节点插入第i时刻三角化网格中,否则所述前沿节点不插入第i时刻三角化网格中;初始时刻三角化网格为初始三角化网格。所述设定插入条件为所述前沿节点的位置不与第i时刻三角化网格中已有的前沿节点重合,且所述前沿节点的位置与第i时刻三角化网格中已有的前沿节点的距离均大于设定阈值,且不位于已冻结的三角形内。
[0096]
s536:当所有的前沿节点都完成推进后,执行边界恢复操作:根据第i+1时刻各前沿节点及第i时刻各前沿节点,在第i时刻三角化网格中进行侧边及顶边恢复操作,得到第i+1时刻三角化网格。
[0097]
具体地,针对任一前沿节点,若第i+1时刻所述前沿节点的位置满足设定插入条件,则判断第i时刻所述前沿节点与第i+1时刻所述前沿节点之间的侧边是否存在,如果不存在,则在第i时刻三角化网格中恢复所述侧边。
[0098]
在本实施例中,如果一个前沿节点已推进生成新前沿节点,在三角化网格中检查由新旧前沿节点组成的侧边是否存在,如不存在,则通过边交换的方式将该侧边恢复出来。
[0099]
若第i+1时刻各端节点的位置满足设定插入条件,则判断第i+1时刻各端节点之间的顶边是否存在,如果不存在,则在第i时刻三角化网格中恢复所述顶边,得到第i+1时刻前沿边,以得到第i+1时刻三角化网格;第i+1时刻各端节点为第i时刻前沿边两端的前沿节点对应的第i+1时刻的前沿节点;初始时刻前沿边为初始前沿边。
[0100]
在本实施例中,若一个前沿边的两个前沿顶点均推进生成了新的节点,则检查由两个新节点组成的顶边是否存在于三角化网格中。如不存在,则将其恢复。
[0101]
s537:冻结第i+1时刻三角化网格中包含第i时刻各前沿节点的三角形;冻结的三角形的顶点的坐标不能再被改变,且不能向已经冻结的三角形内插入前沿节点。即将所有包含旧前沿顶点的三角形冻结。
[0102]
s538:直至第i+1时刻各前沿节点均未插入第i时刻三角化网格中,或迭代次数等于迭代阈值时,将第i+1时刻三角化网格中相邻的两个直角三角形组合成一个矩形,得到混合网格。
[0103]
本发明采用变步长的推进波前法能够有效提高有限元网格中矩形单元的占比率,这有助于减小电磁仿真矩阵求解时的矩阵规模并能够提高其求解的计算效率。
[0104]
进一步地,步骤s8具体包括:
[0105]
s81:针对任一堆叠区域网格,确定所述堆叠区域网格每一堆叠层的优先级。所述堆叠层为各设备层与其他设备层堆叠的部分。所述优先级自上而下降低。具体地,对各设备层间的堆叠区域网格进行布尔操作取其交集,并根据堆叠区域网格堆叠的层的数量进行堆叠区域网格分级。较高优先级的网格将会通过网格压印算法被压印到对应的低优先级的网格上,使得各设备层间的网格相容。图8为层间堆叠区域优先级的示意图。
[0106]
s82:采用网格压印算法,将优先级高的堆叠层压印到优先级低的堆叠层上,以得到所述芯片的有限元网格。
[0107]
具体地,将待压印网格的边界节点插入到目标网格中,并在目标网格中通过边交换操作将待压印的网格的边界恢复出来,最后将边界内的目标网格用待压印网格进行替换。其中,待压印网格为优先级高的堆叠区域网格,目标网格为优先级低的堆叠区域网格。
[0108]
本发明为了解决芯片领域三维集成电路设计中电磁仿真流程中的网格剖分的需求,采用任意二维多连通域的区域分解算法、二进制背包格的离散算法、变步长的推进波前法以及多层间的网格压印算法,能够为大型ic芯片全自动地生成可用于电磁仿真的有限元网格,具有鲁棒性强、四边形网格占比率高、网格质量高、网格疏密可控以及能够全自动生成等优点。
[0109]
为了更好的理解本发明的方案,下面结合具体实施例进一步进行说明。
[0110]
本实施例以一个小型的ic芯片模型的有限元网格生成过程为例,算法实施的流程图如图9所示。
[0111]
首先以表征芯片布局信息的标准gdsii文件作为输入,对其进行解析并建立几何模型。将其中的导体层以及连接导体层的通孔统一用多边形进行表示,结果如图10所示。该ic芯片模型共有5个设备层,其中三层为导体层,其几何形状如图10所示。其余2层为连接各导体层的硅通孔,需要按照用户指定的合并尺寸来进行合并,合并后的ic芯片几何模型如图11所示。
[0112]
然后递归调用区域分解算法将多边形分解为若干个矩形及三角形的子区域。具体实现方法如下:首先选取多边形中内角大于等于180度的顶点作为特征顶点,通过从特征顶点向多边形的边界作垂线的方式来实现对其的分解。为了寻找各特征顶点所对应的多边形边界,需要如图2所示对区域进行约束delaunay三角剖分,并将结果作为背景网格储存起来。对于每一个特征顶点,在背景网格中寻找包含该点的三角形单元,并将该三角形单元中顶点(不包含该特征顶点及其相邻顶点)所连接的边作为侯选边储存起来,在候选边中确定最终要寻找的多边形边界。其需要满足以下条件:(1)特征顶点在候选边上的投影落在侯选
边内部;(2)由特征顶点向候选边所作的垂线不与其他边界或已作垂线相交;(3)所作垂线与特征顶点前后边界所形成的两个夹角之中至少有一个为90度。图3展示了所作的垂线及得到的子区域。
[0113]
在完成区域分解后,对各个子区域的边界调用二进制背包格算法来进行离散。图12为一个二进制背包格示例,其最大放大倍数被设置为8。将子区域的各边分为3类:两个顶点均为直角的端头边;只有一个顶点为直角的半端头边;两个顶点均不是直角的一般边。对于端头边,从两个方向上调用二进制背包格算法进行离散。对于半端头边,从直角顶点处应用二进制背包格算法离散。对于一般边,不调用二进制背包格算法,将其按最大剖分尺寸均分离散。图4展示了三种边的分类,方格内的数字代表了单元格的长度,单位为最小剖分尺寸。
[0114]
在完成边界离散后,为各个子区域生成网格。对于矩形区域,由于其对边分段数相等,可以直接调用映射法生成结构化的矩形网格。对于转角区域,其通常可拆分为两个直角三角形区域,可以如图5所示采用递归插入矩形的方法来生成尽可能多的矩形网格。由于此时边界已经离散,插入的矩形的一个顶点通常并不位于直角三角形的斜边上,当该顶点与斜边上的节点距离过近时,可能会产生质量较差的狭长三角形,为了避免这种情况,需要如图6所示将距离较近的这两点进行合并,并将该处矩形单元拆分为两个三角形单元,并用三角形网格对剩余的区域进行填充。对于其他形状的子区域,采用变步长的推进波前法来生成矩形占优的混合网格,算法流程图如图13所示,主要包含以下步骤:确定前沿边及前沿节点:首先对待剖分的子区域生成约束delaunay三角化网格作为背景网格。如图7所示选取背景网格中的边界边为初始前沿边,初始前沿边上的节点为初始前沿节点。为每一个前沿节点确定推进方向和推进步长δ。检查新前沿节点位置是否与已有节点重合或距离较近,或是位于已冻结的三角形内。当出现上述情况时,将取消新前沿节点的生成。当所有的前沿节点都完成推进后,执行边界恢复操作。如图7所示,将所有包含旧前沿顶点的三角形冻结,冻结的三角形的节点的坐标将不能再被改变,也不能再向一个已经冻结的三角形内插入新的节点。重复以上步骤,直到前沿节点队列为空,并将三角网中两个相邻的直角三角形单元组合成为一个矩形单元。
[0115]
最后调用网格压印算法使各设备层间的网格相容,图14展示了网格压印算法的示意图,主要包含以下步骤:对表示第一设备层的多边形和第二设备层得多边形进行布尔取交操作,获得各层间的堆叠区域。对于每一个堆叠区域,根据其堆叠的层数为其设置网格压印的优先级,堆叠层数越多则其优先级越高。优先级高的区域的网格之后将会被压印到优先级低的区域的网格上。将要压印网格的边界顶点插入到原始网格中,插入节点时遵循delaunay插点原则并通过边交换操作将压印网格的边界在原始网格中恢复出来。删除原始网格中对应区域的网格,用要压印的网格进行替换。
[0116]
图15和图16展示了本实施例的网格剖分图,从图中可以看出,本发明所生成的有限元网格中矩形单元占比高,网格疏密过渡合理且能够反映导体的趋肤效应,各设备层间网格相容,能够应用于芯片的电磁仿真计算中。
[0117]
如图17所示,本发明基于区域分解和网格压印的芯片网格生成系统包括:数据获取单元1、建模单元2、区域分解单元3、离散单元4、网格划分单元5、设备层网格确定单元6、堆叠区域确定单元7及压印单元8。
[0118]
其中,所述数据获取单元1用于获取芯片各设备层的布局信息。所述设备层包括导体层及导体层上开设的通孔。
[0119]
所述建模单元2与所述数据获取单元1连接,所述建模单元2用于对各设备层的布局信息进行解析,建立芯片几何模型。所述芯片几何模型中包括表征各设备层边界信息的多边形区域。
[0120]
所述区域分解单元3与所述建模单元2连接,所述区域分解单元3用于针对任一设备层,采用区域分解算法,将表征所述设备层边界信息的多边形区域分解为多个子区域。
[0121]
所述离散单元4与所述区域分解单元3连接,所述离散单元4用于采用二进制背包格算法,根据设定剖分尺寸及最大放大倍数,将各子区域的边界进行离散化处理,得到各子区域对应的离散边界。
[0122]
所述网格划分单元5分别与所述区域分解单元3及所述离散单元4连接,所述网格划分单元5用于针对任一子区域,根据所述子区域的离散边界,对所述子区域进行网格划分,得到所述子区域对应的子网格。
[0123]
所述设备层网格确定单元6与所述网格划分单元5连接,所述设备层网格确定单元6用于根据各子区域对应的子网格,确定所述设备层的有限元网格。
[0124]
所述堆叠区域确定单元7与所述设备层网格确定单元6连接,所述堆叠区域确定单元7用于对各设备层的有限元网格进行布尔操作,确定各设备层之间的堆叠区域网格。
[0125]
所述压印单元8分别与所述设备层网格确定单元6及所述堆叠区域确定单元7连接,所述压印单元8用于根据各设备层之间的堆叠区域网格,采用网格压印算法对各设备层的有限元网格进行压印,得到所述芯片的有限元网格。
[0126]
进一步地,多个子区域包括矩形区域、三角形区域及其他形状区域。
[0127]
区域分解单元3包括:特征顶点确定模块、候选边确定模块、矩形区域确定模块及三角区域确定模块。
[0128]
其中,特征顶点确定模块与建模单元2连接,特征顶点确定模块用于从表征所述设备层边界信息的多边形区域中选取特征顶点。所述特征顶点为所述多边形区域中内角大于180
°
的顶点。
[0129]
候选边确定模块与特征顶点确定模块及建模单元2连接,候选边确定模块用于从所述多边形区域中确定各特征顶点对应的候选边。
[0130]
具体地,候选边确定模块包括:剖分子模块、三角形单元确定子模块及候选点确定子模块。
[0131]
其中,剖分子模块与建模单元2连接,剖分子模块用于采用delaunay三角剖分算法,对所述多边形区域进行剖分,得到背景三角网格。所述背景三角网格中包括多个三角形单元。
[0132]
三角形单元确定子模块与剖分子模块及特征顶点确定模块连接,三角形单元确定子模块用于针对任一特征顶点,在所述背景三角网格中确定包含所述特征顶点的多个三角形单元。
[0133]
候选点确定子模块与三角形单元确定子模块连接,候选点确定子模块用于从多个三角形单元的顶点中选取候选点。所述候选点为三角形单元中与特征顶点在所述多边形区域的边界上不相邻的顶点。候选点所连接的多边形区域的边界为所述特征顶点对应的候选
边。
[0134]
矩形区域确定模块与特征顶点确定模块及候选边确定模块连接,矩形区域确定模块用于针对任一特征顶点,从所述特征顶点向所述特征顶点对应的候选边作垂线,得到多个矩形区域。
[0135]
三角区域确定模块与矩形区域确定模块连接,三角区域确定模块用于将相邻两个矩形区域之间的转角区域分为多个三角形区域。所述多边形中除矩形区域及三角形区域以外的区域为其他形状区域。
[0136]
进一步地,所述离散边界包括端头离散边界、半端头离散边界及一般离散边界。所述离散单元4包括:边分类模块、端头边离散模块、半端头边离散模块及一般边离散模块。
[0137]
其中,边分类模块与所述区域分解单元3连接,边分类模块用于针对任一子区域,将所述子区域的边界分为端头边、半端头边及一般边。所述端头边为两个顶点所在的角均为直角的边。所述半端头边为一个顶点所在的角为直角的边。所述一般边为两个顶点所在的角均非直角的边。
[0138]
端头边离散模块与边分类模块连接,端头边离散模块用于针对端头边,根据设定剖分尺寸及最大放大倍数,从两个顶点处采用二进制背包格算法,对所述端头边进行离散化,得到端头离散边界。
[0139]
半端头边离散模块与边分类模块连接,半端头边离散模块用于针对半端头边,根据设定剖分尺寸及最大放大倍数,从直角的顶点处采用二进制背包格算法,对所述半端头边进行离散化,得到半端头离散边界。
[0140]
一般边离散模块与边分类模块连接,一般边离散模块用于针对一般边,根据设定剖分尺寸及最大放大倍数,确定最大剖分尺寸,并根据所述最大剖分尺寸对所述一般边进行离散化,得到一般离散边界。
[0141]
进一步地,所述子网格包括矩形网格、三角形网格及混合网格。所述网格划分单元5包括:矩形划分模块、三角划分模块及混合划分模块。
[0142]
其中,矩形划分模块分别与区域分解单元3及离散单元4连接,矩形划分模块用于若所述子区域为矩形区域,则根据所述子区域的离散边界,采用映射法在所述子区域内生成矩形网格。
[0143]
三角划分模块分别与区域分解单元3及离散单元4连接,三角划分模块用于若所述子区域为三角形区域,则根据所述子区域的离散边界,采用矩形插入法在所述子区域内生成矩形网格,并采用三角形网格填充所述子区域内除矩形网格外的其他区域。
[0144]
混合划分模块分别与区域分解单元3及离散单元4连接,混合划分模块用于若所述子区域既不是矩形区域也不是三角形区域,则根据所述子区域的离散边界,采用变步长的推进波前法在所述子区域内生成混合网格。
[0145]
更进一步地,压印单元8包括优先级确定模块及压印模块。
[0146]
其中,优先级确定模块与堆叠区域确定单元7连接,优先级确定模块用于针对任一堆叠区域网格,确定所述堆叠区域网格每一堆叠层的优先级;所述堆叠层为各设备层与其他设备层堆叠的部分;所述优先级自上而下降低。
[0147]
压印模块分别与设备层网格确定单元6及优先级确定模块连接,压印模块用于采用网格压印算法,将优先级高的堆叠层压印到优先级低的堆叠层上,以得到所述芯片的有
限元网格。
[0148]
相对于现有技术,本发明基于区域分解和网格压印的芯片网格生成系统与上述基于区域分解和网格压印的芯片网格生成方法的有益效果相同,在此不再赘述。
[0149]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0150]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1