-
1. HINTERGRUND
DER ERFINDUNG
-
1.1. GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und ein System
zur Simulation von Hardwareschaltungen, besonders geeignet für Hardwareschaltungen
vom Typ „Silicon-On
Insulator" (SOI).
-
1.2. BESCHREIBUNG UND
NACHTEILE DES STANDS DER TECHNIK
-
Es
ist eine allgemeine Voraussetzung für einen Entwickler einer Computer-Schaltung,
dass jede Computer-Hardwareschaltung simuliert werden muss, um die
allgemeine Fehlerfreiheit der Schaltungsanordnung und der Funktionseigenschaften
sowie Besonderheiten, wie zum Beispiel Signallaufzeiten usw., zu überprüfen. Daher
wurden über
die Jahre der Hardware-Entwicklung
hinweg viele Simulationsverfahren entwickelt, um eine hohe Qualität der Hardware
sicherzustellen.
-
Jetzt
wurde ein neuer technischer Bereich der Hardwareschaltungsentwicklung
betreten, den es zu erkunden gilt: Hardware vom Typ SOI.
-
Im
Gegensatz zu Hardware vom CMOS-Typ sind die Zustände der Hardware vom SOI-Typ,
z.B. die an einem Knoten einer Schaltung auftretenden Spannungen,
abhängig
von einem vorausgegangenen Betriebsverlauf der Hardware. Dieses
vergangenheitsabhängige
Verhalten führt
zur Anwendung neuer Simulations- und Testverfahren, die aus anderen
Erfahrungen mit irgendwelchen Arten von Hardware-Entwicklungen nicht
bekannt sind.
-
Die
vorliegende Erfindung stellt ein Simulationsverfahren und -system
bereit, das für
Hardware vom Typ SOI gut anwendbar ist. Für herkömmliche Hardware, z.B. Hardware
in CMOS, können
die Ideen der vorliegenden Erfindung jedoch ebenfalls nützlich sein.
Deshalb ist der Umfang der vorliegenden Erfindung nicht dadurch
begrenzt, dass sie auf SOI angewendet wird.
-
Im
Falle von SOI gibt es ein besonderes Interesse für Tests und Simulationen, d.h.,
Zustände
von Hardware zu untersuchen, die sich aus einer großen Anzahl
so genannter „Funktionszyklen" ergeben. Man kann
annehmen, dass ein Funktionszyklus ein definiertes Betriebsintervall
mit einem Startzeitpunkt und einem Stoppzeitpunkt darstellt, bei
dem die Eingangsspannungen zu beiden Zeiten gleich sind. Somit kann
ein Zyklus einen Maschinenzyklus oder eine Vielzahl von Maschinenzyklen
umfassen.
-
Nachdem
der allgemeine Hintergrund der Erfindung aufgeführt wurde, wird nun nachstehend
eine kurze Erklärung
der grundsätzlichen
Voraussetzungen zum Verständnis
der Erfindung und deren Bezug auf den Stand der Technik gegeben:
In
einem Computer laufen viele Schaltungen im Gleichtakt mit dem Maschinenzyklus.
Taktgeber zum Beispiel führen
immer wieder dieselben Operationen durch. Andere Schaltungen führen normalerweise nicht
dieselbe Operation in jedem Zyklus durch, aber es muss ihnen nicht
unbedingt verboten sein. Sie müssen
auch unter zyklischen Bedingungen zuverlässig arbeiten.
-
Für Nicht-SOI-Technologien
stellen zyklische Betriebsbedingungen normalerweise keinen bestimmten
schlimmsten Fall für
die Leistung oder Funktionalität
der Schaltung dar. Daher wurde beim Stand der Technik nicht viel
Aufwand betrieben, zyklische Operationen zu untersuchen.
-
Der
Bedarf an Schaltungssimulationen unter zyklischen Betriebsbedingungen
hat mit dem Einsatz einer SOI-Technologie des Typs der teilweisen
Verarmung erheblich zugenommen. In dieser Technologie verursachen
die potentialfreien FET-Substrate
den so genannten „Floating-Body-Effekt", bei dem es sich um
einen so genannten „Vergangenheitseffekt" handelt:
Die
potentialfreien FET-Körper
benötigen
im Vergleich zu einem Arbeitszyklus eine sehr lange Zeit, um sich
plötzlichen Änderungen
des Schaltungsbetriebs anzupassen, d.h., sie „merken" sich die Betriebsart der Schaltung,
bevor sie umschalten. Der Zustand des Substrats beeinflusst die
Schwellenspannung des FET und dadurch auch das Schaltverhalten der
Schaltung. Folglich verhält
sich eine Schaltung, die gerade eingeschaltet wurde, vergleichsweise
anders als bei längerem
zyklischem Betrieb. Daher müssen
zyklische Betriebsbedingungen für
Schaltungen in SOI-Technologie untersucht und simuliert werden.
-
Dieses
Phänomen
wird von einem weiteren spezifischen, aber unabhängigen Phänomen begleitet, das ebenfalls
einen „Vergangenheitseffekt" aufweist:
In
der SOI-Technologie besteht der Bedarf, Schaltungen auf Eigenerwärmung zu
prüfen,
da Transistoren durch das Isoliermaterial, auf dem sie sich befinden (SOI:
Silicon On Insulator ~ Silizium auf Isoliermaterial) wärmeisoliert
sind. Die Temperatur eines Transistors zu einem bestimmten Zeitpunkt
hängt von
der Schalt-„Vergangenheit" des Transistors
ab. Aus offensichtlichen Gründen
verursacht eine zyklisch betriebene Schaltung viel mehr Eigenerwärmung als eine
Schaltung, die nur gelegentlich schaltet. Eine Simulation eines
solchen zyklischen Betriebs nach dem Stand der Technik erfordert
die Simulation von mehreren Tausenden von Schaltzyklen, bis allmählich ein
eingeschwungener Zustand der Hardware erreicht wird.
-
Sehr
viel leistungsfähiger
sind iterative Simulationsverfahren. Aber derartige Verfahren können auch
scheitern oder falsche Ergebnisse liefern, wenn die Schaltungssimulation
nicht kompatibel mit den zyklischen Betriebsbedingungen ist. Allgemein
können
derartige Schaltungssimulationen erhebliche Computerressourcen erfordern,
selbst wenn iterative Lösungswege
angewendet werden. Fehler in den zyklischen Betriebsbedingungen – die aus
anderen Gründen
als den Floating-Body-Effekt oder durch Eigenerwärmung verursacht werden – können zu
Konvergenzproblemen, übermäßigen Computerlaufzeiten
für die
Simulation, die definitiv umsonst sind, zu fehlerhaften Ergebnissen
oder zu gar keinem Ergebnis nach mehreren Iterationen führen.
-
US-A-4
918 643 (WONG CHIU-SEUNG R), 17. April 1990, offenbart ein Verfahren
zur deutlichen Verbesserung des Durchsatzes von Schaltungssimulatoren,
um den eingeschwungenen Zustand von selbstgeregelten, stückweise
linearen, geschlossenen Regelsystemen oder periodisch getriebenen, stückweise
linearen Systemen zu erreichen. Das offenbarte Verfahren basiert
auf dem Newton-Raphson-Verfahren, das es ihm ermöglicht, Brechstangenprinzipien
um eine Größenordnung
an Geschwindigkeit zu übertreffen,
und auf einem speziellen Algorithmus zur Bestimmung der Systemempfindlichkeit, wodurch
dieses Verfahren zu einer Annäherung
mit der Lösung
von Systemen führt,
die in Bezug auf das Teilintervall-Timing eine hohe Empfindlichkeit
haben, woran die meisten bestehenden Verfahren scheitern. Das Verfahren
ist ein iteratives Verfahren, wobei jede Iteration mit der Bestimmung
der Empfindlichkeit des Endzustandsvektors in einem Schaltzyklus
in Bezug auf den Anfangszustandsvektor desselben Schaltzyklus beginnt.
Daran schließt
eine Netwon-Raphson-Iteration an, um den Anfangszustandsvektor eines
eingeschwungenen Betriebs vorherzusagen. Die Berechnung der Empfindlichkeit
beinhaltet, dass der spezielle Algorithmus die Schwankungen der
Empfindlichkeit bei der Zeitsteuerung der Teilintervalle in Bezug
auf Veränderungen
des Anfangszustandsvektors berücksichtigt.
Das iterative Verfahren wird wiederholt, bis sich der Anfangszustandsvektor
und der Endzustandsvektor innerhalb einer vom Benutzer bestimmten
Toleranz befinden.
-
WONG
B K H ET AL: „Accelerated
steady-state analysis technique for PWM DC/DC switching regulators" Industrial Electronics,
Control And Instrumentation, 1997; IECON 97; 23rd International Conference
On New Orleans, LA, USA 9. bis 14. Nov. 1997; New York; NY, USA,
IEEE, US, 9. November 1997, Seiten 759 bis 764, ISBN 0-7803-3932-0,
offenbart eine neue iterative Technik zur Analyse des eingeschwungenen
Zustands von PWM-DC/DC-Schaltreglern. Der Algorithmus besteht aus
zwei Iterationsschleifen. Die erste Schleife soll den Signalverlaufe
an einem Netzwerk im eingeschwungenen Zustand bei einem angenommenen Tastverhältnis wiederholen,
während
die zweite Schleife das Tastverhältnis
im eingeschwungenen Zustand des Pulsdauermodulators wiederholen
soll. Die Signalverläufe
der Schaltung erhält
man durch ein schrittweises Zeitbereichssimulationsverfahren, das
auf der Verwendung von schrittweise quadratischen Vorgaben der Schaltungszustandsvariablen mit
progressiver Analyse des Zustands der Schalter basiert. Es wird
ein Beispiel eines PWM-Leistungsreglers
zur Veranschaulichung der Rechenleistungsfähigkeit und -genauigkeit herangezogen.
-
1.3. ZIELE DER ERFINDUNG
-
Es
ist daher ein Ziel der vorliegenden Erfindung, ein verbessertes
Simulationsverfahren und -system bereitzustellen, besonders für vergangenheitsabhängige und
empfindlich auf zyklischen Betrieb reagierende Hardwareschaltungen,
wie zum Beispiel Hardware vom Typ SOI.
-
2. ZUSAMMENFASSUNG
UND VORTEILE DER ERFINDUNG
-
Dieses
Ziel der Erfindung wird durch die in beigefügten unabhängigen Ansprüchen aufgeführten Merkmale
erreicht. Weitere vorteilhafte Anordnungen und Ausführungen
der Erfindung sind in den entsprechenden Unteransprüchen aufgeführt.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein halbautomatisches
Simulationsverfahren bereitgestellt, das es ermöglicht, jeden Schaltungsknoten
dahingehend zu überprüfen, ob seine
Spannung bei ZYKLUSSTART mit seiner Spannung bei ZYKLUSSTOPP unter
statischen (DC-)Simulationsbedingungen übereinstimmt. Falls nicht,
kann man gemäß der vorliegenden
Erfindung einen erste Hinweis erhalten, der es ermöglicht, nichtübereinstimmende
Spannungen, die durch nichtzyklische Eingangsspannungssignalverläufe verursacht
werden, automatisch zu lokalisieren und manuell zu korrigieren.
-
Die Überprüfung auf
korrekte Eingangsspannungssignalverläufe wird vorteilhaft durch
Durchführung
eines ersten Durchlaufs einer DC-Simulation nach dem Stand der Technik
mit Eingangsspannungsbedingungen, die zum ZYKLUSSTART gehören, und
durch Durchführung
einer zweiten DC-Simulation mit Eingangsspannungsbedingungen, die
zum ZYKLUSSTOPP gehören,
bewerkstelligt. Nach Vergleich der Ergebnisse, z.B. Vergleich der
Knotenspannungen, können
jegliche Nichtübereinstimmungen
festgestellt werden, die als Hinweis auf eine Nichtkompatibilität mit zyklischem
Betrieb dienen. Somit können
die in der Simulation verwendeten Eingangsspannungssignalverläufe so korrigiert
werden, dass sie einen zyklische Betrieb ermöglichen, bevor die Schaltung
mit einem großen
Aufwand an Arbeit und Rechenzeit simuliert wird.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung wird nach den oben beschriebenen Korrekturen
eine Simulation im Einschwingzustand als weiterer Schritt angehängt. Sie
wird von ZYKLUSSTART bis ZYKLUSSTOPP durchgeführt. Ein automatisierter Vergleich
der Durchläufe
kann dafür verwendet
werden, um Fehler in der Einstellung der Simulation aufzudecken
und Fehler, die mit internen Schaltungsknoten zusammenhängen, vor
allem potentialfreie Knoten oder metastabile Schaltungsknoten, z.B.
metastabile Zustände
einer Speicherzelle, automatisch zu korrigieren. Derartige Fehler
bezeichnet man als dynamische Fehler, im Gegensatz zu den oben beschriebenen
statischen Fehlern, die durch statische (DC-)Simulationen gefunden
werden. Somit können
dynamische Fehler sehr einfach und schnell auch in vergangenheitsabhängigen Hardwareschaltungen
gefunden werden.
-
Ferner
kann die automatische Überprüfung gemäß der Erfindung
in iterative Simulationsprogramme nach dem Stand der Technik integriert
werden, die nicht einmal ausschließlich auf SOI zugeschnitten
sind. Hierdurch werden die Chip-Entwicklungsingenieure
gezwungen und in die Lage versetzt, Fehler aus einer Hardwaresimulations-Eingabedatei zu
beseitigen, bevor die mit einem Hardwaresimulationsprogramm nach
dem Stand der Technik zusammenhängenden
laufzeitaufwendigen Berechnungen beginnen dürfen. Erst nachdem man eine
genaue Kenntnis über
das korrekte Verhalten im eingeschwungenen Zustand hat, ist ein
anschließender iterativer
Testlauf für
vergangenheitsabhängige Hardware
sinnvoll.
-
Ferner
können,
wenn die STARTZEIT der Simulation vor dem ZYKLUSSTART liegt, Kernzellen oder
Latches zwischen STARTZEIT und ZYKLUSSTART eingefügt werden.
Auch kann die STOPPZEIT hinter dem ZYKLUSSTOPP liegen. Somit kann
das Testverfahren mühelos
Eingabedateien von Nicht-SOI-Hardwareschaltungen verwenden, d.h.
es wird ein Übergang
auf SOI ermöglicht.
-
Folglich
kann zusammengefasst festgestellt werden, dass die oben beschriebene
Erfindung für Simulationen
von zyklisch betriebenen Schaltungen vorteilhaft ist, besonders
in der SOI-Technologie,
die bisher bekannt ist.
-
Die
vorliegende Erfindung kann jedoch auf jede zeitabhängige Chiptechnologie
angewendet werden, d.h. jede Chiptechnologie, die ein zeitabhängiges physisches
Verhalten aufweist. In einer solchen Technologie können eine
oder mehrere physikalische Eigenschaften des Chips, wie z.B. die
Leitfähigkeit
bestimmter Chipbereiche, das Mobilitätsverhalten der elektrischen
Ladungsträger,
temperaturabhängiges
Leitfähigkeitsverhalten
o.a. der Grund für eine
solche Zeitabhängigkeit
sein.
-
Ohne
das erfindungsgemäße Prüfungsverfahren
kann die Eingangsnetzliste der Schaltung Fehler enthalten, die – wenn sie
unentdeckt bleiben – Simulationen
stören,
eine Menge Computersimulationszeit kosten und zu falschen, möglicherweise
irreführenden
Ergebnissen führen
können.
-
Somit
kann gemäß der vorliegenden
Erfindung eine manuelle Suche nach Fehlern in den zyklischen Betriebsbedingungen,
die oft zeitaufwendig und unsicher ist, vor allem bei großen Schaltungen vermieden
werden.
-
3. KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird beispielhaft veranschaulicht, und sie
wird nicht durch die Form der Figur der beigefügten Zeichnung eingeschränkt, bei
der es sich um eine schematische Darstellung handelt, die die Grundschritte
des Steuerungsablaufs gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung zeigt.
-
4. AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNG
-
Unter
allgemeiner Bezugnahme auf die Figuren und unter besonderer Bezugnahme
nun auf die Figur wird als Nächstes
nachfolgend der Steuerungsablauf gemäß einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung ausführlicher
beschrieben.
-
In
einem ersten Schritt 110 wird eine erste DC-Simulation
mit Eingangsspannungen, die zum ZYKLUSSTART gehören, durchgeführt. Dies
wird durch Einstellen von Simulations-STARTZEIT gleich ZYKLUSSTART
erreicht. Insbesondere wird ein vorher festgelegtes, zugehöriges Eingangsspannungsmuster
mit dem Schaltungsmodell gekoppelt. Danach wird der statische, d.h.
stabile, Endzustand jedes Knotens, der sich über der Zeit nicht mehr ändert, zur
Auswertung herangezogen. Einschwingwerte werden zu diesem Zeitpunkt
nicht berücksichtigt.
-
Dann
werden alle stabilen Knotenspannungen für einen späteren Vergleich gespeichert.
-
Danach
wird in einem Schritt 120 eine zweite DC-Simulation mit
Eingangsspannungen, die zum ZYKLUSSTOPP gehören, durchgeführt. Dies
wird durch Einstellen von Simulations-STARTZEIT gleich ZYKLUSSTOPP
erreicht. Auch hier wird das dem ZYKLUSSTOPP zugehörige Eingangsspannungsmuster
mit dem Schaltungsmodell gekoppelt, und alle Knotenspannungen werden
ebenfalls gespeichert.
-
Natürlich können auch
weitere Daten gespeichert werden, zum Beispiel die Temperaturen
der Transistoren, die zu den oben beschriebenen Simulationsbedingungen
gehören.
-
In
einem Schritt 130 werden die Ergebnisse der beiden vorhergehenden
DC-Simulationsläufe
für jeden
Knoten verglichen. Im Vergleichsverfahren werden zum Beispiel die
Spannungen, die auf jedem Knoten von Interesse in der Simulationsschaltung festgestellt
wurden, verglichen.
-
Im
JA-Zweig von Schritt 130 wird mindestens eine Nichtübereinstimmung
gefunden. Eine Nichtübereinstimmung
liegt definitionsgemäß vor, wenn
die Spannungsdifferenz an einem Knoten zwischen den beiden Durchläufen größer als
ein vorher festgelegter Schwellwert ist, zum Beispiel 0,01 Volt
bei einer Gesamtspannungsdifferenz zwischen Versorgungsspannung
Vdd und Masse von 1,8 Volt. Gemäß der vorliegenden
Erfindung kann nun aus dieser Nichtübereinstimmung eine Schlussfolgerung
gezogen werden: Jede Nichtübereinstimmung
zeigt eine Nichtkompatibilität
mit zyklischem Testbetrieb an, da es keinen Sinn macht, weitere
Simulationsläufe
im zyklischen Betrieb durchzuführen,
solange Eingangsspannungssignalverläufe, die ein fehlerhaftes Verhalten
aufweisen, nicht korrigiert wurden.
-
Und
ein weiterer ausführlicher
Vergleich liefert Informationen darüber, welche Schaltungsknoten/Eingangsspannungen
die Regeln nicht einhalten. Dieser Vergleich kann automatisiert
werden, um nur die Nichtübereinstimmungen
gemeinsam mit entsprechenden Schaltungsknoten-Identifizierungsdaten
aufzulisten.
-
Hierdurch
wird der Schaltungsentwickler in die Lage versetzt, die Fehlerstelle
wirksam zu lokalisieren und diese zu korrigieren, Schritt 140.
Eine automatisierte Korrektur ist in dieser Phase nicht möglich, da
kein Computerprogramm die Eingangsspannungssignalverläufe, die
ein Entwickler vor Augen hatte, um den Zyklus auszuführen, kennen
kann.
-
Danach
wird zu Schritt 110 zurückverzweigt, um
das Verfahren zu wiederholen.
-
Die
oben beschriebenen Schritte 110 bis 130 kosten
nicht viel Rechenzeit im Vergleich zu einer Simulation im Einschwingzustand.
Bis zu diesem Punkt erkennt das Prüfverfahren alle nichtzyklischen
externen Stimulierungen der Schaltung. Es erkennt jedoch nicht unbedingt
nichtzyklisches Verhalten von internen Schaltungsknoten, wie diejenigen,
die weiter oben erwähnt
wurde.
-
Folglich
kann eine dritte Simulation vorteilhaft im NEIN-Zweig von Schritt 130 angehängt werden,
d.h., wenn keine statischen Fehler gefunden wurden.
-
Somit
wird in einem Schritt 150 nach Korrektur aller statischen
Fehler, die durch die beiden vorhergehenden Überprüfungen in den Schritten 110 bis 140 aufgedeckt
werden, oder falls von Anfang an keine statischen Fehler vorhanden
sind, eine Simulation im Einschwingzustand durchgeführt, die
die Zeitspanne zwischen ZYKLUSSTART und ZYKLUSSTOPP abdeckt.
-
Es
sollte hinzugefügt
werden, dass die STARTZEIT auch vor dem ZYKLUSSTART liegen kann,
um Kernzellen oder Latches zwischen STARTZEIT und ZYKLUSSTART einzufügen, und
dass die STOPPZEIT hinter dem ZYKLUSSTOPP liegen kann. Somit kann
das Testverfahren mühelos
Eingabedateien von Nicht-SOI-Hardwareschaltungen
verwenden, d.h., ein Übergang
auf SOI wird ermöglicht.
-
Danach
werden in einem Schritt 160 die Spannungen bei ZYKLUSSTOPP
mit den entsprechenden Spannungen aus dem ersten und zweiten DC-Simulationsschritt,
Schritt 110 bzw. 120, verglichen.
-
Nun
soll ein weniger strenges Nichtübereinstimmungskriterium
von 0,2 V zur Entscheidung einer Nichtübereinstimmung/Übereinstimmung
verwendet werden.
-
Für den Fall,
dass keine Nichtübereinstimmung
gefunden wird, wird das Testverfahren abgeschlossen, das Hardwaremodell
hat weder statische noch dynamische Fehlerknoten und die entsprechende
Hardwareeinheit kann somit tatsächlich
hergestellt werden, zumindest von dem Gesichtspunkt aus, der für die Ziele
der vorliegenden Erfindung relevant ist.
-
Wenn
im JA-Zweig aus der Simulation im Einschwingzustand aus Schritt 150 Nichtübereinstimmungen
gefunden werden, wird das zugrunde liegende Problem an einem entsprechenden
Knoten normalerweise durch einen der drei folgenden Umstände verursacht:
-
a.) Schaltverzögerungen
interner Schaltungsknoten
-
Normalerweise
initialisiert ein Schaltungssimulator eine Simulation im Einschwingzustand
automatisch durch eine vorhergehende DC-Simulation. Nehmen wir an,
die Simulation im Einschwingzustand beginnt bei ZYKLUSSTART und
endet bei ZYKLUSSTOPP. Dann beginnt die Simulation bei ZYKLUSSTART
mit den Ergebnissen aus der DC-Initialisierung und fährt im Einschwingzustand
fort, bis sie bei ZYKLUSSTOPP endet. Unter diesen Bedingungen würde eine
Knotenspannungssignalverlauf nicht unbedingt dieselbe Spannung bei
ZYKLUSSTOPP aufweisen, mit der sie bei ZYKLUSSTART begonnen hat.
Z.B. kann ein Wortleitungswiederherstellungsimpuls eines Speicherfelds
bei ZYKLUSSTOPP so verzögert
sein, dass er seinen ursprünglichen
sauberen Schaltpegel, den er unter der DC-Initialisierung bei ZYKLUSSTART
hatte, nicht wiederherstellt.
-
b.) Metastabile Schaltungsknoten
-
Ein
Beispiel für
metastabile Knoten stellen die Zellknoten einer Speicherfeldzelle
für 6 Bauteile dar.
Die DC-Simulation berechnet den metastabilen Zustand einer Zelle.
Mit denselben Initialisierungsvoraussetzungen für den Durchlauf im Einschwingzustand
wie in a.) sind die Knoten bei ZYKLUSSTART in einem metastabilen
Zustand, d.h., die Knotenspannung liegt undefiniert irgendwo zwischen
Masse und Versorgungsspannung Vdd. Später schalten die Knoten vor
ZYKLUSSTOPP in einen stabilen Zustand – entweder auf Masse oder auf
Versorgungsspannung, mit der Folge, dass ein Zelleninhalt 0 oder 1
ist – und
sie bleiben danach in diesem Zustand. Dies stellt dann eine drastische
Verletzung von zyklischen Rahmenbedingungen dar. Um dieses Problem zu
bewältigen,
muss eine Zelle im DC-Modus initialisiert werden, wenn die Simulation
im Einschwingzustand bei ZYKLUSSTART anfängt.
-
c.) Potentialfreie Schaltungsknoten
-
Ein
typisches Beispiel eines potentialfreien Knotens ist der Knoten
zwischen zwei Abschalttransistoren in Reihenvorspannung.
-
Es
wird angenommen, dass es sich bei den beiden Transistoren um NFET1
und NFET2 handelt, wobei NFET1 zwischen Knoten GND (Masse) und F hängt und
NFET2 zwischen Knoten F und der Versorgungsspannung Vdd. Es wird
ferner angenommen, dass sowohl NFET1 als auch NFET2 bei ZYKLUSSTART
gesperrt werden, dass NFET1 für
einige Zeit zwischen ZYKLUSSTART und ZYKLUSSTOPP EIN-schaltet und
bei ZYKLUSSTOPP wieder auf AUS zurückkehrt. Mit denselben DC-Initialisierungsvoraussetzungen
für den
Durchlauf im Einschwingzustand wie in a.) ist Knoten F bei ZYKLUSSTART
in einem schwebenden Zustand – beide
Transistoren sind gesperrt (AUS), und Knoten F befindet sich folglich
irgendwo schwebend zwischen Masse und Versorgungsspannung („potentialfrei"). Während der
Simulation im Einschwingzustand schaltet NFET1 EIN, und Knoten F
wird auf Masse gezogen. Knoten F bleibt im Wesentlichen bis zum
Ende der Simulation bei ZYKLUSSTOPP auf diesem Pegel, obwohl NFET1
wieder AUS-schaltet. Ähnlich
wie in Fall b.) stellt dies eine drastische Verletzung von zyklischen Rahmenbedingungen
dar.
-
Es
sollte beachtet werden, dass die oben beschriebenen statischen Verletzungen
zyklischer Rahmenbedingungen sowie die dynamischen Verletzungen
der Fälle
a.), b.) und c.) nicht spezifisch für die SOI-Technologie sind.
Daher kann die vorliegende Erfindung auch auf Nicht-SOI-Technologien
angewendet werden. Tatsächlich
kann in diesem Fall die nächste
Analyse im Einschwingzustand nach der Überprüfung und Fehlerkorrektur dieser
Erfindung als zyklische Simulation angesehen werden.
-
Wie
aus obiger Beschreibung hervorgeht, sind die drei typischen Fälle a.,
b., c. Beispiele, die mit dem erfindungsgemäßen Testverfahren erkannt werden
können.
-
Gemäß der vorliegenden
Erfindung kann eine automatische Korrektur dynamischer Fehler in einem
Programm angehängt
werden, das die vorher beschriebenen Schritte ausführt, indem
die Knotenspannungen in einem Schritt 170 auf dieselben
Anfangswerte bei ZYKLUSSTART gesetzt werden, mit denen der Lauf
bei ZYKLUSSTOPP geendet hatte.
-
Dies
kann mit Hilfe so genannter Cover-Modelle bewerkstelligt werden,
die die üblichen
Transistorsimulationsmodelle ersetzen. von außen haben solche Cover-Modelle
denselben Namen und dieselben Knoten wie die normalen Transistorsimulationsmodelle,
aber innen haben sie zusätzliche
Eigenschaften, z.B. die Fähigkeit,
die Transistorknoten auf gewünschte
Anfangsspannungen zu setzen, was bedeutet, dass diese gewünschten
Spannungen zu Beginn einer Simulation im Einschwingzustand erzwungen
werden.
-
Dieses
Erzwingen kann nur im DC-Simulationsmodus durchgeführt werden.
Da eine Simulation im Einschwingzustand durch eine DC-Simulation initialisiert
wird, wird das Erzwingen nur zu Beginn einer Simulation im Einschwingzustand
wirksam. Die tatsächlichen
Simulationen des zyklischen Verhaltens können dann bei ZYKLUSSTART beginnen
und bei ZYKLUSSTOPP enden. Mit der Verwendung von Cover-Modellen
bleibt die Eingangsnetzliste für
die Simulation exakt dieselbe wie die zur Verwendung mit normalen
Modellen.
-
Wie
aus obiger Beschreibung ersichtlich ist, können die nichtübereinstimmenden
Modelle durch Schritt 170 automatisch korrigiert werden.
Somit kann das Testverfahren erfolgreich durchgeführt werden,
nachdem auch dynamische Fehler erkannt und korrigiert wurden.
-
Wie
bereits oben erwähnt,
muss die Simulation im Einschwingzustand, Schritt 150,
nicht unbedingt bei ZYKLUSSTART beginnen oder bei ZYKLUSSTOPP enden,
sofern sie einen weiteren Bereich abdeckt. Dies hat den zusätzlichen
Vorteil, dass der Schaltungsentwickler bereits vor ZYKLUSSTART Kernzellen
und Latches in den gewünschten
Zustand 0 oder 1 setzen und dafür
den Simulationsmodus im Einschwingzustand verwenden kann. Dies ist
das normale Vorgehen für
andere Technologien als SOI. In diesem Fall ist es nicht erforderlich,
die Zellen/Latches in DC-Modus bei ZYKLUSSTART zu setzen. Hierdurch
wird eine Übernahme
von Schaltungssimulations-Eingabedateien von anderen Technologien
als SOI erleichtert.
-
Das
oben beschriebene, durch Schritte 110 bis 170 beispielhaft
dargelegte Testverfahren kann für
eine automatische Ausführung
programmiert werden. Ein solches Programm kann so geschrieben werden,
dass es von innerhalb einer Schaltungssimulationsumgebung nach dem
Stand der Technik ausgeführt
werden kann. Es kann mit dem Simulator kommunizieren, z.B. Simulationen
starten, Daten von Simulationen entnehmen, diese auswerten und modifizieren
und an nachfolgende Simulationen rückkoppeln. Für IBM ASX/POWER
SPICE Simulatoren nach dem Stand der Technik wird solch ein Programm
GODATA MACRO genannt. Für
den Kontext dieser Erfindung kann das GODATA MACRO die beiden DC-Durchläufe starten,
den Vergleich durchführen
und im Falle einer Nichtübereinstimmung
die Transistor- und Knotenidentifikation ausdrucken und den Vorgang
unterbrechen.
-
Hierdurch
erhält
der Schaltungsentwickler eine Möglichkeit,
die Fehlermeldungen zu überprüfen und
die Netzliste zu korrigieren. Wenn nach den beiden DC-Durchläufen keine
Fehler gefunden werden, kann das Makro mit dem Durchlauf im Einschwingzustand
fortfahren und den zusätzlichen
Vergleich mit einem der DC-Durchläufe durchführen. Hierdurch werden dynamische
Verletzungen, wie unter a.) b.) c.) beschrieben, identifiziert.
-
Wenn
die Überprüfung automatisiert
verläuft, kann
sie leicht mit iterativen Lösungsverfahren,
die das Verhalten von potentialfreien Substraten unter zyklischen
Betriebsbedingungen in SOI-Technologie behandeln, integriert werden.
Die Überprüfung kann vor
dem eigentlichen Start von Iterationen durchgeführt werden. Im Fall von Fehlern,
die nicht automatisch korrigiert werden können, kann der Job so programmiert
werden, dass er vor den Iterationen abgebrochen wird. Hierdurch
werden eine Menge fehlerhafter iterativer Simulationen eingespart,
die anderenfalls stattfinden würden.
Fehlerhafte Simulationseingabedateien führen zu Konvergenzproblemen,
fehlerhaften Ergebnissen, und gegebenenfalls werden sie nicht als
fehlerhaft erkannt. Selbst wenn sie als fehlerhaft vermutet werden,
ist es eher schwierig, die Größenordnung,
d.h. die Wichtigkeit der Fehlerhaftigkeit, zu beurteilen. Dies gilt
besonders für
sehr große
Schaltungen.
-
In
der vorhergehenden Beschreibung wurde die Erfindung unter Bezugnahme
auf ein spezifisches beispielhaftes Ausführungsbeispiel beschrieben.
Es ist jedoch offensichtlich, dass diverse Modifikationen und Änderungen
daran vorgenommen werden können,
ohne von der umfassenderen Idee und dem Umfang der Erfindung, wie
in den beigefügten
Ansprüchen
dargelegt, abzuweichen. Die Beschreibung und die Zeichnungen sind
entsprechend als veranschaulichend und nicht in einem einschränkenden
Sinne zu verstehen.
-
Die
vorliegende Erfindung kann in Hardware, Software oder einer Kombination
aus Hardware und Software realisiert werden. Jede Art von Computersystem
oder anderer Vorrichtungen, die auf die Ausführung der hierin beschriebenen
Verfahren ausgelegt ist, ist geeignet. Eine typische Kombination
von Hardware und Software könnte
ein Universalrechnersystem mit einer darauf installierten Hardwaresimulationsplattform
bzw. ein Computersystem zum Testen von Hardware mit einem Computerprogramm
sein, das, wenn es geladen und ausgeführt wird, das Computersystem
so steuert, dass es die hierin beschriebenen Verfahren ausführt.
-
Die
vorliegende Erfindung kann auch in ein Computerprogrammprodukt integriert
werden, das all die Merkmale, die die Ausführung der hierin beschriebenen
Verfahren ermöglichen,
umfasst, und das – wenn
es in einem Computersystem geladen ist – in der Lage ist, diese Verfahren
auszuführen.
-
Computerprogramm
bzw. Computerprogramm im aktuellen Kontext bedeutet jeden Ausdruck,
in jeder Sprache, jedem Code oder jeder Notation, einer Reihe von
Anweisungen, die darauf ausgelegt ist, zu verursachen, dass ein
System mit der Fähigkeit
zur Informationsverarbeitung eine bestimmte Funktion entweder direkt
oder nach einem oder beiden der Folgenden durchführt:
- a)
Umwandlung in eine andere Sprache, einen anderen Code oder eine
andere Notation;
- b) Reproduktion in einer unterschiedlichen materiellen Form.