一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于高斯面均匀采样的寄生电容提取方法及装置与流程

2022-08-10 21:20:25 来源:中国专利 TAG:


1.本技术涉及集成电路技术领域,特别是涉及一种基于高斯面均匀采样的寄生电容提取方法、装置、电子装置及存储介质。


背景技术:

2.在集成电路的版图验证中,一个重要的环节是对于导体的寄生电容的提取。随着工业界对计算精度的要求越来越高,寄生电容的提取往往要依赖于三维场求解器进行精确求解,在三维场求解器中,随机行走算法是一种比较流行的方法。
3.随机行走不同于常规的有限差分、有限元等方法,它无需求解线性方程组,其主要步骤包括:构造包围导体的高斯面,并从高斯面上按照均匀概率分布随机选取采样点,从这些采样点出发构造转移立方体,然后进行后续的跳转操作。高斯面上的采样点分布是否均匀与计算结果的精度密切相关。
4.当集成电路规模很大,版图上包含大量导体以及电解质图形的时候,随机行走的计算量会显著增加。为提高计算效率,可以减少随机行走的总步数,例如:给定一个总步数,在行走完总步数后则停止随机行走的过程并计算最终结果;或者降低收敛的条件,比如提高误差的阈值,则随机行走总步数也会减少。
5.然而,在这类技术方案中,随机行走步数的减少意味着高斯面上的采样数减少,采样数的减少则可能导致在高斯面的某些区域采样点分布较密集,而在另一些区域采样点分布较稀疏,即高斯面上的随机采样点分布不够均匀,从而导致计算结果产生较大的误差。
6.目前针对高斯面上的采样点分布不均匀导致的寄生电容提取精度低的问题,尚未提出有效的解决方案。


技术实现要素:

7.本技术提供了一种基于高斯面均匀采样的寄生电容提取方法、装置、电子装置及存储介质,以解决高斯面上的采样点分布不均匀导致的寄生电容提取精度低的问题。
8.第一方面,本技术提供了一种基于高斯面均匀采样的寄生电容提取方法,所述方法包括:将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;将所有面积元分配给多个工作线程;在所述工作线程进行随机行走时,在所述工作线程所对应的面积元上进行采样,得到所述工作线程所对应的面积元上的采样点;从每个采样点开始随机行走,在所有工作线程结束随机行走时,计算所述目标导体所对应的寄生电容值。
9.进一步地,所述高斯面的预设区域包括所述高斯面的所有区域或者所述高斯面的部分区域;将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:获取与所述高斯面的预设区域对应的随机行走次数;将所述目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,其中,所述面积元的数量与所述高斯面的预设区域所对应的随机行走次数相同。
10.进一步地,将所述目标导体所对应的高斯面的预设区域划分为多个面积相等的面
积元包括:将所述目标导体所对应的高斯面的预设区域等间距的划分为多个面积相等的面积元。
11.进一步地,在所述工作线程所对应的面积元上进行采样,得到所述工作线程所对应的面积元上的采样点包括:在所述工作线程所对应的面积元的数量等于1时,所述工作线程在对应的面积元上进行一次采样,得到所述工作线程所对应的采样点;在所述工作线程所对应的面积元的数量大于1时,所述工作线程在对应的每个面积元上均进行一次采样,得到所述工作线程所对应的多个采样点。
12.进一步地,所述工作线程在对应的面积元上进行一次采样包括:获取所述面积元的位置坐标;获取第一随机数和第二随机数;根据所述面积元的位置坐标,以及所述第一随机数和所述第二随机数,计算得到所述采样点的位置坐标,完成对所述面积元的一次采样。
13.进一步地,所述第一随机数和所述第二随机数均是从预设的数值区间中随机选取的;根据所述面积元的位置坐标,以及所述第一随机数和所述第二随机数,计算得到所述采样点的位置坐标包括:通过关系式:(x1 r1*(x2-x1),y1 r2*(y2-y1)),确定所述采样点的位置坐标,其中,(x1,y1,x2,y2)表示所述面积元在xoy平面上的位置坐标,r1表示所述第一随机数,r2表示所述第二随机数。
14.进一步地,将所有面积元分配给多个工作线程包括:将所有面积元平均分配给多个工作线程,将工作线程所对应的面积元存储到与所述工作线程对应的存储向量中。
15.第二方面,本技术提供了一种基于高斯面均匀采样的寄生电容提取装置,所述装置包括:划分模块,用于将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;分配模块,用于将所有面积元分配给多个工作线程;采样模块,用于在所述工作线程进行随机行走时,在所述工作线程所对应的面积元上进行采样,得到所述工作线程所对应的面积元上的采样点;计算模块,用于从每个采样点开始随机行走,在所有工作线程结束随机行走时,计算所述目标导体所对应的寄生电容值。
16.第三方面,本技术还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如上述第一方面所述的基于高斯面均匀采样的寄生电容提取方法。
17.第四方面,本技术还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上述第一方面所述的基于高斯面均匀采样的寄生电容提取方法。
18.相比于现有技术,本技术提供的基于高斯面均匀采样的寄生电容提取方法、装置、电子装置及存储介质,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;将所有面积元分配给多个工作线程;在工作线程进行随机行走时,在工作线程所对应的面积元上进行采样,得到工作线程所对应的面积元上的采样点,在随机行走过程中,每个工作线程只对分配给自己的面积元进行采样,当所有工作线程均完成采样点获取时,即完成了对整个高斯面的预设区域中所有面积元的采样。从每个采样点开始随机行走,在所有工作线程结束随机行走时,计算目标导体所对应的寄生电容值。由于每个面积元的面积相等,且每个面积元进行一次采样得到随机行走点,因此,可以保证对高斯面的预设区域的采样是均匀的,避免了在随机行走步数被限定的情况下,高斯面的预设区域上的采样点可能存在分布不均所导致的计算误差,提高了对目标导体寄生电容的提取精度。通过本技术,解决
了高斯面上的采样点分布不均匀导致的寄生电容提取精度低的问题,实现了在高斯面上均匀采样,进而提高寄生电容的提取精度的技术效果。
19.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
20.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
21.图1是根据本技术实施例的基于高斯面均匀采样的寄生电容提取方法的流程图;
22.图2是根据本技术实施例的在高斯面的预设区域上划分面积元的示意图;
23.图3是根据本技术实施例的在面积元上采样的示意图;
24.图4是根据本技术实施例的基于高斯面均匀采样的寄生电容提取装置的结构框图;
25.图5是根据本技术实施例的电子装置的结构示意图。
具体实施方式
26.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。
27.本实施例提供了一种基于高斯面均匀采样的寄生电容提取方法,图1是根据本技术实施例的基于高斯面均匀采样的寄生电容提取方法的流程图,如图1所示,该方法包括:
28.步骤s101,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元。
29.在本实施例中,可以采用cpu(中央处理器,central processing unit)或者其他支持多线程并行计算的处理器对目标导体进行寄生电容的提取。
30.在本实施例中,可以先获取目标导体所在的集成电路版图,并从集成电路版图读入目标导体图形,构造包围目标导体的高斯面。目标导体对应的高斯面是围绕目标导体的一个闭合的包络面,高斯面内部包含且仅包含目标导体,且高斯面不与目标导体相交,也不与目标导体的任何表面接触;高斯面可以通过将目标导体的表面向外平移扩展得到。
31.在本实施例中,高斯面的预设区域可以包括高斯面的所有区域或者高斯面的部分区域。在高斯面的预设区域包括高斯面的所有区域时,则需要将整个高斯面划分为多个面积相等的面积元。在高斯面的预设区域仅包括高斯面的部分区域时,则可以将高斯面的部分区域划分为多个面积相等的面积元,在高斯面的其他区域进行随机采样。
32.在上述实施例中,可以根据用户的实际需要选择预设区域的大小,本技术在此不作限制。
33.步骤s102,将所有面积元分配给多个工作线程。
34.在本实施例中,可以使用一个cpu同时对多个工作线程进行控制运行,也可以使用多个cpu,每个cpu同时对一个工作线程或多个工作线程进行控制运行,从而提高本实施例提供的基于高斯面均匀采样的寄生电容提取方法的环境适应性。
35.步骤s103,在工作线程进行随机行走时,在工作线程所对应的面积元上进行采样,
得到工作线程所对应的面积元上的采样点。
36.在本实施例中,在随机行走过程中,每个工作线程只对分配给自己的面积元进行采样,避免工作线程之间互相影响,不会出现工作线程之间的冲突。
37.步骤s104,从每个采样点开始随机行走,在所有工作线程结束随机行走时,计算目标导体所对应的寄生电容值。
38.在上述实施例中,在目标导体进行寄生电容提取时,可以将目标导体近似成长方体形状,因此,基于目标导体生产的高斯面也是长方体形状,若长方体之间存在交集,则可以将交集处去除,从而保证高斯面是规则结构。
39.当集成电路的规模较大,集成电路版图上存在大量导体以及电解质图像时,随机行走的计算量会显著增加,甚至无法在相对合理的时间内完成计算。为了提高计算效率,可以减少随机行走的总步数,然而,随机行走步数的减少意味着高斯面上的采样数减少,采样数的减少则可能导致在高斯面的某些区域采样点分布较密集,而在另一些区域采样点分布较稀疏,即高斯面上的随机采样点分布不够均匀,从而导致计算结果产生较大的误差。
40.在本实施例中,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,并将面积元分配给多个工作线程,在随机行走过程中,每个工作线程只对分配给自己的面积元进行采样,当所有工作线程均完成采样点获取时,即完成了对整个高斯面的预设区域中所有面积元的采样,此时可以从每个采样点开始随机行走,对目标电容的寄生电容进行提取,由于每个面积元的面积相等,且每个面积元进行一次采样得到随机行走点,因此,可以保证对高斯面的预设区域的采样是均匀的,避免了在随机行走步数被限定的情况下,高斯面的预设区域上的采样点可能存在分布不均所导致的计算误差,提高了对目标导体寄生电容的提取精度。
41.通过上述步骤s101至步骤s104,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;将所有面积元分配给多个工作线程;在工作线程进行随机行走时,在工作线程所对应的面积元上进行采样,得到工作线程所对应的面积元上的采样点;从每个采样点开始随机行走,在所有工作线程结束随机行走时,计算目标导体所对应的寄生电容值。通过本技术,解决了高斯面上的采样点分布不均匀导致的寄生电容提取精度低的问题,实现了在高斯面上均匀采样,进而提高寄生电容的提取精度的技术效果。
42.在其中一些实施例中,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元通过如下步骤实现:
43.步骤1,获取与高斯面的预设区域对应的随机行走次数。
44.步骤2,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,其中,面积元的数量与高斯面的预设区域所对应的随机行走次数相同。
45.在本实施例中,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:将目标导体所对应的高斯面的预设区域等间距的划分为多个面积相等的面积元。
46.图2是根据本技术实施例的在高斯面的预设区域上划分面积元的示意图,如图2所示,在本实施例中,高斯面的预设区域为高斯面的所有区域,即将目标导体所对应的整个高斯面均等间距的划分为多个面积相等的面积元,可以令与高斯面的预设区域对应的随机行走次数n=148,并根据高斯面的预设区域所对应的随机行走次数n=148,将目标导体所对
应的高斯面的预设区域等间距的划分为多个面积相等的面积元,其中,在yoz平面的正面,高斯面被划分出30个面积元,同样地,在yoz平面的背面,高斯面也被划分出30个面积元,在xoy平面的正反面,高斯面分别被划分出20个面积元,在xoz平面的正反面,高斯面分别被划分出24个面积元,合计一共(30 20 24)*2=148个面积元,与高斯面的预设区域所对应的随机行走次数n=148相对应。
47.在其中一些实施例中,将所有面积元分配给多个工作线程包括:将所有面积元平均分配给多个工作线程,将工作线程所对应的面积元存储到与工作线程对应的存储向量中。
48.在本实施例中,在工作线程所对应的面积元上进行采样,得到工作线程所对应的面积元上的采样点包括:在工作线程所对应的面积元的数量等于1时,工作线程在对应的面积元上进行一次采样,得到工作线程所对应的采样点;在工作线程所对应的面积元的数量大于1时,工作线程在对应的每个面积元上均进行一次采样,得到工作线程所对应的多个采样点。
49.在上述实施例中,可以令工作线程的数量nth=37,每个工作线程被分配的面积元的数量即为n/nth=4,如图2所示,在yoz平面上的面积元00、面积元01、面积元02和面积元03可以被分配给工作线程0,面积元04、面积元05、面积元10和面积元11可以被分配给工作线程1,面积元12、面积元13、面积元14和面积元15可以被分配给工作线程2,以此类推,直至高斯面的预设区域上所有的面积元平均分配给37个工作线程,从而保证每个工作线程所分配到的面积元的数量是相等的,每个工作线程的工作时间也大致相同,提高对高斯面的采样效率。
50.在本实施例中,也会存在每个工作线程被分配的面积元的数量n/nth不为整数的情况,例如,n=150,nth=37,此时可以先将面积元00至面积元147平均分配给37个工作线程,即每个工作线程被分配到4个面积元,将面积元148随机分配到37个工作线程中的任一个工作线程中,再将面积元149随机分配到37个工作线程中的任一个工作线程中,保证37个工作线程所分配到的面积元的数量是大致相同的,进而保证每个工作线程的工作时间也是大致相同的,提高对高斯面的采样效率。
51.在上述实施例中,还可以将每个工作线程所对应的面积元存储到与该工作线程对应的存储向量中,例如,工作线程0所对应的存储向量v0存储有[00,01,02,03],工作线程1所对应的存储向量v1存储有[04,05,10,11],工作线程2所对应的存储向量v2存储有[12,13,14,15],在后续的采样过程中,每个工作线程可以从对应的存储向量中读取面积元,并对存储向量中保存的每个面积元只进行一次采样,由于,面积元是等间距等面积地从高斯面的预设区域上进行划分的,对每个面积元只进行一次采样,可以保证高斯面的预设区域上不会出现某一区域的采样点过于集中,某一区域的采样点过于分散的情况,避免了在随机行走步数被限定的情况下,高斯面的预设区域上的采样点可能存在分布不均所导致的计算误差,提高了对目标导体寄生电容的提取精度。
[0052]
在其中一些实施例中,工作线程在对应的面积元上进行一次采样通过如下步骤实现:
[0053]
步骤1,获取面积元的位置坐标。
[0054]
步骤2,获取第一随机数和第二随机数。
[0055]
步骤3,根据面积元的位置坐标,以及第一随机数和第二随机数,计算得到采样点的位置坐标,完成对面积元的一次采样。
[0056]
在本实施例中,工作线程在对应的存储向量中保存的某一个面积元进行采样时,需要保证在面积元上的采样点位置的随机性,因此,可以选择第一随机数和第二随机数,根据面积元的位置坐标,计算得到采样点的位置坐标。
[0057]
在本实施例中,第一随机数和第二随机数均是从预设的数值区间中随机选取的;根据面积元的位置坐标,以及第一随机数和第二随机数,计算得到采样点的位置坐标包括:通过关系式:(x1 r1*(x2-x1),y1 r2*(y2-y1)),确定采样点的位置坐标,其中,(x1,y1,x2,y2)表示面积元在xoy平面上的位置坐标,r1表示第一随机数,r2表示第二随机数。
[0058]
图3是根据本技术实施例的在面积元上采样的示意图,如图3所示,在本实施例中,面积元在xoy平面上的位置坐标为(x1,y1,x2,y2),预设的数值区间可以为[0,1],可以从数值区间[0,1]中随机选取第一随机数r1和第二随机数r2,则利用公式(x1 r1*(x2-x1),y1 r2*(y2-y1)),即可计算得到采样点在该面积元上的位置左边,即完成了对高斯面的预设区域的一次随机采样,在所有工作线程都对其分配到的面积元完成了一次采样后,即可确定对高斯面的预设区域上的所有面积元完成了均匀采样。
[0059]
本实施例提供了一种基于高斯面均匀采样的寄生电容提取装置,图4是根据本技术实施例的基于高斯面均匀采样的寄生电容提取装置的结构框图,如图4所示,该装置包括:划分模块402,用于将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;分配模块404,用于将所有面积元分配给多个工作线程;采样模块406,用于在工作线程进行随机行走时,在工作线程所对应的面积元上进行采样,得到工作线程所对应的面积元上的采样点;计算模块408,用于从每个采样点开始随机行走,在所有工作线程结束随机行走时,计算目标导体所对应的寄生电容值。
[0060]
在其中一些实施例中,划分模块402还被为用于获取与高斯面的预设区域对应的随机行走次数;将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,其中,面积元的数量与高斯面的预设区域所对应的随机行走次数相同。
[0061]
在其中一些实施例中,划分模块402还被为用于将目标导体所对应的高斯面的预设区域等间距的划分为多个面积相等的面积元。
[0062]
在其中一些实施例中,采样模块406还被配置为用于在工作线程所对应的面积元的数量等于1时,工作线程在对应的面积元上进行一次采样,得到工作线程所对应的采样点;在工作线程所对应的面积元的数量大于1时,工作线程在对应的每个面积元上均进行一次采样,得到工作线程所对应的多个采样点。
[0063]
在其中一些实施例中,采样模块406还被配置为用于获取面积元的位置坐标;获取第一随机数和第二随机数;根据面积元的位置坐标,以及第一随机数和第二随机数,计算得到采样点的位置坐标,完成对面积元的一次采样。
[0064]
在其中一些实施例中,第一随机数和第二随机数均是从预设的数值区间中随机选取的;采样模块406还被配置为用于通过关系式:(x1 r1*(x2-x1),y1 r2*(y2-y1)),确定采样点的位置坐标,其中,(x1,y1,x2,y2)表示面积元在xoy平面上的位置坐标,r1表示第一随机数,r2表示第二随机数。
[0065]
在其中一些实施例中,分配模块404还被配置为用于将所有面积元平均分配给多
个工作线程,将工作线程所对应的面积元存储到与工作线程对应的存储向量中。
[0066]
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0067]
本实施例还提供了一种电子装置,图5是根据本技术实施例的电子装置的硬件结构示意图,如图5所示,该电子装置包括存储器504和处理器502,该存储器504中存储有计算机程序,该处理器502被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0068]
具体地,上述处理器502可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,简称为asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
[0069]
其中,存储器504可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器504可包括硬盘驱动器(hard disk drive,简称为hdd)、软盘驱动器、固态驱动器(solid state drive,简称为ssd)、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,简称为usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器504可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器504可在故障图像生成装置的内部或外部。在特定实施例中,存储器504是非易失性(non-volatile)存储器。在特定实施例中,存储器504包括只读存储器(read-only memory,简称为rom)和随机存取存储器(random access memory,简称为ram)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(programmable read-only memory,简称为prom)、可擦除prom(erasable programmable read-only memory,简称为eprom)、电可擦除prom(electrically erasable programmable read-only memory,简称为eeprom)、电可改写rom(electrically alterable read-only memory,简称为earom)或闪存(flash)或者两个或更多个以上这些的组合。在合适的情况下,该ram可以是静态随机存取存储器(static random-access memory,简称为sram)或动态随机存取存储器(dynamic random access memory,简称为dram),其中,dram可以是快速页模式动态随机存取存储器(fast page mode dynamic random access memory,简称为fpmdram)、扩展数据输出动态随机存取存储器(extended date out dynamic random access memory,简称为edodram)、同步动态随机存取内存(synchronous dynamic random-access memory,简称sdram)等。
[0070]
存储器504可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器502所执行的可能的计算机程序指令。
[0071]
处理器502通过读取并执行存储器504中存储的计算机程序指令,以实现上述实施例中的任意一种基于高斯面均匀采样的寄生电容提取方法。
[0072]
可选地,上述电子装置还可以包括传输设备506以及输入输出设备508,其中,该传输设备506和上述处理器502连接,该输入输出设备508和上述处理器502连接。
[0073]
可选地,在本实施例中,上述处理器502可以被设置为通过计算机程序执行以下步骤:
[0074]
s1,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元。
[0075]
s2,将所有面积元分配给多个工作线程。
[0076]
s3,在工作线程进行随机行走时,在工作线程所对应的面积元上进行采样,得到工作线程所对应的面积元上的采样点。
[0077]
s4,从每个采样点开始随机行走,在所有工作线程结束随机行走时,计算目标导体所对应的寄生电容值。
[0078]
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0079]
另外,结合上述实施例中的基于高斯面均匀采样的寄生电容提取方法,本技术实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于高斯面均匀采样的寄生电容提取方法。
[0080]
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献