AIDE-MEMOIRE SPICE OPUS

1. Structure du texte

Le texte est structuré en lignes.

La dernière ligne est obligatoirement :

Les autres lignes sont triées en fonction de leur premier caractère :
 
*
(étoile) --> commentaire
.
(point) --> commande
+
(plus) --> continuation de la ligne précedente
(lettre)
(une lettre) --> élément de circuit

Les lignes d'élémentdoivent commencer par une lettre parmi les suivantes :

Les valeurs numériques peuvent être suivies d'un suffixe multiplicateur parmi les suivants : Il ne doit pas y avoir d'espace entre les chiffres et le suffixe. La valeur peut être suivie d'une indication d'unite indicative a condition qu'il n'y ait pas de confusion possible avec un suffixe multiplicateur.
(Attention, ne pas confondre M (milli) et MEG (mega))

Exemples :

2. Eléments

Le circuit se compose de composants ou éléments reliés par des équipotentielles ou noeuds.

Chaque élément est créé par une ligne de texte. Il est identifié par une chaine de 8 caractères max dont le premier est une lettre réservée, fonction du type d'élément :
 
PASSIFS
ACTIFS
SOURCES
indépendante
SOURCES
contrôlées
DIVERS
R = résistance D = diode V = source de
tension
indépendante
F = source de courant contrôlée par un courant X = appel de sous-circuit 
C = capacité Q = transistor bipolaire I = source de
courant
indépendante
E = source de tension contrôlée par une tension  T = ligne de transmission 
L =i nductance  J = transistor JFET H = source de tension contrôlée par un courant 
K = induct. mutuelle M = transistor MOS G = source de courant contrôlée par une tension
etc...

Les signaux d'entrée sont injectés dans le circuit au moyen d'éléments spécialisés : les sources indépendantes.

Les noeuds sont créés lors de leur référence par les éléments.
Ils sont identifiés par des entiers ou par nom ( drain, grille ,.....).
Le noeud 0 (zéro) est particulier : il est la référence absolue de potentiel (masse) et dans le cas des sous-circuits, il est global.

Une ligne créant un élément contient : le nom de l'élément (commençant par une lettre réservée), une liste de noeuds (dont l'ordre est souvent significatif) et des paramètres éventuels.

Exemples :

Pour les semi-conducteurs, la commande .MODEL permet de décrire des modèles contenant les paramètres communs à tous les composants similaires intégrés sur le même substrat.
Les dimensions de canal des MOS sont hors du modèle, car chaque transistor peut avoir des dimensions différentes.

3. Sources indépendantes fonction du temps

DC : Source constante, utilisable dans tous les types d'analyse.

Exemple :

La mesure des courants se fait habituellement au moyen de sources de tension DC, éventuellement nulles (Seul le courant dans les branches contenant une source de tension est conservé par l'algorithme de SPICE).

PWL (Piece-Wise Linear = linéaire par morceaux) :
le mot reservé PWL est suivi d'un nombre quelconque de couples (temps, valeur). Le temps doit doit être strictement croissant.

Exemple :

On utilise souvent un programme annexe pour engendrer les séquences PWL complexes. (par exemple programme pwlgen de AIME-INSA)

PULSE (impulsion) : le mot réservé PULSE est suivi de deux valeurs de signal V0 et V1 et de 5 valeurs de temps td, tr, tf, pw et per. (la dernière, la période, est facultative)

Exemple :

(Il s'agit du même signal que dans l'exemple précedent).

SIN (fonction sinusoïdale du temps) : le mot réservé SIN est suivi de la valeur de la composante continue, de la valeur de l'amplitude et de celle de la fréquence en Hz.
ATTENTION : cette source est destinée à l'analyse TRAN, pas à l'analyse AC.

Exemple :

4. Analyse

Trois types d'analyse :

4.1 La commande d'analyse DC

Elle permet de balayer une ou deux source(s) de tension ou de courant.

Le balayage de la première source fournira les valeurs d'abcisse des courbes, il est conseillé de prendre un pas bien fin.

Le balayage de la seconde source (si elle existe) va engendrer une répétition de la simulation, pour obtenir un faisceau de courbes. Le pas doit être assez grand pour que le nombre de courbes soit raisonnable (max 10).

La commande inclut la désignation de chaque source balayée suivie des valeurs initiale, finale et du pas d'incrémentation :

Exemple :

(les sources VCE et IBASE sont supposées exister)

4.2 La commande d'analyse TRAN

Elle inclut obligatoirement la valeur du pas temporel pour la sortie alphanumérique et la durée de la simulation.

Exemple :

Le pas réel de calcul (variable dynamiquement) est toujours inférieur ou égal au premier paramètre de la commande .TRAN.
En cas de besoin, il est possible de contrôler le pas maximal de calcul indépendamment du pas de la sortie alphanumérique, à l'aide du 4ème paramètre de la commande (laisser le 3ème à zéro) :

4.3 La commande d'analyse AC

Elle s'utilise pour obtenir une représentation type "Bode".
Elle inclut habituellement le mot dec indiquant que le balayage en fréquence est exponentiel avec un nombre entier de points par décade, puis le nombre de points par décade, puis les valeurs de départ et d'arrivée du balayage.
Le signal d'entrée doit être produit par une source type AC, dont l'amplitude est habituellement fixée à 1 (soit 0dB.)

Exemple :

On utilise une syntaxe spécifique de cette analyse pour désigner les signaux dans la commande .PLOT ou .PRINT : V ou I suivi DB (decibels), P(Phase), M(magnitude), R(partie réelle), I(partie réelle), etc...


5. Description Hiérarchisée : Sous-circuit

Le sous circuits est une liste d'éléments précedée d'une commande .SUBCKT et suivie d'une commande .ENDS.

Les noms d'éléments et les noeuds sont locaux, sauf le noeud zéro qui est global.

La commande .SUBCKT inclut le nom du sous-circuit et la liste des noeuds locaux à connecter au circuit extérieur.

Exemple :

Instanciation : Une référence au sous-circuit ou instance est placée dans le circuit qui l'héberge (qui peut lui-même être un sous-circuit) sous forme d'un élément particulier, l'élément X.

Exemple :

6. Conditions Initiales

Toutes les simulations commencent par une analyse DC destinée à trouver l'état initial du circuit. S'il y a une insuffisance de déterminisme pour cet état initial, le simulateur risque de ne pas converger, ou de converger sur une solution irréaliste (équilibre métastable) ou indésirable.

Pour maîtriser cela, on dispose de 3 niveaux de contrôle de force croissante :

  1. 1) forcer le potentiel de certains noeuds à la première itération de l'analyse DC initiale : ==> commande .NODESET
  2. 2) forcer le potentiel initial de certains noeuds pendant toute l'analyse DC initiale : ==> commande .IC
  3. 3) forcer le potentiel de tous les noeuds en remplacement de l'analyse DC intiale (supprimée) : ==> commande .IC en mettant l'option UIC dans la commande .TRAN
Règle pratique : utiliser systèmatiquement .NODESET chaque fois que l'état initial parait ambigü; réserver .IC pour les cas graves.

Exemple :

.NODESET V(2)=0 V(7)=5

8. Sortie graphique

la commande .PLOT permet d'obtenir des courbe.

Ces commandes doivent inclure le rappel du type d'analyse, suivi d'une liste de noeuds (pour lecture des tensions) ou de sources de tension (pour lecture des courants).

Exemples :

Attention : dans le cas de l'analyse TRAN, le nombre de pas sur l'axe des abcisses est déterminé par la commande .TRAN, il est limité à 200 par défaut (option LIMPTS).

9. Spécificité de Spice Opus

Dans le cadre du TP nous utiliserons la version Spice OPUS

9.1 Initialisation

Copier dans le répertoire courant les fichiers de définition de techno ( 0,6µm) utilisé

• Fichier Techno "Worst Case"
• Fichier Techno "typical"

9.2 fichier de description du circuit "*.cir"

l'écriture du fichier spice ce fait dans un éditeur de texte quelconque :

on choisi pour l'exemple la simulation de la caractéristique statique Id=f(Vgs) d'un transistor Nmos. voici le schéma de principe

ce qui donne le fichier de description suivant : "nmos.cir"

* transistor Nmos
**********************

* fichier techno
.include cmostm.mod

* Schema du circuit (netlist)
Vds 2 0 dc 3.3V
Vgs 1 0 dc 1V
M1 2 1 0 0 modn L=0.6U W=2.5U

* simulation
.dc Vgs 0 3.3v 50mV
.end

On remarquera que :
- La techno est définie par la commande .include
- Pour le transistor l’ordre des connections ainsi que les paramètres sont donnés par :

Mxx drain grille source substrat options

- La ligne : .dc Vgs 0 3.3v 50mV signifie que l’on fait une simulation statique avec une variation de Vgs entre 0 et 3.3 volts avec un pas de 50mV

9.3 Execution de Spice OPUS

lancer dans une console au préalable positionnée dans le répertoire de travail la commande spice3.

Chargement du fichier SpiceOpus (c) 1 -> source nmos.cir
Exécution du fichier SpiceOpus (c) 2 -> run
Warning: version not specified for modn MOSFET level=53 model, version 3.2.4 used. ( pas important)
Tracer de la réponse graphique SpiceOpus (c) 3 -> plot abs(i(vds))

attention les mesures de courant se font en convention récepteur sur la source de tension ( U et I en sens inverse)

la modification des axes ( log) se fait par le bouton droit de la souris

9.4 Execution de Spice OPUS

Il existe deux paramètres pour controler la température dans Spice: TEMP and TNOM. (toujours définir les deux en °C):
set temp=30
set tnom=30