Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf ·...

7
Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim Haase Fraunhofer-Institut für Integrierte Schaltungen Außenstelle EAS Dresden, Zeunerstr. 38, 01069 Dresden Tel.: 0351-4640 736 Fax: 0351-4640 703 E-Mail: [email protected] Kurzfassung: Im Rahmen eines Tutorials wird ein Überblick zu Anwendungsmöglichkeiten der standardisierten Hardwarebeschrei- bungssprache VHDL-AMS (VHDL 1076.1-1999) gegeben. Grund- konzepte dieser Sprache zur Modellierung digitaler, analoger und gemischt analog-digitaler Systeme werden vorgestellt und anhand einfacher typischer Beispiele erläutert. Es wird gezeigt, wie die Modellierung einer Drehzahlregelung mit VHDL-AMS und ihre Simulation mit dem Simulator hAMSter erfolgen kann. 1. Einführung Seit Ende der achtziger Jahre hat die Sprache VHDL weite Verbreitung bei der Dokumentation und Modellierung digitaler Systeme in der Elektronikentwick- lung gefunden. Die Buchstaben HDL stehen dabei für Hardware Description Language, das V für VHSIC (Very High Speed Integrated Circuits). VHDL wird für Schaltungssynthese und –simulation eingesetzt, dient als Austausch- mittel von Chipentwicklern und Schaltungsanwendern (siehe z. B. [1]). Diese Erfolge haben seit Beginn der neunziger Jahre im Rahmen einer IEEE- Arbeitsgruppe zur Ausarbeitung von Erweiterungen von VHDL zur Beschrei- bung analoger und gemischt analog-digitaler Systeme geführt [2]. Das Ergeb- nis dieser Aktivitäten ist die 1999 von der IEEE standardisierte herstellerunab- hängige Sprache VHDL-AMS zur Beschreibung digitaler, analoger und ge- mischt analog-digitaler Systeme [3]. Die Sprache basiert auf dem IEEE Stan- dard 1076-1993 (VHDL) und erweitert ihn um Konstruktionen zur Beschrei- bung und Simulation analoger und gemischt analog-digitaler Systeme. Alle Konzepte von VHDL sind bei VHDL-AMS erhalten geblieben. VHDL-AMS ist somit eine Obermenge von VHDL (siehe Bild 1). Für die Simulation ana- log-digitaler Systeme bedeutet VHDL-AMS einen wesentlichen Fortschritt gegenüber den vorangegangenen Lösungen für derartige Aufgaben. Bild 1: VHDL-AMS als Obermenge von VHDL 1076-1993 Die analogen Erweiterungen machen die Sprache nun aber nicht nur für Chip- entwickler und –anwender interessant. Mit VHDL-AMS können zahlreiche Probleme modelliert werden, deren Simulation des digitalen Teils mit einem VHDL 1076-1993 VHDL-AMS (VHDL 1076.1-1999)

Transcript of Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf ·...

Page 1: Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf · Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim

Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185

183

Simulation mit VHDL-AMS

Joachim Haase Fraunhofer-Institut für Integrierte Schaltungen

Außenstelle EAS Dresden, Zeunerstr. 38, 01069 Dresden

Tel.: 0351-4640 736 Fax: 0351-4640 703 E-Mail: [email protected]

Kurzfassung: Im Rahmen eines Tutorials wird ein Überblick zu Anwendungsmöglichkeiten der standardisierten Hardwarebeschrei-bungssprache VHDL-AMS (VHDL 1076.1-1999) gegeben. Grund-konzepte dieser Sprache zur Modellierung digitaler, analoger und gemischt analog-digitaler Systeme werden vorgestellt und anhand einfacher typischer Beispiele erläutert. Es wird gezeigt, wie die Modellierung einer Drehzahlregelung mit VHDL-AMS und ihre Simulation mit dem Simulator hAMSter erfolgen kann.

1. Einführung Seit Ende der achtziger Jahre hat die Sprache VHDL weite Verbreitung bei der Dokumentation und Modellierung digitaler Systeme in der Elektronikentwick-lung gefunden. Die Buchstaben HDL stehen dabei für Hardware Description Language, das V für VHSIC (Very High Speed Integrated Circuits). VHDL wird für Schaltungssynthese und –simulation eingesetzt, dient als Austausch-mittel von Chipentwicklern und Schaltungsanwendern (siehe z. B. [1]). Diese Erfolge haben seit Beginn der neunziger Jahre im Rahmen einer IEEE-Arbeitsgruppe zur Ausarbeitung von Erweiterungen von VHDL zur Beschrei-bung analoger und gemischt analog-digitaler Systeme geführt [2]. Das Ergeb-nis dieser Aktivitäten ist die 1999 von der IEEE standardisierte herstellerunab-hängige Sprache VHDL-AMS zur Beschreibung digitaler, analoger und ge-mischt analog-digitaler Systeme [3]. Die Sprache basiert auf dem IEEE Stan-dard 1076-1993 (VHDL) und erweitert ihn um Konstruktionen zur Beschrei-bung und Simulation analoger und gemischt analog-digitaler Systeme. Alle Konzepte von VHDL sind bei VHDL-AMS erhalten geblieben. VHDL-AMS ist somit eine Obermenge von VHDL (siehe Bild 1). Für die Simulation ana-log-digitaler Systeme bedeutet VHDL-AMS einen wesentlichen Fortschritt gegenüber den vorangegangenen Lösungen für derartige Aufgaben. Bild 1: VHDL-AMS als Obermenge von VHDL 1076-1993 Die analogen Erweiterungen machen die Sprache nun aber nicht nur für Chip-entwickler und –anwender interessant. Mit VHDL-AMS können zahlreiche Probleme modelliert werden, deren Simulation des digitalen Teils mit einem

VHDL 1076-1993

VHDL-AMS (VHDL 1076.1-1999)

Page 2: Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf · Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim

184

ereignisgesteuerten Simulationskern durchgeführt werden kann und für den analogen Teil auf die Lösung eines Algebrodifferentialgleichungssystem (DAE’s) führt [4]. Das ermöglicht die Einbeziehung analoger Verhaltensmo-delle für elektrische und nichtelektrische Teilsysteme, regelungstechnischer Blöcke, nutzerspezifischer Bauelementemodelle, von D/A- sowie A/D-Wandlern etc. in die Simulation. Zahlreiche Simulationsaufgaben, für die bis-her eine Reihe von Spezialsimulatoren erforderlich waren, können mit VHDL-AMS-Simulatoren gelöst werden. Modelle können in Simulatoren verschiede-ner Hersteller genutzt werden. Für den Anwender hat dies den Vorteil, daß der bei der Modellierung getriebene Aufwand beim Wechsel des Simulators nicht verloren geht. Auch können Modelle unterschiedlicher Herkunft miteinander bei der Simulation verknüpft werden. Diese Vorteile haben in den vergangenen zwei Jahren eine Reihe von Herstel-lern bewogen, VHDL-AMS-Simulatoren anzubieten oder anzukündigen [5-8]. Auch der Simulator hAMSter reiht sich hier ein [9]. 2. Grundlegende Konzepte von VHDL-AMS In VHDL-AMS wird wie in VHDL die Beschreibung des Randes eines Mo-dells von der seines Verhaltens getrennt. In der Randbeschreibung (ENTITY) wird die Schnittstelle des Modells zu seiner Umgebung beschrieben. Das heißt, es werden die Klemmen (PORT) charakterisiert, an denen das zu modellieren-de Teilsystem mit anderen zusammengeschaltet werden kann. Als Verbin-dungspunkte sind in VHDL-AMS

digitale Signalklemmen (SIGNAL PORT) konservative Klemmen (TERMINAL PORT) und nichtkonservative Klemmen (QUANTITY PORT)

zugelassen. An den digitalen Signalklemmen sind zeitdiskrete Signalverläufe möglich. An den konservativen Klemmen werden zeitkontinuierliche Fluß- und Differenzgrößen ausgewertet. Im Fall elektrischer Klemmen sind das Ströme bzw. Spannungen. Bei Zusammenschaltung konservativer Klemmen wird durch den Simulator gesichert, daß von den sich einstellenden Fluß- und Diffe-renzgrößen die Kirchhoffschen Gesetze erfüllt werden. Die Klemmen können unterschiedlichen physikalischen Bereichen (NATURE) zugeordnet werden. Dieses Konzept ermöglicht eine Modellierung elektrisch-nichtelektrischer Sys-teme. An nichkonservativen Klemmen stellen sich zeitkontinuierliche Verläufe ein. Üblicherweise werden nichtkonservative Klemmen bei der Beschreibung des Randes regelungstechnischer Blöcke verwendet. Ein Modell kann sowohl digitale Signalklemmen als auch konservative und nichtkonservative Klemmen besitzen. Unterschiedliche Klemmen müssen beispielsweise bei der Modellie-rung von A/D- und D/A-Wandlern verwendet werden. Die konservativen Klemmen können verschiedenen physikalischen Bereichen zugeordnet sein. Das Modell eines Motors mit elektrischen und rotatorischen Klemmen möge hierfür als Beispiel dienen. Zur Randbeschreibung gehört in der Regel auch die Deklaration von Parametern, deren Werte bei Instanziierung des Modells ver-ändert werden können (GENERIC). Die Randbeschreibung eines Modells stellt eine Entwurfseinheit (design unit) dar. Alle Entwurfseinheiten können in VHDL-AMS in getrennten Dateien gespeichert werden.

Page 3: Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf · Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim

185

Die eigentliche Beschreibung des Verhaltens eines Teilsystems erfolgt in einer ARCHITECTURE. Mit einer ARCHITECTURE wird beschrieben, welche zeitdiskreten und zeitkontinuierlichen Verläufe an den Klemmen zulässig sind. Die Zuweisungen für die digitale zeitdiskreten Signale werden mit den soge-nannten concurrent statements vorgenommen, Bedingungen für analoge zeit-kontinuierliche Verläufe werden mit simultaneous statements formuliert. Unter Verwendung von PROCESSen oder Funktionen können kompliziertere Zuwei-sungen und Bedingungen formuliert. VHDL_AMS stellt ihrer Formulierung die sequential statements zur Verfügung. Zu einer Randbeschreibung können mehrere Architekturen formuliert werden. Damit ist es möglich ein Teilsystem auf unterschiedlichen Abstraktionsniveaus zu modellieren und in verschiede-nen Simulationsläufen die Beschreibungen leicht gegeneinander auszutau-schen. Dies kann sich aus Rechenzeit und Speicherplatzgründen erforderlich machen. Ein Grund kann auch sein, daß während der Spezifikationsphase noch keine detaillierten Modelle für Teilsysteme zur Verfügung stehen. Jede ARCHITECTURE ist eine eigene Entwurfseinheit. In Bild 2 ist exemplarisch die VHDL-AMS-Beschreibung einer Kapazitität mit zwei konservativen elektrischen Klemmen p und m dargestellt. Der Kapazi-tätswert, der bei der Instanziierung verändert werden kann, ist c_value. Zur Beschreibung des Verhaltens wird ein Zweig mit der Zweigspannung v und dem Zweigstrom i deklariert, der die beiden Klemmen verbindet. Mit einem simultaneous statement (i==c_value*v'DOT) wird die Beziehung zwischen i und v beschrieben.

LIBRARY DISCIPLINES; USE DISCIPLINES.ELECTROMAGNETIC_SYSTEM.ALL; ENTITY cap IS GENERIC (c_value : real := 1.0E-6); PORT (TERMINAL p, m : electrical); END ENTITY cap; ARCHITECTURE ideal OF cap IS QUANTITY v ACROSS i THROUGH p TO m; BEGIN i == c_value*v'DOT; END ARCHITECTURE ideal;

Bild 2: ENTITY und ARCHITECTURE einer Kapazität Unter Verwendung der Informationen der Randbeschreibungen von Modellen ist der Aufbau umfangreicherer Strukturen möglich. Die einzelnen Modelle sind dabei zu instanziieren. Bei der Instanziierung werden die Randklemmen unter Verwendung der aktuellen Knotenbezeichnungen miteinander verbunden. Den Parametern werden aktuelle Werte zugewiesen. Eine hierarchischer Mo-dellbeschreibung wird unterstützt. Als Beispiel wird die strukturelle Beschrei-bung eines PI-Gliedes vorgestellt. Verwendet werden die zur ENTITY p_contr gehörende ARCHITECTURE a1 zur Beschreibung eines P-Gliedes mit dem Proportionalbeiwert kp und die zur ENTITY i_contr gehörende ARCHITECTURE a1 eines I-Gliedes mit dem Integrierbeiwert ki (siehe Bild 3). Klemmen dieser regelungstechnischen Blöcke sind die nichtkonservative Eingangsklemmen i und Ausgangsklemmen o.

v

p m

i

dt i = c_value ⋅

dv

Page 4: Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf · Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim

186

ENTITY p_contr IS GENERIC (kp : real := 1.0); PORT (QUANTITY i : IN real; QUANTITY o : OUT real); END ENTITY p_contr; ARCHITECTURE a1 OF p_contr IS BEGIN o == kp*i; END ARCHITECTURE a1;

ENTITY i_contr IS GENERIC (ki : real := 1.0); PORT (QUANTITY i : IN real; QUANTITY o : OUT real); END ENTITY i_contr; ARCHITECTURE a1 OF i_contr IS BEGIN o == ki*i'INTEG; END ARCHITECTURE a1;

Bild 3: VHDL-AMS-Beschreibung für P- und I-Glied Das PI-Glied wird unter Verwendung der Modelle von P- und I-Glied model-liert (siehe Bild 4). Die Modelle der verwendeten Blöcke werden direkt instan-ziiert. USE WORK.ALL; ENTITY pi_contr IS GENERIC (kp : real := 1.0; -- proportional gain ki : real := 1.0 -- integral gain ); PORT (QUANTITY i : IN real; QUANTITY o : OUT real); END ENTITY pi_contr; ARCHITECTURE a1 OF pi_contr IS QUANTITY o_p_contr : real; QUANTITY o_i_contr : real; BEGIN P1: ENTITY p_contr(a1) GENERIC MAP (kp) PORT MAP (i, o_p_contr); I1: ENTITY i_contr(a1) GENERIC MAP (ki) PORT MAP (i, o_i_contr); O == o_p_contr + o_i_contr; END ARCHITECTURE a1; Bild 4: Strukturelle Beschreibung eines PI-Gliedes

i o p_contr

i o i_contr

i o

p_contr

o

i_contr

+

o_p_contr

o_i_contr

o

Page 5: Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf · Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim

187

Die Beschreibung des gesamten zu modellierenden und simulierenden System einschließlich der Signalquellen ist auf der oberen Ebene (top level) eine (meist strukturelle) Beschreibung ohne weitere Anschlußklemmen. Diese Beschrei-bung wird häufig auch als Testbench bezeichnet. Hinsichtlich weiterer Einzelheiten muß an dieser Stelle auf einschlägige VHDL-Bücher (wie z. B. [1]) und den VHDL-AMS-Standard [3] verwiesen werden. 3. Simulationsvorbereitung und -start Zur Vorbereitung und Durchführung der Simulation sind grob gesprochen im wesentlichen drei Schritte zu absolvieren:

Editieren Kompilieren Starten der Simulation

Im Editierschritt sind die Dateien zu erstellen, in denen die Entwurfseinheiten gespeichert sind. Das sind beispielsweise Dateien mit ENTITY- und ARCHITECTURE-Beschreibungen. Für diesen Schritt wird zur Zeit in der Regel ein Texteditor verwendet. Die einzelnen Entwurfseinheiten müssen nacheinander übersetzt (kompiliert) werden. Die Übersetzung ist von „außen nach innen“ und von „unten nach oben“ durchzuführen. Zunächst sind die EN-TITY-Beschreibungen zu übersetzen, die auf der untersten Hierarchieebene verwendet werden. Nach der Übersetzung einer ENTITY können die zugehöri-gen Architekturen kompiliert werden. Es schließt sich die Übersetzung der Beschreibungen der nächsthöheren Hierarchieebene an. Die Übersetzung der Testbench bildet den Abschluß. Beim Start des eigentlichen Simulators werden vom Nutzer spezielle Angaben für den Simulationsalgorithmus (z. B. Schritt-weitenbegrenzungen, Endzeit der Simulation usw.) festgelegt und Ausgabe-größen ausgewählt. Diese Vorgehensweise ist typisch für VHDL- und VHDL-AMS-Simulatoren und durch die entsprechenden Standards auch weitestge-hend vorgegeben. Bei der Ausführung der einzelnen Schritte wird der Anwen-der in der Regel durch ein grafisches Nutzerinterface unterstützt. 4. Drehzahlregelung Durch Zusammenschaltung einfacher Modelle für Teilsysteme können Be-schreibungen für kompliziertere Systeme erstellt werden. Bild 5 zeigt das Schaltungsprinzip für eine Motorregelung. In Abhängigkeit vom Lastmoment stellt sich eine von der Solldrehzahl ωref des Motors abweichende Istdrehzahl ωist ein. Unter zusätzlicher Auswertung des Ankerstromes iist wird durch den Regler eine Öffnung oder Schließung des Schalters im Ankerkreis des Motors veranlaßt. Unter Verwendung des in Abschnitt 2 diskutierten Modells für den PI-Gliedes kann der Regler zu Drehzahlregelung aufgebaut werden. Das Mo-tormodell hat zwei elektrische Klemmen zum Anschluß des Ankerkreises an Generator und Gleichrichter, eine mechanisch-rotatorische Klemmen zur Ver-bindung mit dem Lastmodell und zwei nichkonservative Klemmen, an denen Ankerstrom und Istdrehzahl bereit gestellt werden.

Page 6: Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf · Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim

188

Bild 5: Drehzahlregelung eines Motors Bild 6 zeigt die Verläufe von Ankerstrom und Istdrehzahl nach dem Einschal-ten des Generators und Zuschalten und Wechsel des Lastmoments, die mit dem Simulator hAMSter bestimmt worden sind.

Bild 6: Ankerstrom (oben) und Motordrehzahl (unten) bei Zuschalten des

Lastmoments zur Zeit 0 und Lastwechsel nach 75 ms Für die Bereitstellung der Beispieldaten und anschließende Diskussionen wird den Herren Dr. Lutz Zacharias und Frank Irmisch von der SIMEC GmbH & Co KG Chemnitz gedankt. Eine ausführlichere Beispielbeschreibung wird im Rahmen des Tutorials vorgestellt.

Lastmoment

M

iist ωist

ωref

Generator Gleichrichter Motor

Regler

Schalterbetätigung

Page 7: Simulation mit VHDL-AMSpublications.eas.iis.fraunhofer.de/papers/2001/020/paper.pdf · Simplorer-Workshop, Chemnitz, 16.-18. 5. 2001, S. 183-185 183 Simulation mit VHDL-AMS Joachim

189

Literaturverzeichnis [1] Bhasker, J.: Die VHDL-Syntax. München: Prentice Hall Verlag, 1996.

[2] http://www.vhdl.org/analog (IEEE Working Group 1076.1)

[3] IEEE Standard VHDL Analog and Mixed-Signal Extensions IEEE Std 1076.1-1999. New York: The Institute of Electrical and Electronics En-gineers, Inc., 1999 (ISBN 0-7381-1640-8).

[4] Christen, E.; Bakalar, K.: VHDL-AMS – A Hardware Description Lan-guage for Analog and Mixed-Signal Applications. IEEE Transactions on CAS-II 46(1999)10, 1263-1272.

[5] http://www.mentor.com/ams/simulation.html#advms (Simulator ADVance MS von Mentor Graphics)

[6] http://www.vhdl-ams.com/Analogy/ (VHDL-AMS-Simulator von Avanti, Inc.)

[7] http://www.dolphin.fr (Simulator SMASH von Dolphin Integration)

[8] http://www.ftlsystems.com/ (Tools von FTL Systems, Inc.)

[9] http://www.hamster-ams.com/ (Simulator hAMSter von SIMEC GmbH & Co KG)