La dernière ligne est obligatoirement :
|
(étoile) --> commentaire |
|
(point) --> commande |
|
(plus) --> continuation de la ligne précedente |
|
(une lettre) --> élément de circuit |
Les lignes d'élémentdoivent commencer par une lettre parmi les suivantes :
{ R, L, C, K, V, I, E, H, G, F, D, Q, J, M, X }Les valeurs numériques peuvent être suivies d'un suffixe multiplicateur parmi les suivants :
{ F, P, N, U, M, K, MEG, G, T }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.
Exemples :
3.5V 1.5nF 350K 1mA 33ps 100MEG
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 :
|
|
indépendante |
contrôlées |
|
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 |
|
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 :
RPOL 2 3 100K C1 22 33 1P V1 2 0 DC 5V (noeud positif en premier) M3 3 2 1 1 MODN W=6U L=2U (ordre des noeuds : D G S B; dimensions du canal) (un modèle nommé MODN est supposé exister)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.
Exemple :
VALIM 1 0 DC 5V VAM1 5 6 DC 0La 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 :
VIN 8 0 PWL 0 0V 1N 0V 1.5N 5V 5.5N 5V 6N 0VOn 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 :
VIN 8 0 PULSE 0 5V 1N 0.5N 0.5N 4N(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 :
VIN 8 0 SIN 1V 200mV 10KHz
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 :
*caracteristiques statiques d'un transistor bipolaire .DC VCE 0 10V 0.1V IBASE 0 5MA 1MA(les sources VCE et IBASE sont supposées exister)
Exemple :
.TRAN 1N 50NLe pas réel de calcul (variable dynamiquement) est toujours inférieur ou égal au premier paramètre de la commande .TRAN.
.TRAN 2N 50N 0 0.2N
Exemple :
.AC DEC 20 1K 1G
.PLOT AC VDB(5) VP(5) IR(VIN) II(VIN)
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 :
.SUBCKT NOR2 1 2 3 4 * alim e1 e1 s M1 4 3 0 0 N M2 4 2 0 0 N M3 4 3 5 1 P M4 5 2 1 1 P .ENDSInstanciation : 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 :
* bascule RS asynchrone X1 1 8 9 10 NOR2 X2 1 10 11 8 NOR2
Pour maîtriser cela, on dispose de 3 niveaux de contrôle de force croissante :
Exemple :
.NODESET V(2)=0 V(7)=5
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 :
.PRINT DC V(3) V(4)
.PLOT TRAN V(6) V(7) I(VALIM)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).
Dans le cadre du TP nous utiliserons la version Spice OPUS
Copier dans le répertoire courant les fichiers de définition de techno ( 0,6µm) utilisé
• Fichier Techno "Worst Case" |
• Fichier Techno "typical" |
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
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