Movatterモバイル変換


[0]ホーム

URL:


CN114691375B - Integrated circuit resistance extraction method based on parallel algorithm - Google Patents

Integrated circuit resistance extraction method based on parallel algorithm
Download PDF

Info

Publication number
CN114691375B
CN114691375BCN202210618093.9ACN202210618093ACN114691375BCN 114691375 BCN114691375 BCN 114691375BCN 202210618093 ACN202210618093 ACN 202210618093ACN 114691375 BCN114691375 BCN 114691375B
Authority
CN
China
Prior art keywords
nodes
conductor
conductors
thread
resistance
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202210618093.9A
Other languages
Chinese (zh)
Other versions
CN114691375A (en
Inventor
马胜军
孙玕
孙延辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Zhencheng Technology Co ltd
Original Assignee
Qingdao Zhencheng Technology Co ltd
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
Application filed by Qingdao Zhencheng Technology Co ltdfiledCriticalQingdao Zhencheng Technology Co ltd
Priority to CN202210618093.9ApriorityCriticalpatent/CN114691375B/en
Publication of CN114691375ApublicationCriticalpatent/CN114691375A/en
Application grantedgrantedCritical
Publication of CN114691375BpublicationCriticalpatent/CN114691375B/en
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Classifications

Landscapes

Abstract

The invention relates to a thread processing method in the field of integrated circuits, in particular to an integrated circuit resistance extraction method based on a parallel algorithm, which comprises the following steps; reading layout information, and storing all conductors in corresponding units according to the coordinates of the conductors or the via holes and the layers to which the conductors or the via holes belong; firstly, establishing a thread pool, and establishing a task adding thread pool for each conductor layer of each unit; then, starting threads according to the thread number configured by the user, and performing the following operations on each thread: step two, taking out a task from the thread pool; traversing all conductors in the task, and creating nodes at the positions contacted with other conductors or via holes; step two, the created nodes and the conductors or the through holes corresponding to the nodes are returned to the main process; and step three, all threads run to the end, all nodes are stored in the conductor, and repeated nodes are deleted.

Description

Integrated circuit resistance extraction method based on parallel algorithm
Technical Field
The invention relates to a thread processing method in the field of integrated circuits, in particular to an integrated circuit resistance extraction method based on a parallel algorithm.
Background
In the process of extracting the resistance of the integrated circuit, the connection relation of the circuit needs to be found, and then the resistance is calculated according to the resistivity. This part is time consuming as the circuit scale increases, so that large scale circuits use multiple processes or multiple threads. The existing tools are made in several ways: the first approach is to divide the circuit into several units, each using a process or thread. This method requires that conductors across the cell boundary be cut and finally connected at the boundary. This approach is difficult to handle in some cases. Such as the case of fig. 2. Theconductor 2 is cut into 4 parts and finally the connection of the resistors is cumbersome and inaccurate. The second approach is to use one thread per layer. This method does not suffer from the problem of method one, but the number of threads is limited. Such as: if a circuit has 12 metal layers (M1-M12), the method can be processed with up to 12 threads. This approach is not applicable if the circuit is very large, requiring more threads.
Disclosure of Invention
The invention provides an integrated circuit resistance extraction method based on a multithreading parallel algorithm.
In order to solve the problems, the technical scheme adopted by the invention is as follows:
an integrated circuit resistance extraction method based on a parallel algorithm is characterized in that: comprises the following steps;
reading layout information, and storing all conductors in corresponding units according to the coordinates of the conductors or the via holes and the layers to which the conductors or the via holes belong; if the conductors cross the boundary, appearing in different other cells, a pointer to a conductor is maintained in each cell.
The layout information format generally includes LEFDEF or Calibre Connectivity Interface (CCI), the CCI Interface is preferably used in the present application, and the layout information is in GDS format. The information in the layout comprises conductors on all conductor layers of the layout and via holes on all via hole layers;
firstly, establishing a thread pool, and establishing a task adding thread pool for each conductor layer of each unit; then, starting threads according to the thread number configured by the user, and performing the following operations on each thread:
step two, taking out a task from the thread pool, and taking out the task according to a storage sequence for convenience;
step two, traversing all conductors in the task, and creating nodes at the positions where the conductors are contacted with other conductors or through holes, wherein the nodes comprise information including layer numbers and coordinates;
step two, the created nodes and the conductors or the through holes corresponding to the nodes are returned to the main process;
because a conductor may operate in different threads, if the created node is directly stored in the conductor, different threads may modify the condition of a conductor at the same time, and in order to avoid the condition, after all sub-threads are finished, the node is written into the conductor, see step three;
step three, after the thread pool is empty, all threads finish running, all nodes are stored in the conductors, each conductor is a class object, a list variable is stored in the members of the class to store all the nodes of the conductor, and repeated nodes are deleted;
step four, firstly, generating a task for each unit, each conductor layer and each via hole layer, and putting the task into a thread pool; then, starting a thread to calculate the resistance according to the configured thread number;
and step five, outputting the calculated resistance between the nodes after all the threads finish running.
As a further improvement, in step two, first, each conductor in the current cell is checked, if the conductor has contact with other conductors in the current cell, a node is created, and the coordinates of the node are the midpoint position of the contact;
then, each conductor in the current cell is examined and if the conductor has contact with a via in the current cell, a node is created whose coordinates are the midpoint of the overlap of the conductor and the via.
As a further improvement, in step four, for each thread, first, one task is taken out from the thread pool; then, traversing all conductors or via holes of the layer of the unit, and calculating the resistance between every two connected nodes according to the positions of the nodes and the resistivity RHO, the unit square resistivity RPSQ or the unit via hole resistivity RPV provided by a factory;
the conductor resistance between each two connected nodes is given by the formula: r = RHO L/W/T, R = RPSQ L/W; wherein, L: distance between nodes, W: the width of the conductor between the nodes and the thickness of the T conductor;
the formula of the resistance of the via hole between every two connected nodes is as follows: r = RPV/a; wherein, A: area of via hole
As a further improvement, in step one, a storage method is performed;
firstly, the whole circuit is cut into a plurality of units, and all conductors are stored in the corresponding units according to coordinates (x, y); if the conductors cross the boundary, appearing in different other cells, a pointer to a conductor is maintained in each cell.
As a further improvement, in the first, second and fourth steps, firstly, based on the storage method of the first step, each conductor layer in each cell is run by one thread, each thread operates all conductors on one conductor layer in one cell, the thread = cell × number of conductor layers, and a node is created at the contact point of each conductor and other conductors in the current cell by traversing all conductors; then, searching a contact point with a via hole in the same unit; after all the nodes are established, each conductor calculates the resistance according to the positions and the resistivity of the nodes; generating a resistance network; the resistor network connects the pins P1, P2 and P3 through nodes and resistors;
when the same conductor creates nodes in different units or different threads, the nodes created by each thread are stored, and after all threads are finished, the nodes are respectively stored in the conductor.
The invention provides a more flexible multithreading method, which can greatly improve the running speed. Nor do they pose any accuracy problems. For the difficulty of the prior art, another solution is provided: when each two conductors are examined, they are seen whether they are also stored in other units. If another unit also holds them, it does it only inside one of them. Therefore, the situation of repeatedly creating nodes is avoided, and the repeated nodes are not required to be deleted in the main process. But additional time is spent because each two conductors are checked for being stored in other cells.
When a program is started, a main process is provided, then a plurality of threads are started according to the setting of a user, and after each thread finishes a task, a result is transmitted to the main process through communication between a sub-thread and the main process, which is a conventional method of multi-thread communication.
Drawings
FIG. 1 is a schematic diagram of the process of using the present invention.
Fig. 2 is a schematic diagram of the prior art structure of the present invention.
Fig. 3 is a schematic diagram of a modified structure of the present invention.
Detailed Description
The invention adopts a new method to quickly find out the connection relation of the circuit and calculate the resistance. The method and the device can avoid the accuracy problem caused by splitting the conductor and can perform parallel calculation more finely.
S1, executing the storing method;
firstly, the whole circuit is cut into a plurality of units, and all conductors are stored in the corresponding units according to coordinates (x, y); then, if the boundary crossed by the conductor appears in different other units, a pointer of the conductor is stored in each unit;
such as the example of fig. 3: t1, V1 would be present inside cell (0, 0), T2 would be present inside two cells (0, 0) and (0, 1), and T9 would be present inside 4 cells (1, 1), (1, 2), (2, 1), (2, 2).
S2, executing a parallel algorithm;
first, based on the storage method of S1, each conductor layer in each cell is run with one thread, each thread operates all conductors on one conductor layer in one cell, and thread = cell × number of conductor layers; for example, in the example of FIG. 3, there may be a maximum of 27 threads in the interior, (9 cells, 3-level conductors), first, traversing all conductors and all connected vias; secondly, a node is created at the contact point of each conductor with other conductors in the current cell; thirdly, a contact point with the via hole is searched in the same unit, so that a conductor or the via hole which is contacted with the via hole is prevented from being searched globally, and the searching time can be saved; and finally, after all the nodes are established, each conductor calculates the resistance according to the positions of the nodes and the resistivity. This creates a resistor network connecting the pins P1, P2, P3 via nodes and resistors.
When the same conductor creates nodes in different units or different threads, the nodes created by each thread are stored and transmitted to a main process (shown in figure 1), and after all the threads are finished, the main process stores the nodes into the conductor respectively; when a duplicate node occurs, removing the duplicate node when the master process saves the node for each conductor;
the above algorithm has two difficulties: (1) the same conductor may create nodes in different units (and also in different threads), such as: the nodes of T9 and T8 are created in cell (1, 1) and the nodes of T9 and T10 are created in cell (0, 2), all of which need to be saved into T9. The upper and lower nodes of VIA are also created in different threads. If a node is created that writes conductors into each thread, this can lead to a situation where different threads modify a memory at the same time. The solution is as follows: storing the nodes created by each thread, and after all threads are finished, respectively storing the nodes into the conductors by the main process; (2) duplicate nodes may occur. Such as: the nodes of T5 and T6 are created at both cells (1, 1) and (2, 1). The solution is as follows: finally, duplicate nodes are removed as the master process saves nodes for each conductor. Since such a situation rarely occurs in the circuit, the influence on the operation time is very small.
According to the above description, the present invention requires the following steps:
reading layout information, and storing all conductors in corresponding units by a main process according to coordinates of conductors and/or via holes and layers to which the conductors and/or via holes belong;
firstly, establishing a task adding thread pool for each conductor layer of each unit by a main process; then, starting threads according to the configured thread number, and performing the following operations on each thread:
step two, taking out a task from the thread pool;
step two, traversing all conductors in the task;
in the second step, firstly, checking each other conductor in the current unit, if the conductor is contacted with other conductors in the current unit, creating a node, wherein the coordinates of the node are the midpoint position of the contact place;
then, each conductor in the current unit is checked, if the conductor is in contact with the via hole in the current unit, a node is created, and the coordinate of the node is the middle point of the overlapped part of the conductor and the via hole;
step two, the created nodes and the conductors or the through holes corresponding to the nodes are returned to the main process;
step three, all threads run to the end, the main process stores all nodes in the conductor, and the repeated nodes are deleted;
step four, firstly, the main process generates a task for each unit, each conductor layer and each via hole layer again and puts the task into a thread pool; then, starting a thread according to the configured thread number;
in step four, for each thread, firstly, taking out a task from the thread pool; then, traversing all conductors or via holes of the layer of the unit, and calculating the resistance between every two connected nodes according to the positions of the nodes and the resistivity RHO, the unit square resistivity RPSQ or the unit via hole resistivity RPV provided by a factory;
the conductor resistance between each two connected nodes is given by the formula: r = RHO L/W/T, R = RPSQ L/W; wherein, L: distance between nodes, W: the width of the conductor between the nodes and the thickness of the T conductor;
the formula of the resistance of the via hole between every two connected nodes is as follows: r = RPV/a; wherein, A: and step five, outputting the calculated resistance between the nodes by the main process after all the threads are operated.
The present invention has been described in sufficient detail for clarity of disclosure and is not exhaustive of the prior art.
Finally, it should be noted that: the above examples are only intended to illustrate the technical solution of the present invention, but not to limit it; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; it is obvious as a person skilled in the art to combine several aspects of the invention. And such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention. The technical contents not described in detail in the present invention are all known techniques.

Claims (5)

5. The integrated circuit resistance decimation method based on a parallel algorithm as claimed in claim 4, characterized in that: in the first, second and fourth steps, firstly, based on the storage method of the first step, each conductor layer in each cell is operated by one thread, each thread operates all conductors on one conductor layer in one cell, the thread = the cell × the number of conductor layers, and a node is created at the contact point of each conductor and other conductors in the current cell by traversing all conductors; then, searching a contact point with a via hole in the same unit; after all the nodes are established, each conductor calculates the resistance according to the positions and the resistivity of the nodes; generating a resistance network; the resistor network connects the pins P1, P2 and P3 through nodes and resistors;
CN202210618093.9A2022-06-022022-06-02Integrated circuit resistance extraction method based on parallel algorithmActiveCN114691375B (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
CN202210618093.9ACN114691375B (en)2022-06-022022-06-02Integrated circuit resistance extraction method based on parallel algorithm

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
CN202210618093.9ACN114691375B (en)2022-06-022022-06-02Integrated circuit resistance extraction method based on parallel algorithm

Publications (2)

Publication NumberPublication Date
CN114691375A CN114691375A (en)2022-07-01
CN114691375Btrue CN114691375B (en)2022-08-26

Family

ID=82131138

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN202210618093.9AActiveCN114691375B (en)2022-06-022022-06-02Integrated circuit resistance extraction method based on parallel algorithm

Country Status (1)

CountryLink
CN (1)CN114691375B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN118643796A (en)*2024-06-282024-09-13青岛展诚科技有限公司 Automatic detection and high-precision capacitance and resistance extraction method based on symmetric structure

Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN109753354A (en)*2018-11-262019-05-14平安科技(深圳)有限公司Processing method, device and the computer equipment of Streaming Media task based on multithreading
CN113671478A (en)*2021-07-272021-11-19西安电子科技大学 Data processing method for high-speed maneuvering target recognition based on multi-core CPU

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6802047B1 (en)*2002-08-192004-10-05Lsi Logic CorporationCalculating resistance of conductor layer for integrated circuit design
US7024644B2 (en)*2003-05-082006-04-04Cadence Design Systems, Inc.IC signal path resistance estimation method
US7808484B1 (en)*2007-01-212010-10-05Bezalel Sol BareliSqueezable computer mouse
CN100578234C (en)*2008-03-072010-01-06北京邮电大学 A system and method for testing fretting contact resistance
CN101727172B (en)*2008-10-272012-12-19联想(北京)有限公司Method and device for measuring process consumption of computer, and computer system
CN101599027B (en)*2009-06-302013-02-13中兴通讯股份有限公司Thread pool management method and system
CN102360310B (en)*2011-09-282014-03-26中国电子科技集团公司第二十八研究所Multitask process monitoring method in distributed system environment
US9678435B1 (en)*2014-09-222017-06-13Mentor Graphics, A Siemens BusinessHorizontal development bias in negative tone development of photoresist
CN106772678A (en)*2016-12-162017-05-31安徽理工大学A kind of wellhole many reference amounts method for surveying of rock deformation destructive characteristics
US11156526B1 (en)*2018-05-152021-10-26eWellbore, LLCTriaxial leak criterion for optimizing threaded connections in well tubulars
KR20220101694A (en)*2019-11-202022-07-19기가조트 테크널러지 인코포레이티드 Scalable pixel size image sensor
CN111881641A (en)*2020-06-082020-11-03北京智芯仿真科技有限公司Multi-process self-adaptive distribution multi-layer VLSI field coupling method
CN112257364B (en)*2020-10-232022-05-20北京大学 A method for static timing analysis of integrated circuits for GPU-accelerated computing
CN114036892A (en)*2022-01-082022-02-11青岛展诚科技有限公司Parallel processing method and system for single fine granularity in capacitance extraction by random walk

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN109753354A (en)*2018-11-262019-05-14平安科技(深圳)有限公司Processing method, device and the computer equipment of Streaming Media task based on multithreading
CN113671478A (en)*2021-07-272021-11-19西安电子科技大学 Data processing method for high-speed maneuvering target recognition based on multi-core CPU

Also Published As

Publication numberPublication date
CN114691375A (en)2022-07-01

Similar Documents

PublicationPublication DateTitle
CN112860811B (en) Method, device, electronic device and storage medium for determining blood relationship of data
CN114691375B (en)Integrated circuit resistance extraction method based on parallel algorithm
CN117874984B (en)CIM model-based distribution network topology graph generation method and device
CN112800716B (en)Method for detecting open circuit of wire net in wiring of integrated circuit layout
CN112257365B (en)Method for establishing timing diagram in parallel based on geometric information
CN106407233A (en)A data processing method and apparatus
CN111078671A (en)Method, device, equipment and medium for modifying data table field
Ghosh et al.Scalable self-stabilization
CN116794446A (en)Power distribution network fault positioning method, system and electronic equipment
US7073152B2 (en)System and method for determining a highest level signal name in a hierarchical VLSI design
CN112307694B (en)Method and device for comparing difference of circuit schematic diagram
JP3076301B2 (en) Method of estimating layout area of semiconductor integrated circuit and CAD apparatus therefor
CN119783297B (en)Power grid equipment topology node branch model generation method and system based on graph database
CN117892684B (en)Wire merging calculation method, device, equipment and medium of EDA software
CN111901178B (en)Risk pre-judging method, device and equipment for network flow direction
CN115525233B (en)Data record storage method and device, storage medium and electronic equipment
CN118296776A (en)Secondary control loop full-path drawing method, device, equipment and storage medium
CN119067059B (en)Differential wiring length acquisition method and device, electronic equipment and storage medium
CN118170626B (en)Global topological graph-based application fault troubleshooting method, device, equipment and storage medium
CN117634414B (en)Fly line interconnection method between different components, electronic equipment and storage medium
CN110096555B (en)Table matching processing method and device for distributed system
CN116113156B (en) Method, system, terminal and storage medium for eliminating high-speed line screen printing
CN112035484B (en)Local fault feature extraction method and system for fault record data
CN120803597A (en)File continuous visual range determining method, electronic equipment and medium
CN120216551A (en) Data retrieval method and device, electronic device and storage medium

Legal Events

DateCodeTitleDescription
PB01Publication
PB01Publication
SE01Entry into force of request for substantive examination
SE01Entry into force of request for substantive examination
GR01Patent grant
GR01Patent grant

[8]ページ先頭

©2009-2025 Movatter.jp