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