Ngspice

Was ist Ngspice?

Ngspice ist ein Programm zur Schaltungssimulation, welches Anhand von einer Netzliste und einer Plotliste ein sogenanntes "PostScript" erstellt. Dieses Postscript wird in dieser Loop-Erweiterung zu einem ".png" Bild konvertiert und angezeigt. Alternativ zu einem Bild kann das Ergebnis einer Schaltungssimulation auch in Textform vorliegen. Genauere Informationen sind in der Ngspice-Dokumentation aufgeführt.

Die Netzliste und Plotliste kann in dieser Erweiterung außerdem mit Variablen gefüllt werden. Für jede deklarierte Variable wird ein Textfeld angelegt. Durch ein solches Textfeld ist es möglich eine Variable mit Werten zu befüllen. Diesen Variablen können weitere Konfigurationen mitgegeben werden (siehe Konfiguration von Variablen).


Beispiel
<loop_media type="simulation" title="RC-Filter Transient">

<ngspice>
<ngspice_netlist>
*RC Filter Transient example
	
V1 in 0 sin(0 1 1e6)
R1 in out {R1}k
C1 out 0 {C1}p
	
.TRAN 10n 10u
.end
</ngspice_netlist>

<ngspice_plot>v(in) v(out)</ngspice_plot>

<ngspice_image>rctran.png</ngspice_image>

<ngspice_varconfig var="R1" min="10" max="50"
                   value="50" x="320" y="0"
                   width="40" label=""
                   bgcolor="yellow" textcolor="blue"
></ngspice_varconfig>

<ngspice_varconfig var="C1" min="30" value="30"
                   x="487" y="140" label=""
                   width="40" bgcolor="yellow" textcolor="blue"
></ngspice_varconfig>

</ngspice>
</loop_media>

Die Wirkung dieser Angabe ist folgende:


Ngspice einbinden

Um Ngspice einzubinden gibt es verschiedene Konfigurationsmöglichkeiten. Einige davon müssen zwingend angegeben werden.

Das Einbinden beginnt mit dem <ngspice> Element, welches am Ende der Einbindung mit </ngspice> geschlossen wird. Innerhalb dieses Elements müssen alle Angaben geschrieben werden.

Code
<ngspice>
...
</ngspice>

Ngspice benötigt als Mindestangabe eine Netzliste und eine Plotliste. Diese werden wie folgt angegeben:

Code
<ngspice_netlist>
...
</ngspice_netlist>

<ngspice_plot>
...
</ngspice_plot>


Einbinden eines Schaltungsbilds

Das Einbinden eines Schaltungsbilds ist wie folgt möglich:

Code
<ngspice_image>BILDNAME</ngspice_image>

Simulationsergebnisse im Schaltungsbild darstellen

Die Simulationsergebnisse werden von Ngspice der Reihe nach ausgegeben. Diese Ergebnisse können im Schaltungsbild an beliebiger Position dargestellt werden:

Code

Beispiel:

<ngspice_result_0 x="200" y="185" bgcolor="yellow" textcolor="blue">
</ngspice_result_0>

ngspice_result_0 steht für das erste Simulationsergebnis. Für das nächste Ergebnis muss für die Darstellung ngspice_result_1 eingegeben werden. Diese Reihenfolge ergibt sich aus dem Simulationsergebnis in Textform.

Variablen

Variablen können innerhalb der Netz- und der Plotliste angegeben werden. Die Syntax zur Deklaration sieht wie folgt aus:

Code
{Variablenname}

Durch diese Angabe wird automatisch ein Eingabefeld für diese Variable erzeugt.


Konfiguration von Variablen

Variablenkonfigurationen sind optional und werden wie folgt angegeben:

Code
<ngspice_varconfig></ngspice_varconfig>

Die einzelnen konfigurationen werden als Attribut eingebunden. Hier ein Beispiel:

Code
<ngspice_varconfig value="20"></ngspice_varconfig>


Wichtig

Bei Angabe einer Variablenkofiguration gibt es einen Pflichtparameter. Über diesen Pflichtparameter wird der Name der Variable angegeben, welcher die angegebenen Konfigurationen zuzuordnen sind:

<ngspice_varconfig var="VARIABLENNAME"></ngspice_varconfig>

Folgende Konfigurationen sind möglich:

Parameter Werte Beschreibung
var Variablenname ohne { und } Name der zugehörigen Variable.
min Numerisch Mindestwert der für die Variable akzeptiert wird.
max Numerisch Maximalwert der für die Variable akzeptiert wird.
value Numerisch Defaultwert der im Textfeld stehen soll.
label Text Angezeigter Text über dem Textfeld.
width Numerisch Breite des Textfelds in px.
x Numerisch Position der Textfelds auf der X-Achse.
y Numerisch Position der Textfelds auf der Y-Achse.

Ergebniskonfiguration

Textuelle Simulationsergebnisse werden standardmäßig in Text- und Tabellenform ausgegeben. Diese Ausgabe kann mit folgenden Befehlen konfiguriert werden:

Code

Mit folgender Anweisung kann die Ausgabe in Textform unterdrückt werden:

<ngspice_show_raw>false</ngspice_show_raw>

Wird der Wert auf "true" gesetzt, so wird die Ausgabe in Textform zugelassen.


Code

Mit folgender Anweisung kann die Ausgabe in Tabellenform unterdrückt werden:

<ngspice_show_table>false</ngspice_show_table>

Wird der Wert auf "true" gesetzt, so wird die Ausgabe in Tabellenform zugelassen.