基于多线程随机行走的寄生电容提取方法及装置与流程

allin2023-04-11  103



1.本技术涉及集成电路技术领域,特别是涉及一种基于多线程随机行走的寄生电容提取方法、装置、电子装置及存储介质。


背景技术:

2.在集成电路的版图验证中,一个重要的环节是对于导体的寄生电容的提取。随着工业界对计算精度的要求越来越高,寄生电容的提取往往要依赖于三维场求解器进行精确求解,在三维场求解器中,随机行走算法是一种比较流行的方法。
3.随机行走不同于常规的有限差分、有限元等方法,它无需求解线性方程组,其主要步骤是从包围导体的高斯面上随机选取采样点,以此点为中心构造一个最大转移立方体,下一次取点则随机落在此立方体的表面。重复此过程,直到随机点的位置到达某一个导体的表面或者版图的边界,则完成一次随机行走过程。计算某一导体与其他导体的电容时,可能需要进行至少数十万次的随机行走过程,因此,随机行走非常适合多线程并行计算处理。
4.当一个工作线程完成了给定步数的随机行走后,需要对其获取的采样值、随机行走步数等数据进行更新。由于采样值和随机行走步数等数据是全局变量,每个工作线程在进行数据更新时均需要加入线程锁以避免发生冲突,这导致在多个工作线程需要进行数据更新时,数据更新的操作由于线程锁的存在会引入较长的等待时间,这会降低对导体的寄生电容提取效率。
5.目前针对利用多线程随机行走方法对导体寄生电容进行提取时效率低的问题,尚未提出有效的解决方案。


技术实现要素:

6.本技术提供了一种基于多线程随机行走的寄生电容提取方法、装置、电子装置及存储介质,以解决利用多线程随机行走方法对导体寄生电容进行提取时效率低的问题。
7.第一方面,本技术提供了一种基于多线程随机行走的寄生电容提取方法,所述方法包括:控制与目标导体对应的多个工作线程开始随机行走;在所述工作线程的随机行走步数达到预设的目标路径数时,将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,确定所述工作线程完成数据更新,其中,每个所述工作线程所对应的存储空间彼此独立;在所有工作线程均完成数据更新时,分别从每个所述工作线程所对应的存储空间中获取采样值,并根据从每个所述工作线程所对应的存储空间中获取的采样值,确定所述目标导体的寄生电容值。
8.进一步地,所述存储空间包括第一存储空间、第二存储空间以及第三存储空间;将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间包括:将所述工作线程进行的每次随机行走所对应的采样值存入与所述工作线程对应的第一存储空间;将所述工作线程进行的每次随机行走所对应的采样值的平方存入与所述工作线程对应的第二存储空间;将所述工作线程的随机行走步数存入与所述工作线程对
应的第三存储空间。
9.进一步地,根据从每个所述工作线程所对应的存储空间中获取的采样值,确定所述目标导体的寄生电容值包括:根据从每个所述工作线程所对应的第一存储空间中获取的采样值、从每个所述工作线程所对应的第二存储空间中获取的采样值的平方以及从每个所述工作线程所对应的第三存储空间中获取的随机行走步数,判断所述目标导体所对应的采样值是否已收敛;在所述目标导体所对应的采样值已收敛时,根据从每个所述工作线程所对应的存储空间中获取的采样值计算所述目标导体的寄生电容值;在所述目标导体所对应的采样值未收敛时,控制与目标导体对应的多个工作线程继续随机行走。
10.进一步地,根据从每个所述工作线程所对应的第一存储空间中获取的采样值、从每个所述工作线程所对应的第二存储空间中获取的采样值的平方以及从每个所述工作线程所对应的第三存储空间中获取的随机行走步数,判断所述目标导体所对应的采样值是否已收敛包括:对与所述目标导体对应的所有第一存储空间中的采样值进行求和,得到所述目标导体所对应的总采样值;对与所述目标导体对应的所有第二存储空间中的采样值的平方进行求和,得到所述目标导体所对应的所有采样值的平方和;对与所述目标导体对应的所有第三存储空间中的随机行走步数进行求和,得到所述目标导体所对应的总随机行走步数;通过关系式:确定所述目标导体所对应的采样方差;其中,err表示采样方差,c表示所述目标导体所对应的总采样值,c2表示所述目标导体所对应的所有采样值的平方和,n表示所述目标导体所对应的总随机行走步数,ci表示所述目标导体第i次随机行走过程所对应的采样值;根据所述采样方差与预设阈值之间的大小关系,判断所述目标导体所对应的采样值是否已收敛;其中,在所述采样方差小于所述预设阈值时,则确定所述目标导体所对应的采样值已收敛;在所述采样方差大于或等于所述预设阈值时,则确定所述目标导体所对应的采样值未收敛。
11.进一步地,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:获取所述目标导体所对应的工作线程的个数,以及所述目标导体所对应的总随机行走步数;根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数。
12.进一步地,根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数包括:将所述目标导体所对应的总随机步数除于所述工作线程的个数,得到计算结果,并判断所述计算结果是否为整数;在所述计算结果为整数时,将所述计算结果作为每个所述工作线程所对应的目标路径数;在所述计算结果为非整数时,确定所述计算结果所对应的整数计算结果与余数计算结果,将所述整数计算结果分配给每个所述工作线程,将所述余数计算结果分配给多个所述工作线程,得到每个所述工作线程所对应的目标路径数。
13.进一步地,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:获取所述目标导体所对应的工作线程的个数;建立存储向量,其中,所述存储向量包括多个维度,所述存储向量的维度数量与所述工作线程的个数对应,所述存储向量的每个维度对应一个所述工作线程的存储空间。
14.第二方面,本技术提供了一种基于多线程随机行走的寄生电容提取装置,所述装置包括:控制模块,用于控制与目标导体对应的多个工作线程开始随机行走;存储模块,用于在所述工作线程的随机行走步数达到预设的目标路径数时,将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,确定所述工作线程完成数据更新,其中,每个所述工作线程所对应的存储空间彼此独立;确定模块,用于在所有工作线程均完成数据更新时,分别从每个所述工作线程所对应的存储空间中获取采样值,并根据从每个所述工作线程所对应的存储空间中获取的采样值,确定所述目标导体的寄生电容值。
15.第三方面,本技术还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如上述第一方面所述的基于多线程随机行走的寄生电容提取方法。
16.第四方面,本技术还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上述第一方面所述的基于多线程随机行走的寄生电容提取方法。
17.相比于现有技术,本技术提供的基于多线程随机行走的寄生电容提取方法、装置、电子装置及存储介质,控制与目标导体对应的多个工作线程开始随机行走;在工作线程的随机行走步数达到预设的目标路径数时,将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,确定工作线程完成数据更新,其中,每个工作线程所对应的存储空间彼此独立。因此,在数据更新时无需线程锁,可以避免由于加入线程锁所导致的等待时间,大大提高了运行的效率。在所有工作线程均完成数据更新时,分别从每个工作线程所对应的存储空间中获取采样值,并根据从每个工作线程所对应的存储空间中获取的采样值,确定目标导体的寄生电容值。同时,由于需要存储的数据量一般较少,所以增加的内存消耗可以忽略不计。通过本技术,解决了利用多线程随机行走方法对导体寄生电容进行提取时的提取效率低的问题,实现了提高对导体进行基于多线程随机行走的寄生电容提取效率的技术效果。
18.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
19.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
20.图1是根据本技术实施例的基于多线程随机行走的寄生电容提取方法的流程图;
21.图2是一种集成电路版图的示意图;
22.图3是根据本技术实施例的基于多线程随机行走的寄生电容提取装置的结构框图;
23.图4是根据本技术实施例的电子装置的结构示意图。
具体实施方式
24.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本技术进行描述和说明。
25.本实施例提供了一种基于多线程随机行走的寄生电容提取方法,图1是根据本技术实施例的基于多线程随机行走的寄生电容提取方法的流程图,如图1所示,该方法包括:
26.步骤s101,控制与目标导体对应的多个工作线程开始随机行走。
27.在本实施例中,可以采用gpu(图形处理器,graphic processing unit)或者其他支持多线程并行计算的处理器对目标导体进行寄生电容的提取。
28.步骤s102,在工作线程的随机行走步数达到预设的目标路径数时,将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,确定工作线程完成数据更新,其中,每个工作线程所对应的存储空间彼此独立。
29.在本实施例中,每个工作线程所对应的存储空间彼此是独立的,例如,工作线程i每完成一次随机行走过程,都会将相应的数据(采样值、采样值的平方和目前的随机行走步数等)存放在一个与工作线程i对应的局部变量中,当工作线程i的随机行走步数达到预设的目标路径数时,则将该局部变量中保存的数据存入更新到工作线程i对应的存储空间i,且由于工作线程i只向存储空间i写入数据,每个工作线程对应不同的存储空间,不会发生冲突,因此,无需加入线程锁,进而不会引入等待时间,提高了利用多线程随机行走方法对导体寄生电容进行提取时的提取效率。
30.步骤s103,在所有工作线程均完成数据更新时,分别从每个工作线程所对应的存储空间中获取采样值,并根据从每个工作线程所对应的存储空间中获取的采样值,确定目标导体的寄生电容值。
31.在本实施例中,在所有的工作线程均完成了数据更新后,即可根据每个工作线程所对应的存储空间中存储的数据,计算目标导体的寄生电容值,在与目标导体对应的工作线程的个数较多时,可以避免由于加入线程锁所导致的等待时间,大大提高了多线程随机行走的运行效率。
32.通过上述步骤s101至步骤s103,控制与目标导体对应的多个工作线程开始随机行走;在工作线程的随机行走步数达到预设的目标路径数时,将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,确定工作线程完成数据更新,其中,每个工作线程所对应的存储空间彼此独立;在所有工作线程均完成数据更新时,分别从每个工作线程所对应的存储空间中获取采样值,并根据从每个工作线程所对应的存储空间中获取的采样值,确定目标导体的寄生电容值。通过本技术,解决了利用多线程随机行走方法对导体寄生电容进行提取时的提取效率低的问题,实现了提高对导体进行基于多线程随机行走的寄生电容提取效率的技术效果。
33.在其中一些实施例中,存储空间可以包括第一存储空间、第二存储空间以及第三存储空间;将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间通过如下步骤实现:
34.步骤1,将工作线程进行的每次随机行走所对应的采样值存入与工作线程对应的第一存储空间。
35.步骤2,将工作线程进行的每次随机行走所对应的采样值的平方存入与工作线程对应的第二存储空间。
36.步骤3,将工作线程的随机行走步数存入与工作线程对应的第三存储空间。
37.在本实施例中,目标导体对应的寄生电容包括目标导体与相邻导体之间的耦合电容和目标导体与接地端之间的接地电容,此时,第一存储空间也可以包括多个第一子存储空间,第二存储空间也可以包括多个第二子存储空间,例如,其中一个第一子存储空间可以存储对应工作线程对耦合电容的采样值,其中一个第二子存储空间可以存储对应工作线程对耦合电容的采样值的平方,另一个第一子存储空间可以存储对应工作线程对接地电容的采样值,另一个第二子存储空间可以存储对应工作线程对接地电容的采样值的平方,本技术对第一子存储空间的数量,以及对第二子存储空间的数量不作限制。
38.在其中一些实施例中,根据从每个工作线程所对应的存储空间中获取的采样值,确定目标导体的寄生电容值通过如下步骤实现:
39.步骤1,根据从每个工作线程所对应的第一存储空间中获取的采样值、从每个工作线程所对应的第二存储空间中获取的采样值的平方以及从每个工作线程所对应的第三存储空间中获取的随机行走步数,判断目标导体所对应的采样值是否已收敛。
40.步骤2,在目标导体所对应的采样值已收敛时,根据从每个工作线程所对应的存储空间中获取的采样值计算目标导体的寄生电容值;在目标导体所对应的采样值未收敛时,控制与目标导体对应的多个工作线程继续随机行走。
41.在本实施例中,可以对与目标导体对应的所有第一存储空间中的采样值进行求和,得到目标导体所对应的总采样值;对与目标导体对应的所有第二存储空间中的采样值的平方进行求和,得到目标导体所对应的所有采样值的平方和;对与目标导体对应的所有第三存储空间中的随机行走步数进行求和,得到目标导体所对应的总随机行走步数。
42.并通过关系式:确定目标导体所对应的采样方差;其中,err表示采样方差,c表示目标导体所对应的总采样值,c2表示目标导体所对应的所有采样值的平方和,n表示目标导体所对应的总随机行走步数,ci表示目标导体第i次随机行走过程所对应的采样值。
43.最后根据采样方差与预设阈值之间的大小关系,判断目标导体所对应的采样值是否已收敛;其中,在采样方差小于预设阈值时,则确定目标导体所对应的采样值已收敛;在采样方差大于或等于预设阈值时,则确定目标导体所对应的采样值未收敛。
44.在本实施例中,预设阈值是用户输入的参数或者预先配置的参数,可以根据对精度的不同要求对预设阈值进行更改,本技术在此不作限制;在采样方差大于或等于预设阈值时,则确定目标导体所对应的采样值未收敛,该采样值未达到目标精度,此时还需要控制与目标导体对应的多个工作线程继续随机行走,直至采样值已收敛。
45.在采样方差小于该预设阈值时,则确定目标导体所对应的采样值已收敛,该采样值已达到目标精度,此时可以基于目标导体所对应的所有采样值ci(i=1,

,n),计算得到目标导体所对应的寄生电容值,从而保证目标导体的寄生电容的提取精度。
46.在其中一些实施例中,在控制与目标导体对应的多个工作线程开始随机行走之前,该方法还实施如下步骤:
47.步骤1,获取目标导体所对应的工作线程的个数,以及目标导体所对应的总随机行走步数。
48.步骤2,根据目标导体所对应的工作线程的个数以及总随机行走步数,确定每个工作线程所对应的目标路径数。
49.在本实施例中,可以按照现有方法中的流程,读入集成电路版图中的导体及电介质图形,并确定要提取目标导体的寄生电容所需要的工作线程的个数以及总随机行走步数,并根据目标导体所对应的工作线程的个数以及总随机行走步数,确定每个工作线程所对应的目标路径数,例如,总随机步数n=5000,工作线程的个数为nth=25,则每个工作线程所对应的目标路径数为n/nth=200。
50.其中,总随机步数和工作线程的个数可以根据实际的精度要求进行更改,从而保证本技术提供的多线程随机行走的寄生电容提取方法的环境适用性。
51.在其中一些实施例中,根据目标导体所对应的工作线程的个数以及总随机行走步数,确定每个工作线程所对应的目标路径数通过如下步骤实现:
52.步骤1,将目标导体所对应的总随机步数除于工作线程的个数,得到计算结果,并判断计算结果是否为整数。
53.步骤2,在计算结果为整数时,将计算结果作为每个工作线程所对应的目标路径数;在计算结果为非整数时,确定计算结果所对应的整数计算结果与余数计算结果,将整数计算结果分配给每个工作线程,将余数计算结果分配给多个工作线程,得到每个工作线程所对应的目标路径数。
54.在本实施例中,在实际运行中,存在目标导体所对应的总随机步数除于工作线程的个数所得到的计算结果为非整数的情况,例如,总随机步数n=5000,工作线程的个数为nth=26,此时n/nth=192.307

,为非整数。
55.此时,可以确定该计算结果的整数计算结果和余数计算结果,整数计算结果为192,余数计算结果为8,可以将192次随机行走作为每个工作线程的初始目标路径数,并将剩余的8次随机行走逐个依次放入工作线程1、工作线程2、

、工作线程8,即工作线程1至工作线程8的目标路径数为193,工作线程9至工作线程26的目标路径数为192,从而保证每个工作线程所对应的目标路径数大致是相等的,避免一个工作线程所对应的目标路径数过多从而引入过长的等待时间,进而提高多线程随机行走的运行效率。
56.在其中一些实施例中,在控制与目标导体对应的多个工作线程开始随机行走之前,该方法还实施如下步骤:
57.步骤1,获取目标导体所对应的工作线程的个数。
58.步骤2,建立存储向量,其中,存储向量包括多个维度,存储向量的维度数量与工作线程的个数对应,存储向量的每个维度对应一个工作线程的存储空间。
59.在本实施例中,可以将随机行走过程中需要存储的数据,例如对电容的采样值、采样值的平方以及随机行走步数等数据由标量扩展为多维度的存储向量,每个工作线程对应存储向量中的一个维度。
60.例如,目标导体所需要的存储向量包括存储采样值的cv,存储采样值的平方的cv2和存储随机行走步数的n,其中,cv,cv2和n的维度均为100,对应计算该目标导体的寄生电容所需要的工作线程的个数nth=100,在每个工作线程需要进行数据更新时,可以只更新该工作线程所对应的存储空间,例如,工作线程i对应cv[i],cv2[i]和n[i],在工作线程i需要进行数据更新时,只写入数据到对应的cv[i],cv2[i]和n[i]中,每个工作线程之间不会
冲突,无需加入线程锁,避免在工作线程进行数据更新时由于线程锁引入的等待时间。
[0061]
下面提供具体应用场景进行详细说明:
[0062]
图2是一种集成电路版图的示意图,如图2所示,以计算导体1的寄生电容为例,即将导体1作为目标导体时,导体1的寄生电容包括:导体1和导体2之间的耦合电容c12,导体1和导体3之间的耦合电容c13,以及导体1到接地端gnd的电容c10,设定经过n=10000次随机行走后更新,且导体1所对应的工作线程的个数nth=100,每个工作线程所对应的目标路径数为n/nth=100。
[0063]
按照现有方法,需要四个全局变量存储数据,分别是c12、c13、c10和n。当工作线程i行走完100次随机行走之后,其需要对全局变量进行更新,在进行更新前,工作线程i会进行lock操作,加入线程锁,使得除工作线程i以外的其他工作线程暂停运行,等待其对全局变量进行更新。在工作线程i完成更新后,则会进行unlock操作,释放线程锁,此时除工作线程i以外的其他工作线程恢复运行。对于所有的i=1,2,

,100的工作线程,每个工作线程在对全局变量进行更新时都需要加入线程锁,使得其他工作线程暂停运行。因此,在与目标导体对应的工作线程的个数较多时,由于每个工作线程在对全局变量进行更新时都会加入线程锁,导致多线程随机行走的运行效率降低,进而降低对目标导体的寄生电容提取效率。
[0064]
通过本技术实施例提供的基于多线程随机行走的寄生电容方法,需要建立四个存储向量分别是c12v、c13v、c10v和nv,且每个存储向量的维度均为100,对应工作线程的个数。当工作线程i完成了100次随机行走需要进行数据更新时,工作线程i可以将对c12的采样值写入c12v[i],将对c13的采样值写入c13v[i],将对c10的采样值写入c10v[i]、将目标路径数100写入nv[i];当另一个工作线程j完成了100次随机行走需要进行数据更新时,工作线程j可以将对c12的采样值写入c12v[j],将对c13的采样值写入c13v[j],将对c10的采样值写入c10v[j]、将目标路径数100写入nv[j]。由于i≠j,两个工作线程对应不同的存储空间,在对存储空间进行数据更新时不会发生冲突,因此无需加入线程锁,也不会引入等待时间,大大提高了多线程随机行走的运行效率,解决了利用多线程随机行走方法对导体寄生电容进行提取时的提取效率低的问题,实现了提高对导体进行基于多线程随机行走的寄生电容提取效率的技术效果。
[0065]
本实施例提供了一种基于多线程随机行走的寄生电容提取装置,图3是根据本技术实施例的基于多线程随机行走的寄生电容提取装置的结构框图,如图3所示,该装置包括:控制模块302,用于控制与目标导体对应的多个工作线程开始随机行走;存储模块304,用于在工作线程的随机行走步数达到预设的目标路径数时,将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,确定工作线程完成数据更新,其中,每个工作线程所对应的存储空间彼此独立;确定模块306,用于在所有工作线程均完成数据更新时,分别从每个工作线程所对应的存储空间中获取采样值,并根据从每个工作线程所对应的存储空间中获取的采样值,确定目标导体的寄生电容值。
[0066]
在其中一些实施例中,存储空间包括第一存储空间、第二存储空间以及第三存储空间;存储模块304还被配置为用于将工作线程进行的每次随机行走所对应的采样值存入与工作线程对应的第一存储空间;将工作线程进行的每次随机行走所对应的采样值的平方存入与工作线程对应的第二存储空间;将工作线程的随机行走步数存入与工作线程对应的第三存储空间。
[0067]
在其中一些实施例中,确定模块306还被配置为用于根据从每个工作线程所对应的第一存储空间中获取的采样值、从每个工作线程所对应的第二存储空间中获取的采样值的平方以及从每个工作线程所对应的第三存储空间中获取的随机行走步数,判断目标导体所对应的采样值是否已收敛;在目标导体所对应的采样值已收敛时,根据从每个工作线程所对应的存储空间中获取的采样值计算目标导体的寄生电容值;在目标导体所对应的采样值未收敛时,控制与目标导体对应的多个工作线程继续随机行走。
[0068]
在其中一些实施例中,确定模块306还被配置为用于对与目标导体对应的所有第一存储空间中的采样值进行求和,得到目标导体所对应的总采样值;对与目标导体对应的所有第二存储空间中的采样值的平方进行求和,得到目标导体所对应的所有采样值的平方和;对与目标导体对应的所有第三存储空间中的随机行走步数进行求和,得到目标导体所对应的总随机行走步数;通过关系式:确定目标导体所对应的采样方差;其中,err表示采样方差,c表示目标导体所对应的总采样值,c2表示目标导体所对应的所有采样值的平方和,n表示目标导体所对应的总随机行走步数,ci表示目标导体第i次随机行走过程所对应的采样值;根据采样方差与预设阈值之间的大小关系,判断目标导体所对应的采样值是否已收敛;其中,在采样方差小于预设阈值时,则确定目标导体所对应的采样值已收敛;在采样方差大于或等于预设阈值时,则确定目标导体所对应的采样值未收敛。
[0069]
在其中一些实施例中,该装置还包括预处理模块,用于获取目标导体所对应的工作线程的个数,以及目标导体所对应的总随机行走步数;根据目标导体所对应的工作线程的个数以及总随机行走步数,确定每个工作线程所对应的目标路径数。
[0070]
在其中一些实施例中,预处理模块还被配置为用于将目标导体所对应的总随机步数除于工作线程的个数,得到计算结果,并判断计算结果是否为整数;在计算结果为整数时,将计算结果作为每个工作线程所对应的目标路径数;在计算结果为非整数时,确定计算结果所对应的整数计算结果与余数计算结果,将整数计算结果分配给每个工作线程,将余数计算结果分配给多个工作线程,得到每个工作线程所对应的目标路径数。
[0071]
在其中一些实施例中,预处理模块还被配置为用于获取目标导体所对应的工作线程的个数;建立存储向量,其中,存储向量包括多个维度,存储向量的维度数量与工作线程的个数对应,存储向量的每个维度对应一个工作线程的存储空间。
[0072]
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0073]
本实施例还提供了一种电子装置,图4是根据本技术实施例的电子装置的硬件结构示意图,如图4所示,该电子装置包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0074]
具体地,上述处理器402可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,简称为asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
[0075]
其中,存储器404可以包括用于数据或指令的大容量存储器。举例来说而非限制,
存储器404可包括硬盘驱动器(hard disk drive,简称为hdd)、软盘驱动器、固态驱动器(solid state drive,简称为ssd)、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,简称为usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在故障图像生成装置的内部或外部。在特定实施例中,存储器404是非易失性(non-volatile)存储器。在特定实施例中,存储器404包括只读存储器(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)等。
[0076]
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
[0077]
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种基于多线程随机行走的寄生电容提取方法。
[0078]
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
[0079]
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
[0080]
s1,控制与目标导体对应的多个工作线程开始随机行走。
[0081]
s2,在工作线程的随机行走步数达到预设的目标路径数时,将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,确定工作线程完成数据更新,其中,每个工作线程所对应的存储空间彼此独立。
[0082]
s3,在所有工作线程均完成数据更新时,分别从每个工作线程所对应的存储空间中获取采样值,并根据从每个工作线程所对应的存储空间中获取的采样值,确定目标导体的寄生电容值。
[0083]
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0084]
另外,结合上述实施例中的基于多线程随机行走的寄生电容提取方法,本技术实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于多线程随机行走的寄生电容提取方法。
[0085]
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这
些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

技术特征:
1.一种基于多线程随机行走的寄生电容提取方法,其特征在于,所述方法包括:控制与目标导体对应的多个工作线程开始随机行走;在所述工作线程的随机行走步数达到预设的目标路径数时,将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,确定所述工作线程完成数据更新,其中,每个所述工作线程所对应的存储空间彼此独立;在所有工作线程均完成数据更新时,分别从每个所述工作线程所对应的存储空间中获取采样值,并根据从每个所述工作线程所对应的存储空间中获取的采样值,确定所述目标导体的寄生电容值。2.根据权利要求1所述的基于多线程随机行走的寄生电容提取方法,其特征在于,所述存储空间包括第一存储空间、第二存储空间以及第三存储空间;将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间包括:将所述工作线程进行的每次随机行走所对应的采样值存入与所述工作线程对应的第一存储空间;将所述工作线程进行的每次随机行走所对应的采样值的平方存入与所述工作线程对应的第二存储空间;将所述工作线程的随机行走步数存入与所述工作线程对应的第三存储空间。3.根据权利要求2所述的基于多线程随机行走的寄生电容提取方法,其特征在于,根据从每个所述工作线程所对应的存储空间中获取的采样值,确定所述目标导体的寄生电容值包括:根据从每个所述工作线程所对应的第一存储空间中获取的采样值、从每个所述工作线程所对应的第二存储空间中获取的采样值的平方以及从每个所述工作线程所对应的第三存储空间中获取的随机行走步数,判断所述目标导体所对应的采样值是否已收敛;在所述目标导体所对应的采样值已收敛时,根据从每个所述工作线程所对应的存储空间中获取的采样值计算所述目标导体的寄生电容值;在所述目标导体所对应的采样值未收敛时,控制与目标导体对应的多个工作线程继续随机行走。4.根据权利要求3所述的基于多线程随机行走的寄生电容提取方法,其特征在于,根据从每个所述工作线程所对应的第一存储空间中获取的采样值、从每个所述工作线程所对应的第二存储空间中获取的采样值的平方以及从每个所述工作线程所对应的第三存储空间中获取的随机行走步数,判断所述目标导体所对应的采样值是否已收敛包括:对与所述目标导体对应的所有第一存储空间中的采样值进行求和,得到所述目标导体所对应的总采样值;对与所述目标导体对应的所有第二存储空间中的采样值的平方进行求和,得到所述目标导体所对应的所有采样值的平方和;对与所述目标导体对应的所有第三存储空间中的随机行走步数进行求和,得到所述目标导体所对应的总随机行走步数;通过关系式:确定所述目标导体所对应的采样方差;其中,err表示采
样方差,c表示所述目标导体所对应的总采样值,c2表示所述目标导体所对应的所有采样值的平方和,n表示所述目标导体所对应的总随机行走步数,c
i
表示所述目标导体第i次随机行走过程所对应的采样值;根据所述采样方差与预设阈值之间的大小关系,判断所述目标导体所对应的采样值是否已收敛;其中,在所述采样方差小于所述预设阈值时,则确定所述目标导体所对应的采样值已收敛;在所述采样方差大于或等于所述预设阈值时,则确定所述目标导体所对应的采样值未收敛。5.根据权利要求1所述的基于多线程随机行走的寄生电容提取方法,其特征在于,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:获取所述目标导体所对应的工作线程的个数,以及所述目标导体所对应的总随机行走步数;根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数。6.根据权利要求1所述的基于多线程随机行走的寄生电容提取方法,其特征在于,根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数包括:将所述目标导体所对应的总随机步数除于所述工作线程的个数,得到计算结果,并判断所述计算结果是否为整数;在所述计算结果为整数时,将所述计算结果作为每个所述工作线程所对应的目标路径数;在所述计算结果为非整数时,确定所述计算结果所对应的整数计算结果与余数计算结果,将所述整数计算结果分配给每个所述工作线程,将所述余数计算结果分配给多个所述工作线程,得到每个所述工作线程所对应的目标路径数。7.根据权利要求1或6中任一项所述的基于多线程随机行走的寄生电容提取方法,其特征在于,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:获取所述目标导体所对应的工作线程的个数;建立存储向量,其中,所述存储向量包括多个维度,所述存储向量的维度数量与所述工作线程的个数对应,所述存储向量的每个维度对应一个所述工作线程的存储空间。8.一种基于多线程随机行走的寄生电容提取装置,其特征在于,所述装置包括:控制模块,用于控制与目标导体对应的多个工作线程开始随机行走;存储模块,用于在所述工作线程的随机行走步数达到预设的目标路径数时,将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,确定所述工作线程完成数据更新,其中,每个所述工作线程所对应的存储空间彼此独立;确定模块,用于在所有工作线程均完成数据更新时,分别从每个所述工作线程所对应的存储空间中获取采样值,并根据从每个所述工作线程所对应的存储空间中获取的采样值,确定所述目标导体的寄生电容值。9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的基于多
线程随机行走的寄生电容提取方法。10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于多线程随机行走的寄生电容提取方法。

技术总结
本申请涉及一种基于多线程随机行走的寄生电容提取方法、装置、电子装置及存储介质,该方法包括:控制与目标导体对应的多个工作线程开始随机行走;在工作线程的随机行走步数达到预设的目标路径数时,将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,确定工作线程完成数据更新,其中,每个工作线程所对应的存储空间彼此独立;在所有工作线程均完成数据更新时,分别从每个工作线程所对应的存储空间中获取采样值,确定目标导体的寄生电容值。通过本申请,解决了利用多线程随机行走方法对导体寄生电容进行提取时的提取效率低的问题,实现了提高对导体进行基于多线程随机行走的寄生电容提取效率的技术效果。率的技术效果。率的技术效果。


技术研发人员:何裕 焦吾振 胡超 曾宪强 贺青
受保护的技术使用者:杭州行芯科技有限公司
技术研发日:2022.04.08
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-10211.html

最新回复(0)