WO2001037146A2 - Method for simulating a circuit, containing electronic components - Google Patents

Method for simulating a circuit, containing electronic components Download PDF

Info

Publication number
WO2001037146A2
WO2001037146A2 PCT/DE2000/003983 DE0003983W WO0137146A2 WO 2001037146 A2 WO2001037146 A2 WO 2001037146A2 DE 0003983 W DE0003983 W DE 0003983W WO 0137146 A2 WO0137146 A2 WO 0137146A2
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
sub
matrices
circuit
population density
Prior art date
Application number
PCT/DE2000/003983
Other languages
German (de)
French (fr)
Other versions
WO2001037146A3 (en
Inventor
Rolf Neubert
Original Assignee
Infineon Technologies Ag
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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2001037146A2 publication Critical patent/WO2001037146A2/en
Publication of WO2001037146A3 publication Critical patent/WO2001037146A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Definitions

  • Circuit calculated The switching behavior calculated with the circuit simulator is compared with the required functional description. If the switching behavior deviates from the required functional description, changes are made in the circuit design. Then the modified circuit design is again calculated in the circuit simulator. This cycle continues until the properties of the circuit design match the required specifications. Then a layout is created. Based on the layout, masks are generated for a process sequence in which the integrated circuit is finally implemented.
  • Such matrices in which the number of non-zero entries relative to the number of total entries is small, generally less than 10 to 20 percent, are referred to as sparse matrices or matrices with a low population density.
  • Dense matrices or matrices with a high population density are matrices in which the proportion of non-zero entries in relation to the total number of entries m of the matrix is large, generally greater than 10 to 20 percent.
  • the proportion of non-zero entries in a matrix in relation to the number of all entries in the matrix is often also referred to as occupancy.
  • Thinly populated system matrices correspond to a low level of networking in the circuit, which means that individual components are only connected to a few other components. In complex circuits (without taking parasitic elements into account) the occupancy is often less than 0.1 percent for system dimensions larger than 10,000. As a result, procedures for thinly filled matrices will generally be used.
  • Partial matrices is partially ionized, at least one first partial matrix with a low population density and a second partial matrix with a high population density being generated.
  • the invention is based on the problem of specifying a method for simulating a circuit containing electronic components, in which, on the one hand, the memory and time required for the calculation of complex circuits is reduced compared to the known methods (in the case of consideration of parasitic elements) and, on the other hand, solvability is also guaranteed if the structure is not fully defined and the corresponding parts must therefore be regarded as fully occupied (in the case of Use of behavioral description languages).
  • a system matrix is first generated which defines the topology of the circuit, i.e. the connections
  • the system matrix is partitioned into partial atrices, at least one first partial matrix with a low occupancy density and a second partial matrix with a high occupancy density being generated.
  • An equation system determined by the system matrix is solved for determining the electrical parameters of the circuit by first processing the first sub-matrix using a method for sparsely populated matrices and then solving the second sub-matrix using a method for densely populated matrices , without changing the first sub-matrix and that the first sub-matrix is solved with the help of the solution of the second sub-matrix.
  • the invention makes use of the knowledge that in highly complex circuits:
  • the system matrix When using behavioral description languages, the system matrix also has an inhomogeneous structure, namely a part with a fixed structure, which can usually be treated with procedures for sparse matrices, and a part with an undetermined structure, which must be interpreted as fully occupied in order to guarantee solvability ,
  • the system matrix is therefore partitioned into sub-matrices.
  • the submatrices are each with such 5 processes that are optimized for the population density in the sub-matrix.
  • the method is particularly suitable for the simulation of a circuit in which parasitic elements have to be taken into account or for the simulation of a circuit which is partially or completely described by a behavior description language.
  • partitioning is suitable for partitioning the system matrix, which can distinguish areas of high occupancy from areas of low occupancy.
  • the partitioning is preferably carried out within a structural analysis of the system matrix. This structural analysis, for example based on the method according to
  • Markowitz is the first central step in any procedure for solving linear systems of equations with sparse matrices with direct (Gaussian-like) procedures (see I. Duff, E. E ⁇ sman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff and 177ff).
  • a permutation takes place according to a sorting according to the occupancy of the rows and columns of the matrix. In this way, the partitioning can be determined with the aid of a predefined threshold of the population density.
  • the system matrix can have several
  • Sub-areas are broken down. J is then in each case e in subdivisions ne first part matrix with low population density and 6 generates a second sub-matrix with a high population density.
  • the system of equations is calculated for the first sub-matrix using a method for sparse matrices and for the second sub-matrix using a method for densely populated matrices.
  • This multi-stage approach can often better reproduce the original structure of the circuit.
  • the individual sub-blocks are smaller and therefore more efficient to solve. Different sub-blocks can also be processed in parallel.
  • the partitioning ensures that the submatrices can be processed independently of one another.
  • the second partial matrix with high occupancy is solved using a method for dense matrices without influencing the area outside the second partial matrix.
  • the result of the processing of the second sub-matrix is subsequently used to determine the solution for the first sub-matrix.
  • the procedures for dense matrices are more computationally intensive than the procedures for sparse matrices.
  • the method for densely populated matrices is only used in the sub-area of the system matrix in which there is high occupancy. Therefore, the memory requirement and the time requirement are optimized in the method according to the invention.
  • the method is particularly suitable for creating, checking and / or optimizing a circuit design which is the basis for creating a layout from which mask sets are derived, which are subsequently used in the technological manufacture of the circuit.
  • the figure shows a schematic representation of a system matrix with a first sub-matrix and a second sub-matrix.
  • a system matrix A locally describes the electrical behavior of a circuit.
  • the system matrix A is partitioned such that submatrices A _, A] _2 ⁇ A21 and A22 are generated.
  • the first sub-matrix An and the lateral sub-matrices A_2 and 21 have a low occupancy, while the second sub-matrix A22 has a high occupancy or high occupancy density.
  • the partitioning takes place, for example, according to the Markowitz method (see FIG. 1).
  • the high occupancy of the second sub-matrix A22 stems from the description of the parasitic elements of the circuit. If the circuit is described by a behavior description language, for example VHDL-AMS, the sub-matrix A22 must also be treated as a full matrix due to the lack of structural information.
  • S22 represents a submatrix which contains the influence of the parasitic elements and / or the elements described by the behavior description language.
  • the submatrix S22 is densely populated, while the matrices V and W are thinly populated.
  • the transformed equation system is gradually solved. This will be described below.
  • Vy b processed with a standard procedure for thinly populated matrices.
  • the sparse part is solved, for example, using a variant of Gaussian elution with partial pivot selection (see I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff and 177ff). Applied to the first sub-matrix A ] _, this leads to:
  • M 1 are Gaussian transformations, P 1 permutation matrices and k the index of the first row of the second sub-matrix A22 '. This calculation is carried out along the diagonal D (see figure) of the first sub-matrix n until the parti- tion limit PG is reached. The partitioning limit PG lies in line k, which is the first line of the second sub-matrix A22. This decomposition / transformation can also be carried out
  • L] __ or Rn is the lower or upper triangular matrix.
  • B ⁇ 2 and B21 are the transformations of the lateral submatrices A] _2 A 21 unc * thus sparsely populated.
  • B22 is the transformation of the second sub-matrix A22 and is therefore densely populated.
  • the solution of the dense sub-matrix does not change the decomposition of the first sub-matrix.
  • the solution result of the second 10 Sub-matrix is used in the third step to determine the solution of the first sub-matrix.

Abstract

In order to determine the electrical parameters of a circuit, a system matrix is generated, which represents the topology of said circuit. The system matrix is subdivided into partial matrices, whereby a first sparsely occupied partial matrix and a second densely occupied partial matrix are generated. In order to solve a system of equations determined by the system matrix, the first partial matrix is first processed according to a procedure for sparsely occupied matrices, the second partial matrix is then solved using a method for densely occupied matrices, without altering the first partial matrix. The solution of the second partial matrix is then used to solve the first partial matrix.

Description

Beschreibung description
Verfahren zur Simulation eines elektronische Bauelemente enthaltenden Schaltkreises.Method for simulating a circuit containing electronic components.
Bei der Realisierung hochintegrierter Schaltungen wird üblicherweise zunächst anhand einer funktioneilen Beschreibung einer Schaltung ein Schaltungsentwurf erstellt, in dem spezifiziert ist, welche Bauelemente vorgesehen sind. Mit Hilfe eines Schaltkreissi ulators werden die Eigenschaften derWhen realizing highly integrated circuits, a circuit design is usually first created on the basis of a functional description of a circuit, in which it is specified which components are provided. With the help of a circuit isolator, the properties of the
Schaltung berechnet. Es wird das mit dem Schaltkreissimulator errechnete Schaltverhalten mit der geforderten funktioneilen Beschreibung verglichen. Bei Abweichungen des Schaltverhaltens von der geforderten funktioneilen Beschreibung werden Änderungen im Schaltungsentwurf vorgenommen. Anschließend wird der geänderte Schaltungsentwurf wiederum im Schaltkreissimulator berechnet. Dieser Zyklus wird solange durchlaufen, bis die Eigenschaften des Schaltungsentwurfes mit den geforderten Spezifikationen übereinstimmen. Dann folgt die Erstellung eines Layouts. Anhand des Layouts werden Masken für eine Prozeßfolge erzeugt, in der der integrierte Schaltkreis schließlich realisiert wird.Circuit calculated. The switching behavior calculated with the circuit simulator is compared with the required functional description. If the switching behavior deviates from the required functional description, changes are made in the circuit design. Then the modified circuit design is again calculated in the circuit simulator. This cycle continues until the properties of the circuit design match the required specifications. Then a layout is created. Based on the layout, masks are generated for a process sequence in which the integrated circuit is finally implemented.
In üblichen Schaltkreissimulatoren werden die Bauelemente des Schaltkreises und deren elektrisches Verhalten durch ein System von Erhaltungsgleichungen, zum Beispiel den Kirchhoff- schen Gesetzen, beschrieben. Die Topologie des Systems, das heißt die Verbindungsstruktur zwischen den einzelnen Bauelementen, geht dabei direkt in die Gleichungen ein und findet sich in der Struktur der Systemmatrizen wieder. Unter einer Systemmatrix wird hier eine Linearkombination der dynamischen und statischen Jacobi-Matrizen (= Matrix der partiellen Ableitungen) verstanden.In conventional circuit simulators, the components of the circuit and their electrical behavior are described by a system of conservation equations, for example Kirchhoff's laws. The topology of the system, i.e. the connection structure between the individual components, goes directly into the equations and is reflected in the structure of the system matrices. A system matrix is understood here to mean a linear combination of the dynamic and static Jacobi matrices (= matrix of the partial derivatives).
Zur Lösung der im allgemeinen nichtlinearen Schaltkreisgleichungen werden als intrinsische Teilprobleme lineare Gleichungssystem mit Systemmatrizen gelöst. Hierzu sind verschie- dene Verfahren bekannt (siehe zum Beispiel G. H. Golub and C. F. Van Loan, Matrix Computations, John Hopkins University Press, Baltimore, 189, pp . 92ff oder I. Duff, E. Erisman and J. Reid, Direct ethods for sparse matrices, Oxford Umversi- ty Press, 1986, pp. 93ff und 177ff.). Diese Verfahren sind jeweils auf die Eigenschaften der dem Problem zugrundeliegenden Systemmatrix optimiert. Dabei wird zwischen Verfahren für dünn besetzte Matrizen und Verfahren für dicht besetzte Matrizen unterschieden. Als dünn besetzte Matrizen oder Matri- zen mit geringer Besetzungsdichte werden derartige Matrizen bezeichnet, in denen d e Anzahl der von Null verschiedenen Eintrage bezogen auf die Anzahl der Gesamteintrage gering ist, im allgemeinen kleiner 10 bis 20 Prozent. Als dicht besetzte Matrizen oder Matrizen mit hoher Besetzungsdichte wer- den dagegen Matrizen bezeichnet, bei denen der Anteil der von Null verschiedenen Eintrage bezogen auf die Gesamtzahl der Eintrage m der Matrix groß ist, im allgemeinen großer als 10 bis 20 Prozent. Der Anteil der von Null verschiedenen Eintrage einer Matrix bezogen auf die Zahl aller Eintrage der Ma- trix wird häufig auch als Besetztheit bezeichnet.To solve the generally nonlinear circuit equations, linear systems of equations with system matrices are solved as intrinsic sub-problems. There are various known methods (see for example GH Golub and CF Van Loan, Matrix Computations, John Hopkins University Press, Baltimore, 189, pp. 92ff or I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxford Umversi - ty Press, 1986, pp. 93ff and 177ff.). These methods are each optimized for the properties of the system matrix on which the problem is based. A distinction is made between methods for thinly populated matrices and methods for densely populated matrices. Such matrices, in which the number of non-zero entries relative to the number of total entries is small, generally less than 10 to 20 percent, are referred to as sparse matrices or matrices with a low population density. Dense matrices or matrices with a high population density, on the other hand, are matrices in which the proportion of non-zero entries in relation to the total number of entries m of the matrix is large, generally greater than 10 to 20 percent. The proportion of non-zero entries in a matrix in relation to the number of all entries in the matrix is often also referred to as occupancy.
Dünn besetzte Systemmatrizen entsprechen einer geringen Ver- netztheit im Schaltkreis, das heißt, einzelne Bauelemente sind nur mit wenigen anderen Bauelementen verbunden. In ko - plexen Schaltkreisen (ohne Berücksichtigung parasitärer Elemente) betragt die Besetztheit häufig weniger als 0,1 Prozent bei Syste dimensionen großer als 10.000. Folglich werden in der Regel Verfahren für dünn besetzte Matrizen zum Einsatz kommen.Thinly populated system matrices correspond to a low level of networking in the circuit, which means that individual components are only connected to a few other components. In complex circuits (without taking parasitic elements into account) the occupancy is often less than 0.1 percent for system dimensions larger than 10,000. As a result, procedures for thinly filled matrices will generally be used.
Mit zunehmender Miniaturisierung und Komplexität der Schaltkreise, die in Schaltkreissimulatoren berechnet werden, steigen sowohl die Bedeutung parasitärer Elemente für das Verhalten der Schaltung als auch die Bedeutung von Verhaltensbe- Schreibungssprachen, wie zum Beispiel VΗDL-AMS, MAST oder Ve- rilog A. Diese Sprachen werden im Englischen häufig als Beha- vioural Language bezeichnet. In diesen Sprachen wird ein Bau- element und eine Bauelementgruppe durch ihr Verhalten und nicht, wie sonst üblich, durch ihre physikalische Funktionsweise beschrieben.With increasing miniaturization and complexity of the circuits, which are calculated in circuit simulators, the importance of parasitic elements for the behavior of the circuit as well as the meaning of behavior description languages, such as VΗDL-AMS, MAST or Verilog A., increase are often referred to in English as behavioral language. In these languages, a building element and a component group described by their behavior and not, as is usually the case, by their physical functioning.
Die Berücksichtigung parasitärer Elemente hat häufig eine dichte Vernetzung eines Teils des Schaltkreises und damit eine hohe Besetztheit eines Teils der Systemmatrix zur Folge. Effiziente Verfahren für dünn besetzte Matrizen angewandt auf diese dichteren Teile benötigen nun einen immensen Speicherbedarf und/oder lange Rechenzeiten.The consideration of parasitic elements often results in a dense network of part of the circuit and thus a high occupancy of part of the system matrix. Efficient procedures for sparse matrices applied to these denser parts now require an immense amount of memory and / or long computing times.
Die Verwendung von Verhaltens-Beschreibungssprachen führt zu Schaltungsteilen mit nicht determinierter Struktur, da hier Verbindungen abhängig vom aktuellen Systemzustand gebildet oder unterbrochen werden können (ideale Schalter) . Verfahren für dünn besetzte Matrizen (im Gegensatz zu Verfahren für dicht besetzte Matrizen) setzen jedoch auf einer festgelegten Struktur auf und können komplett versagen, wenn sich diese während der Berechnung ändert .The use of behavior description languages leads to circuit parts with an undetermined structure, since connections can be formed or interrupted depending on the current system state (ideal switches). However, procedures for sparsely populated matrices (in contrast to procedures for densely populated matrices) are based on a defined structure and can fail completely if this changes during the calculation.
Weiterhin ist aus "Mahmood, A. et al , Systolic algorithms for solving a sparse System of linear equations in circuit Simulation, in: Integration , The VLSI Journal (August 1995) vol. 19, no. 1-2, S. 83-107, ein Verfahren zur Schaltungssimulation bekannt, bei dem die Systemmatrix inFurthermore, from "Mahmood, A. et al, Systolic algorithms for solving a sparse System of linear equations in circuit Simulation, in: Integration, The VLSI Journal (August 1995) vol. 19, no. 1-2, pp. 83- 107, a method for circuit simulation is known, in which the system matrix in
Teilmatrizen partit-ioniert wird, wobei mindestens eine erste Teilmatrix mit einer geringen Besetzungsdichte und eine zweite Teilmatrix mit einer hohen Besetzungsdichte generiert wird.Partial matrices is partially ionized, at least one first partial matrix with a low population density and a second partial matrix with a high population density being generated.
Der Erfindung liegt das Problem zugrunde, ein Verfahren zur Simulation eines elektronische Bauelemente enthaltenden Schaltkreises anzugeben, bei dem einerseits der Speicher- und Zeitbedarf auch bei der Berechnung komplexer Schaltungen gegenüber den bekannten Verfahren reduziert ist (im Fall der Berücksichtigung parasitärer Elemente) und andererseits eine Lösbarkeit auch gewährleistet ist, wenn die Struktur nicht vollständig festgelegt ist und die entsprechenden Teile deshalb als voll besetzt angesehen werden müssen (im Fall der Verwendung von Verhaltens -Beschreibungssprachen) .The invention is based on the problem of specifying a method for simulating a circuit containing electronic components, in which, on the one hand, the memory and time required for the calculation of complex circuits is reduced compared to the known methods (in the case of consideration of parasitic elements) and, on the other hand, solvability is also guaranteed if the structure is not fully defined and the corresponding parts must therefore be regarded as fully occupied (in the case of Use of behavioral description languages).
Dieses Problem wird gelöst durch ein Verfahren gemäß Anspruch 1. Weitere Ausgestaltungen der Erfindung gehen aus den übrigen Ansprüchen hervor .This problem is solved by a method according to claim 1. Further developments of the invention emerge from the remaining claims.
In dem Verfahren wird zunächst eine Systemmatrix generiert, die die Topologie des Schaltkreises, das heißt die Verbindun- In the process, a system matrix is first generated which defines the topology of the circuit, i.e. the connections
4 gen zwischen den Bauelementen charakterisiert. Die Systemmatrix wird in Teil atrizen partitioniert, wobei mindestens eine erste Teilmatrix mit einer geringen Besetzungsdichte und eine zweite Teilmatrix mit einer hohen Besetzungsdichte gene- riert wird. Ein durch die Systemmatrix bestimmtes Gleichungs- system wird zur Bestimmung der elektrischen Parameter des Schaltkreises dadurch gelost, daß zunächst die erste Teilmatrix nach einem Verfahren für dünn besetzte Matrizen bearbeitet wird, daß danach die zweite Teilmatrix mit einem Verfah- ren für dicht besetzte Matrizen gelost wird, ohne dabei die erste Teilmatrix zu verandern, und daß mit Hilfe der Losung der zweiten Teilmatrix die erste Teilmatrix gelost wird.4 characterized between the components. The system matrix is partitioned into partial atrices, at least one first partial matrix with a low occupancy density and a second partial matrix with a high occupancy density being generated. An equation system determined by the system matrix is solved for determining the electrical parameters of the circuit by first processing the first sub-matrix using a method for sparsely populated matrices and then solving the second sub-matrix using a method for densely populated matrices , without changing the first sub-matrix and that the first sub-matrix is solved with the help of the solution of the second sub-matrix.
Die Erfindung macht sich die Erkenntnis zunutze, daß in hoch- komplexen Schaltungen:The invention makes use of the knowledge that in highly complex circuits:
- bei Berücksichtigung parasitärer Elemente eine Vielzahl von Kopplungen zwischen den einzelnen Bauelementen vorhanden sind, die dazu fuhren, daß die zugehörige Systemmatrix eine inhomogene Besetzungsdichte aufweist. Das heißt, in der Systemmatrix gibt es Bereiche mit hoher Besetzungs- dichte und Bereiche mit geringer Besetzungsdichte . Das fuhrt dazu, daß die bekannten Verfahren, die jeweils darauf optimiert sind, daß die zu behandelnde Matrix eine hohe Besetzungsdichte oder eine geringe Besetzungsdichte aufweist, zur Behandlung dieser gesamten Systemmatrix nicht optimiert sind.- Taking into account parasitic elements, there are a large number of couplings between the individual components, which lead to the associated system matrix having an inhomogeneous population density. This means that there are areas with a high population density and areas with a low population density in the system matrix. This means that the known methods, which are each optimized so that the matrix to be treated has a high population density or a low population density, are not optimized for the treatment of this entire system matrix.
Bei Verwendung von Verhaltensbeschreibungssprachen die Systemmatrix ebenfalls eine inhomogene Struktur aufweist, nämlich einen Teil mit fester Struktur, der gewohnlich mit Verfahren für dünn besetzte Matrizen behandelt werden kann und einen Teil mit nicht determinierter Struktur, der als voll besetzt aufgefaßt werden muß, um Lösbarkeit zu garantieren.When using behavioral description languages, the system matrix also has an inhomogeneous structure, namely a part with a fixed structure, which can usually be treated with procedures for sparse matrices, and a part with an undetermined structure, which must be interpreted as fully occupied in order to guarantee solvability ,
Erfmdungsgemaß wird die Systemmatrix daher in Teilmatrizen partitioniert. Die Teilmatrizen werden jeweils mit solchen 5 Verfahren bearbeitet, die für die in der Teilmatrix vorliegende Besetzungsdichte optimiert sind.According to the invention, the system matrix is therefore partitioned into sub-matrices. The submatrices are each with such 5 processes that are optimized for the population density in the sub-matrix.
Das Verfahren ist insbesondere geeignet zur Simulation eines Schaltkreises, in dem parasitäre Elemente zu berücksichtigen sind oder zur Simulation eines Schaltkreises, der teilweise oder ganz durch eine Verhaltensbeschreibungssprache beschrieben wird.The method is particularly suitable for the simulation of a circuit in which parasitic elements have to be taken into account or for the simulation of a circuit which is partially or completely described by a behavior description language.
Zur Partitionierung der Systemmatrix sind alle bekannte Par- titionierungsverfahren geeignet, die Bereiche hoher Besetztheit und Bereiche geringer Besetztheit unterscheiden können. Vorzugsweise wird die Partitionierung innerhalb einer Strukturanalyse der Systemmatrix durchgeführt. Diese Struk- turanalyse, zum Beispiel basierend auf dem Verfahren nachAll known partitioning methods are suitable for partitioning the system matrix, which can distinguish areas of high occupancy from areas of low occupancy. The partitioning is preferably carried out within a structural analysis of the system matrix. This structural analysis, for example based on the method according to
Markowitz, ist der erste zentrale Schritt in jedem Verfahren zum Losen linearer Gleichungssysteme mit dünn besetzten Matrizen mit direkten (Gauß-ahnlichen) Verfahren (vergleiche I. Duff, E. Eπsman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp . 93ff und 177ff) . Wahrend der Strukturanalyse, erfolgt eine Permutation entsprechend einer Sortierung nach Besetztheit der Zeilen und Spalten der Matrix. So laßt sich die Partitionierung mit Hilfe einer vorgegebenen Schwelle der Besetzungsdichte bestim- men.Markowitz, is the first central step in any procedure for solving linear systems of equations with sparse matrices with direct (Gaussian-like) procedures (see I. Duff, E. Eπsman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff and 177ff). During the structural analysis, a permutation takes place according to a sorting according to the occupancy of the rows and columns of the matrix. In this way, the partitioning can be determined with the aid of a predefined threshold of the population density.
Im Hinblick auf die benotigte Rechenzeit ist es vorteilhaft, das Verfahren zur Behandlung dichter Matrizen mittels Cash, Parallelisierung oder geblockte Algorithmen durchzufuhren. Diese sehr effizient arbeitenden Verfahren benotigen nur wenig Recnenzeit und sind zum Beispiel aus G. H. Golub and C. F. Van oan, Matrix Computations, John Hopkins University Press, 3altιmore, 1989, pp 92 ff bekannt.With regard to the computing time required, it is advantageous to carry out the method for handling dense matrices using cash, parallelization or blocked algorithms. These very efficient processes require little computing time and are known, for example, from G.H. Golub and C.F. Vanan, Matrix Computations, John Hopkins University Press, 3altιmore, 1989, pp 92 ff.
Bei der Partitionierung kann die Systemmatrix m mehrereWhen partitioning, the system matrix can have several
Teilgebiete zerlegt werden. In den Teilgebieten wird dann jeweils e ne erste Teilmatrix mit geringer Besetzungsdichte und 6 eine zweite Teilmatrix mit hoher Besetzungsdichte generiert. Die Berechnung des Gleichungssystems erfolgt für die erste Teilmatrix jeweils mit einem Verfahren für dünn besetzte Matrizen und für die zweite Teilmatrix mit einem Verfahren für dicht besetzte Matrizen. Durch dieses mehrstufige Vorgehen kann die originale Struktur des Schaltkreises häufig besser wiedergegeben werden. Die einzelnen Teilblöcke sind kleiner und folglich effizienter zu lösen. Weiter können verschiedene Teilblöcke parallel abgearbeitet werden.Sub-areas are broken down. J is then in each case e in subdivisions ne first part matrix with low population density and 6 generates a second sub-matrix with a high population density. The system of equations is calculated for the first sub-matrix using a method for sparse matrices and for the second sub-matrix using a method for densely populated matrices. This multi-stage approach can often better reproduce the original structure of the circuit. The individual sub-blocks are smaller and therefore more efficient to solve. Different sub-blocks can also be processed in parallel.
In dem Verfahren wird durch die Partitionierung sichergestellt, daß die Teilmatrizen unabhängig voneinander bearbeitet werden können. Die Lösung der zweiten Teilmatrix mit hoher Besetztheit erfolgt nach einem Verfahren für dichte Ma- trizen, ohne den Bereich außerhalb der zweiten Teilmatrix zu beeinflussen. Das Ergebnis der Bearbeitung der zweiten Teilmatrix wird nachfolgend verwendet, um die Lösung für die erste Teilmatrix zu bestimmen. Die Verfahren für dichte Matrizen sind rechenintensiver als die Verfahren für dünn be- setzte Matrizen. In dem erfindungsgemäßen Verfahren wird das Verfahren für dicht besetzte Matrizen nur in dem Teilbereich der Systemmatrix eingesetzt, in dem eine hohe Besetztheit vorliegt. Daher wird in dem erfindungsgemäßen Verfahren der Speicherbedarf und der Zeitbedarf optimiert.In the process, the partitioning ensures that the submatrices can be processed independently of one another. The second partial matrix with high occupancy is solved using a method for dense matrices without influencing the area outside the second partial matrix. The result of the processing of the second sub-matrix is subsequently used to determine the solution for the first sub-matrix. The procedures for dense matrices are more computationally intensive than the procedures for sparse matrices. In the method according to the invention, the method for densely populated matrices is only used in the sub-area of the system matrix in which there is high occupancy. Therefore, the memory requirement and the time requirement are optimized in the method according to the invention.
Das Verfahren ist insbesondere geeignet zur Erstellung, Überprüfung und/oder Optimierung eines Schaltkreisentwurfes, der Grundlage für die Erstellung eines Layouts ist, aus dem Maskensätze abgeleitet werden, die nachfolgend bei der technolo- gischen Herstellung des Schaltkreises verwendet werden.The method is particularly suitable for creating, checking and / or optimizing a circuit design which is the basis for creating a layout from which mask sets are derived, which are subsequently used in the technological manufacture of the circuit.
Im folgenden wird die Erfindung anhand eines Ausführungsbei- spiels und einer Figur näher erläutert.The invention is explained in more detail below on the basis of an exemplary embodiment and a figure.
Die Figur zeigt eine schematische Darstellung einer Systemmatrix mit einer ersten Teilmatrix und einer zweiten Teilmatrix. Eine Systemmatrix A beschreibt lokal das elektrische Verhalten eines Schaltkreises. In einem ersten Schritt wird die Systemmatrix A so partitioniert, daß Teilmatrizen A _, A]_2^ A21 und A22 generiert werden.The figure shows a schematic representation of a system matrix with a first sub-matrix and a second sub-matrix. A system matrix A locally describes the electrical behavior of a circuit. In a first step, the system matrix A is partitioned such that submatrices A _, A] _2 ^ A21 and A22 are generated.
All 12All 12
A = A21 A22A = A 21 A 2 2
Dabei weisen die erste Teilmatrix An und die seitlichen Teilmatrizen A_2 und 21 eine geringe Besetztheit auf, die zweite Teilmatrix A22 weist dagegen eine hohe Besetztheit oder große Besetzungsdichte auf. Die Partitionierung erfolgt beispielsweise nach dem Markowitz-Verfahren (siehe Figur 1) . Die hohe Besetztheit der zweiten Teilmatrix A22 rührt von der Beschreibung der parasitären Elemente des Schaltkreises her. Wird der Schaltkreis durch eine Verhaltensbeschreibungssprache, zum Beispiel VHDL-AMS beschrieben, so muß die Teilmatrix A22 aufgrund fehlender Strukturinfσrmationen ebenfalls als volle Matrix behandelt werden.The first sub-matrix An and the lateral sub-matrices A_2 and 21 have a low occupancy, while the second sub-matrix A22 has a high occupancy or high occupancy density. The partitioning takes place, for example, according to the Markowitz method (see FIG. 1). The high occupancy of the second sub-matrix A22 stems from the description of the parasitic elements of the circuit. If the circuit is described by a behavior description language, for example VHDL-AMS, the sub-matrix A22 must also be treated as a full matrix due to the lack of structural information.
Zur Bestimmung der elektrischen Parameter des Schaltkreises wird das GleichungssystemThe system of equations is used to determine the electrical parameters of the circuit
Figure imgf000009_0001
Figure imgf000009_0001
gelöst. Dazu wird das Gleichungssystem zunächst in ein System der Formsolved. To do this, the system of equations is first transformed into a system of form
(V*S*W)x = b(V * S * W) x = b
it der Struktur :with structure:
Figure imgf000009_0002
transformiert. Dabei stellt S22 eine Submatrix dar, die den Einfluß der parasitären Elemente und/oder der durch die Verhaltensbeschreibungssprache beschriebenen Elemente enthalt. Die Submatrix S22 ist dicht besetzt, wahrend die Matrizen V und W jeweils dünn besetzt sind. Das transformierte Glei- chungssystem wird sukzessive gelost. Dazu wird
Figure imgf000009_0002
transformed. S22 represents a submatrix which contains the influence of the parasitic elements and / or the elements described by the behavior description language. The submatrix S22 is densely populated, while the matrices V and W are thinly populated. The transformed equation system is gradually solved. This will
(a) Vy = b mit einem Standardverfahren für d nn besetzte Matrizen bearbeitet. Nachfolgend wird(a) Vy = b processed with a standard procedure for thinly populated matrices. Below is
(b) Sz = y mit einem Verfahren für dicht besetzte Matrizen, zum Beispiel m t Hilfe von Cash, Parallelisierung oder geblockten Algorithmen, gelost. Schließlich w rd(b) Sz = y solved with a method for densely populated matrices, for example with the help of cash, parallelization or blocked algorithms. Finally,
(c) Wx = z mit einem Standardverfahren für dünn besetzte Matrizen ge- lost. Die Losung der dicht besetzten Teilmatrix ist somit entkoppelt von der Losung der dünn besetzten Teilmatrizen.(c) Wx = z solved with a standard procedure for sparse matrices. The solution of the densely populated sub-matrix is thus decoupled from the solution of the thinly populated sub-matrices.
Die Losung des dünn besetzten Teiles erfolgt zum Beispiels mittels einer Variante der Gaueßelimmation mit partieller Pivotwahl (vergleiche I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff und 177ff) . Angewandt auf die erste Teilmatrix A]_ fuhrt dieses zu:The sparse part is solved, for example, using a variant of Gaussian elution with partial pivot selection (see I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff and 177ff). Applied to the first sub-matrix A ] _, this leads to:
Mk - lPk . ΛMk - 2 MχP A -
Figure imgf000010_0001
M k - l P k . Λ M k - 2 M χ PA -
Figure imgf000010_0001
Dabei sind M1 Gaußtransformationen, P1 Permutationsmatrizen und k der Index der ersten Zeile der zweiten Teilmatrix A22' Diese Berechnung wird entlang der Diagonalen D (siehe Figur) der ersten Teilmatrix n durchgeführt, bis die Partitiome- rungsgrenze PG erreicht ist. Die Partitiomerungsgrenze PG liegt in der Zeile k, die die erste Zeile der zweiten Teilmatrix A22 ist. Diese Zerlegung/Transformation laßt sich auch durchM 1 are Gaussian transformations, P 1 permutation matrices and k the index of the first row of the second sub-matrix A22 '. This calculation is carried out along the diagonal D (see figure) of the first sub-matrix n until the parti- tion limit PG is reached. The partitioning limit PG lies in line k, which is the first line of the second sub-matrix A22. This decomposition / transformation can also be carried out
Figure imgf000011_0001
Figure imgf000011_0001
beschreiben. Dabei ist L]__ bzw. Rn die untere bzw. obere Dreiecksmatrix. B}2 und B21 sind die Transformationen der seitlichen Teilmatrizen A]_2 A21 unc* somit dünn besetzt. B22 ist die Transformation der zweiten Teilmatrix A22 und somit dicht besetzt.describe. L] __ or Rn is the lower or upper triangular matrix. B} 2 and B21 are the transformations of the lateral submatrices A] _2 A 21 unc * thus sparsely populated. B22 is the transformation of the second sub-matrix A22 and is therefore densely populated.
Zur Losung des Systems werden sukzessive folgende Systeme ge- lost:The following systems are successively released to solve the system:
Figure imgf000011_0002
mit einem Standardverfahren für dünn besetzte Dreiecksmatπ- zen (siehe zum Beispiel vergleiche I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp . 93ff und 177ff) .
Figure imgf000011_0002
using a standard procedure for sparse triangular mattresses (see for example compare I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff and 177ff).
Figure imgf000011_0003
mit einem Verfahren für dicht besetzte Matrizen, zum Beispiel durch Parallelisierung,
Figure imgf000011_0003
with a procedure for densely populated matrices, for example by parallelization,
Figure imgf000011_0004
mit einem Verfahren für dünn besetzte Dreiecksmatrizen (siehe zum Beispiel I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, p . 93ff und 177ff) .
Figure imgf000011_0004
with a method for sparse triangular matrices (see for example I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, p. 93ff and 177ff).
Die Losung der dichten Teilmatrix verändert die Zerlegung der ersten Teilmatrix nicht. Das Losungsergebnis der zweiten 10 Teilmatrix wird im dritten Schritt eingesetzt, um die Losung der ersten Teilmatrix zu bestimmen.The solution of the dense sub-matrix does not change the decomposition of the first sub-matrix. The solution result of the second 10 Sub-matrix is used in the third step to determine the solution of the first sub-matrix.
Losungsverfahren für dicht besetzte Matrizen, die zur Zerle- gung/Rucksubstitution verwendet werden, sind zum Beispiel aus G. H. Golub And C. F. Van Loan, Matrix Computations , John Hopkins University Press, Baltimore, 1989, pp . 92 ff., bekannt .Solving methods for densely populated matrices used for disassembly / substitution are described, for example, by G.H. Golub And C.F. Van Loan, Matrix Computations, John Hopkins University Press, Baltimore, 1989, pp. 92 ff., Known.
Losungsverfahren für dünn besetzte Matrizen, die zur Strukturanalyse, Zerlegung und Rucksubstitution verwendet werden, sind vergleiche I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff und 177ff) . Solving procedures for sparse matrices used for structural analysis, disassembly and back substitution are see I. Duff, E. Erisman and J. Reid, Direct methods for sparse matrices, Oxfort University Press, 1986, pp. 93ff and 177ff).

Claims

11 Patentansprüche 11 claims
1. Verfahren zur Simulation eines elektronische Bauelemente enthaltenden Schaltkreises, - bei dem zur Bestimmung der elektrischen Parameter des1. Method for simulating a circuit containing electronic components, - in which to determine the electrical parameters of the
Schaltkreises eine Systemmatrix generiert wird, die die topologischen Eigenschaften der Bauelemente, das heißt die Verbindungen zwischen den Bauelementen charakterisiert, - bei dem die Systemmatrix in Teilmatrizen partitioniert wird, wobei mindestens eine erste Teilmatrix mit einer geringen Besetzungsdichte und eine zweite Teilmatrix mit einer hohen Besetzungsdichte generiert wird, bei dem ein durch die Systemmatrix bestimmtes Gleichungs- system dadurch gelost wird, daß zunächst die erste Teilma- trix nach einem Verfahren für dünn besetzte Matrizen bearbeitet wird, daß danach die zweite Teilmatrix mit einem Verfahren für dicht besetzte Matrizen gelost wird, ohne dabei die erste Teilmatrix zu verandern, und daß mithilfe der Losung der zweiten Teilmatrix die erste Teilmatrix ge- lost wird.Circuit a system matrix is generated, which characterizes the topological properties of the components, that is, the connections between the components, - in which the system matrix is partitioned into sub-matrices, with at least a first sub-matrix with a low population density and a second sub-matrix with a high population density generated in which an equation system determined by the system matrix is solved by first processing the first sub-matrix using a method for sparsely populated matrices, then solving the second sub-matrix using a method for densely populated matrices without doing so to change the first sub-matrix, and that the first sub-matrix is solved using the solution of the second sub-matrix.
2. Verfahren nach Anspruch 1, bei dem in der Systemmatrix parasitäre Elemente berücksichtigt werden.2. The method according to claim 1, in which parasitic elements are taken into account in the system matrix.
3. Verfahren nach Anspruch 1, bei dem in der Systemmatrix mindestens ein Bauelement durch eine Verhaltens-Beschreibungssprache beschrieben wird.3. The method according to claim 1, in which at least one component is described in the system matrix by a behavior description language.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem eine Partitionierung in dicht- und dunnbesetzte Teilmatrizen mittels Verfahren, die auf dem Markowitz- Algorithmus basieren, durchgeführt wird.4. The method according to any one of claims 1 to 3, in which a partitioning into densely and thinly occupied sub-matrices is carried out by means of methods based on the Markowitz algorithm.
5. Verfahren nach einem der Ansprüche 1 bis 4, 12 bei dem das Verfahren zur Behandlung dichter Matrizen mittels Cash, Parallelisierung oder geblockter Algorithmen durchgeführt wird.5. The method according to any one of claims 1 to 4, 12 in which the method for handling dense matrices is carried out using cash, parallelization or blocked algorithms.
6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem die erste Teilmatrix eine Besetztheit kleiner 10 bis 20 Prozent und die zweite Teilmatrix eine Besetztheit größer 10 bis 20 Prozent aufweist.6. The method according to any one of claims 1 to 5, wherein the first sub-matrix has an occupancy less than 10 to 20 percent and the second sub-matrix has an occupancy greater than 10 to 20 percent.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem die Systemmatrix bei der Partitionierung in mehrere Teilgebiete zerlegt wird, in denen jeweils eine erste Teilmatrix mit geringer Besetzungsdichte und eine zweite Teilmatrix mit hoher Besetzungsdichte generiert wird.7. The method according to any one of claims 1 to 6, in which the system matrix is partitioned into several sub-areas, in each of which a first sub-matrix with low population density and a second sub-matrix with high population density is generated.
8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem in Abhängigkeit des Ergebnisses der Simulation ein Schaltungsentwurf für den Schaltkreis erstellt und/oder optimiert wird. 8. The method according to any one of claims 1 to 7, in which, depending on the result of the simulation, a circuit design for the circuit is created and / or optimized.
PCT/DE2000/003983 1999-11-15 2000-11-15 Method for simulating a circuit, containing electronic components WO2001037146A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19954868 1999-11-15
DE19954868.4 1999-11-15

Publications (2)

Publication Number Publication Date
WO2001037146A2 true WO2001037146A2 (en) 2001-05-25
WO2001037146A3 WO2001037146A3 (en) 2002-07-18

Family

ID=7929082

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2000/003983 WO2001037146A2 (en) 1999-11-15 2000-11-15 Method for simulating a circuit, containing electronic components

Country Status (1)

Country Link
WO (1) WO2001037146A2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655137A (en) * 1992-10-21 1997-08-05 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for pre-processing inputs to parallel architecture computers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655137A (en) * 1992-10-21 1997-08-05 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for pre-processing inputs to parallel architecture computers

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MAHMOOD A ET AL: "Parallel sparse-matrix solution for direct circuit simulation on a transputer array" IEE PROCEEDINGS: CIRCUITS DEVICES AND SYSTEMS,INSTITUTION OF ELECTRICAL ENGINEERS, STENVENAGE,GB, Bd. 144, Nr. 6, 3. Dezember 1997 (1997-12-03), Seiten 335-342, XP006008371 ISSN: 1350-2409 *
MAHMOOD A, ET AL.: "Systolic algorithms for solving a sparse system of linear equations in circuit simulation" INTEGRATION, THE VLSI JOURNAL, Bd. 19, Nr. 1-2, August 1995 (1995-08), Seiten 83-107, XP002172407 in der Anmeldung erw{hnt *

Also Published As

Publication number Publication date
WO2001037146A3 (en) 2002-07-18

Similar Documents

Publication Publication Date Title
EP0855662B1 (en) Electrical analysis of integrated circuits
DE10116328A1 (en) Method for verifying a layout of an integrated circuit with the aid of a computer and its use for producing an integrated circuit
EP0956530B1 (en) Method for transforming a fuzzy logic used to simulate a technical process into a neural network
EP1141867B1 (en) Method and arrangement for verifying the layout of an integrated circuit with the aid of a computer and use thereof in the production of an integrated circuit
DE102012108407A1 (en) A method and apparatus for determining test sets of operating parameter values for an electronic component
DE2643482A1 (en) SEMI-CONDUCTOR PLATE FOR MANUFACTURING HIGHLY INTEGRATED COMPONENTS
DE69833720T2 (en) Integrated semiconductor circuit with on-chip capacitors
EP1062604B1 (en) Method and device for determining a fault in a technical system
DE10138142A1 (en) Method for analyzing an integrated electrical circuit
EP0909421B1 (en) Computer-assisted process for determining a system consistency function
DE10109554B4 (en) Method for determining the electrical properties of an arrangement of conductor elements of an integrated circuit or radio-frequency coil
EP0978052B1 (en) Computer-aided selection of training data for neural networks
WO2001037146A2 (en) Method for simulating a circuit, containing electronic components
DE3334679A1 (en) ADAPTATION OF THICK FILM RESISTORS
DE102005039394A1 (en) A method of searching for potential errors of an integrated circuit layout
EP1257904B1 (en) Method for the generation of a series of random numbers of a 1/f noise
EP1390883A2 (en) Method for providing error information concerning inconsistencies in a system of differential equations
EP1344125A2 (en) Method for conducting the need-oriented generation of individual random numbers of a series of random numbers of a 1/f noise
WO1998024039A1 (en) Computer assisted method for partitioning an electric circuit
DE10303186A1 (en) Process for simulating an electrical circuit
DE10343346B4 (en) Method for testing an electrical circuit and device for carrying out the method
DE60209201T2 (en) Method for storing register properties in a data structure and associated data structure
EP0655152B1 (en) Method of simulating, using a computer-based simulator, at least one component whose characteristic features are described by a set of paired values
WO2000026786A1 (en) Method and array for evaluating a markov chain modeling a technical system
EP1590751A2 (en) Property detection (formal verification) for a mixed system of analog and digital subsystems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

122 Ep: pct application non-entry in european phase