DE10120081A1 - Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer Schaltung - Google Patents
Verfahren zur Generierung einer hierarchischen Netzliste zur Simulation einer SchaltungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design 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.
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.
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.
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)
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 | 上海合见工业软件集团有限公司 | 用于数字电路原理图的元器件分层方法、设备和介质 |
-
2001
- 2001-04-24 DE DE10120081A patent/DE10120081A1/de not_active Ceased
Non-Patent Citations (8)
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)
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 |