Simulation automatisch synthetisierter

Werbung
Simulation automatisch synthetisierter Analogschaltungen auf
unterschiedlichen Abstaktionsniveaus
Silvio Lauckner, Jürgen Kampe
Technische Universität Ilmenau
Institut für Schaltungstechnik und Elektroniktechnologie
Fachgebiet Elektronische Schaltungen und Systeme
email : [email protected]
www : www.inf-technik.tu-ilmenau.de
Zusammenfassung
Die Beurteilung der Funktionstüchtigkeit eines Entwurfs auf unterschiedlichen Abstraktionsniveaus ist
ein wichtiges Kriterium bei der Synthese analoger Schaltungen. Das aus Simulationen gewonnene Wissen
läßt sich nutzen, um eventuellen Designfehlern schon in einer frühen Designphase zu begegnen, sowie
nur erfolgversprechende Entwurfsalternativen für weitere Syntheseschritte zu qualifizieren. Das ermöglicht
einen zielgerichteten Top-Down Entwurf und ist Garant für ein erfolgreiches Schaltungsdesign.
1
Einführung
Der Entwurf analoger Schaltungen läßt sich in mehrere
Phasen zerlegen. Auf Grundlage des von Gajski/Kuhn
in [1] propagierten allgemeinen Syntheseablaufs, entsystem synthesis
Y−diagram behaviour axis
algorithmic level
analog information synth.
register−transfer level
functional level
electrical synthesis
device level
electrical level
Abbildung 1: Entwurfsablauf bei der Analogsynthese
stand Abbildung 1. Diese zeigt die auf der Verhaltensache
notwendigen Realisierungsschritte für analoge Komponenten. Nach diesem Ablauf können systematische Ent-
wurfsentscheidungen getroffen werden, mit dem Ziel eine elektrische Struktur zu komponieren (Synthese).
Die Methodik basiert auf der Trennung des Informationsflusses vom elektrischen Fluß. Damit stehen auf
abstraktem Niveau einfachere, realisierungsunabhängige
Beschreibungen zur Verfügung, mit denen der Übergang
von den meist gerichteten Datenflußmodellen auf eine
elektrische Struktur möglich wird. Die elektrische Struktur zeichnet sich durch eine höhere Komplexität der Elementeabhängigkeiten aus.
Mögliche Ansatzpunkte für eine Simulation bieten
praktisch alle Ebenen, jedoch nur die niedrigeren Abstraktionsniveaus erlauben die Zuordnung der Modellgrößen zu realen Signalparametern. Aus diesem Grund
kommen nur functional-, device- und electrical-level für
eine Simulation in Betracht.
Der Syntheseablauf erfolgt hauptsächlich in Mathematica [2]. Aufgrund der Tatsache, daß Mathematica
selbst keine Simulationsunterstützung bietet, wurde eine
Schnittstelle zu einem geeigneten Simulationswerkzeug
geschaffen. Zur Lösung der Aufgabenstellung, insbesondere auf functional Niveau ist die Matlab-Erweiterung Simulink [3] ein geeignetes Hilfsmittel. Die hier vorgestellte Software konvertiert eine in Mathematica vorliegende
Graphenbeschreibung in eine von Simulink handhabbare
Struktur.
Der Aufbau der Konvertierungssoftware ist weitgehend modularisiert, so daß eine Anbindung von anderen
Simulationswerkzeugen kein prinzipielles Problem dar-
stellt. Auf andere in Planung befindliche Implementierungen wird am Ende des Artikels noch konkreter eingegangen.
In den folgenden Kapiteln sollen Implementierungsdetails auf den verschiedenen Abstraktionsebenen näher
erläutert werden.
2
3
Stand der Entwicklung
Der bisher erreichte Entwicklungsstand erlaubt es, Graphenbeschreibungen auf functional-level in eine sofort simulierbare Struktur zu überführen. Das umfaßt den strukturellen Aufbau der Modelle sowie deren automatische
Platzierung und Verdrahtung. Alle Simulink-Blöcke sind
mit einer Editiermaske versehen und weitgehend parametrisierbar. Das garantiert eine einfache Bedienung bei
gleichzeitig hoher Flexibilität des gesamten Entwurfs.
Die Anbindung von Matlab, respektive Simulink,
erfolgt durch Laden des entsprechenden MathematicaPaketes. Der Aufbau der Schnittstellenverbindung geschieht während der Konvertierung automatisch, zusätzliche Nutzeraktionen sind nicht erforderlich. Ist eine Verbindung zu Matlab aufgebaut, kann der Nutzer von Mathematica aus beliebige Befehle an Matlab senden bzw.
Resultate abholen und in der eigenen Ausgabe darstellen.
Darüberhinaus kann sich der Anwender selbst eine
Simulink-Modellbibliothek erzeugen. Neben den synthesefähigen Blöcken finden sind darin verschiedene Signalquellen, Senken und Funktionsmodule, die für den Aufbau eigener Simulationsmodelle und -umgebungen hilfreich sind. Die Bibliothek kann in den Matlab-Pfad eingebunden und unabhängig von Mathematica zur Erstellung
oder Modifikation von Beschreibungen genutzt werden.
Kurz vor dem Abschluß steht der Einbau einer vollautomatischen Testumgebung, mit der es möglich wird
alle Designalternativen ohne weitere Nutzerinteraktion
nach bestimmten Kriterien zu überprüfen. Das kommt
dem Wunsch einer weitgehenden Testautomatisierung
sehr entgegen. Der Funktionsüberprüfung auch umfangreicher Schaltungen steht somit nichts im Weg.
Die Simulationsumgebung für die BauelementeEbene existiert bisher nur rudimentär, zum Nachweis der
prinzipiellen Machbarkeit. Die konzeptionellen Vorarbeiten hierzu sind aber weitgehend abgeschlossen, so daß
die Implementierung keine grundlegenden Probleme bereiten sollte.
Auf elektrischem Niveau werden derzeit die Transienten- und Kleinsignalanalyse unterstützt, jedoch
fehlt die automatische Testumgebung noch vollständig.
Mit dem vorhandenem Funktionsumfang konnten erste Schaltungsanalysen erfolgreich durchgeführt werden.
Negativ in Erscheinung trat die mangelnde Simulationsgeschwindigkeit. An diesem Punkt ist nach effektiveren
Lösungsmöglichkeiten zu suchen.
Functional-Level
Modelle auf dieser Abstraktionsebene sind elementare
Baugruppen (Operationsblöcke), die den informationstragenden Kennwert bearbeiten, aber nicht zwingenderweise eine Aussage über die mit diesem Kennwert verknüpften elektrischen Zustandsvariablen zulassen [4]. In
einigen Anwendungsfällen ist es möglich die Schaltungsstrukturen direkt mit Bauelementen höherer Komplexität
z.B. Operationsverstärkern aufzubauen. In der Regel sind
aber weitere Syntheseschritte notwendig, so daß an dieser Stelle lediglich die Funktion der bis dahin synthetisierten Strukturen überprüft werden soll. Interessant ist in
diesem Zusammenhang die Fehler-/Toleranzanalyse der
vorliegenden Schaltungsbeschreibungen. Auswirkungen
schaltungstechnisch bedingter Effekte auf das Gesamtsystem können dadurch beurteilt werden.
Die zur Beschreibung des Verhaltens verwendeten
Blöcke lassen sich in zwei Gruppen differenzieren. Zum
einen sind das Modelle zur Bearbeitung des informationstragenden Kennwertes und zum anderen Fehlermodelle für deterministische und stochastische Effektbeschreibungen. Im folgenden sind die auf dieser Ebene
vordefinierten Modelle aufgelistet.
Fluktuationsfehlermodell
deterministisches Fehlermodell
stochastisches Fehlermodell
Modelle zur Kennlinienapproximation mit Hilfe
endlicher und unendlicher Potenzreihen inklusive
Abbruchfehlerbehandlung
skalierbarer Addierer, Subtrahierer
skalierbarer Multiplizierer, Dividierer
Konstantsignalblock
Integrator, Differenzierer
Hilfsmodule
Viele der Funktionsblöcke sind als S-Funktion realisiert.
Das gestattet einen schnellen Modellaufbau sowie leichte
Änderungen der Parameter.
Unter dem Begriff Hilfsmodule sind Bausteine zu
verstehen, die nicht direkt aus einer Beschreibung synthetisierbar, jedoch für eine Simulation notwendig bzw.
hilfreich sind. Dazu gehören neben verschiedenen Signalquellen und Senken noch Module zur Messung interessanter Schaltungsparameter. Als Beispiel soll hier der in
analogen Systemen wichtige Kennwert Signal-RauschAbstand genannt werden.
Abbildung 2: Screen-Shot des automatisch konvertierten Modells eines VQM’s
Zur Erfassung aller informationstragenden Kennwerte müssen die Operationsmodule einen Datenvektor verarbeiten, der aus den Komponenten:
idealer Wert
realer Wert
Systembandbreite
äquivalente Rauschleistungsdichte und
Wertefluktuation
besteht. Damit können alle relevanten Schaltungsparameter erfaßt und das Verhalten des Gesamtsystems abgeleitet werden.
Die Vektorelemente existieren nicht unabhängig voneinander. So hat z.B. eine Bandbreitebegrenzung auch
Auswirkungen auf die resultierende Signalfluktuation.
Zudem besitzen alle Module eine eingebaute Fehlerkorrektur. Ein eventuell negativer Wert von Bandbreite,
Rauschleistungsdichte oder Fluktuation am Eingang eines Blockes wird automatisch einer Absolutwertbildung
unterzogen.
Zu Beginn der Simulation muß jedem Parameter ein
konkreter Zahlenwert zugeordnet werden, anderenfalls
ersetzt die Konvertierungsoftware die Werte durch ihre
Voreinstellungen.
Am folgenden Beispiel eines Vierquadrantenmultiplizierers sollen die bisher auf diesem Abstraktionsniveau erreichten Resultate veranschaulicht werden. In Abbildung 2 ist das Ergebnis der automatischen Konvertierung dargestellt. Nach dem Aufbau des Modells ist
für den Anwender lediglich die äußere Struktur (linkes
oberes Teilbild) des Modells sichtbar, welches nun mit
den gewünschten Quellen und Senken beschaltet werden
kann. Der Block auf höchster Ebene bekommt den Bezeichner toplevel zugeordnet. Ein Mausklick auf das Element gibt den Einblick auf niedrigere Hierarchieniveaus
frei.
Das zweite Strukturbild zeigt den inneren Aufbau des
Multiplizierers. H[a] und H[b] modellieren einen Linearitätsfehler, bevor die Eingangssignale in H[c] miteinander multipliziert werden. Zusätzliche Oberwellenanteile produziert der Block H[d], ausdrückbar durch Angabe der Koeffizienten einer endlichen Potenzreihe. Vom
Multiplizierer selbst hervorgerufenes Rauschen wird dem
Ausgangssignal mit Hilfe von H[f] additiv überlagert.
Die in der Darstellung grau hinterlegten Fenster zeigen
die Editiermasken von H[a] und H[f]. Deutlich erkennbar
ist die Parametrisierbarkeit der Modelle. Der Linearitätsfehler wird durch die Kennwerte Anstieg und Signaloffset ausgedrückt. Beim Addierer/Subtrahierer-Block defi-
niert der String nicht nur die auf den Eingang anzuwendende Operation sondern auch die Anzahl verfügbarer
Eingänge.
4
Device-Level
Im Gegensatz zu Syntheseverfahren für Digitalschaltungen, bei denen oft die direkte Strukturinterpretation von
Verhaltensbeschreibungen möglich ist, sind bei der Analogsynthese mehr oder weniger komplizierte Zwischenschritte einzufügen [5]. Im weiteren Verlauf der Synthese stellt sich das Problem, daß sich bei elektronischen
Bauelementen häufig mehr als ein Schaltungseffekt nutzen läßt. Als Beispiel soll hier eine Emitterstufe dienen. Allein durch die Wahl des Arbeitspunktes erschließen sich völlig verschiedene Anwendungsgebiete. Zum
einen kann ein linear arbeitender Kleinsignalverstärker
(A-Betrieb) realisiert werden. Zum anderen lassen sich
im C-Betrieb, durch gezielte Ausnutzung des Knicks in
der Eingangskennlinie, starke Verzerrungen erzeugen, die
zur Frequenzvervielfachung genutzt werden.
Je nach Einsatszweck sind also für ein und dasselbe
Bauelement unterschiedliche, physikalische Effekte ausnutzbar. Zur deren Erfassung existiert für jeden technisch
sinnvoll erscheinenden Effekt deshalb auch ein anderes
Modell. Neben der Behandlung des primär auszunutzenideale Quelle
Admittanz
Lastimpedanz
Z−Diode
YA
Eingangs−
spannung
+1
−1
Ausgangsstrom
+1
Spannungs−
..
ruckwirkung
−1
YA
..
Stromruck−
wirkung
UQ
−1
U
+1
YA
−1
I
+1
U
+1
U
+1
RL
−1
YZD
+1
I
+1
Abbildung 3: Modell des Informationsflusses einer
Spannungsstabilisierung mit Z-Diode, sowie die dazugehörige Graphenbeschreibung
den Schaltungseffektes können auf dieser Abstraktionsebene auch die gleichzeitig auftretenden Nebeneffekte
mit modelliert werden. Dabei ist es zulässig, daß unterschiedliche Schaltungseigenschaften miteinander in Konkurrenz treten.
Ein Effekt kann jedoch nur dann gezielt ausgenutzt
werden, wenn typische Ansteuerbedingungen in Bezug
auf die Signale und die Arbeitspunkteinstellungen eingehalten werden und das Bauelement adäquat dimensioniert wird. Diese Aspekte unterscheiden sich rein qualitativ nach den folgenden Kriterien:
Leistungsmode
Impedanzmode
Signalmode
Im Strukturgraphen werden die Schnittstellen der Effekte durch typisierte elektrische Leistungskanäle mit
den zuvor genannten Charakteristiken repräsentiert. Diese Schnittstelleneffekte entsprechen nicht direkt den elektrischen Toren von Bauelementen, sondern orientieren
sich an den Verbindungen des Informationsflusses.
Basis ist ein Streuflußgraph wie er in der HF-Technik
üblich ist. Jedoch werden hier die zur Beschreibung verwendeten S-Parameter [6] nicht im komplexen Frequenzbereich definiert sondern als reelle Größen im Zeitbereich.
Das Ergebnis der Schaltungsbeschreibung ist ein Masongraph [7] mit ausschießlich reellwertigen Kantengewichten. Damit erlaubt das auf den Wellenparametern basierende Signalfluß-Modell eine gleichberechtigte Darstellung von Schaltfunktionen, die auf Charakteristiken
von Bauelementen beruhen, mit Funktionen, die durch
die Verschaltung von Elementen realisiert werden. Modellverbindungen sind dabei nur mit typgleichen Torcharakteristika möglich.
Das Beispiel in Abbildung 3 zeigt das Simulationsmodell einer Schaltung zur Spannungsstabilisierung mit
Z-Diode. Die Quelle sei als ideal angenommen, damit
entfällt der parasitäre Pfad der Admittanzstromrückwirkung auf die Quelle. Die an der Admittanz (Vorwiderstand) anliegende Spannung wird in einen, von dessen
Leitwert bestimmten Strom umgewandelt. Der Stromfluß
in Z-Diode und Last führt zu einem Spannungsabfall über
beiden Bauelementen. Dadurch wird der Strom im Vorwiderstand, bedingt durch die Spannungsrückwirkung,
verringert. Das Regelverhalten der Z-Diode setzt bei einer Spannung von 5.1V ein, indem sich der differentielle
Widerstand sehr stark verringert.
Abbildung 4 zeigt das mit Simulink erzielte Resultat.
Am Oszilloskop sind die Verläufe von Quell- und Lastspannung dargestellt. Deutlich erkennbar ist die Regelwirkung der Diode. Der leichte Spannungsanstieg oberhalb der Z-Spannung resultiert daraus, daß der Diodeninnenwiderstand nicht gänzlich Null wird.
Abbildung 4: Simulierter Spannungsregler nach Abb. 3
5
Electrical-Level
Die Simulation einer Schaltung auf elektrischer Ebene erfolgt durch eine Knotenspannungsanalyse. Spice [8] oder
Cadence-Spectre [9] sind die wohl bekanntesten Vertreter dieser Gattung, die auch vielfältige Simulationsarten
unterstützen. Für deren Einsatz gibt es eine zusätzliche
Schnittstelle zu Mathematica. Eine Simulation auf elektrischem Niveau ist jedoch auch mit Simulink möglich.
Das erlaubt die Anwendung von Simulationen in Verbindung mit den in Mathematica implementierten symbolischen Analyse- und Strukturierungsverfahren sowie die
Modellierung von linearen und nichtlinearen Systemen
als Zustandsraum.
Die Vorverarbeitung der Systembeschreibung erfolgt
ausschließlich in Mathematica, so daß dem Simulationswerkzeug lediglich die Lösung des Gleichungssystems
zukommt. Derzeit sind Transienten- und Kleinsignalanalysen implementiert. Diese stellen sicherlich die Hauptanwendungsfälle dar. Es kann sowohl eine flache, wie
auch hierarchische Strukturbeschreibung verarbeitet werden. Durch die vorherige Partitionierung in Teilsysteme,
die sowohl funktional wie auch toplogisch erfolgen kann,
ist, bedingt durch kleinere Matritzen, eine höhere Simulationsgeschwindigkeit erreichbar.
Die Ergebnisdarstellung erfolgt für jeden Schaltungsknoten nach Betrag und Phase. Natürlich kann der Anwender auch andere Darstellungsformen durch Anschalten von Konvertierungsfunktionen erzeugen.
6
Ausblick
Die Implementierungen für Bauelemente- und elektrische Ebene sind dem Leistungsstand des functional-level
anzupassen. Diese Aufgabe soll in den kommenden Monaten bewältigt werden. Priorität hat dabei der Einbau
von Simulink-Modellen auf Bauelemente-Niveau. Nicht
zu vergessen ist in diesem Zusammenhang die Generierung geeigneter Testpattern.
Zur Steigerung der Geschwindigkeit und Entflechtung des Mason-Graphen auf Ebene der Bauelemente
könnten die bisher vorhandenen Teilgraphensubstitutionsverfahren um zusätzliche Funktionen erweitert werden.
Die eingangs erwähnte mangelnde Geschwindigkeit
der Simulation auf elektrischer Ebene muß behoben werden. Schnellere und zuverlässigere Konvergenz könnten durch den Einsatz anderer Lösungsverfahren erreicht
werden. Der Einbau von Rausch- und Empfindlichkeitsanalyse sind weitere Planungsziele.
Simulink-Modelle bieten bereits von Haus aus Unterstützung für Hilfe-Funktionen. Der Einbau einer Online-Dokumentationen bietet sich deshalb an. Entsprechende Maßnahmen sind in den Modellbeschreibungen
bereits vorgesehen, bisher jedoch noch nicht in Angriff
genommen worden.
Gegenwärtig kann das Werkzeug Simulink- und einfache Spice-Modelle erzeugen. Die weitere Planung umfaßt die Generierung von VHDL-AMS [10] Beschreibungen, die sich nicht nur zur Simulation auf der elektrischen Ebene einsetzen lassen. Die Implementierung der
Schnittstelle würde die Software zudem wesentlich uni-
verseller machen. Genauso wie die Ausgabe bestimmter
Formate, wäre das Einlesen bereits vorhandener Modellbeschreibungen auf höherem Abstraktionsniveau von Interesse.
Literatur
[1] J. Gajski, H. Kuhn, New VLSI tools, IEEE Computer, Nr. 16(12), S. 11-14, 1983
[2] S. Wolfram, Mathematica Ein System für Mathematik auf dem Computer, 2. Auflage, Addison Wesley
Verlag (Deutschland) GmbH, 1992
[3] J. Hoffmann, Matlab und Simulink in Signalverarbeitung und Kommunikationstechnik, Addison
Wesley Longman, München u.a., 1999
[4] J. Kampe, Die formale Beschreibung des Strukturentwurfs analoger Systemkomponenten, 6th International Workshop on Symbolic Methods and
Applications in Circuit Design, Instituto Superior
Técnico, Lisbon, Portugal, 12./13. Oktober 2000
[5] J. Kampe, Die elektrische Synthese analoger Schaltungen mit Signal-Wechselwirkungsdiagrammen,
10. E.I.S.-Workshop Entwurf Integrierter Schaltungen, ITG-Tagung, Dresden, 03. - 05. April 2001
[6] M. Kummer, Grundlagen der Mikrowellentechnik,
Verlag Technik, Berlin, 1986
[7] U. Mende, Netzwerkanalyse mit Mason-Graphen,
Verlag Technik, Berlin, 1987
[8] R. M. Kielkowski, Inside Spice, McGraw-Hill,
New-York NY u.a., 1998
[9] K. S. Kundert, The designer’s guide to Spice and
Spectre, Kluwer, Boston u.a., 1995
[10] J. Schuster, U. Jäger, Analoge Hardware-Beschreibungssprachen, Design&Elektronik, Analogtechnik, S. 40-43, Januar 2000
Herunterladen