WO2023193812A1 - 寄生电容提取方法、电子装置和存储介质 - Google Patents

寄生电容提取方法、电子装置和存储介质 Download PDF

Info

Publication number
WO2023193812A1
WO2023193812A1 PCT/CN2023/087149 CN2023087149W WO2023193812A1 WO 2023193812 A1 WO2023193812 A1 WO 2023193812A1 CN 2023087149 W CN2023087149 W CN 2023087149W WO 2023193812 A1 WO2023193812 A1 WO 2023193812A1
Authority
WO
WIPO (PCT)
Prior art keywords
random
working
parasitic capacitance
conductor
target conductor
Prior art date
Application number
PCT/CN2023/087149
Other languages
English (en)
French (fr)
Inventor
何裕
焦吾振
胡超
曾宪强
Original Assignee
杭州行芯科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from CN202210367550.1A external-priority patent/CN114706682A/zh
Priority claimed from CN202210380697.4A external-priority patent/CN114707463A/zh
Priority claimed from CN202210402833.5A external-priority patent/CN114880985A/zh
Application filed by 杭州行芯科技有限公司 filed Critical 杭州行芯科技有限公司
Publication of WO2023193812A1 publication Critical patent/WO2023193812A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Definitions

  • the present application relates to the field of integrated circuit technology, and in particular to a parasitic capacitance extraction method, electronic device and storage medium.
  • Random walk is different from conventional finite difference, finite element and other methods. It does not need to solve a system of linear equations. Its main step is to randomly select sampling points from the Gaussian surface surrounding the conductor, and construct a maximum transfer cube centered on this point. Next time Picking points will randomly fall on the surface of this cube. Repeat this process until the position of the random point reaches the surface of a conductor or the boundary of the layout, then a random walk process is completed.
  • it is usually necessary to perform at least hundreds of thousands of random walks, which leads to the problem of low efficiency in extracting the parasitic capacitance of the conductor.
  • a parasitic capacitance extraction method includes:
  • the parasitic capacitance value of the target conductor is determined.
  • storing the sampling value corresponding to each random walk performed by the working thread includes:
  • the sampling value corresponding to each random walk performed by the working thread is stored in the preset storage space corresponding to the working thread, To update the data of the storage space corresponding to the working thread, wherein the storage space corresponding to each working thread is independent of each other.
  • the storage space includes a first storage space, a second storage space and a third storage space; the sampling value corresponding to each random walk performed by the working thread is stored in a preset storage space corresponding to the working thread.
  • Corresponding storage space includes:
  • the number of random walking steps of the working thread is stored in the third storage space corresponding to the working thread.
  • the method before controlling multiple working threads corresponding to the target conductor to start random walking, the method further includes:
  • the number of target paths corresponding to each working thread is determined.
  • determining the number of target paths corresponding to each working thread includes:
  • the calculation result is used as the target path number corresponding to each working thread
  • the calculation result is a non-integer
  • determine the integer calculation result and the remainder calculation result corresponding to the calculation result allocate the integer calculation result to each of the working threads, and allocate the remainder calculation result to multiple each of the working threads, and obtain the number of target paths corresponding to each of the working threads.
  • the method before controlling multiple working threads corresponding to the target conductor to start random walking, the method further includes:
  • the storage vector includes multiple dimensions, the number of dimensions of the storage vector corresponds to the number of working threads, and each dimension of the storage vector corresponds to the storage space of one working thread.
  • control multiple worker threads corresponding to the target conductor to start random walking including:
  • the working thread starts random walking from the sampling point on the corresponding area element to perform sampling.
  • the preset area of the Gaussian surface includes all areas of the Gaussian surface or part of the Gaussian surface; the preset area of the Gaussian surface corresponding to the target conductor is divided into multiple area elements with equal areas.
  • the preset area of the Gaussian surface corresponding to the target conductor is divided into a plurality of area elements with equal areas, wherein the number of the area elements is the same as the number of random walks corresponding to the preset area of the Gaussian surface.
  • dividing the preset area of the Gaussian surface corresponding to the target conductor into multiple area elements with equal areas includes:
  • the preset area of the Gaussian surface corresponding to the target conductor is equally spaced into a plurality of area elements with equal areas.
  • sampling is performed on the area element corresponding to the working thread, and obtaining the sampling points on the area element corresponding to the working thread includes:
  • the working thread When the number of area elements corresponding to the working thread is equal to 1, the working thread performs a sampling on the corresponding area element to obtain the sampling point corresponding to the working thread;
  • the working thread When the number of area elements corresponding to the working thread is greater than 1, the working thread performs sampling once on each corresponding area element to obtain multiple sampling points corresponding to the working thread.
  • the working thread performs one sampling on the corresponding area element, including:
  • the position coordinates of the area element are calculated, and a sampling of the area element is completed.
  • the first random number and the second random number are randomly selected from a preset numerical interval; according to the position coordinates of the area element, and the first random number and the third random number, Two random numbers, the calculated position coordinates of the sampling point include:
  • the position coordinates of the sampling point are determined through the relationship: (x1+r1*(x2-x1), y1+r2*(y2-y1)), where (x1, y1, x2, y2) represents the area
  • (x1, y1, x2, y2) represents the area
  • the position coordinate of the element on the XOY plane r1 represents the first random number
  • r2 represents the second random number.
  • allocating all area elements to multiple worker threads includes:
  • All area elements are evenly distributed to multiple working threads, and the area elements corresponding to the working threads are stored in storage vectors corresponding to the working threads.
  • control multiple worker threads corresponding to the target conductor to start random walking including:
  • the method further includes:
  • the upper limit of the first position interval represents a preset position outside the surface of any spatial conductor other than the target conductor.
  • the method further includes:
  • start a random jump and get the next walking point including:
  • the next walking point is randomly selected on the transfer cube.
  • the Gaussian surface is generated based on a preset integrated circuit layout, which includes the target conductor; when the position of the jump point is in a preset first position interval, it is determined
  • the current random walk process has been completed including:
  • the upper limit of the second position interval represents a preset position outside the boundary of the integrated circuit layout.
  • the method also includes:
  • the method before randomly selecting the first walking point on the Gaussian surface corresponding to the target conductor, the method further includes:
  • the position threshold and the position information of each surface of each space conductor respectively determine the preset position outside the surface of each space conductor except the target conductor
  • the first position interval is determined based on the preset position outside the surface of each space conductor and the position information of each surface of each space conductor.
  • determining the parasitic capacitance value of the target conductor based on the sampling value corresponding to each working thread includes:
  • the parasitic capacitance value of the target conductor is calculated based on the sampling value corresponding to each random walk process.
  • the present application also provides an electronic device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to perform the parasitic capacitance extraction method as described above.
  • the present application also provides a storage medium in which a computer program is stored, wherein when the computer program is executed by a processor, the parasitic capacitance extraction method as described above is implemented.
  • the above-mentioned parasitic capacitance extraction method, electronic device and storage medium control multiple working threads corresponding to the target conductor to start random walking; store the sampling value corresponding to each random walk performed by the working thread; according to each working thread The corresponding sampling value determines the parasitic capacitance value of the target conductor.
  • Figure 1 is a flow chart of a parasitic capacitance extraction method according to an embodiment of the present application.
  • FIG. 2 is a schematic diagram of an integrated circuit layout according to an embodiment of the present application.
  • Figure 3 is a flow chart of a parasitic capacitance extraction method according to another embodiment of the present application.
  • FIG. 4 is a schematic diagram of dividing area elements on a preset area of the Gaussian surface according to another embodiment of the present application.
  • Figure 5 is a schematic diagram of sampling on area elements according to another embodiment of the present application.
  • Figure 6 is a flow chart of a parasitic capacitance extraction method according to yet another embodiment of the present application.
  • Figure 7 is a schematic diagram of a random walk in a two-dimensional scene in related technology.
  • Figure 8 is a schematic diagram of a space conductor according to yet another embodiment of the present application.
  • Figure 9 is a structural block diagram of a parasitic capacitance extraction device according to an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
  • FIG. 1 is a flow chart of a parasitic capacitance extraction method according to an embodiment of the present application. As shown in Figure 1, the parasitic capacitance extraction method includes:
  • Step S101 Control multiple working threads corresponding to the target conductor to start random walking.
  • a GPU Graphic Processing Unit
  • CPU Central Processing Unit
  • other processors that support multi-threaded parallel computing can be used to extract the parasitic capacitance of the target conductor.
  • one processor can be used to control and run multiple working threads at the same time, or multiple processors can be used, and each processor can control and run one working thread or multiple working threads at the same time, thereby improving parasitism.
  • Environmental adaptability of capacitance extraction methods are possible.
  • Step S102 Store the sampling value corresponding to each random walk performed by the working thread.
  • Step S103 Determine the parasitic capacitance value of the target conductor based on the sampling value corresponding to each working thread.
  • the data stored by each working thread can be The data should be stored to calculate the parasitic capacitance value of the target conductor.
  • multi-threaded parallel computing processing can be used to extract parasitic capacitance, which improves the efficiency of extracting conductor parasitic capacitance.
  • step S102 stores the sampling values corresponding to each random walk performed by the working thread, including:
  • the sampling value corresponding to each random walk performed by the working thread is stored in the preset storage space corresponding to the working thread, so as to store the corresponding sampling value of the working thread.
  • the data in the storage space is updated, where the storage spaces corresponding to each worker thread are independent of each other.
  • the number of target paths refers to the number of target walking steps for the worker thread to perform random walks.
  • the storage space corresponding to each worker thread is independent of each other. For example, every time worker thread i completes a random walk process, it will store the corresponding data (sampling value, square of the sampling value and the current number of random walk steps, etc.) in In a local variable corresponding to the working thread i, when the number of random walking steps of the working thread i reaches the preset target number of paths, the data saved in the local variable is stored and updated to the storage space i corresponding to the working thread i. , and since the working thread i only writes data to the storage space i, each working thread corresponds to a different storage space, and there will be no conflict.
  • the storage space includes a first storage space, a second storage space and a third storage space; the sampling value corresponding to each random walk performed by the working thread is stored in a preset storage space corresponding to the working thread, including :
  • the number of random walking steps of the working thread is stored in the third storage space corresponding to the working thread.
  • the parasitic capacitance corresponding to the target conductor includes the coupling capacitance between the target conductor and the adjacent conductor and the ground capacitance between the target conductor and the ground terminal.
  • the first storage space may also include multiple first Sub-storage space
  • the second storage space can also include multiple second sub-storage spaces.
  • one of the first sub-storage spaces can store the sampling value of the coupling capacitor corresponding to the working thread
  • one of the second sub-storage spaces can store the corresponding The square of the sampling value of the coupling capacitance by the working thread
  • another first sub-storage space can store the sampling value of the corresponding working thread on the ground capacitance
  • the other second sub-storage space can store the square of the sampling value of the corresponding working thread on the ground capacitance.
  • step S103 determines the parasitic capacitance value of the target conductor based on the sampling value corresponding to each working thread, including:
  • the square of the sampled value obtained from the second storage space corresponding to each working thread and the third storage space corresponding to each working thread is used to determine whether the sampling value corresponding to the target conductor has converged;
  • the parasitic capacitance value of the target conductor is calculated based on the sampled values obtained from the storage space corresponding to each working thread;
  • the sampled values in all first storage spaces corresponding to the target conductor can be summed, that is, the sampled values of the coupling capacitance and the grounding capacitance stored in the first storage space are summed together, Obtain the total sampled value corresponding to the target conductor; sum the squares of all sampled values in the second storage space corresponding to the target conductor to obtain the sum of the squares of all sampled values corresponding to the target conductor; The number of random walk steps in all third storage spaces is summed to obtain the total number of random walk steps corresponding to the target conductor.
  • sampling variance based on the relationship between the sampling variance and the preset threshold, it is determined whether the sampling value corresponding to the target conductor has converged; where, when the sampling variance is less than the preset threshold, it is determined that the sampling value corresponding to the target conductor has converged; in When the sampling variance is greater than or equal to the preset threshold, it is determined that the sampling values corresponding to the target conductor have not converged.
  • the preset threshold is a parameter input by the user or a preconfigured parameter.
  • the preset threshold can be changed according to different requirements for accuracy. This application does not limit it here; when the sampling variance is greater than or equal to the preset threshold , it is determined that the sampling value corresponding to the target conductor has not converged, and the sampling value has not reached the target accuracy. At this time, it is necessary to control multiple working threads corresponding to the target conductor to continue random walking until the sampling value has converged.
  • step S101 controls multiple working threads corresponding to the target conductor to start random walking, it also includes:
  • the number of target paths corresponding to each working thread is determined.
  • Each random walk process is a sampling of the capacitance value of the target conductor's parasitic capacitance. After completing N random walking processes, it can be determined that the capacitance value of the target conductor's parasitic capacitance has been sampled N times, and then , the parasitic capacitance value of the target conductor can be calculated based on N sample values.
  • the total number of random walk steps and the number of working threads can be changed according to actual accuracy requirements, thereby ensuring the environmental applicability of the multi-thread random walk parasitic capacitance extraction method provided by this application.
  • determining the number of target paths corresponding to each working thread includes:
  • the calculation result is used as the number of target paths corresponding to each worker thread
  • the calculation result is a non-integer
  • determine the integer calculation result and remainder calculation result corresponding to the calculation result distribute the integer calculation result to each working thread, distribute the remainder calculation result to multiple working threads, and obtain the calculation results of each working thread. The corresponding number of target paths.
  • the calculation result obtained by dividing the total number of random walk steps corresponding to the target conductor by the number of working threads is a non-integer.
  • the total number of random walk steps N 5000
  • the integer calculation result and the remainder calculation result of the calculation result can be determined.
  • the integer calculation result is 192 and the remainder calculation result is 8.
  • 192 random walks can be used as the initial target path number of each worker thread, and the remaining 8 random walks are put into working thread 1, working thread 2, ..., working thread 8 one by one, that is, working thread 1
  • the number of target paths to working thread 8 is 193, and the number of target paths from working thread 9 to working thread 26 is 192. This ensures that the number of target paths corresponding to each working thread is roughly equal, and avoids the target corresponding to one working thread. Too many paths will introduce too long waiting time, thereby improving the operating efficiency of multi-threaded random walks.
  • step 101 controls multiple working threads corresponding to the target conductor to start random walking, it may also include:
  • the storage vector includes multiple dimensions.
  • the number of dimensions of the storage vector corresponds to the number of working threads.
  • Each dimension of the storage vector corresponds to the storage space of a working thread.
  • the data that needs to be stored during the random walk process can be expanded from a scalar to a multi-dimensional storage vector, and each working thread corresponds to Stores a dimension in a vector.
  • the storage vector required for the target conductor includes Cv to store the sample value, Cv 2 to store the square of the sample value, and N to store the number of random walk steps.
  • the dimensions of Cv, Cv 2 and N are all 100, and the corresponding calculation is
  • Cv can also include multiple subspaces to store the sampling values of the coupling capacitance and the sampling value of the grounding capacitance respectively.
  • Cv 2 can also include multiple subspaces. The subspaces are respectively used to store the square of the sampled value of the coupling capacitor and the square of the sampled value of the ground capacitor.
  • each dimension of the subspace corresponds to a working thread.
  • each worker thread needs to update data, it can only update the storage space corresponding to the worker thread.
  • worker thread i corresponds to Cv[i], Cv 2 [i] and N[i].
  • worker thread i needs When updating data, only write data to the corresponding Cv[i], Cv 2 [i] and N[i]. There will be no conflict between each working thread, and there is no need to add thread locks to avoid data processing in the working thread. Waiting time introduced due to thread lock when updating.
  • Figure 2 is a schematic diagram of an integrated circuit layout.
  • the working thread i When the working thread i completes 100 random walks and needs to update the data, the working thread i can write the sampling value of C12 to C12v[i], the sampling value of C13 to C13v[i], and the sampling value of C10 to Write the sampling value to C10v[i] and write the target path number 100 to Nv[i]; when another working thread j completes 100 random walks and needs to update the data, working thread j can write the sampling value of C12 Enter C12v[j], write the sampling value of C13 into C13v[j], write the sampling value of C10 into C10v[j], and write the target path number 100 into Nv[j].
  • the above parasitic capacitance extraction method controls multiple working threads corresponding to the target conductor to start random walking; stores the sampling value corresponding to each random walk performed by the working thread; and determines the target conductor based on the sampling value corresponding to each working thread.
  • Parasitic capacitance value By adopting multi-thread parallel computing processing, the efficiency of extracting conductor parasitic capacitance is improved.
  • FIG. 3 is a flow chart of a parasitic capacitance extraction method according to another embodiment of the present application.
  • step S101 controls the steps of multiple working threads corresponding to the target conductor to start random walking, which may specifically include:
  • Step S201 Divide the preset area of the Gaussian surface corresponding to the target conductor into a plurality of area elements with equal areas.
  • the integrated circuit layout where the target conductor is located can be first obtained, and the target conductor pattern is read from the integrated circuit layout to construct a Gaussian surface surrounding the target conductor.
  • the Gaussian surface corresponding to the target conductor is a closed envelope surface surrounding the target conductor.
  • the Gaussian surface contains and only contains the target conductor, and the Gaussian surface does not intersect the target conductor or contact any surface of the target conductor; the Gaussian surface can Obtained by translationally extending the surface of the target conductor outward.
  • the preset area of the Gaussian surface may include all areas of the Gaussian surface or part of the Gaussian surface.
  • the preset area of the Gaussian surface includes all areas of the Gaussian surface, the entire Gaussian surface needs to be divided into multiple area elements with equal areas.
  • the preset area of the Gaussian surface only includes a partial area of the Gaussian surface, the partial area of the Gaussian surface can be divided into multiple area elements with equal areas, and random sampling can be performed in other areas of the Gaussian surface.
  • the size of the preset area can be selected according to the actual needs of the user, which is not limited in this application.
  • Step S202 allocate all area elements to multiple working threads.
  • one processor can be used to control and run multiple working threads at the same time, or multiple processors can be used, and each processor can control and run one working thread or multiple working threads at the same time, thereby improving the efficiency of the present invention.
  • the embodiment provides environmental adaptability for parasitic capacitance extraction based on Gaussian surface uniform sampling.
  • Step S203 Obtain the sampling points on the area element corresponding to the working thread on the area element corresponding to the working thread.
  • each working thread only samples the area element allocated to itself to avoid mutual influence between working threads and no conflict between working threads.
  • Step S204 The working thread starts random walking from the sampling point on the corresponding area element to perform sampling.
  • the target conductor when extracting the parasitic capacitance of the target conductor, the target conductor can be approximated in the shape of a cuboid. Therefore, the Gaussian surface produced based on the target conductor is also in the shape of a cuboid. If there is an intersection between the cuboids, the intersection can be removed. , thereby ensuring that the Gaussian surface is a regular structure.
  • the calculation amount of the random walk will increase significantly, and the calculation cannot even be completed in a relatively reasonable time.
  • the total number of random walk steps can be reduced.
  • the reduction in the number of random walk steps means that the number of samples on the Gaussian surface is reduced.
  • the reduction in the number of samples may lead to a smaller distribution of sampling points in some areas of the Gaussian surface.
  • the distribution of sampling points in other areas is sparse, that is, the distribution of random sampling points on the Gaussian surface is not uniform enough, which leads to large errors in the calculation results.
  • the preset area of the Gaussian surface corresponding to the target conductor is divided into multiple area elements with equal areas, and the area elements are allocated to multiple working threads.
  • each working thread only Sampling the area elements assigned to itself.
  • the sampling of all area elements in the preset area of the entire Gaussian surface is completed.
  • a random walk can be started from each sampling point. , to extract the parasitic capacitance of the target capacitor.
  • each area element Since the area of each area element is equal, and each area element is sampled once to obtain the random walking point, it can be ensured that the sampling of the preset area of the Gaussian surface is uniform, avoiding When the number of random walk steps is limited, the sampling points on the preset area of the Gaussian surface may have calculation errors caused by uneven distribution, and the accuracy of extracting the parasitic capacitance of the target conductor is improved.
  • the preset area of the Gaussian surface corresponding to the target conductor is divided into multiple area elements with equal areas; all area elements are allocated to multiple working threads; on the area elements corresponding to the working threads Obtain the sampling point on the area element corresponding to the working thread; the working thread starts a random line from the sampling point on the corresponding area element. Go for sampling.
  • Each random walk process is a sampling of the capacitance value of the target conductor's parasitic capacitance. After each working thread completes its corresponding number of random walk processes, it can be determined that the capacitance value of the target conductor's parasitic capacitance has been completed. Sampling, and then, the parasitic capacitance value of the target conductor can be calculated based on the sampled values sampled by all working threads.
  • the preset area of the Gaussian surface includes all areas of the Gaussian surface or part of the Gaussian surface; dividing the preset area of the Gaussian surface corresponding to the target conductor into multiple area elements with equal areas includes:
  • dividing the preset area of the Gaussian surface corresponding to the target conductor into multiple area elements with equal areas includes:
  • Figure 4 is a schematic diagram of dividing area elements on the preset area of the Gaussian surface according to an embodiment of the present application.
  • the preset area of the Gaussian surface is all areas of the Gaussian surface, that is, the target
  • the entire Gaussian surface corresponding to the conductor is divided into multiple area elements with equal areas at equal intervals.
  • the preset area of the Gaussian surface corresponding to the target conductor is equally spaced into multiple area elements with equal areas.
  • allocating all area elements to multiple working threads includes: evenly allocating all area elements to multiple working threads, and storing the area elements corresponding to the working threads in storage vectors corresponding to the working threads.
  • sampling is performed on the area element corresponding to the working thread, and obtaining the sampling points on the area element corresponding to the working thread includes: when the number of area elements corresponding to the working thread is equal to 1, the working thread is Perform a sampling on the area element to obtain the sampling point corresponding to the working thread; when the number of area elements corresponding to the working thread is greater than 1, the working thread performs a sampling on each corresponding area element to obtain the sampling point corresponding to the working thread. Corresponding multiple sampling points.
  • the area elements 00, Area element 01, area element 02 and area element 03 can be assigned to working thread 0, area element 04, area element 05, area element 10 and area element 11 can be assigned to working thread 1, area element 12, area element 13, Area element 14 and area element 15 can be allocated to working thread 2, and so on, until all area elements on the preset area of the Gaussian surface are evenly allocated to 37 working threads, thereby ensuring that the area allocated to each working thread is The number of elements is equal, and the working time of each worker thread is roughly the same, which improves the sampling efficiency of Gaussian surfaces.
  • the area element 00 can be first changed to the area element 147 is evenly allocated to 37 working threads, that is, each working thread is allocated to 4 area elements, the area element 148 is randomly allocated to any one of the 37 working threads, and the area element 149 is randomly allocated to 37 In any one of the working threads, it is guaranteed that the number of area elements allocated to the 37 working threads is roughly the same, thereby ensuring that the working time of each working thread is also roughly the same, improving the sampling efficiency of the Gaussian surface. .
  • the area element corresponding to each working thread can also be stored in the storage vector corresponding to the working thread.
  • the storage vector v0 corresponding to the working thread 0 stores [00, 01, 02, 03]
  • the storage vector v1 corresponding to the working thread 1 stores [04, 05, 10, 11]
  • the storage vector v2 corresponding to the working thread 2 stores [12, 13, 14, 15]
  • each worker thread can read the face from the corresponding storage vector product elements, and each area element saved in the storage vector is sampled only once. Since the area elements are divided from the preset area of the Gaussian surface at equal intervals and equal areas, each area element is sampled only once.
  • the sampling points in a certain area are not too concentrated or the sampling points in a certain area are too scattered in the preset area of the Gaussian surface, and avoid the preset Gaussian surface when the number of random walking steps is limited. It is assumed that the sampling points in the area may have calculation errors caused by uneven distribution, which improves the accuracy of extracting the parasitic capacitance of the target conductor.
  • the working thread performs a sampling on the corresponding area element through the following steps:
  • the position coordinates of the area element are calculated, and a sampling of the area element is completed.
  • the working thread samples an area element saved in the corresponding storage vector, it needs to ensure the randomness of the sampling point position on the area element. Therefore, the first random number and the second random number can be selected. number, and calculate the position coordinates of the sampling point based on the position coordinates of the area element.
  • the first random number and the second random number are randomly selected from the preset numerical interval; the sampling point is calculated according to the position coordinates of the area element and the first random number and the second random number.
  • Figure 5 is a schematic diagram of sampling on an area element according to an embodiment of the present application.
  • the position coordinates of the area element on the XOY plane are (x1, y1, x2, y2).
  • the numerical interval can be [0, 1]
  • the first random number r1 and the second random number r2 can be randomly selected from the numerical interval [0, 1] then use the formula (x1+r1*(x2-x1), y1+r2*(y2-y1)), you can calculate the position to the left of the sampling point on the area element, that is, a random sampling of the preset area of the Gaussian surface is completed, and all working threads are assigned to it. After completing one sampling of the area elements, it can be determined that all area elements on the preset area of the Gaussian surface have been uniformly sampled.
  • FIG. 6 is a flow chart of a parasitic capacitance extraction method according to yet another embodiment of the present application. As shown in Figure 6, in this embodiment, step S101 controls multiple working threads corresponding to the target conductor to start random walking, including:
  • Step S301 Randomly select a first walking point on the Gaussian surface corresponding to the target conductor.
  • the Gaussian surface corresponding to the target conductor is a closed envelope surface surrounding the target conductor.
  • the Gaussian surface contains and only contains the target conductor, and the Gaussian surface does not intersect with the target conductor, nor with any part of the target conductor. Surface contact; a Gaussian surface can be obtained by extending the surface of the target conductor outwards.
  • Step S302 Start random jumping with the first walking point as the starting point, obtain the next walking point, and use the next walking point as the jumping point to perform random jumping.
  • the position of the jump point is in the preset first position interval, it is determined that the current random walk process has been completed, where the lower limit value of the first position interval represents any point on the surface of any space conductor except the target conductor.
  • the upper limit of the first position interval represents a preset position outside the surface of any space conductor except the target conductor.
  • the parasitic capacitance of the target conductor includes the coupling capacitance between the target conductor and other conductors except the target conductor, and the ground capacitance between the target conductor and the integrated circuit layout.
  • the position of the jump point falls at the lower limit of the first position interval, it means that the jump point is at any position on the surface of any space conductor except the target conductor.
  • the position of the jump point falls within the upper limit of the first position interval, it means that the jump point is at a preset position outside the surface of any space conductor other than the target conductor.
  • the position of the jump point is in the preset first position interval corresponding to the surface of any space conductor except the target conductor.
  • the corresponding coordinates are (x, y, z). Assume that there is a space conductor ⁇ , and the coordinates corresponding to its surface A are ⁇ x0, [y0, y1], [z0, z1] ⁇ as an example.
  • the first position interval corresponding to the surface A of the space conductor ⁇ is ⁇ (x0- ⁇ , x0), (y0, y1), (z0, z1) ⁇ , by judging whether (x, y, z) falls into ⁇ (x0- ⁇ , x0), (y0, y1), (z0, z1) ⁇ , you can judge whether the jump point is in The preset first position interval corresponding to the surface A of the space conductor ⁇ .
  • step 103 determines the parasitic capacitance value of the target conductor based on the sampling value corresponding to each working thread, including:
  • the parasitic capacitance value of the target conductor is calculated based on the sampling value corresponding to each random walk process.
  • the position threshold ⁇ represents the position threshold input by the user.
  • takes a reasonable small value, the influence it introduces on the accuracy of the extraction and calculation results of the parasitic capacitance of the target conductor is negligible.
  • each random walk process is a sampling of the capacitance value of the parasitic capacitance of the target conductor.
  • N the preset first threshold
  • Figure 7 is a schematic diagram of a random walk in a two-dimensional scene in related technology.
  • the jump point P1 reaches the surface very close to any space conductor except the target conductor (that is, the position coordinate of P1 is within (x1, x1+ ⁇ ))
  • the position coordinate of P1 is within (x1, x1+ ⁇ )
  • it is still impossible to To judge that P1 has completed the current random walking process it is necessary to construct a transfer cube with P1 as the center, and randomly select the next walking point P2 on the transfer cube with P1 as the center. Repeat the above process and need to go through P1, P2, P3, P4, P5 It takes a total of four jumps to complete the current random walk process.
  • the first walking point is randomly selected on the Gaussian surface corresponding to the target conductor; the first walking point is used as the starting point to start random jumping, the next walking point is obtained, and the next walking point is used as the jumping point;
  • the position of the jump point is in the preset first position interval, it is determined that the current random walk process has been completed, where the lower limit value of the first position interval represents any point on the surface of any space conductor except the target conductor.
  • the upper limit of the first position interval represents the preset position outside the surface of any spatial conductor except the target conductor; when the number of completed steps of the random walk process corresponding to the target conductor reaches the preset first threshold , calculate the parasitic capacitance value of the target conductor based on the sampling value corresponding to each random walk process.
  • the method after starting a random jump with the first walking point as the starting point, obtaining the next walking point, and using the next walking point as the jumping point, the method also includes:
  • the next walking point is used as the starting point to repeat the random jump and position judgment until the position of the jump point is in the first position interval, and it is determined that the current random walking process is completed.
  • starting a random jump and obtaining the next walking point includes: constructing a maximum transfer cube that does not contain any conductors with the first walking point as the center; and randomly selecting the next walking point on the transfer cube.
  • the jump point is P1 is the center, construct a maximum transfer cube C1 that does not contain the target conductor, and randomly select the next walking point P2 from the surface of C1, that is, a jump from P1 to P2 is completed; then it can be determined whether P2 is at the first position interval, if not, continue to construct a maximum transfer cube C2 that does not contain the target conductor with P2 as the center, randomly select the next walking point P3 from the surface of C2, and repeat the above random jump and position judgment until the jump point is in the first position interval, it is determined that the current random walk process has been completed.
  • a random walk process often requires a large number of jumps to complete, and using this embodiment
  • the provided parasitic capacitance extraction method based on random walking can determine that the jump point has fallen on the surface of any space conductor except the target conductor when the jump point is in the first position interval, and then determine the current random capacitance.
  • the walking process has been completed, which greatly reduces the number of jumps of the walking point and improves the efficiency of parasitic capacitance extraction based on the random walking algorithm for conductors.
  • Figure 8 is a schematic diagram of a space conductor according to an embodiment of the present application.
  • the space conductor often has multiple surfaces.
  • the space conductor ⁇ can be a cuboid with six surfaces.
  • the three-dimensional coordinates are expressed as (x0, y0, z0, x1, y1, z1).
  • the first position interval corresponding to the surface A of the space conductor ⁇ is ⁇ (x0- ⁇ , x0), (y0, y1), (z0, z1) ⁇ .
  • the first position interval corresponding to the surface B of the space conductor ⁇ is ⁇ (x1, x1+ ⁇ ), (y0, y1), (z0, z1) ⁇ ; the first position interval corresponding to the surface C of the space conductor ⁇
  • the first position interval is ⁇ (x0, x1), (y0- ⁇ , y0), (z0, z1) ⁇ ;
  • the first position interval corresponding to the surface D of the space conductor ⁇ is ⁇ (x0, x1), (y1 , y1+ ⁇ ), (z0, z1) ⁇ ;
  • the first position interval corresponding to the surface E of the space conductor ⁇ is ⁇ (x0, x1), (y0, y1), (z0- ⁇ , z0) ⁇ ;
  • the first position interval corresponding to the surface F of the space conductor ⁇ is ⁇ (x0, x1), (y0, y1), (z1, z1+ ⁇ ) ⁇ .
  • each surface of any other spatial conductor except the target conductor may have a corresponding first position interval.
  • the parasitic capacitance value of the target conductor is calculated according to the sampling value corresponding to each random walk process as follows: Steps to implement:
  • the parasitic capacitance value of the target conductor is calculated; when the sampled value of the target conductor has not converged, the random walk process corresponding to the target conductor is continued.
  • determining whether the sampled value of the target conductor has converged is achieved through the following steps:
  • the total sampled value of the target conductor and the sum of the squares of all sampled values are calculated.
  • the sampling variance According to the relationship between the sampling variance and the preset second threshold, it is judged whether the sampling value corresponding to the target conductor has converged; where, When it is less than the second threshold, it is determined that the sampling value of the target conductor has converged; When it is greater than or equal to the second threshold, it is determined that the sampling value of the target conductor has not converged.
  • the sampling variance corresponding to the target conductor by calculating the sampling variance corresponding to the target conductor and judging the relationship between the sampling variance and the second threshold input by the user, it can be determined whether the sampling value of the target conductor has converged.
  • threshold When ⁇ it is determined that the sampling value of the target conductor has converged.
  • it is determined that the sampling values of the target conductor have not converged. At this time, the calculation result error is large, and the random walk process needs to be continued for the target conductor.
  • both the first threshold N and the second threshold ⁇ can be set according to the actual needs of the user. For example, when the user needs high-precision parasitic capacitance extraction, the user can choose a larger first threshold N and a smaller one.
  • the second threshold ⁇ when the user needs high-efficiency extraction of parasitic capacitance, the user can select a smaller first threshold N and a larger second threshold ⁇ , which is not limited in this application.
  • the Gaussian surface is generated based on a preset integrated circuit layout, which includes a target conductor; when the position of the jump point is in the preset first position interval, it is determined that the current random walk process has Completion is achieved through the following steps:
  • the upper limit value of the second position interval represents the preset position outside the boundary of the integrated circuit layout.
  • the geometric information and position information of each target conductor in the integrated circuit layout can be obtained, and then the irregular target conductors can be cut. into a series of cuboids; finally, the geometric information of the length, width, and height of each cuboid, the position information of each cuboid, and the number of the target conductor to which each cuboid belongs is obtained.
  • a Gaussian surface can be constructed for each target conductor or multiple target conductors.
  • the jump point can also be determined whether the jump point is in a preset second location interval corresponding to the boundary of the integrated circuit layout.
  • the second location interval can also be based on the location information of the boundary of the integrated circuit layout and the user
  • the input position threshold ⁇ is obtained.
  • the jump point When it is determined that the jump point is in the second position interval, it can also be determined that the current random walk process has been completed. Further, the number of jumps in the current random walk process can also be obtained. If the number of jumps reaches the preset third threshold, It can also be determined that the current random walk process has been completed, thereby reducing the number of jumps in the random walk process and reducing the computing resources consumed by the random walk process.
  • the method also performs the following steps:
  • the next walking point is the starting point and the random jump and position judgment are repeated until the jump point is in the first position interval or the second position interval. , confirm that the current random walk process has been completed.
  • the jump point can be in the first position interval or the second position interval.
  • the method before randomly selecting the first walking point on the Gaussian surface corresponding to the target conductor, the method also performs the following steps:
  • the position information of each surface of each space conductor except the target conductor is obtained separately.
  • a preset position other than the surface of each space conductor except the target conductor is determined respectively.
  • the first position interval is determined according to the preset position outside the surface of each space conductor and the position information of each surface of each space conductor.
  • the position information of the integrated circuit layout can also be obtained, and the preset position outside the boundary of the integrated circuit layout is determined based on the position threshold ⁇ and the position information of the integrated circuit layout, and the preset position outside the boundary of the integrated circuit layout is determined based on the position threshold ⁇ and the position information of the integrated circuit layout.
  • the second position interval is determined by using the external preset position and the position information of the integrated circuit layout.
  • the position threshold ⁇ is input by the user. Based on actual needs, the user can adjust the location threshold when high-precision positioning is required. In the extraction of parasitic capacitance, you can choose a smaller position threshold ⁇ ; in the extraction of parasitic capacitance that requires high efficiency, you can choose a larger position threshold ⁇ , thereby reducing the number of jumps during the random walk and improving the accuracy of the target conductor. Parasitic capacitance extraction efficiency.
  • the position threshold ⁇ 1 required to obtain the first position interval and the position threshold ⁇ 2 required to obtain the second position interval may be the same value or different values, and are not limited in this application.
  • FIG. 9 is a structural block diagram of a parasitic capacitance extraction device according to an embodiment of the present application.
  • the device includes: a control module 901 for controlling the corresponding target conductor. Multiple working threads start random walking; the storage module 902 is used to store the sampling value corresponding to each random walk performed by the working thread; the determination module 903 is used to determine the target conductor according to the sampling value corresponding to each working thread parasitic capacitance value.
  • Figure 10 is a schematic diagram of the hardware structure of an electronic device according to an embodiment of the present application.
  • the electronic device includes a memory 504 and a processor 502.
  • the memory 504 stores a computer program
  • the processor 502 is configured to run A computer program to perform the steps in any of the above method embodiments.
  • the above-mentioned processor 502 may include a central processing unit (CPU), or an Application Specific Integrated Circuit (ASIC for short), or may be configured to implement one or more integrated circuits according to the embodiments of the present application.
  • CPU central processing unit
  • ASIC Application Specific Integrated Circuit
  • memory 504 may include mass storage for data or instructions.
  • the memory 504 may include a hard disk drive (HDD), a floppy disk drive, a solid state drive (SSD), flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial drive. Bus (UniversalSerial Bus, USB for short) drive or a combination of two or more of these.
  • Memory 504 may include removable or non-removable (or fixed) media, where appropriate.
  • Memory 504 may be internal or external to the fault image generating device, where appropriate.
  • memory 504 is Non-Volatile memory.
  • the memory 504 includes read-only memory (ROM) and random access memory (Random Access Memory, RAM).
  • ROM read-only memory
  • RAM random access memory
  • the ROM can be a mask-programmed ROM, a programmable ROM (Programmable Read-Only Memory, referred to as PROM), an erasable PROM (ErasableProgrammable Read-Only Memory, referred to as EPROM), or an electrically erasable ROM.
  • PROM Electrically Erasable Programmable Read-Only Memory
  • EAROM Electrically rewritable ROM
  • FLASH flash memory
  • the RAM can be static random access memory (Static Random-Access Memory, referred to as SRAM) or dynamic random access memory (Dynamic Random Access Memory, referred to as DRAM), where DRAM can be in fast page mode Dynamic random access memory (Fast Page Mode Dynamic Random Access Memory, referred to as FPMDRAM), extended data output dynamic random access memory (ExtendedDate Out Dynamic Random Access Memory, referred to as EDODRAM), synchronous dynamic random access memory (Synchronous Dynamic Random- Access Memory (SDRAM for short), etc.
  • SRAM Static Random-Access Memory
  • DRAM Dynamic Random Access Memory
  • FPMDRAM fast page mode Dynamic random access memory
  • EDODRAM Extended Data output dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • Memory 504 may be used to store or cache various data files required for processing and/or communication, as well as possibly computer program instructions executed by processor 502.
  • the processor 502 reads and executes the computer program instructions stored in the memory 504 to implement any of the random walk-based parasitic capacitance extraction methods in the above embodiments.
  • the above-mentioned electronic device may also include a transmission device 506 and an input-output device 508, wherein the transmission device 506 is connected to the above-mentioned processor 502, and the input-output device 508 is connected to the above-mentioned processor 502.
  • a computer program product or computer program includes computer instructions stored in a computer-readable storage medium.
  • the processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the steps in the above method embodiments.
  • a storage medium is provided, on which a computer program is stored.
  • the steps in the above method embodiments are implemented.
  • the steps please refer to the limitations on the parasitic capacitance extraction method in the above method embodiments, which will not be described again here.
  • Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory may include random access memory (RAM) or external cache memory.
  • RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain Synchlink DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDRSDRAM double data rate SDRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous chain Synchlink DRAM
  • Rambus direct RAM
  • DRAM direct memory bus dynamic RAM
  • RDRAM memory bus dynamic RAM

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种寄生电容提取方法、电子装置和存储介质,所述方法包括:控制与目标导体对应的多个工作线程开始随机行走;存储所述工作线程进行的每次随机行走所对应的采样值;根据每个所述工作线程所对应的采样值,确定所述目标导体的寄生电容值。通过采用多线程并行计算处理的方式,提高了提取导体寄生电容的效率。

Description

寄生电容提取方法、电子装置和存储介质
本申请要求于2022年04月08日提交中国专利局、申请号为202210367550.1、发明名称为“基于多线程随机行走的寄生电容提取方法及装置”的中国专利申请的优先权、于2022年04月12日提交中国专利局、申请号为202210380697.4、发明名称为“基于随机行走的寄生电容提取方法、装置和电子装置”的中国专利申请的优先权、以及于2022年04月18日提交中国专利局、申请号为202210402833.5、发明名称为“基于高斯面均匀采样的寄生电容提取方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在申请中。
技术领域
本申请涉及集成电路技术领域,特别是涉及一种寄生电容提取方法、电子装置和存储介质。
背景技术
在集成电路的版图验证中,一个重要的环节是对于导体的寄生电容的提取。随着工业界对计算精度的要求越来越高,寄生电容的提取往往要依赖于三维场求解器进行精确求解,在三维场求解器中,随机行走算法是一种比较流行的方法。
随机行走不同于常规的有限差分、有限元等方法,它无需求解线性方程组,其主要步骤是从包围导体的高斯面上随机选取采样点,以此点为中心构造一个最大转移立方体,下一次取点则随机落在此立方体的表面。重复此过程,直到随机点的位置到达某一个导体的表面或者版图的边界,则完成一次随机行走过程。然而,在计算某一导体与其他导体的电容时,通常需要进行至少数十万次的随机行走过程,存在提取导体寄生电容时效率较低的问题。
技术解决方案
基于此,有必要针对上述技术问题,提供一种寄生电容提取方法、电子装置和存储介质,采用多线程并行计算处理的方式,提高提取导体寄生电容的效率。
一种寄生电容提取方法,所述方法包括:
控制与目标导体对应的多个工作线程开始随机行走;
存储所述工作线程进行的每次随机行走所对应的采样值;
根据每个所述工作线程所对应的采样值,确定所述目标导体的寄生电容值。
可选地,所述存储所述工作线程进行的每次随机行走所对应的采样值,包括:
在所述工作线程的随机行走步数达到预设的目标路径数时,将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,以对工作线程对应的存储空间的数据进行更新,其中,每个所述工作线程所对应的存储空间彼此独立。
可选地,所述存储空间包括第一存储空间、第二存储空间以及第三存储空间;将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,包括:
将所述工作线程进行的每次随机行走所对应的采样值存入与所述工作线程对应的第一存储空间;
将所述工作线程进行的每次随机行走所对应的采样值的平方存入与所述工作线程对应的第二存储空间;
将所述工作线程的随机行走步数存入与所述工作线程对应的第三存储空间。
可选地,根据每个所述工作线程所对应的采样值,确定所述目标导体的寄生电容值,包括:
根据从每个所述工作线程所对应的第一存储空间中获取的采样值、从每个所述工作线 程所对应的第二存储空间中获取的采样值的平方以及从每个所述工作线程所对应的第三存储空间中获取的随机行走步数,判断所述目标导体所对应的采样值是否已收敛;
在所述目标导体所对应的采样值已收敛时,根据从每个所述工作线程所对应的存储空间中获取的采样值计算所述目标导体的寄生电容值;
在所述目标导体所对应的采样值未收敛时,控制与目标导体对应的多个工作线程继续随机行走。
可选地,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:
获取所述目标导体所对应的工作线程的个数,以及所述目标导体所对应的总随机行走步数;
根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数。
可选地,根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数包括:
将所述目标导体所对应的总随机行走步数除于所述工作线程的个数,得到计算结果,并判断所述计算结果是否为整数;
在所述计算结果为整数时,将所述计算结果作为每个所述工作线程所对应的目标路径数;
在所述计算结果为非整数时,确定所述计算结果所对应的整数计算结果与余数计算结果,将所述整数计算结果分配给每个所述工作线程,将所述余数计算结果分配给多个所述工作线程,得到每个所述工作线程所对应的目标路径数。
可选地,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:
获取所述目标导体所对应的工作线程的个数;
建立存储向量,其中,所述存储向量包括多个维度,所述存储向量的维度数量与所述工作线程的个数对应,所述存储向量的每个维度对应一个所述工作线程的存储空间。
可选地,控制与目标导体对应的多个工作线程开始随机行走,包括:
将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;
将所有面积元分配给多个工作线程;
在所述工作线程所对应的面积元上得到所述工作线程所对应的面积元上的采样点;
所述工作线程从对应的面积元上的采样点开始随机行走进行采样。
可选地,所述高斯面的预设区域包括所述高斯面的所有区域或者所述高斯面的部分区域;将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:
获取与所述高斯面的预设区域对应的随机行走次数;
将所述目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,其中,所述面积元的数量与所述高斯面的预设区域所对应的随机行走次数相同。
可选地,将所述目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:
将所述目标导体所对应的高斯面的预设区域等间距的划分为多个面积相等的面积元。
可选地,在所述工作线程所对应的面积元上进行采样,得到所述工作线程所对应的面积元上的采样点包括:
在所述工作线程所对应的面积元的数量等于1时,所述工作线程在对应的面积元上进行一次采样,得到所述工作线程所对应的采样点;
在所述工作线程所对应的面积元的数量大于1时,所述工作线程在对应的每个面积元上均进行一次采样,得到所述工作线程所对应的多个采样点。
可选地,所述工作线程在对应的面积元上进行一次采样,包括:
获取所述面积元的位置坐标;
获取第一随机数和第二随机数;
根据所述面积元的位置坐标,以及所述第一随机数和所述第二随机数,计算得到所述采样点的位置坐标,完成对所述面积元的一次采样。
可选地,所述第一随机数和所述第二随机数均是从预设的数值区间中随机选取的;根据所述面积元的位置坐标,以及所述第一随机数和所述第二随机数,计算得到所述采样点的位置坐标包括:
通过关系式:(x1+r1*(x2-x1),y1+r2*(y2-y1)),确定所述采样点的位置坐标,其中,(x1,y1,x2,y2)表示所述面积元在XOY平面上的位置坐标,r1表示所述第一随机数,r2表示所述第二随机数。
可选地,将所有面积元分配给多个工作线程包括:
将所有面积元平均分配给多个工作线程,将工作线程所对应的面积元存储到与所述工作线程对应的存储向量中。
可选地,控制与目标导体对应的多个工作线程开始随机行走,包括:
在目标导体对应的高斯面上随机选取第一行走点;
以所述第一行走点为起始点开始随机跳转,得到下一个行走点,并将所述下一个行走点作为跳转点进行随机跳转;
在以所述第一行走点为起始点开始随机跳转,得到下一个行走点,并将所述下一个行走点作为跳转点之后,所述方法还包括:
在所述跳转点的位置处于预设的第一位置区间时,确定当前随机行走过程已完成,其中,所述第一位置区间的下限值表示在除所述目标导体外的任一空间导体的表面上的任一位置,所述第一位置区间的上限值表示在除所述目标导体外的任一空间导体的表面外的预设位置。
可选地,在以所述第一行走点为起始点开始随机跳转,得到下一个行走点,并将所述下一个行走点作为跳转点之后,所述方法还包括:
在所述跳转点的位置未处于所述第一位置区间时,以所述下一个行走点为起始点重复随机跳转和位置判断,直至所述跳转点的位置处于所述第一位置区间,确定当前随机行走过程已完成。
可选地,开始随机跳转,得到下一个行走点包括:
以所述起始点为中心构造不包含任何导体的最大转移立方体;
在所述转移立方体上随机选取下一个行走点。
可选地,所述高斯面是基于预设的集成电路版图生成的,所述集成电路版图上包括所述目标导体;在所述跳转点的位置处于预设的第一位置区间时,确定当前随机行走过程已完成包括:
在所述跳转点的位置处于所述第一位置区间或预设的第二位置区间时,确定当前随机行走过程已完成,其中,所述第二位置区间的下限值表示在所述集成电路版图的边界上的任一位置,所述第二位置区间的上限值表示在所述集成电路版图的边界外的预设位置。
可选地,所述方法还包括:
在所述跳转点的位置未处于所述第一位置区间或所述第二位置区间时,以所述下一个行走点为起始点重复随机跳转和位置判断,直至所述跳转点的位置处于所述第一位置区间或所述第二位置区间,确定当前随机行走过程已完成。
可选地,在与目标导体对应的高斯面上随机选取第一行走点之前,所述方法还包括:
获取位置阈值;
分别获取除所述目标导体外的每个空间导体的每个表面的位置信息;
根据所述位置阈值以及所述每个空间导体的每个表面的位置信息,分别确定除所述目标导体外的每个空间导体的表面外的预设位置;
根据每个空间导体的表面外的预设位置以及所述每个空间导体的每个表面的位置信息,确定所述第一位置区间。
可选地,所述根据每个所述工作线程所对应的采样值,确定所述目标导体的寄生电容值,包括:
获取所述目标导体对应的多个工作线程随机行走过程的完成步数;
在与所述完成步数达到预设的第一阈值时,根据每次随机行走过程所对应的采样值,计算所述目标导体的寄生电容值。
本申请还提供一种电子装置,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如上所述的寄生电容提取方法。
本申请还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上所述的寄生电容提取方法。
上述寄生电容提取方法、电子装置和存储介质,控制与目标导体对应的多个工作线程开始随机行走;存储所述工作线程进行的每次随机行走所对应的采样值;根据每个所述工作线程所对应的采样值,确定所述目标导体的寄生电容值。通过采用多线程并行计算处理的方式,提高了提取导体寄生电容的效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1是根据本申请一实施例的寄生电容提取方法的流程图。
图2是根据本申请一实施例的一种集成电路版图的示意图。
图3是根据本申请另一实施例的寄生电容提取方法的流程图。
图4是根据本申请另一实施例的在高斯面的预设区域上划分面积元的示意图。
图5是根据本申请另一实施例的在面积元上采样的示意图。
图6是根据本申请又一实施例的寄生电容提取方法的流程图。
图7是相关技术中二维场景下随机行走的示意图。
图8是根据本申请又一实施例的空间导体的示意图。
图9是根据本申请实施例的寄生电容提取装置的结构框图。
图10是根据本申请实施例的电子装置的结构示意图。
本申请的实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1是根据本申请一实施例的寄生电容提取方法的流程图。如图1所示,寄生电容提取方法,方法包括:
步骤S101,控制与目标导体对应的多个工作线程开始随机行走。
在本实施例中,可以采用GPU(Graphic Processing Unit,图形处理器)、CPU(Central Processing Unit,中央处理器)或者其他支持多线程并行计算的处理器对目标导体进行寄生电容的提取。在本实施例中,可以使用一个处理器同时对多个工作线程进行控制运行,也可以使用多个处理器,每个处理器同时对一个工作线程或多个工作线程进行控制运行,从而提高寄生电容提取方法的环境适应性。
步骤S102,存储工作线程进行的每次随机行走所对应的采样值。
在本实施例中,工作线程i每完成一次随机行走过程,都会对相应的采样值进行存储。
步骤S103,根据每个工作线程所对应的采样值,确定目标导体的寄生电容值。
在本实施例中,在所有的工作线程均完成了数据存储后,即可根据每个工作线程所对 应存储的数据,计算目标导体的寄生电容值。
通过上述步骤S101至步骤S103,可以采用多线程并行计算处理来提取寄生电容,提高了提取导体寄生电容的效率。
可选地,步骤S102存储工作线程进行的每次随机行走所对应的采样值,包括:
在工作线程的随机行走步数达到预设的目标路径数时,将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,以对工作线程对应的存储空间的数据进行更新,其中,每个工作线程所对应的存储空间彼此独立。
其中,目标路径数是指工作线程进行随机行走的目标行走步数。每个工作线程所对应的存储空间彼此是独立的,例如,工作线程i每完成一次随机行走过程,都会将相应的数据(采样值、采样值的平方和目前的随机行走步数等)存放在一个与工作线程i对应的局部变量中,当工作线程i的随机行走步数达到预设的目标路径数时,则将该局部变量中保存的数据存入更新到工作线程i对应的存储空间i,且由于工作线程i只向存储空间i写入数据,每个工作线程对应不同的存储空间,不会发生冲突,因此,无需加入线程锁,进而不会引入等待时间,提高了利用多线程随机行走方法对导体寄生电容进行提取时的提取效率。在所有的工作线程均完成了数据更新后,即可根据每个工作线程所对应的存储空间中存储的数据,计算目标导体的寄生电容值,在与目标导体对应的工作线程的个数较多时,可以避免由于加入线程锁所导致的等待时间,大大提高了多线程随机行走的运行效率。
可选地,存储空间包括第一存储空间、第二存储空间以及第三存储空间;将工作线程进行的每次随机行走所对应的采样值存入预设的与工作线程对应的存储空间,包括:
将工作线程进行的每次随机行走所对应的采样值存入与工作线程对应的第一存储空间;
将工作线程进行的每次随机行走所对应的采样值的平方存入与工作线程对应的第二存储空间;
将工作线程的随机行走步数存入与工作线程对应的第三存储空间。
在本实施例中,目标导体对应的寄生电容包括目标导体与相邻导体之间的耦合电容和目标导体与接地端之间的接地电容,此时,第一存储空间也可以包括多个第一子存储空间,第二存储空间也可以包括多个第二子存储空间,例如,其中一个第一子存储空间可以存储对应工作线程对耦合电容的采样值,其中一个第二子存储空间可以存储对应工作线程对耦合电容的采样值的平方,另一个第一子存储空间可以存储对应工作线程对接地电容的采样值,另一个第二子存储空间可以存储对应工作线程对接地电容的采样值的平方,本申请对第一子存储空间的数量,以及对第二子存储空间的数量不作限制。
在本实施例中,步骤S103根据每个工作线程所对应的采样值,确定目标导体的寄生电容值,包括:
根据从每个工作线程所对应的第一存储空间中获取的采样值、从每个工作线程所对应的第二存储空间中获取的采样值的平方以及从每个工作线程所对应的第三存储空间中获取的随机行走步数,判断目标导体所对应的采样值是否已收敛;
在目标导体所对应的采样值已收敛时,根据从每个工作线程所对应的存储空间中获取的采样值计算目标导体的寄生电容值;
在目标导体所对应的采样值未收敛时,控制与目标导体对应的多个工作线程继续随机行走。
在本实施例中,可以对与目标导体对应的所有第一存储空间中的采样值进行求和,也即,将第一存储空间中存储的耦合电容和接地电容的采样值一起进行求和,得到目标导体所对应的总采样值;对与目标导体对应的所有第二存储空间中的采样值的平方进行求和,得到目标导体所对应的所有采样值的平方和;对与目标导体对应的所有第三存储空间中的随机行走步数进行求和,得到目标导体所对应的总随机行走步数。
并通过关系式:确定目标导体所对应的采样方差;其中,err表示采样方差,C表示目标导体所对应的总采样值,C2表示目标导体所对应的所有采样值的平方和,N表示目标导体所对应的总随机行走步数,ci表示目标导体第i次随机行走过程所对应的采样值。
最后根据采样方差与预设阈值之间的大小关系,判断目标导体所对应的采样值是否已收敛;其中,在采样方差小于预设阈值时,则确定目标导体所对应的采样值已收敛;在采样方差大于或等于预设阈值时,则确定目标导体所对应的采样值未收敛。
在本实施例中,预设阈值是用户输入的参数或者预先配置的参数,可以根据对精度的不同要求对预设阈值进行更改,本申请在此不作限制;在采样方差大于或等于预设阈值时,则确定目标导体所对应的采样值未收敛,该采样值未达到目标精度,此时还需要控制与目标导体对应的多个工作线程继续随机行走,直至采样值已收敛。
在采样方差小于该预设阈值时,则确定目标导体所对应的采样值已收敛,该采样值已达到目标精度,此时可以基于目标导体所对应的所有采样值ci(i=1,…,N),计算得到目标导体所对应的寄生电容值,从而保证目标导体的寄生电容的提取精度。
可选地,在步骤S101控制与目标导体对应的多个工作线程开始随机行走之前,还包括:
获取目标导体所对应的工作线程的个数,以及目标导体所对应的总随机行走步数;
根据目标导体所对应的工作线程的个数以及总随机行走步数,确定每个工作线程所对应的目标路径数。
在本实施例中,可以按照现有方法中的流程,读入集成电路版图中的导体及电介质图形,并确定要提取目标导体的寄生电容所需要的工作线程的个数以及总随机行走步数,并根据目标导体所对应的工作线程的个数以及总随机行走步数,确定每个工作线程所对应的目标路径数,例如,总随机行走步数N=5000,工作线程的个数为nth=25,则每个工作线程所对应的目标路径数为Nth=200。
每一次随机行走的过程都是对目标导体的寄生电容的电容值的一次采样,在完成了N次随机行走过程后,可确定对目标导体的寄生电容的电容值完成了N次的采样,进而,根据N个采样值可以计算目标导体的寄生电容值。
其中,总随机行走步数和工作线程的个数可以根据实际的精度要求进行更改,从而保证本申请提供的多线程随机行走的寄生电容提取方法的环境适用性。
可选地,根据目标导体所对应的工作线程的个数以及总随机行走步数,确定每个工作线程所对应的目标路径数包括:
将目标导体所对应的总随机行走步数除于工作线程的个数,得到计算结果,并判断计算结果是否为整数;
在计算结果为整数时,将计算结果作为每个工作线程所对应的目标路径数;
在计算结果为非整数时,确定计算结果所对应的整数计算结果与余数计算结果,将整数计算结果分配给每个工作线程,将余数计算结果分配给多个工作线程,得到每个工作线程所对应的目标路径数。
在本实施例中,在实际运行中,存在目标导体所对应的总随机行走步数除于工作线程的个数所得到的计算结果为非整数的情况,例如,总随机行走步数N=5000,工作线程的个数为N/nth=26,此时N/nth=192.307…,为非整数。
此时,可以确定该计算结果的整数计算结果和余数计算结果,整数计算结果为192,余数计算结果为8,可以将192次随机行走作为每个工作线程的初始目标路径数,并将剩余的8次随机行走逐个依次放入工作线程1、工作线程2、…、工作线程8,即工作线程1 至工作线程8的目标路径数为193,工作线程9至工作线程26的目标路径数为192,从而保证每个工作线程所对应的目标路径数大致是相等的,避免一个工作线程所对应的目标路径数过多从而引入过长的等待时间,进而提高多线程随机行走的运行效率。
可选地,在步骤101控制与目标导体对应的多个工作线程开始随机行走之前,还可以包括:
获取目标导体所对应的工作线程的个数;
建立存储向量,其中,存储向量包括多个维度,存储向量的维度数量与工作线程的个数对应,存储向量的每个维度对应一个工作线程的存储空间。
在本实施例中,可以将随机行走过程中需要存储的数据,例如对电容的采样值、采样值的平方以及随机行走步数等数据由标量扩展为多维度的存储向量,每个工作线程对应存储向量中的一个维度。
例如,目标导体所需要的存储向量包括存储采样值的Cv,存储采样值的平方的Cv2和存储随机行走步数的N,其中,Cv,Cv2和N的维度均为100,对应计算该目标导体的寄生电容所需要的工作线程的个数nth=100,其中,Cv还可以包括多个子空间,以分别用于存储耦合电容的采样值和接地电容的采样值,Cv2还可以包括多个子空间,以分别用于存储耦合电容的采样值的平方和接地电容的采样值的平方,这些子空间的维度同样均为100,从而子空间的每个维度分别与一个工作线程对应。在每个工作线程需要进行数据更新时,可以只更新该工作线程所对应的存储空间,例如,工作线程i对应Cv[i],Cv2[i]和N[i],在工作线程i需要进行数据更新时,只写入数据到对应的Cv[i],Cv2[i]和N[i]中,每个工作线程之间不会冲突,无需加入线程锁,避免在工作线程进行数据更新时由于线程锁引入的等待时间。
下面提供具体应用场景进行详细说明:
图2是一种集成电路版图的示意图,如图2所示,以计算导体1的寄生电容为例,即将导体1作为目标导体时,导体1的寄生电容包括:导体1和导体2之间的耦合电容C12,导体1和导体3之间的耦合电容C13,以及导体1到接地端GND的电容C10,设定经过N=10000次随机行走后更新,且导体1所对应的工作线程的个数nth=100,每个工作线程所对应的目标路径数为N/nth=100。
按照现有方法,需要四个全局变量存储数据,分别是C12、C13、C10和N。当工作线程i行走完100次随机行走之后,其需要对全局变量进行更新,在进行更新前,工作线程i会进行lock操作,加入线程锁,使得除工作线程i以外的其他工作线程暂停运行,等待其对全局变量进行更新。在工作线程i完成更新后,则会进行unlock操作,释放线程锁,此时除工作线程i以外的其他工作线程恢复运行。对于所有的i=1,2,…,100的工作线程,每个工作线程在对全局变量进行更新时都需要加入线程锁,使得其他工作线程暂停运行。因此,在与目标导体对应的工作线程的个数较多时,由于每个工作线程在对全局变量进行更新时都会加入线程锁,导致多线程随机行走的运行效率降低,进而降低对目标导体的寄生电容提取效率。
通过本申请实施例提供的基于多线程随机行走的寄生电容方法,需要建立四个存储向量分别是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,两个工作线程对应不同的存储空间,在对存储空间进行数据更新时不会发生冲突,因此无需加入线程锁,也不会引入等待时间,大大提高了多线程随机行走的运行效率,解决了利用多线程随机行走方法对导体寄生电容进行提取时的提取效率低的问题,实现了提高对导体进行基于多线 程随机行走的寄生电容提取效率的技术效果。
上述寄生电容提取方法,控制与目标导体对应的多个工作线程开始随机行走;存储工作线程进行的每次随机行走所对应的采样值;根据每个工作线程所对应的采样值,确定目标导体的寄生电容值。通过采用多线程并行计算处理的方式,提高了提取导体寄生电容的效率。
图3是根据本申请另一实施例的寄生电容提取方法的流程图。如图3所示,在本实施例中,步骤S101控制与目标导体对应的多个工作线程开始随机行走的步骤,可具体包括:
步骤S201,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元。
在本实施例中,可以先获取目标导体所在的集成电路版图,并从集成电路版图读入目标导体图形,构造包围目标导体的高斯面。目标导体对应的高斯面是围绕目标导体的一个闭合的包络面,高斯面内部包含且仅包含目标导体,且高斯面不与目标导体相交,也不与目标导体的任何表面接触;高斯面可以通过将目标导体的表面向外平移扩展得到。
在本实施例中,高斯面的预设区域可以包括高斯面的所有区域或者高斯面的部分区域。在高斯面的预设区域包括高斯面的所有区域时,则需要将整个高斯面划分为多个面积相等的面积元。在高斯面的预设区域仅包括高斯面的部分区域时,则可以将高斯面的部分区域划分为多个面积相等的面积元,在高斯面的其他区域进行随机采样。
在上述实施例中,可以根据用户的实际需要选择预设区域的大小,本申请在此不作限制。
步骤S202,将所有面积元分配给多个工作线程。
在本实施例中,可以使用一个处理器同时对多个工作线程进行控制运行,也可以使用多个处理器,每个处理器同时对一个工作线程或多个工作线程进行控制运行,从而提高本实施例提供的基于高斯面均匀采样进行寄生电容提取的环境适应性。
步骤S203,在工作线程所对应的面积元上得到工作线程所对应的面积元上的采样点。
在本实施例中,每个工作线程只对分配给自己的面积元进行采样,避免工作线程之间互相影响,不会出现工作线程之间的冲突。
步骤S204,工作线程从对应的面积元上的采样点开始随机行走进行采样。
在上述实施例中,在目标导体进行寄生电容提取时,可以将目标导体近似成长方体形状,因此,基于目标导体生产的高斯面也是长方体形状,若长方体之间存在交集,则可以将交集处去除,从而保证高斯面是规则结构。
当集成电路的规模较大,集成电路版图上存在大量导体以及电解质图像时,随机行走的计算量会显著增加,甚至无法在相对合理的时间内完成计算。为了提高计算效率,可以减少随机行走的总步数,然而,随机行走步数的减少意味着高斯面上的采样数减少,采样数的减少则可能导致在高斯面的某些区域采样点分布较密集,而在另一些区域采样点分布较稀疏,即高斯面上的随机采样点分布不够均匀,从而导致计算结果产生较大的误差。
在本实施例中,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,并将面积元分配给多个工作线程,在随机行走过程中,每个工作线程只对分配给自己的面积元进行采样,当所有工作线程均完成采样点获取时,即完成了对整个高斯面的预设区域中所有面积元的采样,此时可以从每个采样点开始随机行走,对目标电容的寄生电容进行提取,由于每个面积元的面积相等,且每个面积元进行一次采样得到随机行走点,因此,可以保证对高斯面的预设区域的采样是均匀的,避免了在随机行走步数被限定的情况下,高斯面的预设区域上的采样点可能存在分布不均所导致的计算误差,提高了对目标导体寄生电容的提取精度。
通过上述步骤S201至步骤S204,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;将所有面积元分配给多个工作线程;在工作线程所对应的面积元上得到工作线程所对应的面积元上的采样点;工作线程从对应的面积元上的采样点开始随机行 走进行采样。
每一次随机行走的过程都是对目标导体的寄生电容的电容值的一次采样,在各工作线程完成了各自所对应次数的随机行走过程后,可确定对目标导体的寄生电容的电容值完成了采样,进而,根据所有工作线程采样得到的采样值可以计算目标导体的寄生电容值。
通过本申请,解决了高斯面上的采样点分布不均匀导致的寄生电容提取精度低的问题,实现了在高斯面上均匀采样,进而提高寄生电容的提取精度的技术效果。
可选地,高斯面的预设区域包括高斯面的所有区域或者高斯面的部分区域;将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:
获取与高斯面的预设区域对应的随机行走次数;
将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,其中,面积元的数量与高斯面的预设区域所对应的随机行走次数相同。
可选地,将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:
将目标导体所对应的高斯面的预设区域等间距的划分为多个面积相等的面积元。
图4是根据本申请实施例的在高斯面的预设区域上划分面积元的示意图,如图4所示,在本实施例中,高斯面的预设区域为高斯面的所有区域,即将目标导体所对应的整个高斯面均等间距的划分为多个面积相等的面积元,可以令与高斯面的预设区域对应的随机行走次数N=148,并根据高斯面的预设区域所对应的随机行走次数N=148,将目标导体所对应的高斯面的预设区域等间距的划分为多个面积相等的面积元,其中,在YOZ平面的正面,高斯面被划分出30个面积元,同样地,在YOZ平面的背面,高斯面也被划分出30个面积元,在XOY平面的正反面,高斯面分别被划分出20个面积元,在XOZ平面的正反面,高斯面分别被划分出24个面积元,合计一共(30+20+24)*2=148个面积元,与高斯面的预设区域所对应的随机行走次数N=148相对应。
在其中一些实施例中,将所有面积元分配给多个工作线程包括:将所有面积元平均分配给多个工作线程,将工作线程所对应的面积元存储到与工作线程对应的存储向量中。
在本实施例中,在工作线程所对应的面积元上进行采样,得到工作线程所对应的面积元上的采样点包括:在工作线程所对应的面积元的数量等于1时,工作线程在对应的面积元上进行一次采样,得到工作线程所对应的采样点;在工作线程所对应的面积元的数量大于1时,工作线程在对应的每个面积元上均进行一次采样,得到工作线程所对应的多个采样点。
在上述实施例中,可以令工作线程的数量nth=37,每个工作线程被分配的面积元的数量即为N/nth=4,如图4所示,在YOZ平面上的面积元00、面积元01、面积元02和面积元03可以被分配给工作线程0,面积元04、面积元05、面积元10和面积元11可以被分配给工作线程1,面积元12、面积元13、面积元14和面积元15可以被分配给工作线程2,以此类推,直至高斯面的预设区域上所有的面积元平均分配给37个工作线程,从而保证每个工作线程所分配到的面积元的数量是相等的,每个工作线程的工作时间也大致相同,提高对高斯面的采样效率。
在本实施例中,也会存在每个工作线程被分配的面积元的数量N/nth不为整数的情况,例如,N=150,nth=37,此时可以先将面积元00至面积元147平均分配给37个工作线程,即每个工作线程被分配到4个面积元,将面积元148随机分配到37个工作线程中的任一个工作线程中,再将面积元149随机分配到37个工作线程中的任一个工作线程中,保证37个工作线程所分配到的面积元的数量是大致相同的,进而保证每个工作线程的工作时间也是大致相同的,提高对高斯面的采样效率。
在上述实施例中,还可以将每个工作线程所对应的面积元存储到与该工作线程对应的存储向量中,例如,工作线程0所对应的存储向量v0存储有[00,01,02,03],工作线程1所对应的存储向量v1存储有[04,05,10,11],工作线程2所对应的存储向量v2存储有[12,13,14,15],在后续的采样过程中,每个工作线程可以从对应的存储向量中读取面 积元,并对存储向量中保存的每个面积元只进行一次采样,由于,面积元是等间距等面积地从高斯面的预设区域上进行划分的,对每个面积元只进行一次采样,可以保证高斯面的预设区域上不会出现某一区域的采样点过于集中,某一区域的采样点过于分散的情况,避免了在随机行走步数被限定的情况下,高斯面的预设区域上的采样点可能存在分布不均所导致的计算误差,提高了对目标导体寄生电容的提取精度。
在其中一些实施例中,工作线程在对应的面积元上进行一次采样通过如下步骤实现:
获取面积元的位置坐标。
获取第一随机数和第二随机数。
根据面积元的位置坐标,以及第一随机数和第二随机数,计算得到采样点的位置坐标,完成对面积元的一次采样。
在本实施例中,工作线程在对应的存储向量中保存的某一个面积元进行采样时,需要保证在面积元上的采样点位置的随机性,因此,可以选择第一随机数和第二随机数,根据面积元的位置坐标,计算得到采样点的位置坐标。
在本实施例中,第一随机数和第二随机数均是从预设的数值区间中随机选取的;根据面积元的位置坐标,以及第一随机数和第二随机数,计算得到采样点的位置坐标包括:通过关系式:(x1+r1*(x2-x1),y1+r2*(y2-y1)),确定采样点的位置坐标,其中,(x1,y1,x2,y2)表示面积元在XOY平面上的位置坐标,r1表示第一随机数,r2表示第二随机数。
图5是根据本申请实施例的在面积元上采样的示意图,如图5所示,在本实施例中,面积元在XOY平面上的位置坐标为(x1,y1,x2,y2),预设的数值区间可以为[0,1],可以从数值区间[0,1]中随机选取第一随机数r1和第二随机数r2,则利用公式(x1+r1*(x2-x1),y1+r2*(y2-y1)),即可计算得到采样点在该面积元上的位置左边,即完成了对高斯面的预设区域的一次随机采样,在所有工作线程都对其分配到的面积元完成了一次采样后,即可确定对高斯面的预设区域上的所有面积元完成了均匀采样。
图6是根据本申请又一实施例的寄生电容提取方法的流程图。如图6所示,在本实施例中,步骤S101控制与目标导体对应的多个工作线程开始随机行走,包括:
步骤S301,在目标导体对应的高斯面上随机选取第一行走点。
在本实施例中,目标导体对应的高斯面是围绕目标导体的一个闭合的包络面,高斯面内部包含且仅包含目标导体,且高斯面不与目标导体相交,也不与目标导体的任何表面接触;高斯面可以通过将目标导体的表面向外平移扩展得到。
步骤S302,以第一行走点为起始点开始随机跳转,得到下一个行走点,并将下一个行走点作为跳转点进行随机跳转。
在以第一行走点为起始点开始随机跳转,得到下一个行走点,并将下一个行走点作为跳转点之后,还包括:
在跳转点的位置处于预设的第一位置区间时,确定当前随机行走过程已完成,其中,第一位置区间的下限值表示在除目标导体外的任一空间导体的表面上的任一位置,第一位置区间的上限值表示在除目标导体外的任一空间导体的表面外的预设位置。
在本实施例中,目标导体的寄生电容包括目标导体与除目标导体外的其他导体之间的耦合电容,以及目标导体与集成电路版图之间的对地电容。
在本实施例中,当跳转点的位置落在第一位置区间的下限值时,即表示跳转点此时处于除目标导体外的任一空间导体的表面上的任一位置,当跳转点的位置落在第一位置区间的上限值时,表示跳转点此时处于除目标导体外的任一空间导体的表面外的预设位置。
在上述实施例中,可以以三维坐标的形式来判断跳转点的位置是否处于预设的与除目标导体外的任一空间导体的表面对应的第一位置区间,以跳转点的位置所对应的坐标为(x,y,z),假设存在一个空间导体α,其表面A所对应的坐标为{x0,[y0,y1],[z0,z1]}为例,则此时,与该空间导体α的表面A所对应的第一位置区间为{(x0-δ,x0),(y0,y1), (z0,z1)},通过判断(x,y,z)是否落入{(x0-δ,x0),(y0,y1),(z0,z1)}即可判断跳转点的位置是否处于预设的与空间导体α的表面A对应的第一位置区间。
在本实施例中,步骤103根据每个工作线程所对应的采样值,确定目标导体的寄生电容值,包括:
在与目标导体对应的随机行走过程的完成步数达到预设的第一阈值时,根据每次随机行走过程所对应的采样值,计算目标导体的寄生电容值。
在本实施例中,当确定跳转点的位置处于第一位置区间时,即认为跳转点已经落在了除目标导体外的任一空间导体的表面上,确定当前随机行走过程已完成,其中,上述的δ表示用户输入的位置阈值,当δ取一个合理的小数值时,其引入的影响对目标导体的寄生电容的提取计算结果精度可以忽略不计,δ的值越大,则随机行走过程中的跳转步数就越少,但是精度也会降低;因此,可以根据用户的实际需要,平衡当前工作的计算精度和计算速度,选择相应的位置阈值δ。
在上述实施例中,每一次随机行走的过程都是对目标导体的寄生电容的电容值的一次采样,在完成了预设次数N(即预设的第一阈值)随机行走过程后,即可确定对目标导体的寄生电容的电容值完成了N次采样,根据N个采样值可以计算目标导体的寄生电容值。
图7是相关技术中二维场景下随机行走的示意图。如图7所示,在相关技术中,当跳转点P1到达非常接近除目标导体外的任一空间导体的表面时(即P1的位置坐标处于(x1,x1+δ)内),仍然无法判断P1完成当前随机行走过程,需要以P1为中心构造转移立方体,并在以P1为中心的转移立方体上随机选取下一个行走点P2,重复上述过程,需要经历P1、P2、P3、P4、P5共四次跳转才能完成当前随机行走过程。
在本实施例中,由于跳转点P1的位置坐标已经处于(x1,x1+δ)内,即可认为P1已经落在了除目标导体外的任一空间导体的表面上,进而可以确定当前随机行走过程已完成,大大减少了随机行走中行走点的跳转次数,进而提高对导体进行基于随机行走算法的寄生电容提取效率。
通过上述步骤,在目标导体对应的高斯面上随机选取第一行走点;以第一行走点为起始点开始随机跳转,得到下一个行走点,并将下一个行走点作为跳转点;在跳转点的位置处于预设的第一位置区间时,确定当前随机行走过程已完成,其中,第一位置区间的下限值表示在除目标导体外的任一空间导体的表面上的任一位置,第一位置区间的上限值表示在除目标导体外的任一空间导体的表面外的预设位置;在与目标导体对应的随机行走过程的完成步数达到预设的第一阈值时,根据每次随机行走过程所对应的采样值,计算目标导体的寄生电容值。通过本申请,解决了相关技术中基于随机行走算法的寄生电容提取方法效率低的问题,实现了提高对导体进行基于随机行走算法的寄生电容提取效率的技术效果。
可选地,在以第一行走点为起始点开始随机跳转,得到下一个行走点,并将下一个行走点作为跳转点之后,方法还包括:
在跳转点的位置未处于第一位置区间时,以下一个行走点为起始点重复随机跳转和位置判断,直至跳转点的位置处于第一位置区间,确定当前随机行走过程已完成。
在本实施例中,开始随机跳转,得到下一个行走点包括:以第一行走点为中心构造不包含任何导体的最大转移立方体;在转移立方体上随机选取下一个行走点。
在本实施例中,也存在,在跳转点的位置并未处于预设的与除目标导体外的任一空间导体的表面对应的第一位置区间的情况,此时,则以跳转点P1为中心,构造一个不包含目标导体的最大转移立方体C1,并从C1的表面上随机选取下一个行走点P2,即完成了一次P1到P2的跳转;然后可以判断P2是否处于第一位置区间,若否,则继续以P2为中心构造一个不包含目标导体的最大转移立方体C2,从C2的表面上随机选取下一个行走点P3,并重复上述随机跳转和位置判断,直至跳转点的位置处于第一位置区间,确定当前随机行走过程已完成。
相关技术中一次随机行走过程往往需要大量的跳转次数才能够完成,而使用本实施例 提供的基于随机行走的寄生电容提取方法,则可以在跳转点处于第一位置区间时,即判断跳转点已经落在了除目标导体外的任一空间导体的表面上,进而确定当前随机行走过程已完成,大大减少了行走点的跳转次数,提高了对导体进行基于随机行走算法的寄生电容提取效率。
图8是根据本申请实施例的空间导体的示意图,如图8所示,在其中一些实施例中,空间导体往往具备多个表面,例如,空间导体α可以为具备六个表面的长方体,以三维坐标表示为(x0,y0,z0,x1,y1,z1),空间导体α的六个表面可以分别表示为A={x0,[y0,y1],[z0,z1]},B={x1,[y0,y1],[z0,z1]},C={[x0,x1],y0,[z0,z1]},D={[x0,x1],y1,[z0,z1]},E={[x0,x1],[y0,y1],z0},F={[x0,x1],[y0,y1],z1}。
在本实施例中,与空间导体α的表面A所对应的第一位置区间为{(x0-δ,x0),(y0,y1),(z0,z1)},通过判断跳转点(x,y,z)是否落入{(x0-δ,x0),(y0,y1),(z0,z1)}即可判断跳转点的位置是否处于预设的与空间导体α的表面A对应的第一位置区间。
其中,与空间导体α的表面B所对应的第一位置区间为{(x1,x1+δ),(y0,y1),(z0,z1)};与空间导体α的表面C所对应的第一位置区间为{(x0,x1),(y0-δ,y0),(z0,z1)};与空间导体α的表面D所对应的第一位置区间为{(x0,x1),(y1,y1+δ),(z0,z1)};与空间导体α的表面E所对应的第一位置区间为{(x0,x1),(y0,y1),(z0-δ,z0)};与空间导体α的表面F所对应的第一位置区间为{(x0,x1),(y0,y1),(z1,z1+δ)}。
在上述实施例中,除目标导体外的其他任一空间导体的每一表面均可对应存在一个第一位置区间。
在其中一些实施例中,在与目标导体对应的随机行走过程的完成步数达到预设的第一阈值时,根据每次随机行走过程所对应的采样值,计算目标导体的寄生电容值通过如下步骤实现:
根据每次随机行走过程所对应的目标导体的采样值,判断目标导体的采样值是否已收敛。
在目标导体的采样值已收敛时,计算目标导体的寄生电容值;在目标导体的采样值未收敛时,继续进行与目标导体对应的随机行走过程。
在本实施例中,根据每次随机行走过程所对应的目标导体的采样值,判断目标导体的采样值是否已收敛通过如下步骤实现:
根据每次随机行走过程所对应的目标导体的采样值,计算目标导体的总采样值以及所有采样值的平方和。
通过关系式:确定目标导体所对应的采样方差;其中,err表示采样方差,C表示目标导体的总采样值,N表示与目标导体对应的随机行走过程的完成步数,C2表示目标导体的所有采样值的平方和,ci表示目标导体第i次随机行走过程所对应的采样值。
根据采样方差与预设的第二阈值之间的大小关系,判断目标导体所对应的采样值是否已收敛;其中,在小于第二阈值时,则确定目标导体的采样值已收敛;在大于或等于第二阈值时,则确定目标导体的采样值未收敛。
在本实施例中,通过计算目标导体所对应的采样方差,并判断采样方差与用户输入的第二阈值之间的大小关系,即可确定目标导体的采样值是否已收敛,当err小于第二阈值 ε时,则确定目标导体的采样值已收敛,此时可以根据获取的N个采样值ci(i=1,…,N)计算目标导体的寄生电容值;当err大于或等于第二阈值ε时,则确定目标导体的采样值未收敛,此时的计算结果误差较大,则还需要针对目标导体继续进行随机行走过程。
在上述实施例中,第一阈值N和第二阈值ε均可以根据用户的实际需要进行设置,例如,用户需要高精度的寄生电容提取时,可以选择较大的第一阈值N和较小的第二阈值ε;用户需要高效率的寄生电容提取时,可以选择较小的第一阈值N和较大的第二阈值ε,本申请在此不作限制。
在其中一些实施例中,高斯面是基于预设的集成电路版图生成的,集成电路版图上包括目标导体;在跳转点的位置处于预设的第一位置区间时,确定当前随机行走过程已完成通过如下步骤实现:
跳转点的位置处于第一位置区间或预设的第二位置区间时,确定当前随机行走过程已完成,其中,第二位置区间的下限值表示在集成电路版图的边界上的任一位置,第二位置区间的上限值表示在集成电路版图的边界外的预设位置。
在本实施例中,集成电路版图中可能存在多个目标导体,通过读取集成电路版图信息,可以获取集成电路版图中每个目标导体的几何信息和位置信息,然后将不规则的目标导体切割成一系列长方体;最终,获得每个长方体自身长、宽、高的几何信息,每个长方体的位置信息,以及每个长方体所属的目标导体的编号。
基于上述信息,即可针对每个目标导体或者多个目标导体构造高斯面。
在本实施例中,还可以判断跳转点是否处于预设的与集成电路版图的边界对应的第二位置区间,该第二位置区间也可以是基于集成电路版图的边界的位置信息,以及用户输入的位置阈值δ得到。
当确定跳转点处于第二位置区间时,也可以确定当前随机行走过程已完成,进一步的,还可以获取当前随机行走过程中的跳转次数,若跳转次数达到预设的第三阈值,也可以确定当前随机行走过程已完成,进而减少随机行走过程中的跳转次数,减少随机行走过程所消耗的计算资源。
在本实施例中,该方法还实施如下步骤:
在跳转点的位置未处于第一位置区间或第二位置区间时,以下一个行走点为起始点重复随机跳转和位置判断,直至跳转点的位置处于第一位置区间或第二位置区间,确定当前随机行走过程已完成。
相关技术中一次随机行走过程往往需要大量的跳转次数才能够完成,而使用本实施例提供的基于随机行走的寄生电容提取方法,则可以在跳转点处于第一位置区间或第二位置区间时,即判断跳转点已经落在了除目标导体外的任一空间导体的表面或集成电路版图的边界上,进而确定当前随机行走过程已完成,大大减少了行走点的跳转次数,提高了对导体进行基于随机行走算法的寄生电容提取效率。
在其中一些实施例中,在与目标导体对应的高斯面上随机选取第一行走点之前,该方法还实施如下步骤:
获取用户输入的位置阈值。
分别获取除目标导体外的每个空间导体的每个表面的位置信息。
根据位置阈值以及每个空间导体的每个表面的位置信息,分别确定除目标导体外的每个空间导体的表面外的预设位置。
根据每个空间导体的表面外的预设位置以及每个空间导体的每个表面的位置信息,确定第一位置区间。
在本实施例中,还可以获取集成电路版图的位置信息,并根据位置阈值δ以及集成电路版图的位置信息,确定在集成电路版图的边界外的预设位置,并根据在集成电路版图的边界外的预设位置以及集成电路版图的位置信息,确定第二位置区间。
在上述实施例中,位置阈值δ是用户输入的,用户基于实际需要,在需要高精度的寄 生电容提取中,可以选择较小的位置阈值δ;在需要高效率的寄生电容提取中,则可以选择较大的位置阈值δ,进而减少随机行走过程中的跳转次数,提高对目标导体的寄生电容提取效率。
其中,获取第一位置区间所需要的位置阈值δ1,以及获取第二位置区间所需要的位置阈值δ2可以为相同值,也可以为不同值,本申请在此不作限制。
本实施例提供了一种寄生电容提取装置,图9是根据本申请实施例的寄生电容提取装置的结构框图,如图9所示,该装置包括:控制模块901,用于控制与目标导体对应的多个工作线程开始随机行走;存储模块902,用于存储工作线程进行的每次随机行走所对应的采样值;确定模块903,用于根据每个工作线程所对应的采样值,确定目标导体的寄生电容值。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
图10是根据本申请实施例的电子装置的硬件结构示意图,如图10所示,该电子装置包括存储器504和处理器502,该存储器504中存储有计算机程序,该处理器502被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
具体地,上述处理器502可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器504可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器504可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerial 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(ErasableProgrammable Read-Only Memory,简称为EPROM)、电可擦除PROM(Electrically ErasableProgrammable Read-Only Memory,简称为EEPROM)、电可改写ROM(ElectricallyAlterable Read-Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-AccessMemory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode DynamicRandom Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDate Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器504可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器502所执行的可能的计算机程序指令。
处理器502通过读取并执行存储器504中存储的计算机程序指令,以实现上述实施例中的任意一种基于随机行走的寄生电容提取方法。
可选地,上述电子装置还可以包括传输设备506以及输入输出设备508,其中,该传输设备506和上述处理器502连接,该输入输出设备508和上述处理器502连接。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
在一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。关于步骤的具体限定可以参见上述各方法实施例中对于寄生电容提取方法的限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (22)

  1. 一种寄生电容提取方法,其中,所述方法包括:
    控制与目标导体对应的多个工作线程开始随机行走;
    存储所述工作线程进行的每次随机行走所对应的采样值;
    根据每个所述工作线程所对应的采样值,确定所述目标导体的寄生电容值。
  2. 根据权利要求1所述的寄生电容提取方法,其中,所述存储所述工作线程进行的每次随机行走所对应的采样值,包括:
    在所述工作线程的随机行走步数达到预设的目标路径数时,将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,以对工作线程对应的存储空间的数据进行更新,其中,每个所述工作线程所对应的存储空间彼此独立。
  3. 根据权利要求2所述的寄生电容提取方法,其中,所述存储空间包括第一存储空间、第二存储空间以及第三存储空间;将所述工作线程进行的每次随机行走所对应的采样值存入预设的与所述工作线程对应的存储空间,包括:
    将所述工作线程进行的每次随机行走所对应的采样值存入与所述工作线程对应的第一存储空间;
    将所述工作线程进行的每次随机行走所对应的采样值的平方存入与所述工作线程对应的第二存储空间;
    将所述工作线程的随机行走步数存入与所述工作线程对应的第三存储空间。
  4. 根据权利要求3所述的寄生电容提取方法,其中,根据每个所述工作线程所对应的采样值,确定所述目标导体的寄生电容值,包括:
    根据从每个所述工作线程所对应的第一存储空间中获取的采样值、从每个所述工作线程所对应的第二存储空间中获取的采样值的平方以及从每个所述工作线程所对应的第三存储空间中获取的随机行走步数,判断所述目标导体所对应的采样值是否已收敛;
    在所述目标导体所对应的采样值已收敛时,根据从每个所述工作线程所对应的存储空间中获取的采样值计算所述目标导体的寄生电容值;
    在所述目标导体所对应的采样值未收敛时,控制与目标导体对应的多个工作线程继续随机行走。
  5. 根据权利要求2所述的寄生电容提取方法,其中,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:
    获取所述目标导体所对应的工作线程的个数,以及所述目标导体所对应的总随机行走步数;根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数。
  6. 根据权利要求5所述的基于多线程随机行走的寄生电容提取方法,其中,根据所述目标导体所对应的工作线程的个数以及总随机行走步数,确定每个所述工作线程所对应的目标路径数包括:
    将所述目标导体所对应的总随机行走步数除于所述工作线程的个数,得到计算结果,并判断所述计算结果是否为整数;
    在所述计算结果为整数时,将所述计算结果作为每个所述工作线程所对应的目标路径数;在所述计算结果为非整数时,确定所述计算结果所对应的整数计算结果与余数计算结果,将所述整数计算结果分配给每个所述工作线程,将所述余数计算结果分配给多个所述工作线程,得到每个所述工作线程所对应的目标路径数。
  7. 根据权利要求2所述的寄生电容提取方法,其中,在控制与目标导体对应的多个工作线程开始随机行走之前,所述方法还包括:
    获取所述目标导体所对应的工作线程的个数;
    建立存储向量,其中,所述存储向量包括多个维度,所述存储向量的维度数量与所述工作线程的个数对应,所述存储向量的每个维度对应一个所述工作线程的存储空间。
  8. 根据权利要求1所述的寄生电容提取方法,其中,控制与目标导体对应的多个工作线程开始随机行走,包括:
    将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元;
    将所有面积元分配给多个工作线程;
    在所述工作线程所对应的面积元上得到所述工作线程所对应的面积元上的采样点;
    所述工作线程从对应的面积元上的采样点开始随机行走进行采样。
  9. 根据权利要求8所述的寄生电容提取方法,其中,所述高斯面的预设区域包括所述高斯面的所有区域或者所述高斯面的部分区域;将目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:
    获取与所述高斯面的预设区域对应的随机行走次数;
    将所述目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元,其中,所述面积元的数量与所述高斯面的预设区域所对应的随机行走次数相同。
  10. 根据权利要求8所述的寄生电容提取方法,其中,将所述目标导体所对应的高斯面的预设区域划分为多个面积相等的面积元包括:
    将所述目标导体所对应的高斯面的预设区域等间距的划分为多个面积相等的面积元。
  11. 根据权利要求8所述的寄生电容提取方法,其中,在所述工作线程所对应的面积元上进行采样,得到所述工作线程所对应的面积元上的采样点包括:
    在所述工作线程所对应的面积元的数量等于1时,所述工作线程在对应的面积元上进行一次采样,得到所述工作线程所对应的采样点;
    在所述工作线程所对应的面积元的数量大于1时,所述工作线程在对应的每个面积元上均进行一次采样,得到所述工作线程所对应的多个采样点。
  12. 根据权利要求11所述的寄生电容提取方法,其中,所述工作线程在对应的面积元上进行一次采样,包括:
    获取所述面积元的位置坐标;
    获取第一随机数和第二随机数;
    根据所述面积元的位置坐标,以及所述第一随机数和所述第二随机数,计算得到所述采样点的位置坐标,完成对所述面积元的一次采样。
  13. 根据权利要求12所述的寄生电容提取方法,其中,所述第一随机数和所述第二随机数均是从预设的数值区间中随机选取的;根据所述面积元的位置坐标,以及所述第一随机数和所述第二随机数,计算得到所述采样点的位置坐标包括:
    通过关系式:(x1+r1*(x2-x1),y1+r2*(y2-y1)),确定所述采样点的位置坐标,其中,(x1,y1,x2,y2)表示所述面积元在XOY平面上的位置坐标,r1表示所述第一随机数,r2表示所述第二随机数。
  14. 根据权利要求8至13中任一项所述的寄生电容提取方法,其中,将所有面积元分配给多个工作线程包括:
    将所有面积元平均分配给多个工作线程,将工作线程所对应的面积元存储到与所述工作线程对应的存储向量中。
  15. 根据权利要求1所述的寄生电容提取方法,其中,控制与目标导体对应的多个工作线程开始随机行走,包括:
    在目标导体对应的高斯面上随机选取第一行走点;
    以所述第一行走点为起始点开始随机跳转,得到下一个行走点,并将所述下一个行走点作为跳转点进行随机跳转;
    在以所述第一行走点为起始点开始随机跳转,得到下一个行走点,并将所述下一个行走点作为跳转点之后,所述方法还包括:
    在所述跳转点的位置处于预设的第一位置区间时,确定当前随机行走过程已完成,其中,所述第一位置区间的下限值表示在除所述目标导体外的任一空间导体的表面上的任一位置,所述第一位置区间的上限值表示在除所述目标导体外的任一空间导体的表面外的预设位置。
  16. 根据权利要求15所述的寄生电容提取方法,其中,在以所述第一行走点为起始点开始随机跳转,得到下一个行走点,并将所述下一个行走点作为跳转点之后,所述方法还包括:在所述跳转点的位置未处于所述第一位置区间时,以所述下一个行走点为起始点重复随机跳转和位置判断,直至所述跳转点的位置处于所述第一位置区间,确定当前随机行走过程已完成。
  17. 根据权利要求15所述的寄生电容提取方法其中,所述高斯面是基于预设的集成电路版图生成的,所述集成电路版图上包括所述目标导体;在所述跳转点的位置处于预设的第一位置区间时,确定当前随机行走过程已完成包括:
    在所述跳转点的位置处于所述第一位置区间或预设的第二位置区间时,确定当前随机行走过程已完成,其中,所述第二位置区间的下限值表示在所述集成电路版图的边界上的任一位置,所述第二位置区间的上限值表示在所述集成电路版图的边界外的预设位置。
  18. 根据权利要求17所述的寄生电容提取方法,其中,所述方法还包括:
    在所述跳转点的位置未处于所述第一位置区间或所述第二位置区间时,以所述下一个行走点为起始点重复随机跳转和位置判断,直至所述跳转点的位置处于所述第一位置区间或所述第二位置区间,确定当前随机行走过程已完成。
  19. 根据权利要求15所述的寄生电容提取方法,其中,在与目标导体对应的高斯面上随机选取第一行走点之前,所述方法还包括:
    获取位置阈值;
    分别获取除所述目标导体外的每个空间导体的每个表面的位置信息;
    根据所述位置阈值以及所述每个空间导体的每个表面的位置信息,分别确定除所述目标导体外的每个空间导体的表面外的预设位置;
    根据每个空间导体的表面外的预设位置以及所述每个空间导体的每个表面的位置信息,确定所述第一位置区间。
  20. 根据权利要求1、15至19中任一项所述的寄生电容提取方法,其中,所述根据每个所 述工作线程所对应的采样值,确定所述目标导体的寄生电容值,包括:
    获取所述目标导体对应的多个工作线程随机行走过程的完成步数;
    在与所述完成步数达到预设的第一阈值时,根据每次随机行走过程所对应的采样值,计算所述目标导体的寄生电容值。
  21. 一种电子装置,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1所述的寄生电容提取方法。
  22. 一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1所述的寄生电容提取方法。
PCT/CN2023/087149 2022-04-08 2023-04-07 寄生电容提取方法、电子装置和存储介质 WO2023193812A1 (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN202210367550.1A CN114706682A (zh) 2022-04-08 2022-04-08 基于多线程随机行走的寄生电容提取方法及装置
CN202210367550.1 2022-04-08
CN202210380697.4 2022-04-12
CN202210380697.4A CN114707463A (zh) 2022-04-12 2022-04-12 基于随机行走的寄生电容提取方法、装置和电子装置
CN202210402833.5A CN114880985A (zh) 2022-04-18 2022-04-18 基于高斯面均匀采样的寄生电容提取方法及装置
CN202210402833.5 2022-04-18

Publications (1)

Publication Number Publication Date
WO2023193812A1 true WO2023193812A1 (zh) 2023-10-12

Family

ID=88244103

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/087149 WO2023193812A1 (zh) 2022-04-08 2023-04-07 寄生电容提取方法、电子装置和存储介质

Country Status (1)

Country Link
WO (1) WO2023193812A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117217160A (zh) * 2023-11-07 2023-12-12 杭州行芯科技有限公司 交叠结构的电容库创建方法、电容获取方法、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198177A (zh) * 2013-03-11 2013-07-10 清华大学 基于gpu的集成电路电容参数提取系统及方法
US20160342729A1 (en) * 2015-05-22 2016-11-24 Helic, Inc. Method of extracting capacitances of arbitrarily oriented 3d interconnects
CN107844674A (zh) * 2017-12-18 2018-03-27 清华大学 处理悬浮导体的随机行走电容参数提取方法
CN114036892A (zh) * 2022-01-08 2022-02-11 青岛展诚科技有限公司 随机行走在电容抽取中单细粒度的并行处理方法和系统
CN114707463A (zh) * 2022-04-12 2022-07-05 杭州行芯科技有限公司 基于随机行走的寄生电容提取方法、装置和电子装置
CN114706682A (zh) * 2022-04-08 2022-07-05 杭州行芯科技有限公司 基于多线程随机行走的寄生电容提取方法及装置
CN114880985A (zh) * 2022-04-18 2022-08-09 杭州行芯科技有限公司 基于高斯面均匀采样的寄生电容提取方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198177A (zh) * 2013-03-11 2013-07-10 清华大学 基于gpu的集成电路电容参数提取系统及方法
US20160342729A1 (en) * 2015-05-22 2016-11-24 Helic, Inc. Method of extracting capacitances of arbitrarily oriented 3d interconnects
CN107844674A (zh) * 2017-12-18 2018-03-27 清华大学 处理悬浮导体的随机行走电容参数提取方法
CN114036892A (zh) * 2022-01-08 2022-02-11 青岛展诚科技有限公司 随机行走在电容抽取中单细粒度的并行处理方法和系统
CN114706682A (zh) * 2022-04-08 2022-07-05 杭州行芯科技有限公司 基于多线程随机行走的寄生电容提取方法及装置
CN114707463A (zh) * 2022-04-12 2022-07-05 杭州行芯科技有限公司 基于随机行走的寄生电容提取方法、装置和电子装置
CN114880985A (zh) * 2022-04-18 2022-08-09 杭州行芯科技有限公司 基于高斯面均匀采样的寄生电容提取方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117217160A (zh) * 2023-11-07 2023-12-12 杭州行芯科技有限公司 交叠结构的电容库创建方法、电容获取方法、设备及介质
CN117217160B (zh) * 2023-11-07 2024-04-09 杭州行芯科技有限公司 交叠结构的电容库创建方法、电容获取方法、设备及介质

Similar Documents

Publication Publication Date Title
WO2023193812A1 (zh) 寄生电容提取方法、电子装置和存储介质
EP3696679A1 (en) Memory controller and method controlling suspend mode
KR20160140394A (ko) 신경망을 실행하는 방법 및 장치
WO2023226698A1 (zh) 用于寄生电容提取的随机行走方法、装置和电子装置
CN114880985A (zh) 基于高斯面均匀采样的寄生电容提取方法及装置
US11625843B2 (en) Systems and methods for automatic alignment of drawings
CN116663483B (zh) 用于芯片排版的方法、设备和介质
JP2021530825A (ja) 離散最適化によるデジタル集積回路のレイアウト方法および端末装置
CN111597768B (zh) 用于构建版图图案集的方法、设备和计算机可读存储介质
CN114707463A (zh) 基于随机行走的寄生电容提取方法、装置和电子装置
CN113506364A (zh) 模型创建方法、系统、设备及存储介质
CN106776014B (zh) 异构计算中的并行加速方法及系统
US8290761B1 (en) Method and apparatus for rapidly modeling and simulating intra-die statistical variations in integrated circuits using compressed parameter models
CN113792519A (zh) 对电路进行布局规划的方法、电子设备及存储介质
CN111797584A (zh) 基于fpga和cpu异构计算的随机行走寄生电容参数提取方法
TW201514729A (zh) 一種用以建構人工智慧電腦之平行硬體搜索系統
CN114706682A (zh) 基于多线程随机行走的寄生电容提取方法及装置
CN111813339A (zh) 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质
US20190392100A1 (en) Storage medium which stores instructions for a simulation method in a semiconductor design process, semiconductor design system that performs the simulation method in the semiconductor design process, and simulation method in the semiconductor design process
US11487925B1 (en) Simulation method, apparatus, and device, and storage medium
CN115062581A (zh) 电容矩阵的存储方法、装置、系统、电子装置和存储介质
CN114428984A (zh) 模型中墙体处理方法、装置、计算机设备和存储介质
CN114492282A (zh) 贯穿信号线布局处理方法及装置、芯片和存储介质
US12000891B2 (en) Scan correlation-aware scan cluster reordering method and apparatus for low-power testing
US20230125568A1 (en) Scan correlation-aware scan cluster reordering method and apparatus for low-power testing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23784374

Country of ref document: EP

Kind code of ref document: A1