Now, the present invention will be described more specifically with reference to the following embodiments. It is to be noted that the following descriptions of preferred embodiments of this invention are presented herein for purpose of illustration and description only; it is not intended to be exhaustive or to be limited to the precise form disclosed.
This invention relates to a method of searching paths that are suffering from the electrostatic discharge in the process of an integrated circuit design. As shown in
step 1 for a netlist:
netlist data of an integrated circuit comprising resistors, inductors, capacitors, conductors, diodes and the like as passive elements, and metal-oxide semiconductor (MOS) as active elements is inputted to a computer system;
step 2 for a flattening process:
the inputted netlist data is flattened;
step 3 for algorithms:
for a flattened circuit, this invention provides two algorithms of searching paths suffering from ESD, comprising an matrix closure algorithm and a supernode algorithm shown in
at step 30 for the matrix closure algorithm, a −1/0/1 matrix is formed by the relationship of connection of nodes and a target path may be given after sequent matrices are multiplied; and
at step 31 for the supernode algorithm, supernodes are expanded to reduce the amount of nodes, thereby reducing the complexity of search for the paths suffering from ESD and reducing the quantity of a memory use, in which
in the two algorithms, all of the paths suffering from ESD may be fast found, in which the pin paths passing from Gate to Source (Drain) and from Source to Drain; and
step 4 for output paths:
the paths suffering from ESD that are analyzed at the steps are outputted from the computer system.
Next, to reduce the loss of time spent by the program to run, this invention in advance provides a detailed data structure to simplify the operation, such as sub-circuit information, node information, and child node information. Then, the detailed structure of a test circuit may be quickly recorded. Due to huge quantity of node data, a hash skill is used to store nodes, and a linked-list data structure is combined to store the front and back stages of all the elements in a database for the node, which is quite helpful to convert and calculate the circuit structure. The steps in the algorithms according to this invention are in detail described below.
(1) “Circuit Flattening Process” at step 2
In the process of current circuit design, generally, a hierarchical circuit structure is used to complete the design of VLSI circuit. In this invention, the technology of circuit flattening is applied, in which the hierarchically structured circuit is analyzed in two ways of Top-Down or Bottom-Up. In the algorithm that converts the hierarchical circuit into the flattened circuit, according to sub-circuit information, X for the symbol, in a topmost layer of circuit, a method of Depth First Search (DFS) is used to read the nodes of sub-circuit in the data structure. In order to prevent a read-in information error caused by a multiple applied single sub-circuit in the circuit, the program connect in series the sub-circuit node name to the topmost circuit name; finally, a flattened circuit fully corresponding to the original circuit may be given.
The algorithm is to flatten the netlist data circuit comprising resistors, inductors, capacitors, conductors, diodes and the like as passive elements, and metal-oxide semiconductor (MOS) as active elements.
at step 241, each node information in the sub-circuit is inputted to the data structure one after another, and to prevent repetition of node names in the circuit, this invention connect in series the node names of sub-circuit to the name of the top layer of circuit;
at step 242, determination is made whether any sub-circuit is not analyzed; if a sub-circuit is not analyzed, then the recursive algorithm for depth first search described at step 243 is executed until completion of the analysis on all sub-circuits; finally, the recursive algorithm for depth first search ends at step 244 and step 24 described in
In the recursive algorithm for depth first search, the hierarchical circuit of original circuit may be converted into the flattened circuit structure for follow-up algorithms.
(2) “Matrix Closure Algorithm” at step 30
To show a circuit structure, an array may be used to indicate the relationship of nodes in the circuit. In this invention, the matrix closure algorithm is used to investigate the relationship of nodes. In the matrix closure algorithm, an array A is defined to the relationship of all the nodes, and the structure of array is directional. After multiplication of matrices An=A*An−1 several times, all pieces of node information on interconnected paths may be found.
By the above definition, this invention search a target path using the feature of −1/0/1 array multiplication closure. At first, numbers are assigned to all the nodes in the circuit, and a −1/0/1 array is structured for the relationship of nodes. If a node passes through Gate of a transistor, the location number is −1; if it passes through two terminals of a passive element or Source and Drain of the transistor, the location number is 1 and the rest are 0. From the above definition, the matrix A is formed from a simple circuit shown in
After the whole circuit is flattened at step 2, the array closure algorithm at step 30 may be applied.
at step 301, numbers are assigned to all the pins and nodes for identification of the properties of nodes and construction and operation of the array;
at step 302, the −1/0/1 sparse matrix A is structured to indicate the relationship of nodes; if the node passes through Gate of the transistor, the location number is −1; if it passes through the two terminals of passive element or Source and Drain of the transistor, the location number is 1 and the rest are 0;
at step 303, the matrices An=A×An−1 are multiplied, in which n is a number of times for multiplication of matrices, and the matrices after operated are still −1/0/1 matrices, and the operation is briefly described below; assumed that the node numbers are i, j, and k, (1) when An−1(i,k)=−1 and An−1(k,j)=−1 and An−1(i,k)=0 and An−1(k,j)=0 then An(i,j)=0; (2) when An−1(i,k)=0 and An−1(k,j)=−1 and An−1(i,k)=−1 and An−1(k,j)=1, then An(i,j)=−1; and (3) when An−1(i,k)=0 and An−1(k,j)=1 and An−1(i,k)=1 and An−1(k,j)=1, then An(i,j)=1;
at step 304, determination is made whether the paths exist between the pins and whether the target paths exists after the closure matrix multiplication; if it does not, then the step returns to step 303 for a further closure matrix multiplication process, and if the nodes I and j are I/O pins of the topmost layer of circuit and An(i,j)=1 or An(i,j)=−1, then target paths may be given;
at step 305, the paths are recorded in the data structure of computer system except the path given 0 from, since the principle of passing through a Gate is disobeyed, as shown in
at step 306, a relative element of the matrix is set to 0; after the paths are recorded at step 305, An(i,j)=0 is set to satisfy the requirement of only head and tail nodes that may serve as pins in the paths suffering from ESD; after the array closure operation is executed, the relationship of nodes deepens;
at step 307, determination is made whether An=A×An−1 comes into existence or not; if it does, search for the paths is completed, step 308 enters, the step ends, and a result given from the path search is outputted; if it does not, next multiplication of matrices may be processed and new paths are again searched at step 304.
In the current design of integrated circuit, a node generally links to a neighboring node and thus an element of a matrix is 0. Thus, a dense matrix is applied for operation, a memory is abused so as to make the algorithm slow, and a larger memory space is required to construct a matrix. As a result, the sparse matrix is further employed in this invention to effectively reduce the complexity of algorithm. The sparse matrix memorizes a value and its address (X, Y, and Value) only, so the quantity of a memory in use may be saved. Further, the memory for the product of sparse matrices is occupied less than that for dense matrices, and the phenomenon is remarkable all the better with the increase of matrices in scale.
(3) “Supernode Algorithm” at step 31
When the netlist is flattened, around ten thousands of nodes are generally provided in the current large circuit. To reduce the complexity of algorithm, the concept of supernode is applied in this invention, the nodes equivalent in status being grouped together. To expand and limit the supernodes is a stress in this algorithm.
at step 310, “the supernode algorithm” is executed;
at step 311, “selecting a node” is setting in order the nodes in the circuit that are not processed to the seed nodes of the supernodes from which the supernodes is expanded;
at step 312, determination is made whether all the nodes are processed or not; if they are, step 313 enters and the step ends and outputs the paths; in this invention, the nodes (Gate of the transistor) in the circuit that are featured with the seed nodes are arranged and processed in the order; after the seed nodes are operated, the step of this invention stops and outputs the paths;
If there are other nodes, then step 314 enters to construct the supernodes from the original circuit, a node featured with a gate pin may be selected from the circuit to serves as a seed node, the nodes interconnected, namely a source node and a drain node of the same transistor, are grouped into a supernode, and a node in the supernode is absorbed with a node equivalent in status into the supernode in a breadth first search (BFS) algorithm, such as the nodes at two terminals of a resistor and those of a diode, in which the same status indicates that the connection does not pass through Gate of the transistor; besides, excessively expanded supernodes make the algorithm of searching for the paths in the supernodes more complicated; thus, a heuristic method is provided in this invention for a user to determine the extent of expansion by himself or herself;
at step 315, information on pins in the supernodes is extracted, indicating that the nodes featured with pins are extracted from the supernodes; after the circuit net is simplified, edges between the supernodes are featured with Gate to Source (Drain) so that the path is divided into two parts by determination, one for a pin pair in the supernode and the other for a pin pair between the supernodes that passes through an edge only;
at step 316, determination is made whether all the pins are processed, namely whether the pin pair exists; if it does, step 317 enters to determine the paths and record them in the data structure, and if it does not, the step returns to step 311 to create a new supernode; according to this invention, in the process of determination of the paths, the target is the pin in the supernode; when pairs of pins exist in the supernode, the target path may exist; thus, the step does not jump out of the loop until the pin information is processed; and
at step 317, the paths are determined, which is similar to step 303 described above; when the existing paths satisfy conditions a. the path comprises only an edge from Gate to Source (Drain) and b. only head and tail nodes may serve as I/O pin nodes in the path, the paths suffering from ESD that is defined in this invention is established and the step must return to step 316 to determine whether all the pins are processed or not; thus, after the information is processed at step 316, the step jump out of the loop.
From the above description, there are three algorithms in this invention, the flattening algorithm, the array closure algorithm, and the supernode algorithm, respectively. The algorithms are respectively described below for analysis on their complexity.
1. For a fundamental spirit, the flattening algorithm and the supernode algorithm are the depth search algorithm. The steps of flattening process starts from the topmost layer of circuit. If a sub-circuit exists, the sub-circuit is renamed and added to the topmost layer of the circuit; if the sub-circuit also exists in a sub-circuit, according to the above rule, the node is added to the node data structure of the topmost layer of circuit. The supernode algorithm may be regarded as a combination of the breadth first search algorithm and the depth first search algorithm. Determination of supernode construction is made in the one-time breadth first search algorithm, while the paths in the supernode network are searched in the one-time depth first search algorithm. In the depth first search algorithm, the analysis on a conventional complexity is O(V+E), in which V stands for an entry of network node and E stands for an entry of network connection. In Table 1 below, V and E in the algorithms are defined. Thus, this program may find target paths in a complicated circuit within a linear time in the above algorithms.
2. In the matrix closure algorithm, numbers are at first assigned to the nodes according to the relationship of nodes after flattened. If the total of nodes in the circuit is V, because the entries connecting to the nodes are far smaller than V and the hash structure is used for data storage and search, the complexity of algorithm in number assignment is about O(V). Next, the complexity of algorithm that is required for the matrix multiplication of matrix size as V is O(V3), which takes much more time. This invention further uses the sparse array construction and execute the array multiplication, which is expected to greatly reduce the quantity of a memory in use and reduce the complexity to O(V2). Thus, the algorithm complexity in the array closure algorithm is O(V2).
Again, three simple embodiments are used for test to verify the accuracy of algorithms proposed. In embodiment 1, there are 109 nodes and 17 pins; in embodiment 2, there are 11 nodes and 4 pins; in embodiment 3, there are 116 nodes and 17 pins; the inputted netlists are hierarchical circuit structure. As shown in Table 2, the nodes and pins in the three embodiments are arranged. The operation time and the quantity of memory usage that are required in the algorithms according to this invention are given in Table 2, in which the operation time is a real part given from the command “timex” in Sun workstation and the quantity of memory usage is SIZE for the command “top”.
In short, this invention provides two algorithms of searching paths suffering from ESD. The two algorithms may work in a flattened circuit and find the paths that are suffering from ESD in a circuit with millions of logic gates. According to this invention, the tool of analysis on the paths suffering from ESD comprises input netlists, circuit flattening, the supernode algorithm, and the array closure algorithm that analyzes the paths suffering from ESD and outputs them for design reference of ESD guard circuit.
To sum up, the method provided in this invention may further serve as a suite of computer-aided simulation software that protect the circuit from ESD, may determine the paths in the circuit against ESD at the beginning of circuit design, and may effectively save the time and reduce resources in circuit design.
While the invention has been described in terms of what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention needs not be limited to the disclosed embodiment. On the contrary, it is intended to cover various modifications and similar arrangements included within the spirit and scope of the appended claims which are to be accorded with the broadest interpretation so as to encompass all such modifications and similar structures.