SPICE

Un article de Wikipédia, l'encyclopédie libre.

SPICE (Simulation Program with Integrated Circuit Emphasis) est un logiciel de simulation généraliste de circuits électroniques analogiques. Il permet la simulation au niveau composant (résistances, condensateurs, transistors) en utilisant différents types d'analyses :

Sommaire

[modifier] Historique

SPICE a été créé à l'université de Californie (Berkeley) au début des années 1970 par l'équipe de Ron Rohrer, dont en particulier Larry Nagel.

C'est devenu par la suite le standard des simulateurs analogiques. Trois versions se sont succédé dont la dernière, SPICE3, date de 1985[1].

Il est disponible sous licence BSD.

Différents avatars commerciaux existent depuis les années 1980. Parmi les plus célèbres, on peut citer IS_SPICE, PSpice, MICROCAP, HSpice, ELDO, etc.

Aujourd'hui le paysage de la simulation analogique tend à se modifier lentement avec le développement de langages de description matérielle évolués tels que le Verilog-A et le VHDL-AMS. Ceux-ci permettent une plus grande flexibilité de modélisation en facilitant la modélisation mixte analogique-numérique et en autorisant l'écriture d'un modèle sous la forme d'un système d'équations différentielles quelconques.

[modifier] Fonctionnement

SPICE utilise des composants élémentaires modélisés par un ensemble d'équations. Par exemple, pour une résistance, on a tout simplement la loi d'Ohm U = RI.

Le fait de relier ces composants entre eux permet de créer un système d'équations à l'aide des lois de Kirchhoff. Celui-ci est linéarisé localement autour du point de polarisation courant si besoin et résolu. En non-linéaire, il faut alors itérer jusqu'à convergence (point fixe) avant de passer au pas de temps suivant. Il arrive toutefois que le système ne converge pas, lorsqu'il est mal conditionné ce qui est souvent provoqué par des nœuds en haute impédance.

[modifier] Netlists SPICE

Les netlists SPICE sont les fichiers d'entrée du simulateur. Ils comportent la liste des composants avec (dans l'ordre) :

  1. leur type et référence (R3 est une résistance) ;
  2. les nœuds auxquels ils sont reliés (deux pour une résistance, trois pour un transistor bipolaire...) ;
  3. la valeur dans les cas simples ;
  4. éventuellement le modèle (jeu de paramètres utilisés) ;
  5. éventuellement une liste de paramètres permettant d'altérer le modèle utilisé.

[modifier] Exemple de netlist SPICE

* Ceci est un commentaire
C1 1 0 1n
* résistance utilisant un modèle modifié 
* et un paramètre (température)
R1 1 2 1k ResModel TEMP=27

* générateur sinusoïdal
VIN 2 0 SIN(0 1 1k)

On a ici un générateur sinusoïdal de 1 V à 1 kHz à l'entrée d'un circuit RC passe-bas.

[modifier] Notes

  1. (en) SPICE History

[modifier] Liens externes