vorhergehende Seite nächste Seite Inhaltsangabe

41. Digitale Simulation und Mixed-Mode-Simulation


Digitale Simulation am Beispiel eines NAND-Gatters
Die digitale Quelle DigStim1 und der Stimulus-Editor
Bussignale in der digitalen Simulation darstellen
Gatter-Laufzeiten verändern und mit Worst-Case untersuchen
Mixed-Mode-Simulation
Flipflop-Initialisierung
Der I/O-Level und wie man ihn verändert

Vergleich der Laufzeiten zwischen digitaler und analoger Simulation
Versorgungsspannung der Gatter verändern

Dieser Abschnitt soll Ihnen die Möglichkeiten der digitalen Simulation und der Mixed-Mode-Simulation vorstellen. Die digitale Simulation berücksichtigt nur das logische Verhalten und die Laufzeiten der Gatter. Dazu stehen eine Vielzahl von Digitalbausteinen als Modelle zur Verfügung. Leider funktionieren in der Lite-Version nur die Modelle der TTL-Serie. Mit der Mixed-Mode-Simulation können gemischte Schaltungen mit analogen und digitalen Bauteilen untersucht werden. Dabei erhalten Sie neben einem Signal-Zeit-Plan auch analoge Signalverläufe.

Digitale Simulation am Beispiel eines NAND-Gatters

Mit der nachfolgenden Schaltung soll in einer reinen digitalen Simulation das Verhalten eines NAND-Gatters untersucht werden:


Untersuchung des logischen Verhaltens eines NAND-Gatters mit einer rein digitalen Simulation (dig3 bzw. dig3.zip).

Auffallend ist, dass weder Masseverbinungen noch Spannungsversorgungsanschlüsse sichtbar sind. Diese sind nämlich nur intern verhanden. Im Laufe des Kurses werden Sie erfahren, wie Sie durch einen Trick diese Anschlüsse virtuell herausführen können.

Als Ergebnis der digitalen Simulation im Zeitbereich erhalten Sie einen Signal-Zeit-Plan, der nur die logischen Pegel Hi und Low kennt. Außerdem werden bei der digitalen Simulation noch die Verzögerungszeiten der Gatter berücksichtigt, die sich allerdings bei den hier gewählten langsamen Taktzeiten noch nicht bemerkbar machen:


Signal-Zeit-Plan des NAND-Gatters für eine Transientenanalyse bis 2 ms. A und B stellen die Eingangssignale dar. C ist der Ausgang des NAND-Gatters.

Die digitale Quelle DigStim1 und der Stimulus-Editor

Als digitale Quelle kommt in der vorangegangenen Schaltung die Quelle DigStim1 zum Einsatz, welche Sie in der Bibliothek SOURCSTM vorfinden. Diese Quelle müssen Sie vor Ihrem Einsatz editieren, wozu Sie den PSpice-Stimulus-Editor aufrufen müssen:


So rufen Sie den Stimulus-Editor auf (stimu bzw. stimu.zip).

Den Stimulus-Editor rufen Sie auf, indem Sie das Symbol der Quelle markieren und dann mit der rechten Maustaste ein kleines Fenster öffnen, in welchem Sie "Edit PSpice Stimulus auswählen". Es öffnet sich dann ein kleines Programm, in welchem sie die von Ihnen einprogrammierten Transienten sehen werden. Doch zuvor müssen Sie ein kleines Fenster ausfüllen:


Tragen Sie in dieses Fenster unter "Name:" einen von Ihnen gewählten Namen ein und klicken im unteren Feld "Digital" "Clock" an, damit Sie ein digitales und kein analoges Signal erhalten. Dann bestätigen Sie mit "OK".

Danach öffnet sich ein weiteres Fenster, in welchem Sie das digitale Signal näher bestimmen können:


Füllen Sie das Fenster wie abgebildet aus, damit Sie ein 1 kHz-Rechtecksignal erhalten. Im Hintergrund sehen Sie bereits das Signal mit dem von Ihnen gewählten Namen "signal-a".

Wenn Sie nun die Eingaben wieder mit "OK" bestätigen, werden Sie im Schaltbild erkennen, dass der Eintrag "Implementation" mit dem Namen "signal-a" versehen ist:


Der Eintrag "Implementation = signal-a" bedeutet, dass der Quelle der Stimulus "signal-a" zugeordnet ist (stimu bzw. stimu.zip).

Der Stimulus ist nun in einer Datei mit der Endung "stl" versehen, welche sich im gleichen Ordner wie das Projekt befindet. Sie könnten nun den Stimulus-Editor erneut aufrufen und einen weiteren Stimulus hinzufügen:


So legen Sie einen weiteren Stimulus an, indem Sie in der Menüleiste "Stimulus - New..." anwählen. In der Abbildung bestehen bereits zwei Stimuli, wovon der Stimulus "signal-b" per Mausklick markiert und somit ausgewählt wurde.

Beim Erzeugen eines weiteren Stimulus verfahren Sie wie bereits beschrieben. Sie haben nun die Möglichkeit bequem zwischen den verschiedenen Stimuli auszuwählen, indem Sie einfach im Schaltbild auf den Schriftzug "Implementation" klicken und den entsprechenden Stimulus eintragen. Die STL-Dateien, in denen die Stimuli abspeichert sind, können Sie auch für andere Projekte verwenden. Dazu müssen Sie wie bei den LIB-Dateien vorgehen. Die Anmeldung geschieht allerdings in der Registerkarte "Stimulus" des Simulationsprofils:


In die Regiserkarte "Stimulus" des Simulationsprofils melden Sie die STL-Datei an. Der Vorgang erinnert an das Anmelden von LIB-Dateien in der Registerkarte "Libraries".

Bussignale in der digitalen Simulation darstellen

Bei dem nachfolgenden Schaltbild handelt es sich um eine Zählschaltung (8-Bit-Vorwärtszähler) mit zwei SN74161. Das Taktsignal liefert die digitale Quelle DSTM2. Für den am Anfang erforderlichen RESET-Impuls, der den Zähler auf 0 stellt, sorgt die digitale Quelle DSTM1. Der dicke, blaue, waagrechte, obere Strich stellt den 8-adrigen Bus dar. Mit ihm sind die Anschlüsse a0 bis a7 verbunden.


Die Schaltung des Zählers, dessen Ausgänge a0 bis a7 an einem Bus angeschlossen sind. Simulieren Sie die Schaltung mit einer Transientenanalyse von mindestens 15 ms (dig1 bzw. dig1.zip).

In der Schaltung befinden sich noch Symbole mit der Aufschrift "HI". Sie liefern ein permanentes, digitales, logisches HI-Signal. Das Symbol finden Sie dort im Fenster "Place Ground", wo Sie üblicherweise auch das Masse-Symbol aufrufen:


In dem Fenster, in dem Sie gewöhnlich das Masse-Symbol beziehen, befinden sich auch die Symbole für den digitalen HI- und LO-Pegel.

Die digitale Quelle DSTM1, welche Sie unter STIM1 in der source.olb finden, können Sie über eine Tabelle programmieren, welche sich im Property-Editor befindet. Sie liefert hier im Beispiel der Schaltung einen RESET-Impuls:


Die digitale Quelle STIM1, welche Sie in der source.olb finden, programmieren Sie über eine Tabelle im Property-Editor.

Die Quelle DSTM2 finden Sie ebenfalls in der source.olb und lautet dort DigClock.

Den digitalen Bus anlegen: Um den Bus anzulegen, müssen Sie über die Menüleiste von Capture mit "Place - Bus" einen digitalen Bus aufrufen:


So rufen Sie einen digitalen Bus über die Menüleiste von Capture auf. Sie können auch in der rechten Werkzeugleiste diesen Knopf   verwenden, den Sie nicht mit dem Knopf für normale, analoge Verbindungen verwechseln dürfen.

In der rechten Werkzeugleiste finden Sie den Knopf "Place Bus Entry" , mit welchem Sie die schräg gestellten Anschlüsse an den Bus realiseren, denen Sie die Netznamen

a0 bis a7

vergeben. Dazu müssen Sie nur "a0" als Netzmanem eingeben und dann die nachfolgenden Anschlüsse der aufsteigenden Reihe nach anklicken. Die Netznamen werden dabei einfach weitergezählt. Dem Bus selbst müssen Sie nun den Netznamen

a[7-0]

vergeben. Das "a" könnten Sie durch einen beliebigen, anderen Buchstaben austauschen. Nur wenn Sie diese Syntax einhalten, gelingt es Ihnen, dass Sie im Signal-Zeit-Plan eine dezimale oder hexadezimale Anzeige erhalten. Dazu müssen Sie nach erfolgter Simulation im Add-Traces-Fenster unter "Trace Expressions" den Ausdruck

{a[7:0]};;d

einsetzen. Sie erhalten dann eine dezimale Anzeige, weil das "d" für "dezimal" steht. Wenn Sie das "d" durch ein "h" ersetzen, erhalten Sie eine hexadezimale Anzeige, mit "o" eine oktale und mit "b" eine binäre. Im nachfolgend abgebildeten Signal-Zeit-Plan kommen zwei der verschiedenen Zählweisen vor:


Der Signal-Zeit-Plan der Zählschaltung: C: Clock-Impuls, START: Reset-Impuls, A0 bis A7: die einzelnen Busadern, 3. Zeile von oben: digitale Zählweise, 4. Zeile von oben: hexadezimale Zählweise. Sternchen erscheinen, wenn kein Platz für Ziffern oder Zahlen vorhanden ist.


Gatter-Laufzeiten verändern und mit Worst-Case untersuchen

Die digitale Simulation berücksichtigt nicht nur das logische Verhalten der Gatter sondern auch die Laufzeiten, welche sie zudem noch einer Worst-Case-Betrachtung unterziehen können. Für die Demonstration dient die nachfolgende Schaltung:


Schaltung zur Untersuchung der Gatter-Laufzeiten. Durch die Verzögerung des als Inverter geschalteten U7A entstehen am Ausgang des NAND-Gatters U9A ein sehr kurze Impulse, die von U10A nochmals invertiert werden. Die Transientenanalyse simuliert bis 200ns (worstcase bzw. worstcase.zip).

Sie können nun die Gatter-Laufzeiten für alle Gatter verändern, indem Sie dazu in die Registerkarte "Options" des Simulationsprofils gehen und unter "Category:" "Gate-level Simulation" auswählen:


Unter "Timing Mode" können Sie neben der Voreinstellung "Typical" auch "Minimum", "Maximum" und "Worst-Case" wählen, um die Laufzeiten der Gatter zu verändern.

Mit den verschiedenen Einträgen erhalten Sie die folgenden Signal-Zeit-Pläne:


Signal-Zeit-Plan in der Stellung "Typical".


Signal-Zeit-Plan in der Stellung "Minimum". Kurze Schaltzeiten.


Signal-Zeit-Plan in der Stellung "Maximum": Lange Schaltzeiten.


Signal-Zeit-Plan in der Stellung Worst-Case": Die einzelnen Gatter erhalten unterschiedliche Schaltzeiten. Gelb sind solche Zeitabschnitte gekennzeichnet, in denen der Umschaltvorgang auftreten könnte. Grau sind die Zeiten markiert, während das Signal  entweder auf  Low oder lHi stehen könnte.

Durch einen Eintrag im Eigenschaften-Fenster in der Zeile MNTYMXDLY können Sie noch jedem Gatter einzeln ein Schaltzeitverhalten vergeben:


Individuelle Vergabe des Schaltzeitverhaltens im Property-Editor des jeweiligen Gatters. Per Doppelklick auf das Gatter rufen Sie den Property-Editor auf und nehmen in der Zeile MNTYMXDLY einen Eintrag vor:

Die Einträge in der Zeile MNTYMXDLY haben folgende Wirkung für das betreffende Gatter:

0 übernimmt die Vorgabe aus dem Simulationsprofil
1 Minimum
2 Typical
3 Maximum
4 Worst Case

Mixed-Mode-Simulation

Bei der Mixed-Mode-Simulation können Schaltungen untersucht werden, die sowohl "analoge" Bauteile (Widerstände, Kondensatoren, Transistoren u.s.w.) als auch digitale Bauteile enthalten. Die nachfolgende Schaltung dient als Beispiel. Sie besteht aus einem Rechteckgenerator, welcher mit dem SN74132 und einem RC-Glied aufgebaut ist. Danach folgt ein als Inverter geschaltetes NAND-Gatter, welches das Signal für das nachfolgende D-Fliplop aufbereitet. Die Beschaltung des D-Flipflop halbiert die Frequenz:


Beispiel einer Mixed-Mode-Simulation. Die Schaltung ist mit analogen und digitalen Bauteilen aufgebaut. Digitale Signale können nur an solchen Knoten abgenommen werden, die nur mit digitalen Bauteilen verbunden sind, was bei den Knoten "c" und "e" zutrifft. An allen übrigen Knoten können nur analoge Signale abgegriffen werden, weil an diesen mindestens ein analoges Bauteil angeschlossen ist (schmitt bzw. schmitt.zip).

Bei der Simulation können entweder analoge oder digitale Signale abgegriffen werden. An Knoten, die mit mindestens einem analogen Bauteil verbunden sind, liegen analoge Signale vor. An Knoten, die nur mit digitalen Bauteilen verbunden sind, können nur digitale Signale abgegriffen werden. Nachfolgend das Simulationsergebnis der Mixed-Mode-Simulation:


Das Simulationsergebnis. Oben die reinen digitalen Signale an C und E im Signal-Zeit-Plan, unten die analogen Signale.

Innerhalb der digitalen Modelle muss man sich bei der Mixed-Mode-Simulation am Eingang der Modelle einen Analog-Digital-Wandler und am Ausgang einen Digital-Analog-Wandler vorstellen.

Möchten Sie an Open-Collector-Ausgängen, an denen Sie zwangsweise Widerstände anschließen müssen, digitale Signale abgreifen, müssen Sie spezielle Widerstände mit den Namen PULLUP und PULLDOWN verwenden, die Sie in der Vollversion in der dig_misc.olb vorfinden.

Wenn der Ausgang eines Tri-State-Gatters hochohmig ist, wird dies durch eine blaue Linie im  digitalen Signal-Zeit-Plan angezeigt.


Flipflop-Initialisierung

Da Flipflops im Gegensatz zur Simulation in der Wirklichkeit nie ganz symmetrisch aufgebaut sein können, nehmen sie als Anfangszustand am Ausgang entweder einen Hi- oder Low-Pegel ein. In der Simulation ist dies wegen der perfekten Symmetrie der Modelle nicht so. Deshalb bietet das digitale Simulationsprofil die Möglichkeit den Anfangszustand festlegen:



Im digitalen Simulationsprofil können Sie unter "Initialize all flip-flops to:" den Anfangswert der Flipflops festlegen (1 oder 0). Mit X ist der Wert undefiniert.

Wenn Sie bei der vorangegangenen Schaltung ein X für den Anfangswert des Flipflops wählen, erhalten Sie am Knoten E zwei rote Linien. Dies bedeutet, dass die Simulation den logischen Zustand am Ausgang des Flipflops nicht ermitteln kann.


Eine rote Doppellinie bedeutet, das an diesem Knoten der Zustand des Flipflops nicht ermittelbar ist.

In Zählern und Schieberegistern sind ebenfalls Flipflops enthalten, so dass sie dafür ebenfalls eine entsprechende Einstellung wählen müssen.

Die vorangegangene Schaltung funktioniert auch mit der Flipflop-Initialisierung = X, wenn Sie am CLR-Eingang des D-Flipflops ein Reset-Impuls anlegen, der am Anfang bei 0,1 us von 0 auf auf 1 springt (siehe reset1.gif, reset2.gif, reset oder reset.zip).

Der I/O-Level und wie man ihn verändert

Die nachfolgende Schaltung soll Ihnen demonstrieren, welche Bedeutung die verschiedenen I/O-Level der digitalen Modelle bei der Mixed-Mode-Simulation haben. Am Eingang und Ausgang des Gatters können nur analoge Signale abgegriffen werden:


Schaltung zur Untersuchung des Einflusses verschiedener I/O-Level. Die analoge Quelle V1 (VPWL) liefert ein trapezförmiges Signal an das zu einem Inverter geschalteten NAND-Gatter (iolevel bzw. iolevel.zip).

Mit den Voreinstellungen (I/O-Level = 1) im digitalen Simualtions-Setup erhalten Sie dann das folgende Simulationsergebnis im Probe-Fenster:


Das Simulationsergebnis mit dem I/O-Level = 1: Oben die digitalen Signale innerhalb des Modells. Gelb gekennzeichnet sind die durch die Exemplarstreuungen bedingten Bereiche, in denen der Umschaltvorgang geschehen könnte. Unten: Das trapezförmige Eingangssignal sorgt am Ausgang für ein treppenförmiges Signal. Dieses treppenförmige Signal gibt es aber in Wirklichkeit nicht.

Bei der Voreinstellung (I/O-Level = 1) erzeugt das trapezförmige Eingangssignal am Ausgang des Gatters einen treppenförmigen Verlauf. Diese Treppenabsätze in der auf- und absteigenden Flanke gibt es in der Wirklichkeit nicht. Die Treppenabsätze sollen nur jenen Zeit-Bereich kennzeichen, in welchem das Ausgangssignal bedingt durch die Exemplarstreuungen des Gatters seinen Pegel wechseln könnte.

Diese Treppenabsätze können aber für manche Aufgaben in der Mixe-Mode-Simulation störend sein. Deshalb können Sie diese beseitigen, in dem Sie im digitalen Simulations-Setup den I/O-Level auf 2 stellen:


So stellen Sie im Simulationsprofil in der Registerkarte "Options" unter "Default I/O level for A/D interfaces:" den I/O-Level auf 2.

Mit dem I/O-Level = 2 verschwinden dann die Treppenabsätze:


Beim I/O-Level = 2 verschwinden die Treppenabsätze. Klicken Sie auf dieses Bild, um zu Vergleichszwecken beide Level gleichzeitig sehen zu können.

Das digitale Simulations-Setup bietet noch die Möglichkeit, einen I/O-Level 3 und 4 einzustellen, um zukünftigen Erweiterungen Rechnung zu tragen. Derzeit sind bei den TTL-Bausteinen Level 1 und 3 bzw. Level 2 und 4 identisch.

Den I/O-Level können Sie auch für jedes einzelne Gatter individuell verschieden einstellen. Rufen Sie dazu das Eigenschaften-Fenster (Property-Editor) des jeweiligen Gatters auf:


In der Zeile "I/O-Level" des Property-Editor können Sie für das jeweilige Gatter individuell den I/O-Level eingeben. Mit dem Eintrag "0" übernehmen Sie den Eintrag, der im digitalen Simulations-Setup vorgegeben ist. Die Einträge 1 bis 4 entsprechen den bereits beschriebenen I/O-Leveln.


Vergleich der Laufzeiten zwischen digitaler und analoger Simulation

Die nachfolgende Schaltung dient dazu, den Unterschied der Laufzeiten zwischen analoger und digitaler Simulation untersuchen zu können:


Zwei identische Gatter zu Vergleichszwecken einmal mit einem analogen und ein andermal mit einem digitalen Ausgang aktiviert. Der Widerstand R1 am analogen Ausgang kann außerdem noch parametrisiert werden (adzeit bzw. adzeit.zip).

Wenn Sie im ersten Versuch auf die parametrische Analyse verzichten, erhalten Sie das folgende Simulationsergebnis:


Die Signale von oben nach unten: Digitales Signal der Quelle, digitaler Ausgang des unteren Gatters, das interne, digitale Ausgangssignal des oberen Gatters, das analoge Ausgangssignal des unteren Gatters bei einer Last von 2.2 kOhm.

Auffallend ist, dass das interne, digitale Ausgangssignal des oberen Gatters eine etwas geringere Laufzeit als das digitale Ausgangssignal des unteren Gatters besitzt. Dies ist von PSpice so gewählt worden, damit das analoge Ausgangssignal in seinem Verhalten der Wirklichkeit entspricht, dessen Flankenmitten in etwa zu den Umschaltzeitpunkten des digitalen Ausgangssignals des unteren Gatters erscheinen.

Die Veränderung des Lastwiderstands hat in der Simulation übrigens keinen Einfluss auf die Schaltzeiten:


Das Ausgangssignal bei einer parametrischen Simulation des Lastwiderstands von 500 bis 5000 Ohm. Es verändert sich nur der Ausgangspegel.


Versorgungsspannung der Gatter verändern

Die Gattersymbole haben keine erkennbaren Anschlüsse für die Masse und die Spannungsversorgung. Dennoch kann die Versorgungsspannung eines jeden einzelnen Gatters, welche im Normalfall bei 5 Volt liegt, verändert werden. Dazu rufen Sie den Property-Editor des entsprechenden Gatters auf, in dem Sie ein Doppelklick auf das Gatter-Symbol ausführen:


Die Registerkarte "Pins" im Property-Editor desjenigen Gatters, dessen Spannungsversorgung Sie ändern wollen. Tragen Sie hier im Beispiel anstatt "$G_DPWR" "uplus" ein. Mit "$G_DGND" ist hier der Masseanschluss bezeichnet, den Sie nach der gleichen Vorgehensweise mt einem anderen Knoten als der Masse verbinden können.

Um nun die Versorgungspannung des Gatters ändern zu können, müssen Sie in die Registerkarte "Pins" des Property-Editors gehen. Dort ändern Sie in der Spalte "PSpiceDefaultNet" den Ausdruck "$G_DPWR" durch jenen Netznamen des Knotens, welcher in ihrer Schaltung die Gatterspannung lieferen soll. In unserem Beispiel ersetzen Sie "$G_DPWR" durch "VPLUS". Somit ist die positive Spannungsverorgung des Gatters mit dem Knoten "VPLUS" verbunden. In der nachfolgenden Schaltung wurde dies realisiert:


Der Knoten "uplus" ist mit dem positiven Spannungsversorgungsanschluss des Gatters verbunden. Die Versorgungsspannung ist zudem einer parametrischen Simulation unterzogen (uplus bzw. uplus.zip).

Die parametrische Analyse zeigt, wie sich die Ausgangsspannung des Gatter ändert, wenn eine parametrische Simulation die Versorgungsspannung des Gatters verändert:


Das Simulationsergebnis zeigt die unterschiedlichen Ausgangspegel bei verschiedenen Versorgungsspannungen.

Weiter zum nächsten Abschnitt