Programmation SPICE : guide pratique des netlists et syntaxe
Programmer une simulation de circuit avec SPICE suit les mêmes principes que tout langage de programmation textuel. Vous écrivez les commandes dans un fichier texte brut, l'enregistrez, puis lancez un interpréteur qui traduit le source en actions exécutables.
Dans SPICE, l'interpréteur est un programme dédié qui doit être installé. Le fichier source — communément appelé netlist — contient une série de lignes, chacune appelée card, décrivant composants et directives spéciales. Comme SPICE est un langage interprété, la netlist est lue et exécutée ligne par ligne ; aucune compilation séparée n'est requise.
Les netlists sont créées dans un éditeur de texte brut (les traitements de texte sont à éviter car ils introduisent du formatage non-ASCII que l'interpréteur ne comprend pas). La syntaxe est directe : chaque ligne définit soit un élément de circuit, soit une commande de contrôle, et les composants sont connectés en assignant des numéros de nœuds. Par exemple :
v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end
Ici, v1 est une source 15 V DC entre nœuds 1 et 0 ; r1, r2, r3 sont des résistances connectant les nœuds indiqués. Les nœuds partagent le même numéro là où les composants se rejoignent.
Après création de la netlist, on invoque SPICE depuis un terminal. Une commande typique :
spice < example.cir
La commande spice lance l'interpréteur, < redirige le contenu de example.cir vers son entrée standard, et la simulation s'exécute. SPICE peut aussi rediriger sa sortie vers more pour un affichage paginé :
spice < example.cir | more
Ou vers un fichier pour relecture ultérieure :
spice < example.cir > example.txt
Comme la sortie est du texte ASCII pur, vous pouvez l'éditer avec n'importe quel éditeur, ajouter des commentaires, reformater les titres, et l'imprimer sans avoir SPICE sur la machine cible.
Voici une sortie console typique de la netlist exemple. Elle inclut l'en-tête de simulation, la netlist parsée, tensions de nœuds, courants des sources, dissipation de puissance totale, et temps d'exécution.
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
Pour une présentation plus propre, on peut nettoyer la sortie après redirection vers fichier :
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
Comme l'entrée et la sortie sont du texte brut, elles sont universellement lisibles et partageables. N'hésitez pas à améliorer la sortie avec un traitement de texte, ajouter des commentaires explicatifs, ou intégrer les résultats dans des rapports.
Étapes clés pour utiliser SPICE efficacement :
- Composer une netlist dans un éditeur de texte brut et l'enregistrer.
- Lancer SPICE sur le fichier et examiner la sortie.
- Si erreurs, éditer la netlist et relancer.
- Itérer jusqu'à obtenir les résultats souhaités.
- Une fois validé, rediriger la sortie vers fichier pour formatage et impression.
En suivant ce cycle, vous développerez la maîtrise de la syntaxe SPICE et apprendrez à déboguer efficacement.
Note : les extensions de fichiers SPICE sont flexibles ; .cir, .inp, .txt, ou aucune extension sont acceptables tant que le nom respecte les règles de votre OS.
Les images ci-dessous illustrent la structure des commandes SPICE et la sortie :
Technologie industrielle
- Démarrer avec SPICE : outil de simulation de circuits en mode texte
- L'évolution de SPICE : des racines CANCER à la simulation moderne
- Utiliser l'interface en ligne de commande avec SPICE
- Maîtriser la syntaxe des netlists SPICE : nommage, composants passifs/actifs, sources
- Fondamentaux de la programmation microprocesseur
- Guide complet de modélisation des dispositifs semi-conducteurs dans SPICE
- Maîtriser les espaces de noms en C# : Organisation, portée et bonnes pratiques
- Maîtriser les opérateurs en programmation C : Guide complet
- Maîtriser la programmation C : Tutoriel complet pour débutants