LTSpice: subcircuit einbinden

Um eine manuell erstellte Netzliste (oder eine Netzliste aus anderen Programmen, z.B. in Form einer *.lib/*.sub/*.cir-Datei) für Simulationen nutzen zu können, sollten die nachstehenden Schritte ausgeführt werden.

1. Netzliste erstellen (wenn nicht vorhanden)

Insofern eine Netzliste noch nicht vorhanden ist, kann diese wie folgt erstellt werden:

  1. Textdatei anlegen
  2. Als Inhalt den .subckt-Ausdruck, gefolgt vom Name des Schaltkreises, gefolgt von der PIN-Belegung (z.B. .subckt myopamp 1 2 3). Wobei die Zahlen als Knoten-Nummern für die Verbindung zu anderen Komponenten verwendet werden (0 ist Ground). Die Reihenfolge der Zahlen entspricht dabei der „pin/port netlist order“.
  3. Abschließend den Schaltkreis mit.end abschließen
  4. Datei unter einem Dateinamen *.lib/*.sub/*.cir abspeichern. Der Dateiname muss dabei nicht identisch zum Namen des subcircuits sein (es ist außerdem möglich, mehrere subcircuits in einer Datei unterzubringen).

2. Symbol erstellen, was den subcircuit darstellt

  1. In LTSpice „File » New Symbol“ auswählen
  2. Das Symbol zeichnen (Line, Rect, Circle, …)
  3. Pins platzieren. Über „Edit » Add Pin/Port“ das Dialogfeld der Pin/Port-Eigenschaften aufrufen. Die Angabe Netlist Order entspricht dabei der Position des Pins im subcircuit. Die Angabe eines Pin-Labels verbessert die Übersichtlichkeit der einzelnen Pins, hat aber keinen Einfluss auf den subcircuit, wichtig ist die Angabe Netlist Order.
  4. Informationen wie Instance Name können zusätzlich im Dialogfeld unter „Edit » Attributes » Attribute Window“ eingetragen werden.

3. Eigenschaften im „Symbol Attribute Editor“ definieren

  1. Eigenschaftsdialog über „Edit » Attributes » Edit Attributes“ öffnen
  2. Im Auswahlfeld Symbol Type den Wert „Cell“ auswählen
  3. Unter Prefix den Wert „X“ eintragen. „X“ gibt LTSpice an, dass es sich um ein subcircuit handelt.
  4. Unter Value den Namen des subcircuits eintragen.
  5. Unter SPICELine können weitere Parameter übergeben werden.
  6. Den Wert für ModelFile frei lassen.
  7. Eigenschaftsdialog schließen und das erstellte Symbol über „File » Save As“ unter einem Dateinamen (*.asy) speichern.

4. Symbol platzieren

  1. Das Symbol über „Edit » Component“ auswählen und im Schaltplan platzieren.
  2. Die Verknüpfung zur Netzliste erhält man durch hinzufügen einer „Spice Directive“ unter Angabe der korrekten Pfadangabe mit .lib <path-to-file>\filename.ext. Liegt die Netzliste im gleichen Verzeichnis wie der Schaltplan, dann reicht folgende Zeile: .lib myopamp.lib oder .inc myopamp.cir.

7 comments on “LTSpice: subcircuit einbinden

  1. Danke, die Zusammenfassung ist super!! Erspart stundenlanges wieder-zusammen-suchen weil man es lange nicht mehr gemacht hat. 🙂

  2. Danke, die Anleitung hat sehr weiter geholfen. Könntest du eventuell auch einen kurzen Abriss darüber geben wie man einen Subcircuit in ein Subcircuit einbindet?
    Die Netzliste die ich habe ist von PSPL und sieht in etwa wie folgt aus.

    .SUBCKT BT5575 1 2 3
    * Subcircuit for PSPL model 5575A bias tee
    * subckt DCB5501 is required in this model
    XC1 1 6 DCB5501 ; -50%, +80%% TOLERANCE
    Rdc 6 4 0.6

    .ENDS

  3. Hallo Niklas,
    danke für deinen Kommentar. Leider hatte ich seit diesem Beitrag nur wenig mit LTSpice zu tun, sodass ich dir bei deinem Problem nur sehr wenig weiterhelfen kann.

  4. Hallo Mathias.
    Dürfte ich Dein TUT in meinem Forum ltspiceusers.ch posten?

    Hättest Du ev ein Rat, wie ich Symbole automatisiert aus einer lib erstellen kann?
    Habe eine 7400.lib aber keine asy dazu.

    PS: Gerne würde ich Dich als registrierten User begrüssen ^^

    1. Hallo Spicer,

      gern kannst du das Tutorial in deinem Forum verlinken. Danke dafür!

      Leider hatte ich seit meinem Post nicht wieder mit LTSpice gearbeitet, sodass ich dir bei deiner Frage leider nicht weiterhelfen kann.

    1. Danke! Aber bitte verlinke direkt auf den Artikel und nicht nur auf die Startseite.

      Forum schau ich mir gern an!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.