DE10120081A1 - Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung - Google Patents

Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung

Info

Publication number
DE10120081A1
DE10120081A1 DE10120081A DE10120081A DE10120081A1 DE 10120081 A1 DE10120081 A1 DE 10120081A1 DE 10120081 A DE10120081 A DE 10120081A DE 10120081 A DE10120081 A DE 10120081A DE 10120081 A1 DE10120081 A1 DE 10120081A1
Authority
DE
Germany
Prior art keywords
circuit
network list
component
replacement
components
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.)
Ceased
Application number
DE10120081A
Other languages
English (en)
Inventor
Achim Rein
Markus Olbrich
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.)
Infineon Technologies AG
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
Priority to DE10120081A priority Critical patent/DE10120081A1/de
Publication of DE10120081A1 publication Critical patent/DE10120081A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Verfahren zur Generierung einer hierarchischen Netzliste für die Simulation einer Schaltung mit einer Vielzahl von elektronischen Bauelementen, wobei das Verfahren die folgenden Schritte aufweist, nämlich Einlesen einer flachen Netzliste, die für jedes Bauelement einen Bauelemententyp und dessen Anschlussknoten angibt, Erkennen von Teilschaltungen die jeweils aus mindestens einem Bauelement bestehen, in der flachen Netzliste mittels zugehöriger Erkennungsregeln, wobei eine Erkennungsregel eine Teilschaltungsnetzliste der in der zugehörigen Teilschaltung verschalteten Bauelemente enthält, Ersetzen der Bauelemente der erkannten Teilschaltungen in der flachen Netzliste durch Ersatz-Bauelemente zur Erzeugung der hierarchischen Netzliste.

Description

Die Erfindung betrifft ein Verfahren zur Generierung einer hierarchischen Netzliste für die Simulation einer Schaltung, die eine Vielzahl von elektronischen Bauelementen enthält.
Beim Entwurf von elektronischen Schaltungen ist es notwendig, vor dem eigentlichen Herstellungsprozess die entworfene Schaltung zu Analysezwecken zu simulieren. Zur Verifikation des aktuellen Entwurfes ist eine Analyse notwendig, wie bei­ spielsweise eine Gattererkennung oder eine Abschätzung von Signalverzögerungen. Hierbei ist es in der Regel erforder­ lich, einen Transfer von einer niedrigen Abstraktionsebene, beispielsweise Transistorebene, auf eine höhere Abstraktions­ ebene, beispielsweise Gatterebene, vorzunehmen.
Komplexe, elektronische Schaltungen enthalten einige hundert­ tausend elektronische Bauelemente, wie beispielsweise Wider­ stände, Kondensatoren, Transistoren und dergleichen. Zur Dar­ stellung derartiger, komplexer Schaltungen werden sogenannte Netzlisten erzeugt. Eine Netzliste weist dabei jedem Bauele­ ment der Schaltung ein Bauelementtyp und die zugehörigen An­ schlüsse bzw. ports des Bauelements zu. In diese Netzlisten werden auch parasitäre Bauelemente, wie beispielsweise para­ sitäre Kapazitäten, aufgenommen.
Aufgrund der Vielzahl von Bauelementen innerhalb der zu ana­ lysierenden Schaltung sind die Laufzeiten zur Simulation ei­ ner entworfenen Schaltung sehr hoch. Darüber hinaus ist es in bisherigen Simulationsverfahren nicht möglich, einzelne Sig­ nalpfade innerhalb der zu untersuchenden Schaltung zu verfol­ gen und zu simulieren.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein Ver­ fahren zur Generierung einer hierarchischen Netzliste zu schaffen, die es erlaubt, eine Schaltung in einer sehr kurzen Simulationszeit zu simulieren.
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den im Patentanspruch 1 angegebenen Merkmalen gelöst.
Die Erfindung schafft ein Verfahren zur Generierung einer hierarchischen Netzliste für die Simulation einer Schaltung mit einer Vielzahl von elektronischen Bauelementen, wobei das Verfahren die folgenden Schritte aufweist, nämlich:
Einlesen einer flachen Netzliste, die für jedes Bauelement einen Bauelementtyp und dessen Anschlußknoten angibt;
Erkennen von Teilschaltungen, die jeweils aus mindestens ei­ nem Bauelement bestehen, in der flachen Netzliste mittels zu­ gehöriger Erkennungsregeln, wobei eine Erkennungsregel eine Teilschaltungsnetzliste der in der zugehörigen Teilschaltung verschalteten Bauelemente enthält;
Ersetzen der Bauelemente der erkannten Teilschaltungen in der flachen Netzliste durch Ersatzbauelemente zur Erzeugung der hierarchischen Netzliste.
Die Erkennungsregeln werden vorzugsweise mit einer vorgegebe­ nen Syntax durch einen Benutzer eingegeben und in einem ers­ ten Speicher abgespeichert.
Dies bietet den Vorteil, dass die Erkennungsregeln nicht starr vorgegeben sind, sondern durch den Benutzer entspre­ chend seinen Anforderungen flexibel definierbar sind.
Die abgespeicherten Erkennungsregeln zum Erkennen von Teil­ schaltungen werden zur Generierung der hierarchischen Netz­ liste vorzugsweise aus dem ersten Speicher wieder ausgelesen.
Zur Generierung der hierarchischen Netzliste wird ferner vor­ zugsweise eine flache Netzliste der zu simulierenden Schal­ tung aus einem zweiten Speicher ausgelesen.
Neben der Teilschaltungsnetzliste weist eine Erkennungsregel zur Erkennung einer Teilschaltung vorzugsweise zusätzlich ei­ nen Ersetzungsbefehl aus.
Durch den Ersetzungsbefehl werden Anschlussknoten des Ersatz­ bauelements vorzugsweise Anschlussknotentypen zugewiesen, die angeben, ob der Anschlussknoten ein Signaleingang oder ein Signalausgang des Ersatzbauelements ist.
Mittels der zugewiesenen Anschlussknoten werden vorzugsweise Signalpfade innerhalb der hierarchischen Netzliste ermittelt, die die ersetzten Bauelemente enthalten.
Die ermittelten Signalpfade werden vorzugsweise anschließend zu Analysezwecken simuliert.
Durch den Ersetzungsbefehl wird vorzugsweise dem Ersatzbau­ element ein Bauelementtyp zugewiesen.
Die zu simulierende Schaltung umfaßt vorzugsweise digitale und/oder analoge Teilschaltungen.
Im weiteren wird eine bevorzugte Ausführungsform des erfin­ dungsgemäßen Verfahrens zur Generierung einer hierarchischen Netzliste für die Simulation einer Schaltung unter Bezugnahme auf die beigefügten Figuren zur Erläuterung erfindungswesent­ licher Merkmale beschrieben.
Es zeigen:
Fig. 1 ein Ablaufdiagramm einer bevorzugten Ausführungs­ form des erfindungsgemäßen Verfahrens;
Fig. 2 ein Schaltkreisdiagramm einer zu simulierenden Schaltung zur Erläuterung der Funktionsweise des erfindungsgemäßen Verfahrens;
Fig. 3 eine zu der in Fig. 2 dargestellten, zu simulieren­ den Schaltung zugehörige Netzliste;
Fig. 4a eine durch den Benutzer definierte Teilschaltung;
Fig. 4b die zu der Fig. 4a dargestellten Teilschaltung zu­ gehörige Teilschaltungsnetzliste;
Fig. 4c ein Ersatzbauelement für die in Fig. 4a gezeigte Teilschaltung;
Fig. 5a eine durch den Benutzer definierte, weitere Teil­ schaltung;
Fig. 5b eine zu der in Fig. 5a dargestellten Teilschaltung zugehörige Teilschaltungsnetzliste;
Fig. 5c ein Ersatz-Bauelement zu der in Fig. 5a darge­ stellten, vom Benutzer definierten Teilschaltung;
Fig. 6a eine weitere benutzerdefinierte Teilschaltung;
Fig. 6b eine zu der in Fig. 6a dargestellten Teilschaltung zugehörige Teilschaltungsnetzliste;
Fig. 6c ein Ersatz-Bauelement für die in Fig. 6a darge­ stellte, benutzerdefinierte Teilschaltung;
Fig. 7a eine weitere benutzerdefinierte Teilschaltung;
Fig. 7b eine zu der in Fig. 7a dargestellten Teilschaltung zugehörige Teilschaltungsnetzliste;
Fig. 7c ein Ersatzbauelement für die in Fig. 7a darge­ stellte Teilschaltung;
Fig. 8a eine weitere benutzerdefinierte Teilschaltung, die aus einer elektrischen Verbindung mit zwei An­ schlüssen besteht;
Fig. 8b ein Ersatz-Bauelement für die in Fig. 8a darge­ stellte, benutzerdefinierte Teilschaltung;
Fig. 9a eine weitere benutzerdefinierte Teilschaltung;
Fig. 9b eine Teilschaltungsnetzliste für die in Fig. 9a dargestellte, benutzerdefinierte Teilschaltung;
Fig. 9c ein Ersatz-Bauelement für die in Fig. 9a darge­ stellte, benutzerdefinierte Teilschaltung;
Fig. 10a bis 10f eine schrittweise Transformation der in Fig. 2 dargestellten, zu simulierenden Schaltung für das er­ findungsgemäße Verfahren zur Generierung einer hie­ rarchischen Netzliste;
Fig. 11a eine für das erfindungsgemäße Verfahren generierte, hierarchische Netzliste für die in Fig. 10f darge­ stellte, transformierte Schaltung;
Fig. 11b eine Netzliste für ein in der transformierten Schaltung enthaltenes Ersatz-Bauelement;
Fig. 11c eine Netzliste für ein weiteres, in der transfor­ mierten Schaltung enthaltenes Ersatz-Bauelement;
Fig. 12 ein Ablaufdiagramm eines Unterprogramms innerhalb des in Fig. 1 dargestellten, erfindungsgemäßen Ver­ fahrens;
Fig. 13 ein Ablaufdiagramm eines Unterprogramms innerhalb des in Fig. 12 dargestellten Ablaufs;
Fig. 14 ein Ablaufdiagramm eines Schrittes des in Fig. 13 dargestellten Vorgangs;
Fig. 15a eine Teilschaltung innerhalb der in Fig. 2 darge­ stellten Gesamtschaltung;
Fig. 15b eine Netzliste zu der in Fig. 15a dargestellten Teilschaltung;
Fig. 15c eine durch den Benutzer definierte, zu erkennende Teilschaltung;
Fig. 15d eine Netzliste zu der in Fig. 15c dargestellten, benutzerdefinierten Teilschaltung.
Fig. 1 zeigt ein Ablaufdiagramm des erfindungsgemäßen Ver­ fahrens zur Generierung einer hierarchischen Netzliste. Zur Generierung einer hierarchischen Netzliste werden durch einen Benutzer zunächst Erkennungsregeln mit einer vorgegebenen Syntax, die ähnlich der Syntax von SPICE ist, zur Beschrei­ bung von Teilschaltungen eingegeben und in einem Speicher zwischengespeichert. Des weiteren werden durch einen Benutzer Ersatz-Bauelemente für erkannte Teilschaltungen, innerhalb der zu simulierenden Gesamtschaltung, definiert und gespei­ chert.
Eine flache Netzliste der zu simulierenden Gesamtschaltung ist in einem weiteren Speicher abgespeichert und wird zur Ge­ nerierung einer hierarchischen Netzliste mittels des erfin­ dungsgemäßen Verfahrens ausgelesen.
Die benutzerdefinierten Erkennungsregeln umfassen jeweils ei­ ne zu erkennende Teilschaltung, die durch eine Teilschal­ tungsnetzliste definiert wird, und eine Schlussfolgerung bzw. Aktion, in der ein Ersatz-Bauelement für die zu erset­ zende Teilschaltung angegeben wird und die einen Ersetzungs­ befehl umfaßt, dem eine Typenzuweisung folgt.
Fig. 4 bis 9 zeigen jeweils ein Beispiel für eine benut­ zerdefinierte Erkennungsregel.
Wie aus Fig. 1 zu erkennen, werden nach einem Startschritt S1 in einem Schritt S2 Abhängigkeiten zwischen den gestellten Regeln analysiert. Dabei wird ermittelt, ob zwischen zwei auf­ gestellten und abgespeicherten Regeln die folgende Beziehung besteht oder nicht. Eine beliebige Regel R1 ist dann von ei­ ner beliebigen Regel R2 abhängig, wenn die Anwendung von Re­ gel R1 dazu führt, dass sich die Regel R1 anwenden lässt. Da­ durch wird das erfindungsgemäße Verfahren beschleunigt, da eine Erkennungsregel nicht unnötig mehrfach verwendet wird.
In einem Schritt S3 wird die erste abgespeicherte Erkennungs­ regel ausgelesen. Anschließend wird in einem Schritt S4 eine Teilschaltung, die jeweils aus mindestens einem Bauelement besteht, in der flachen Netzliste mittels der Erkennungsregel gesucht. Hierzu enthält die Erkennungsregel eine Teilschal­ tungsnetzliste, die die in der gesuchten Teilschaltung ver­ schalteten Bauelemente umfasst.
Der Schritt S4, bei dem eine Teilschaltung in der Gesamt­ schaltung gesucht wird, ist im Detail in Fig. 12 als Ablauf­ diagramm dargestellt.
In einem Schritt S5 wird geprüft, ob eine Teilschaltung ent­ sprechend der Erkennungsregel gefunden worden ist oder nicht. Falls keine Teilschaltung entsprechend der aktuellen Erken­ nungsregel in der Netzliste der Gesamtschaltung gefunden wor­ den ist, wird in einem Schritt S7 geprüft, ob weitere Erken­ nungsregeln vorhanden sind oder nicht. Falls weitere Erken­ nungsregeln vorhanden sind, wird die nächste Erkennungsregel im Schritt S8 zu der aktuellen Erkennungsregel R. Im umge­ kehrten Fall wird die Generierung der hierarchischen Netzlis­ te abgeschlossen.
Falls im Schritt S6 eine Teilschaltung mit der aktuellen Er­ kennungsregel aufgefunden worden ist, wird in einem Schritt S9 geprüft, ob die Schaltung bereits einmal vollständig ohne Veränderung analysiert worden ist oder nicht. Dies bedeutet, dass die aktuelle Regel R nicht mehr auf die Schaltung ange­ wendet werden kann. Wurde mit der aktuellen Erkennungsregel die Schaltung bereits einmal ohne Veränderung analysiert, geht der Vorgang zu Schritt S7 über und im umgekehrten Fall zu einem Schritt S10.
Im Schritt S10 wird der erkannte Schaltungsteil in das Er­ satz-Bauelement verschoben. In einem Schritt S11 wird an­ schließend vorzugsweise eine neue Instanz des neuen Subcircu­ its bzw. des Ersatz-Bauelements eingefügt. In einem Schritt S12 erfolgt dann eine Typenzuweisung durch die Erkennungsre­ gel. In einem Schritt S13 wird die nächste, aktuelle Erken­ nungsregel der in Schritt S2 analysierten Regelabhängigkeiten geladen.
Fig. 2 zeigt ein Schaltkreisdiagramm einer einfachen Schal­ tung als Beispiel zur Erläuterung des erfindungsgemäßen Ver­ fahrens zur Generierung einer hierarchischen Netzliste. Die in Fig. 2 dargestellte Schaltung enthält mehrere Bauelemen­ te, nämlich einen Kondensator C, einen Widerstand R, einen PMOS-Feldeffekttransistor und einen NMOS-Feldeffekttransis­ tor, wobei der PMOS-Feldeffekttransistor und der NMOS- Feldeffekttransistor eine Inverterstufe bilden.
Fig. 3 zeigt eine Netzliste der in Fig. 2 dargestellten Beispielschaltung. Jedes Bauelement weist eine Bauelementnum­ mer E1 bis E4 auf, wobei jedem Bauelement ein Bauelementtyp zugewiesen ist und Anschlussknoten bzw. Ports angegeben sind. Beispielsweise ist das erste Bauelement vom Bauelementtyp ein Kondensator und besitzt zwei Anschlüsse N, P, wobei der erste Anschluss N der Knoten K1 und der zweite Anschluss P der Kno­ ten K2 der Schaltung ist. Die in Fig. 3 dargestellte, flache Netzliste enthält nur elementare Bauelemente, die nicht wei­ ter zerlegbar sind, und somit keine Teilschaltungen, die aus Bauelementen zusammengesetzt sind.
Die Fig. 4a bis 4c zeigen eine erste benutzerdefinierte Erkennungsregel für eine zu erkennende Teilschaltung "Inver­ terstufe". Die zu erkennende Teilschaltung wird durch den Be­ nutzer mittels einer Teilschaltungsnetzliste definiert, wie sie in Fig. 4b dargestellt ist. Eine Inverterstufe enthält nach der Definition des Benutzers zwei Bauelemente, nämlich einen PMOS-Feldeffekttransistor, dessen Drain-Anschluss mit dem Ausgangsknoten B verbunden ist, dessen Gate-Anschluss mit dem Eingangsknoten A verbunden ist und dessen Source- Anschluss mit dem Knoten D verbunden ist. Darüber hinaus weist die benutzerdefinierte Inverterstufe einen NMOS- Feldeffekttransistor auf, dessen Drain-Anschluss mit dem Aus­ gangsknoten B verbunden ist, dessen Gate-Anschluss mit dem Eingangsknoten A verbunden ist und dessen Source-Anschluss mit dem Knoten C verbunden ist.
Die Erkennungsregel enthält neben der in Fig. 4 dargestell­ ten Teilschaltungsnetzliste einen zusätzlichen Ersetzungsbe­ fehl, der die Aktion angibt, die nach Erkennen der Teilschal­ tung in der Netzliste der Gesamtschaltung erfolgt. Bei der in Fig. 4 dargestellten ersten Erkennungsregel besteht der Er­ setzungsbefehl darin, dass die Bauelemente der erkannten Teilschaltungen in der flachen Netzliste durch ein Ersatzbau­ element, wie es in Fig. 4c dargestellt ist, ersetzt werden. Dabei wird vorzugsweise durch den Ersetzungsbefehl zusätzlich den Anschlussknoten des Ersatzbauelements Anschlussknotenty­ pen bzw. Porttypen zugewiesen, die angeben, ob der Anschluss­ knoten ein Signaleingang oder ein Signalausgang des Ersatz­ bauelements ist. Bei dem in Fig. 4c dargestellten Beispiel wird dem Anschlussknoten A der Typ "Signaleingang" und dem Anschlussknoten B der Inverterschaltung der Typ "Signalaus­ gang" zugewiesen. Die Zuweisung der Porttypen wird als Rich­ tungsinformation einkodiert, die eine spätere Signalverfol­ gung innerhalb eines Signalpfades innerhalb der erstellten, hierarchischen Netzliste bei der Simulation ermöglicht.
Die Fig. 5, 6, 7, 8, 9 zeigen weitere fünf Beispiele für Erkennungsregeln, die durch den Benutzer definiert und in ei­ ner Datei abgespeichert werden.
Die Fig. 10a bis 10f zeigen schrittweise wie aus der in Fig. 3 dargestellten, flachen Netzliste, welche die in Fig. 2 dargestellte Beispielschaltung widerspiegelt, die in Fig. 11 angegebene, hierarchische Netzliste mittels der in den Fig. 4 bis 9 benutzerdefinierten Erkennungsregeln durch das erfindungsgemäße Verfahren, wie es in Fig. 1 dargestellt ist, generiert wird.
Durch die erste Erkennungsregel, wie sie in Fig. 4 darge­ stellt ist, wird die in der Gesamtschaltung enthaltene In­ verterstufe erkannt und durch das in Fig. 4c dargestellte Ersatzbauelement ersetzt.
Anschließend wird mit der in Fig. 5 dargestellten Erken­ nungsregel der in der Schaltung enthaltene Widerstand erkannt und durch das in Fig. 5c dargestellte Ersatzbauteil ersetzt.
Mittels der dritten Erkennungsregel, wie sie in Fig. 6 dar­ gestellt wird, wird das Kondensator-Bauelement D zwischen den Knoten K1 und K2 erkannt und durch das in Fig. 6c darge­ stellte Ersatzbauelement ersetzt. Bei der Ersetzung des Wi­ derstands R und des Kondensators C durch die in den Fig. 5c, 6c dargestellten Ersatzbauelemente wird diesen ein be­ stimmter Bauelementtyp RES zugewiesen.
Mittels der in Fig. 7 dargestellten Erkennungsregel wird ei­ ne Reihenschaltung aus zwei ersetzten Bauelementen mittels der in Fig. 7b dargestellten Teilschaltungserkennungsliste erkannt und durch das in Fig. 7c dargestellte Ersatzbauele­ ment ersetzt, so dass die in Fig. 10d dargestellte Struktur entsteht.
Mittels der in Fig. 8 dargestellten Netzregel wird erkannt, dass der Eingangsport des ersetzten Inverters ein Signalein­ gang ist und somit der Ausgangsanschluss der ersetzten Rei­ henschaltung aus Kondensator und Widerstand ein Signalausgang sein muß. Dem Ausgangsanschluss wird der Porttyp "Signalaus­ gang" zugewiesen, so dass die in Fig. 10e dargestellte Struktur entsteht.
Anschließend wird mittels der in Fig. 9 dargestellten Erken­ nungsregel dem Knoten K1 als Eingang der ersetzten Reihen­ schaltung der Porttyp Signaleingang zugewiesen, so dass die in Fig. 10f dargestellte Schaltungsstruktur entsteht.
Da keine weiteren Regeln durch den Benutzer definiert worden sind, wird die in Fig. 10f dargestellte Schaltungsstruktur nicht weiter vereinfacht, und die erzeugte, hierarchische Netz­ liste wird zur Simulation der Schaltung ausgelesen.
Fig. 11 zeigt die graphische Netzliste der in Fig. 10f dar­ gestellten Schaltungsstruktur. Die in Fig. 10f dargestellte Schaltungsstruktur enthält zwei Ersatz-Bauelemente bzw. Sub­ circuits E1, E2, wobei der erste Subcircuit die Inverterstufe und der zweite Subcircuit eine Reihenschaltung aus einem Kon­ densator C über einen Widerstand R ist.
Wie aus Fig. 11a erkennbar, sind den Anschlussknoten der Bauelemente E1, E2 Porttypen bzw. Anschlussknotentypen zuge­ wiesen, die angeben, ob die Anschlussknoten einen Signalein­ gang (IN) oder einen Signalausgang (OUT) des Ersatzbauele­ ments bzw. Subcircuits bilden. Durch die zugewiesenen An­ schlussknotentypen ist ein Signalpfad innerhalb der zu simu­ lierenden Schaltung eindeutig festgelegt, der über alle Er­ satz-Bauelemente verläuft. Mittels des festgelegten Signal­ pfades ist es möglich, jedes Netz bzw. jeden Knoten in dem Signalpfad gezielt zu simulieren, beispielsweise den Knoten K3, wie er in Fig. 10f dargestellt ist.
Fig. 12 zeigt den Schritt S4, das heißt, die Erkennung einer Teilschaltung in der Gesamtschaltung im Detail. Beispielswei­ se handelt es sich bei dem zu erkennenden Block um eine In­ verterstufe in der Gesamtschaltung, wie sie in Fig. 15a dar­ gestellt ist. Fig. 15b zeigt die zugehörige Netzliste.
Fig. 15c zeigt die zu erkennende Teilschaltung, wie sie durch den Benutzer in einer Erkennungsregel definiert worden ist. Fig. 15d zeigt die zugehörige Teilschaltungsnetzliste der Erkennungsregel.
Nach einem Schritt S40 wird dem Schritt S41 ein beliebiger Knoten in dem zu erkennenden Schaltungsblock gesetzt und ein beliebiger Knoten K in der Gesamtschaltung ausgewählt. Bei­ spielsweise wird der Knoten A in dem zu erkennenden Schal­ tungsblock nach der Erkennungsregel ausgewählt und als Start­ knoten Ks mit dem Knoten K1 der Schaltung, wie sie in Fig. 15a dargestellt ist, ausgewählt. Anschließend erfolgt in ei­ nem Schritt S42 ein Test, ob die beiden Knoten zueinander passen bzw. matchen. Der Schritt S42 ist im Detail in Fig. 13 dargestellt.
In einem Schritt S43 wird geprüft, ob eine Übereinstimmung festgestellt worden ist oder nicht. Falls eine Übereinstim­ mung festgestellt worden ist, wird in einem Schritt S44 dies für die Abfrage im Schritt S6 zwischengespeichert. Falls kei­ ne Übereinstimmung der beiden Knoten festgestellt werden konnte, wird in einem Schritt S45 geprüft, ob noch weitere Knoten in der Schaltung vorhanden sind oder nicht. Falls kei­ ne weiteren Knoten vorhanden sind, wird in einem Schritt S46 über die weitere Abfrage im Schritt S6 festgestellt, dass kein passender Teilschaltungsblock in der Gesamtschaltung aufgefunden werden konnte. Sind umgekehrt noch weitere Knoten in der Gesamtschaltung vorhanden, wird in einem Schritt S47 der nächste Knoten als aktueller Knoten zugewiesen.
Die Fig. 13 zeigt den Schritt S42 im Detail, bei dem geprüft wird, ob ein Knoten des benutzerdefinierten Schaltungsblocks KB zu einem Schaltungsknoten KS innerhalb der Gesamtschaltung passt oder nicht. Nach einem Startschritt S420 wird im Schritt S421 abgefragt, ob eine derartige Überprüfung bereits erfolgt ist oder nicht. Falls ja, wird in einem Schritt S422 festgestellt, ob ein Widerspruch aufgetreten ist oder nicht. Falls kein Widerspruch aufgetreten ist, wird in einem Schritt S423 dies für die weitere Abfrage im Schritt S43 gespeichert. Ist umgekehrt ein Widerspruch aufgetreten, wird dies im Schritt S424 für die Abfrage im Schritt S43 zwischengespei­ chert und angegeben, dass die beiden Knoten nicht zueinander passen.
Falls im Schritt S421 festgestellt wird, dass noch keine Ü­ berprüfung erfolgt ist, wird zunächst in einem Schritt S425 überprüft, ob die Typen der beiden Knoten zueinander passen. Falls ja, wird in einem Schritt S426 ein Port des aktuellen Blockknotens KB zugewiesen und in einem Schritt S427 ein Port des Anschlussknotens KS zugewiesen.
In einem weiteren Schritt S428 wird einem Blockelement EB ein an dem Port PB angeschlossenes Bauelement zugewiesen und ei­ nem Schaltungselement ES ein an dem Port PS angeschlossenes Bauelement zugewiesen.
Anschließend wird in einem Schritt S429 getestet, ob das zu­ gewiesene Blockelement mit dem zugewiesenen Schaltungselement ES matcht bzw. übereinstimmt. Der Schritt S429 ist im Detail in Fig. 14 dargestellt.
Wird in einem Schritt S430 festgestellt, dass das Blockele­ ment EB und das Schaltungselement ES übereinstimmen bzw. mat­ chen, wird in einem Schritt S431 dem Blockport PB der nächste Port von dem Blockknoten KB zugewiesen.
In einem Schritt S432 wird geprüft, ob dieser Port vorhanden ist oder nicht. Falls kein Port vorhanden ist, wird in einem Schritt S433 für die Abfrage im Schritt S43 zwischengespei­ chert, dass der aktuelle Blockknoten KB mit dem Schaltungs­ knoten KS matcht.
Falls im Schritt S430 festgestellt wird, dass das Blockele­ ment EB mit dem Schaltungselement ES nicht matcht, wird in einem Schritt S434 im Schaltungsport PS der nächste Port bzw. der nächste Anschlussknoten dem Schaltungsknoten KS der Schaltung zugewiesen. In einem Schritt S435 wird überprüft, ob ein nächster Port vorhanden ist oder nicht. Falls ja, kehrt der Vorgang zu Schritt S428 zurück, und im umgekehrten Fall wird in einem Schritt S436 die Abfrage in Schritt S43 festgestellt, dass der Blockknoten KB und der Schaltungskno­ ten KS nicht zueinander passen bzw. matchen.
Die Fig. 14 zeigt den Schritt S429, das heißt den Test, ob ein Blockelement EB mit einem Schaltungselement ES überein­ stimmt im Detail.
Nach einem Startschritt S4290 wird in einem Schritt S4291 ab­ gefragt, ob eine Überprüfung bereits stattgefunden hat oder nicht. Falls dies der Fall ist, wird in einer Abfrage S4292 festgestellt ob ein Widerspruch aufgetreten ist oder nicht. Falls kein Widerspruch aufgetreten ist, wird in einem Schritt S4293 festgestellt, dass das Blockelement EB und das Schal­ tungselement ES zueinander passen. Falls im Schritt S4292 festgestellt wird, dass ein Widerspruch aufgetreten ist, wird im Schritt S4294 festgestellt, dass das Blockelement EB mit dem Schaltungselement nicht matcht.
Falls im Schritt S4291 festgestellt wird, dass eine Überprü­ fung noch nicht erfolgt ist, wird zunächst in einem Schritt S4295 überprüft, ob die Typen des Blockelements EB und des Schaltungselements ES zueinander passen oder nicht.
Falls dies der Fall ist, wird im Schritt S4296 ein erster Blockelementport und ein erster Schaltungselementport zuge­ wiesen. In einem Schritt S4297 wird im Blockknoten KB ein an dem Blockelementport PB angeschlossener Knoten zugewiesen und dem Schaltungsknoten KS ein an dem Schaltungselementport PS angeschlosssener Knoten zugewiesen.
Anschließend erfolgt die in Fig. 13 dargestellte Routine, das heißt der Test, ob der Blockknoten KB mit dem Schaltungs­ knoten KS matcht.
Falls im Schritt S4298 ein Matchen zwischen dem Blockknoten KB und dem Schaltungsknoten KS festgestellt wird, wird dem aktuellen Blockelementport das nächste Blockelementport im Schritt S4299 zugewiesen.
In einem Schritt S4300 wird überprüft, ob ein weiterer Block­ elementport vorhanden ist oder nicht und wenn ja, wird in ei­ nem Schritt S4301 dem aktuellen Schaltungselementport das nächste Schaltungselementport zugewiesen. In einem Schritt S4302 wird überprüft, ob ein nächstes Schaltungselementport vorhanden ist oder nicht, und wenn ja, kehrt der Vorgang zu Schritt S4297 zurück.
Falls im Schritt S4298 festgestellt wird, dass der Blockkno­ ten KB mit dem Schaltungsknoten KS nicht matcht, wird dies in einem Schritt S4303 zwischengespeichert.
Falls im Schritt S4300 festgestellt wird, dass kein nächstes Blockelementport vorhanden ist, wird im Schritt S4304 über­ prüft ob ein weiteres Schaltungselementport vorhanden ist o­ der nicht. Falls kein weiteres Schaltungselementport vorhan­ den ist, wird im Schritt S4305 festgestellt, dass das Block­ elementport EB und das Schaltungselement ES matcht.
Ausgehend von den Schritten S4294, S4293, S4305, S4303 wird anschließend der Schritt S430 durchgeführt, wie in Fig. 13 dargestellt ist.
Die folgende Tabelle zeigt beispielhaft die Erkennung des in Fig. 15c dargestellten, benutzerdefinierten Schaltungsblocks in der Gesamtschaltung, wie sie im Schritt S4 des erfindungs­ gemäßen Verfahrens erfolgt. Es werden jeweils die Variabeln nach verschiedenen Schritten aufgeführt.
Erkennung eines benutzerdefinierten Schaltungsblocks (Fig. 15c) in Gesamtschaltung (Fig. 2)
Durch das erfindungsgemäße Verfahren ist es möglich, Klassi­ fikationstypen entlang definierbarer Schaltungsteile zur Sig­ nalverfolgung weiterzugeben. Die Erkennung von Teilschaltun­ gen erfolgt mittels eines Netzlistenvergleichs. Eine erkannte Teilschaltung wird durch ein Ersatzbauelement ersetzt, wobei zusätzlich eine Typenzuweisung erfolgt. Zusätzlich werden An­ schlussports zur Beschreibung flexibler Schaltungsblöcke ein­ geführt. Durch diese Erweiterungen ist das erfindungsgemäße Verfahren zur Abstraktion, Partitionierung, Signalklassifi­ zierung und Signalverfolgung geeignet.
Durch das erfindungsgemäße Verfahren können hierarchische Netzlisten sowohl für analoge Schaltungen als auch für digi­ tale Schaltungen generiert werden.
Da die Erkennungsregeln von einem Benutzer vorgegeben werden, eignet sich das erfindungsgemäße Verfahren für unterschiedli­ che Analysen verschiedener Schaltungstypen und Abstraktions­ ebenen.
Die Simulation der Schaltung anhand der generierten, hierar­ chischen Netzliste, in der die Teilschaltungen durch einfa­ cherere Ersatzelemente ersetzt wurden, erfolgt weitaus schneller als eine Simulation der Schaltung auf der Basis der ursprünglichen, flachen Netzliste.
Darüber hinaus kann durch die erfindungsgemäße, hierarchische Netzliste ein Signalpfad in der zu simulierenden Schaltung verfolgt werden und Knoten innerhalb des Signalpfades gezielt simuliert werden.
Aufgrund der benutzerdefinierten Erkennungsregeln ist die ge­ nerierte, hierarchische Netzliste an den gewünschten Simulati­ onszweck sehr flexibel anpassbar.

Claims (10)

1. Verfahren zur Generierung einer hierarchischen Netzliste für die Simulation einer Schaltung mit einer Vielzahl von e­ lektronischen Bauelementen, wobei das Verfahren die folgenden Schritte aufweist:
  • a) Einlesen einer flachen Netzliste, die für jedes Bauele­ ment einen Bauelementtyp und dessen Anschlussknoten an­ gibt;
  • b) Erkennen von Teilschaltungen, die jeweils aus mindestens einem Bauelement oder Netz bestehen, in der flachen Netzliste mittels zugehöriger Erkennungsregeln, wobei eine Erkennungsregel eine Teilschaltungsnetzliste der in der zugehörigen Teilschaltung verschalteten Bau­ elemente enthält;
  • c) Ersetzen der Bauelemente der erkannten Teilschaltungen in der flachen Netzliste durch Ersatz-Bauelemente zur Erzeugung der hierarchischen Netzliste.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Erkennungsregeln unter die Ersatz-Bauelemente mit einer vorgegebenen Syntax durch einen Benutzer eingegeben und in einem ersten Speicher abgespeichert werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die abgespeicherten Erkennungsregeln zur Generierung der hierarchischen Netzliste aus dem ersten Speicher wieder aus­ gelesen werden.
4. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die flache Netzliste der zu simulierenden Schaltung aus einem zweiten Speicher ausgelesen wird.
5. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass jede Erkennungsregel zusätzlich einen Ersetzungsbefehl aufweist.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass durch den Ersetzungsbefehl den Anschlussknoten des Er­ satz-Bauelements Anschlussknotentypen zugewiesen werden, die angeben, ob der Anschlussknoten ein Signaleingang oder ein Signalausgang des Ersatz-Bauelements ist.
7. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass mittels der zugewiesenen Anschlussknotentypen Signalpfa­ de innerhalb der hierarchischen Netzliste ermittelt werden, die die Ersatz-Bauelemente enthalten.
8. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die ermittelten Signalpfade simuliert werden.
9. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass durch den Ersetzungsbefehl dem Ersatz-Bauelement ein Bauelementtyp zugewiesen wird.
10. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die zu simulierende Schaltung eine digitale und/oder a­ naloge Schaltung umfaßt.
DE10120081A 2001-04-24 2001-04-24 Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung Ceased DE10120081A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10120081A DE10120081A1 (de) 2001-04-24 2001-04-24 Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10120081A DE10120081A1 (de) 2001-04-24 2001-04-24 Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung

Publications (1)

Publication Number Publication Date
DE10120081A1 true DE10120081A1 (de) 2002-11-07

Family

ID=7682555

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10120081A Ceased DE10120081A1 (de) 2001-04-24 2001-04-24 Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung

Country Status (1)

Country Link
DE (1) DE10120081A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10566790B2 (en) 2011-05-27 2020-02-18 Utopus Insights, Inc. Method and device for extracting skeleton topology structure of electric power grid
CN116108778A (zh) * 2023-01-12 2023-05-12 上海合见工业软件集团有限公司 用于数字电路原理图的元器件分层方法、设备和介质

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
BOEHMER, M.: LOGEX - An Automatic Logic Extractor from Transistor to Gate Level for CMOS Technology *
In: 25 th ACM/IEEE Design Automation Conf., 1988, S. 517-522 *
In: 25 th ACM/IEEE Design Automation Conf., 1988, S.512-516 *
In: 30 th ACM/IEEE Design Automation Conf., 1993, 31-37 *
OHLRICH, M. *
TAKASHIMA, M. *
u.a.: A Circuit System with Rule- Based Functional Isomorphism Checking *
u.a.: SubGemini: Identifying SubCir- cuits using a Fast Subgraph Isomorphism Algorithm *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10566790B2 (en) 2011-05-27 2020-02-18 Utopus Insights, Inc. Method and device for extracting skeleton topology structure of electric power grid
CN116108778A (zh) * 2023-01-12 2023-05-12 上海合见工业软件集团有限公司 用于数字电路原理图的元器件分层方法、设备和介质
CN116108778B (zh) * 2023-01-12 2024-03-01 上海合见工业软件集团有限公司 用于数字电路原理图的元器件分层方法、设备和介质

Similar Documents

Publication Publication Date Title
DE60106799T2 (de) Probabilistische Diagnose, inbesondere für eingebettete Fernanwendungen
DE4325095A1 (de) Verfahren und Vorrichtung zur verzögerten Baugruppenbestimmung
WO2003021366A1 (de) Verfahren zur validierung von simulationsergebnissen eines systems sowie darauf aufbauender äquivalenzvergleich digitaler schaltungen
DE69532307T2 (de) Ausdrucks-Propagierung für hierarchisches Netzlisten
DE112020000227T5 (de) Maschinelles lernen eines computermodells auf grundlage von korrelationenvon trainingsdaten mit leistungstrends
DE19536203A1 (de) Fehlerdiagnoseverfahren für eine sequentielle Schaltung
DE19702600A1 (de) Elektrische Analyse integrierter Schaltungen
DE69017169T2 (de) Testen integrierter Schaltungen unter Verwendung von Taktgeberstössen.
DE10296464T5 (de) Verfahren und Gerät zur Validierung des Entwurfes einer komplexen integrierten Schaltungen
EP0580663A1 (de) Verfahren zur verifikation datenverarbeitender systeme.
DE69127798T2 (de) Verfahren und Gerät zum Organisieren und Analysieren von Zeitsteuerungsinformationen
DE10043905A1 (de) Stromkopplung bei der gemischten Simulation von Schaltungen
DE102021130630A1 (de) Testen von software-anwendungskomponenten
DE102017117496A1 (de) Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte
DE4423367A1 (de) Verfahren zur hierarchischen Logik-Verifikation hochintegrierter Schaltungen
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
DE10120081A1 (de) Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung
EP3719594A1 (de) Verfahren und system zum betreiben eines industriellen automatisierungssystems
DE10213582B4 (de) Datenberechnungsvorrichtung und Verfahren zur Anwendung der Datenberechnungsvorrichtung zur Einstellung einer elektronischen Steuereinrichtung
DE19924242C2 (de) Vektorrestauration mit beschleunigter Validation und Verfeinerung
EP1771798A2 (de) Verfahren der bewertung der güte eines computerprogramms
DE102009019442A1 (de) Testdatengenerator
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE102017104049B4 (de) Verfahren und vorrichtung zum überprüfen der zuverlässigkeit eines chips
DE10343346B4 (de) Verfahren zum Prüfen einer elektrischen Schaltung und Einrichtung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R011 All appeals rejected, refused or otherwise settled
R003 Refusal decision now final

Effective date: 20120214