Fundamenten van SPICE Programmeren: Praktische Gids
Het programmeren van een schakelingssimulatie met SPICE volgt dezelfde principes als elke andere tekstgebaseerde programmeertaal. Je schrijft commando's in een platte-tekstbestand, slaat het op, en voert vervolgens een interpreter uit die de broncode vertaalt naar acties die de computer kan uitvoeren.
In SPICE is de interpreter een toegewijd programma dat op de computer geïnstalleerd moet zijn. Het bronbestand – vaak een netlist genoemd – bevat een reeks regels, elk een kaart genoemd, die componenten en speciale directieven beschrijven. Omdat SPICE een geïnterpreteerde taal is, wordt de netlist regel voor regel gelezen en uitgevoerd; geen afzonderlijke compilatiestap is vereist.
Netlists worden gemaakt in een platte-teksteditor (tekstverwerkers moeten vermeden worden omdat ze non-ASCII opmaak introduceren die de interpreter niet begrijpt). De syntaxis is eenvoudig: elke regel definieert ofwel een schakelingselement of een besturingscommando, en componenten worden verbonden door knooppunten nummers toe te wijzen. Bijvoorbeeld:
v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end
Hier is v1 een 15-V DC-bron tussen knooppunten 1 en 0; r1, r2 en r3 zijn weerstanden die de aangegeven knooppunten verbinden. Knooppunten delen hetzelfde nummer waar componenten samenkomen.
Na het maken van de netlist, roep je SPICE aan vanaf een terminal. Een typisch commando ziet er zo uit:
spice < example.cir
Het spice commando start de interpreter, het < symbool voedt de inhoud van example.cir toe, en de simulatie draait. SPICE kan de output ook pipen naar hulpprogramma's zoals more voor gepagineerde weergave:
spice < example.cir | more
Of de output omleiden naar een bestand voor later nakijken:
spice < example.cir > example.txt
Omdat de output platte ASCII is, kun je het bewerken met elke teksteditor of tekstverwerker, commentaar toevoegen, koppen herformateren, en printen zonder SPICE op de doelmachine geïnstalleerd te hebben.
Hieronder volgt een typische console-uitvoer van de voorbeeld-netlist. Het omvat de simulatie-header, de geparsde netlist, knooppuntspanningen, bronstromen, totale vermogensdissipatie en uitvoeringstijd.
1*******10/10/99 ******** spice 2g.6 3/15/83 ********07:32:42***** 0example netlist 0**** input listing temperature = 27.000 deg c v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end *****10/10/99 ********* spice 2g.6 3/15/83 ******07:32:42****** 0example netlist 0**** small signal bias solution temperature = 27.000 deg c node voltage node voltage ( 1) 15.0000 ( 2) 0.6522 voltage source currents name current v1 -1.117E-02 total power dissipation 1.67E-01 watts job concluded 0 total job time 0.02 1*******10/10/99 ******** spice 2g.6 3/15/83 ******07:32:42***** 0**** input listing temperature = 27.000 deg c
Voor een schonere presentatie kun je de output knippen na het omleiden naar een bestand. Een beknopt voorbeeld zou er zo uit kunnen zien:
example netlist v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end
node voltage node voltage ( 1) 15.0000 ( 2) 0.6522
voltage source currents name current v1 -1.117E-02
total power dissipation 1.67E-01 watts
Omdat zowel de in- als de output platte tekst zijn, zijn ze universeel leesbaar en gemakkelijk deelbaar across platforms. Voel je vrij om de output te verbeteren met tekstverwerkingsfuncties, uitlegcommentaar toe te voegen, of de resultaten te integreren in rapporten en presentaties.
Hieronder staan de sleutelstappen voor effectief SPICE-gebruik:
- Samenstellen van een netlist in een platte-teksteditor en opslaan.
- SPICE uitvoeren op het bestand en de output bekijken.
- Als er fouten verschijnen, de netlist bewerken en opnieuw uitvoeren.
- Itereren tot de simulatie de gewenste resultaten produceert.
- Eenmaal gevalideerd, de output omleiden naar een bestand voor opmaak en printen.
Door deze cyclus te volgen, ontwikkel je vertrouwen in SPICE-netlist-syntaxis en leer je hoe je veelvoorkomende problemen efficiënt kunt debuggen.
Let op: SPICE-bestandsextensies zijn flexibel; .cir, .inp, .txt, of geen extensie zijn allemaal acceptabel zolang de bestandsnaam voldoet aan de regels van je besturingssysteem.
Afbeeldingen in dit artikel illustreren SPICE-commando-structuur en output. Ze zijn als volgt ingesloten:
Industriële technologie
- Aan de Slag met SPICE: Tekstgebaseerde Schakelingssimulatie
- De Evolutie van SPICE: Van CANCER-wortels tot Moderne Schakelingssimulatie
- De Command-Line Interface Gebruiken met SPICE
- SPICE Netlist Syntaxis Beheersen: Componentnamen, Passieve & Actieve Elementen, en Brondefinities
- Microprocessor programmeringsfundamenten
- Uitgebreide gids voor halfgeleider apparaatmodellering in SPICE
- Elektrische circuitsimulatie met SPICE beheersen: Praktische gids voor ontwerpers en studenten
- Dubbele schijfslijpen onder de knie krijgen: Kernprincipes en voordelen
- Namespaces in C#: organisatie, scope en best practices
- C Programmeeroperatoren Beheersen: Een Uitgebreide Gids
- C-programmeren leren: Uitgebreide tutorial voor beginners