Aus Linux-Magazin 05/2019

Digitale und analoge Schaltungen simulieren

© Andrei Kuzmik, 123RF

Für Elektronikentwickler können Versuchsaufbauten sehr nervig werden, gerade wenn sie mehrfach aufwändig verdrahtete oder mechanisch fordernde Bauteile gegen alternative tauschen müssen. Da freut es, wenn die Auswahl an Simulatoren abseits des angestaubten Spice einiges an Spannung verspricht.

Wer bei Flipflop nicht ans Eislaufen denkt, bei And-Gatter nicht an Tierhaltung, bei Wahrheitstabelle nicht an Zeugenaussagen und bei Fourier nicht an einen Heiligen der katholischen Kirche, der hat wohl ein technisches Studium absolviert mit hohem Anteil an Schaltungstechnik. Er oder sie wird sich vielleicht noch mit Grausen an die Fallstricke erinnern, welche die länglichen Berechnungen bereithielten – einmal am Anfang einer Automatisierungstechnik-Übung irgendwo eine 0 oder 1 falsch interpretiert, und alle danach ausgefüllten Tabellen, Zustandsdiagramme und Schaltungen waren Makulatur. Auch beim Entwurf einer analogen Schaltung lauern zahllose Gelegenheiten, mit kleinen Fehlern großen Unfug zu fabrizieren.

Zum Glück gibt es sowohl für digitale wie analoge Schaltungstechnik Simulatoren, also Spezialsoftware, die in Kenntnis des geplanten Schaltplans per Software generierte Testsignale durch die virtuelle Schaltung schickt und Ausgangssignale errechnet. Die Erwartungen der Benutzer, die Art und Weise der Bedienung sowie die algorithmische Ausgestaltung der Software unterscheidet sich zwischen analoger und digitaler Simulation derart stark, dass viele der angebotenen Programme jeweils nur eine der beiden Disziplinen beherrscht. Das ist in der Praxis allerdings kein Problem, selbst für Entwickler, die mal eine gemischte Schaltung zu analysieren haben. Sie simulieren einfach den analogen und den digitalen Teil mit jeweils einem anderen Programm. Der vorgelegte Artikel stellt einige Simulatoren vor, die ihren Ursprung im akademischen Kosmos haben.

Logisim-Evolution

2014 stellte der Entwickler Carl Burch die Arbeit an dem beliebten Open-Source-Logiksimulator Logisim ein. Sogleich entstanden mehrere Forks:

  • Logisim-Evolution von Leuten an vier Schweizer Bildungseinrichtungen,
  • Logisim von Joseph Lawrance am Wentworth Institute in Boston,
  • Logisim-iitd am Indian Institute of Technology, Delhi,
  • Logisim vom Kurs CS3410 an der Cornell University in Ithaca, New York.

Digital-Simulatoren sind oft Java-Programme. So startet das GPLv3-Programm Logisim-Evolution [1] mit »java -jar logisim-evolution.jar«. Das Team führt die Arbeit an Logisim weiter, eine weitgehende Kompatibilität zu den früheren Formaten ist gegeben. Die Oberfläche, die sieben Sprachen spricht, darunter Deutsch, zeigt links eine Baumstruktur, in welcher sich der Benutzer an Gattern, ganzen Schaltungen, DIP-Switches, LEDs, Verbindungen, Bussen, Ein- und Ausgängen und so weiter bedient.

Nach dem Start der Simulation darf der Anwender den Pegel an Eingängen mit einem Schaltwerkeug per Maus von Low auf High umschalten und sich die Auswirkungen anschauen. Getaktete Schaltung stept der entweder Zug und Zug durch oder lässt den Takt in einer von ihm vorgegebenen Frequenz durchlaufen. Die getestete und für gut befundenen Schaltung lässt sich nicht nur als Bild exportieren, sondern auch in Form von FPGA-Daten, also für programmierbare Logikchips. Die projekteigene Dokumentation ist recht dürftig, das per Oberfläche klickbare reichhaltige Anwenderhandbuch stammt noch aus Logisim-Zeiten.

Digital

Ebenfalls vom Logisim-Aus inspiriert fühlte sich Prof. Helmut Neemann von der Dualen Hochschule Baden-Württemberg in Mosbach, selbst einen Digital-Logik-Designer und -Simulator 2016 als privates Projekt unter der GPLv3 auf die Schiene zu heben. Sein Digital [2] ist ein Rewriting und kein Logisim-Fork und setzt ein JRE ab Version 8 voraus.

Auch bei seiner Software verbinden die Anwender im Bearbeitungsmodus logischer Gatter und andere Elemente durch Leitungen miteinander (Abbildung 1). Im Simulationsmodus, der zuerst die Schaltung auf Konsistenz prüft, können Benutzer beispielsweise virtuelle Knöpfe betätigen und Eingangswerte setzen. Es sind ziemlich viele Beispielschaltung verfügbar bis hin zu einem 16-bittigen Single-Cycle-Harvard-Prozessor.

Abbildung 1: Im Bearbeitungsmodus von Digital platziert der Benutzer die Gatter oder auch komplexeren Schaltkreise – hier ein EPROM.

Abbildung 1: Im Bearbeitungsmodus von Digital platziert der Benutzer die Gatter oder auch komplexeren Schaltkreise – hier ein EPROM.

Digital kann fertige Schaltungen nicht nur als SVG-Bilder exportieren, sondern auch in den Formaten VHDL und Verilog. Zudem unterstützt es die Weiterverarbeitung für die Boards Basys 3, Mimas und Mimas V2. Per Direktexport als Jedec-Files sind zudem die Bausteine GAL16v8, GAL22v10 und ATF150x flashbar.

Qucs

Quite Universal Circuit Simulator, kurz Qucs [3], stellt für nieder- wie hochfrequente Schaltungen sehr aufwändige Berechnungen (S-Parameter, Transienten, harmonische Balance, Gleichspannungen und mehr) an und zeichnet aufschlussreiche Diagramme, dass es für Kenner eine Freude ist. Unter der Qucs-Oberfläche sind sogar Digitalsimulationen möglich. Das Programm zieht dabei im Backend Free HDL [4] zu Rate.

Michael Margraf und Stefan Jahn (beide TU Berlin) veröffentlichten 2003 die erste Version der GPLv2-Software. Qucs arbeitet auf Linux, Free BSD, Mac OS oder Windows, seine Installation und die Abhängigkeiten zählt eine »README.md«-Datei auf. Viele Linux-Distributionen halten Qucs in ihren Repositories vor – oft allerdings in älterer Version. Die Bedienoberfläche stützt sich auf Qt.

Abbildung 2: Klassischer Meißner-Oszillator in Qucs mit Messpunkt und platzierter Transienten-Simulation.

Abbildung 2: Klassischer Meißner-Oszillator in Qucs mit Messpunkt und platzierter Transienten-Simulation.

2011 nahm Margraf bei dem Projekt seinen Hut sowie das Konzept mit und gründete das konkurrierende Qucs Studio [5], das lizenzkostenfrei, aber nur für Windows verfügbar ist. Eine weitere Qucs-Abspaltung heißt Qucs-S [6], das im Backend Qucs sowie den Simulations-Klassiker Spice in Form von Ngspice, XYCE und Spice Opus benutzt. Qucs-S ist unter Linux und Wondows lauffähig.

Schritt für Schritt

Nach dem Anlegen eines neuen Qucs-Projekts landet der Bediener im Schaltplaneditor. Dort wählt er im linken Bildschirmteil ein erstes Bauteil aus, es klebt am Cursor und er platziert es rechts. Dann vergibt er Werte, zum Beispiel einem Kondensator eine Kapazität. Weiter geht es zum nächsten Bauteil, zu einer Stromversorgung, einem Signaleingang und so weiter. Dann verbindet man die Bauteile mittels einer Verdrahtungsfunktion und setzt Messpunkte, welche als Outputs für die Simulation dienen.

Abbildung 3: Die Simulation zeigt, dass sich der Oszillator nach dem Einschalten einschwingen wird.

Abbildung 3: Die Simulation zeigt, dass sich der Oszillator nach dem Einschalten einschwingen wird.

Nun wechselt der Benutzer links auf »Simulation« und zieht die gewünschte Simulationsart wie zuvor ein Bauteil in die Schaltung hinein (Abbildung 2). Mit [F2] startet die eigentliche Simulation. Ein leeres Fenster mit Reiter ist zu sehen, der Bediener nimmt links eine Diagrammart und schiebt sie ins leere Fenster. Im sich öffnenden Dialog wählt er einen Messpunkt und kann das fertige Diagramm platzieren (Abbildung 3).

In Schwung kommen

Wer analoge Schaltungen simuliert, die aus sich selber heraus schwingen, läuft Gefahr, in eine Falle zu tappen: Viele Oszillatoren verharren bei der Simulation mangels äußerer Einflüsse in ihrem Ausgangszustand. Eine praktisch aufgebaute Schaltung würde dagegen loslaufen, weil Nichtlinearitäten beim Einschalten oder das Rauschen aktiver Bauelemente den Eingangszustand kippen und die Oszillation herbeiführen.

Die Simulation dagegen idealisiert, der Benutzer muss darum selbst der Schaltung einen Schubs verpassen. Eine Möglichkeit ist die Versorgungsspannung beim Start in einem programmierten Rampenverlauf hochzufahren. Alternativ ist es möglich, innerhalb des Schwingkreises, zum Beispiel an der Basis eines Transistors, anfänglich ein Rausch- oder anderes Signal einzuspeisen. Ob und wie gut das mit der eigenen Simulationssoftware klappt, kann sich der Oszillator-Bastler ergooglen, oder er probiert es schlicht aus.

Der große Mehrwert liegt jedoch in den Optimierungsfunktionen, die im Kern einzelne Eigenschaften der Bauteile als Variablen deklarieren und innerhalb definierter Grenzen ändern. Der Benutzer legt zudem die Ziele seiner Optimierung fest, zum Beispiel eine Amplitude, einen Gleichspannungs- oder Dämpfungswert. Die Optimierung führt dann für alle Kombinationen je einen Simulationslauf durch, unterzieht die Ergebnisse einer Matritzenberechnung und bestimmt so die geeigneten Bauelemente-Parameter.

Fazit

Alle vorgestellten Simulatoren aus dem Bildungsbereich taugen uneingeschränkt für die praktische Elektronikentwicklung. Wichtig wie bei kaum einer anderen Software-Kategorie ist aber eine Community für die Pflege der Bauteile-Bibliotheken. Denn die Industrie wirft ständig neue Bauteile auf den Markt.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben