next up previous
Next: La Simulation logique :  Up: Tutoriaux :   Micro-électronique + Previous: La création de Symbole

La Simulation Analogique :     ( disponible )

Netlist de Simulation :

Pour obtenir celle-ci, après avoir fait la saisie du schéma avec TNED, il faut lancer la commande :

   

tspi3nl     nom_du_schéma

   

( ex : tspi3nl     pairediff )

   

Ceci va créer la netlist dans le répertoire nom_du_schéma

   

note:

Les erreurs les plus courantes , que l' on fait dans les schémas , et qui entraînent des erreurs dans le netlisteur tspi3nl sont les suivantes :

plusieurs ports , de nom différents sur le même fils (équipotentielle)

pas de prop ``VALUE'' sur un symbol ( nom du MODEL ou du SUBCKT)

pas de net ``0'' SPICE ( placer le symbol `` GENLIB==>GLOBAL==>GROUND'')

.....................................................................................................

-> Getting started

Il y a deux simulations possibles: la simulation batch et la simulation interactive.

   

Simulation Batch:

Toutes les commandes SPICE sont inscrites dans le fichier ANALYSE.

Pour cela, chaque ligne commence avec un '.' .

   

Attention: le fichier analyse doit être terminé par la commande .end .

Il est possible de mettre des commentaires: ceux-ci devront être précédés d'une étoile.

Exemple:

*exemple de fichier analyse très simple

.op

.dc Vin 0 5 1

.plot Vout

.end

La simulation batch est lancée en tapant :

   

bspice     nom_du_fichier

 

# Exemple de fichier pour bspice

#!/bin/sh

#............................Création du fichier ....$1.cir.........................................................

  echo  "*  $1  :  $2"                            >  $1.cir   # Title

  echo  "* "                                      >> $1.cir   # comments

  echo  ".INCLUDE /users/atelecad/lib/spice_lib " >> $1.cir   # spice_lib

  echo  "* "                                      >> $1.cir   # comments

  echo  ".INCLUDE $HOME/lib/spice_lib "           >> $1.cir   # user spice_lib

  echo  "* "                                      >> $1.cir   # comments

  echo  ".INCLUDE  $1/spice3file "                >> $1.cir   # spice_net_list

  echo  "* "                                      >> $1.cir   # comments

  echo  ".INCLUDE  $1/analyse "                   >> $1.cir   # spice_net_list

  echo  "* "                                      >> $1.cir   # comments

  echo  ".END "                                   >> $1.cir   # End Of Spice Run

  #

  #............................exécution BATCH du fichier ....$1.cir.....( -b ) ..................

  /users/atelecad/binexe/spice3.exe -b -r  $1.raw  $1.cir

  #............................Visualisation Des Résultats........$1. raw................................

  /users/atelecad/binexe/spice3.exe -r  $1.raw

  

On est alors sous SPICE , donc on :

charge les résultats avec ``load''

on visualise résultats avec ``display'' ; ``plot nom'' ; ou ``xplot''

           .............................................................................................

  

Il est souvent plus simple et plus efficace de travailler en INTERACTIF :

Si vous avez une erreur dans le fichier batch , vous pouvez perdre tous vos résultats, mêmes ceux des analyses bonnes.

Si vos analyses sont chaînées ( elles dépendent de la précédente ) , un problème dans une analyse ( convergence ou autre) peut vous faire perdre tous vos résultats, mêmes ceux des analyses bonnes.

On verra qu'en INTERACTIF , on peut suivre les résultats alors au fur et à mesure qu' il sont calculés .(Donc s' il y a un problème vous le voyez,et vous pouvez arrêter les calculs inutiles ......

On peut choisir en INTERACTIF ce qu' on veut voir en fonction des résultats ...

..........etc .................etc .................................................................

Mais on peut avoir besoin du BATCH lorsque qu' on ne dispose pas d' un PC , ou d' une station , mais d' un terminal X connecté à un serveur ...

  

Simulation interactive:

Cette simulation est lancée en tapant :

  

spice     nom_du_schéma.cir

  

# Exemple de fichier schéma.cir

.............................................................................................................

* Nom du schéma comme titre

* appel de la bibliothèque SPICE ATELECAD qui contient

* certains modèles de composants

.INCLUDE /users/atelecad/lib/spice_lib

* appel de la bibliothèque SPICE PERSONNELLE qui contient

* les autres modèles de composants

.INCLUDE $HOME/lib/spice_lib "

* appel de la netlist SPICE du circuit

.INCLUDE  $1/spice3file

* appel optionnel de commandes telles que

* ``save all i(all) ic(all)'', etc ....

* qui indique les résultats à conserver pour plot ou print ....

.INCLUDE  $1/analyse "

.............................................................................................................

 

pour créer le fichier schéma.cir vous pouvez :

.........vous aurez , bien sur , probablement, à adapter le schéma.cir avec un éditeur de texte comme ``jed'', pour le procédé...etc .

 

Après avoir taper : spice     nom_du_schéma.cir

 

  vous vous trouvez sous :

un SHELL INTERACTIF SPICE

 

Vous pouvez alors lancer n'importe quelle commande de SPICE qui sera exécutée aussitôt et passer à la commande suivante .... etc.

Il n' est pas obligatoire en INTERACTIF de précéder la commande d'un point.

  

Exemple:

op // SPICE calcule le point de fonctionnement puis rend la main.

dc Vin 0 5 1 // SPICE calcule tous les points puis rend la main.

plot vout // SPICE affiche la courbe de Vout.

quit // cette commande ferme SPICE.

 

Remarque: bien sur , le fichier nom_du_schéma.cir doit exister !!! .

 

Si vous taper la commande ``set unixcom'' , le SHELL INTERACTIF SPICE comprend aussi les commandes UNIX définies dans votre PATH .

 

Information interactive sous SPICE ==> HELP

ex : Si vous voulez une aide complète sur SPICE :

taper `` help''

une fenêtre s' ouvre et vous avez tout les manuel SPICE pour le consulter ...

 

==> une aide résumée sur les Commandes SPICE :

taper `` help c ''

 

==> une aide résumée sur les Options SPICE :

taper `` help o ''

 

==> une aide complète sur la commande help de SPICE :

taper `` help help ''

 

 

Analyses

Pour simuler votre schéma , il existe plusieurs analyses possibles:

 

Analyse OP :

Cette analyse, lancée au début de chaque simulation, va calculer le point de fonctionnement DC du circuit analysé.

 

Forme générale:

.op

 

Si cette analyse n'aboutit pas:

 

==> il est fortement probable que vous avez fait une erreur dans votre schéma qui rend ne permet pas à SPICE de résoudre le système d' équation tiré de votre schéma : les erreurs les plus courantes sont : ( voir aussi CONVERGENCE )

``0'' SPICE non défini .

équipotentielles reliée qu' à des capacités .

résistances non connectées .

substrats non connectés, ou connecté en inverse .

Source de tension court-circuité .

une erreur de schéma qui ne permet pas d' avoir de solution .

..... etc ........................................................................................

==> Avez vous calculé une solution approchée à la main ? ....

  ( voir aussi CONVERGENCE et ``help convergence'')

 

Analyse DC:

Elle détermine les points de fonctionnement en régime DC du circuit pour différentes valeurs de un ou deux générateurs indépendants du circuit.

note : elle ne tient pas compte des Selfs et des capacités (ie : transforme les bobines en court-circuits , et les condensateurs en circuit-ouverts).

Forme générale:

.dc G1 Vstart Vstop Vincr [G2 Vstart2 Vstop2 Vincr2]

Exemples:

.dc Vin 0 5 1

Pour toutes les valeurs de Vin de 0 a 5 volts par pas de 1 volt, SPICE va calculer tous les points de fonctionnement.

.dc V1 0 5 1 V2 3 5 0.5

Pour chaque valeur de V2 de 3 a 5 volts par pas de 0.5V, Spice va calculer tous les points de fonctionnement pour

toutes les valeurs de v1 de 0 a 5V par pas de 1V.

 

  Informations complémentaires : taper ``help dc''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help dc''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

Analyse AC :

Cette analyse définit une simulation en petits signaux.

 

Les sorties AC sont alors considérées comme des fonctions de la fréquence. Tout d'abord, SPICE calcule le point de fonctionnement DC, puis détermine les modèles linéaires de petits signaux pour tous les composants non linéaires du circuit . ( ie : dérive le circuit autour du point OP )

Le circuit linéaire résultant est alors analysé pour un panel de différentes fréquences indiquées par l' utilisateur .

Le résultat généralement attendu d'une analyse en petits signaux est une fonction de transfert (gain en tension, transimpédance, etc).

Si le circuit a une seule entrée AC, il est parfois utile de lui imposer 1 pour valeur et 0 pour phase: la sortie représentera alors immédiatement la fonction de transfert recherchée .

 

Forme générale:

 

.AC DEC Nd Fstart Fstop

.AC OCT No Fstart Fstop

.AC LIN Np Fstart Fstop

 

avec DEC, OCT et LIN indiquant respectivement une variation de la fréquence par décade, par octave ou linéairement,

Nd, No et Np le nombre de points entre la fréquence de départ Fstart et la fréquence d' arrivée Fstop.

 

Exemple:

.AC DEC 10 1 10k

SPICE va faire l' analyse en petits signaux du circuit pour 1khz, 2khz, 3khz, ... , 9khz et 10khz.

 

  Informations complémentaires : taper ``help ac''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help ac''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

Analyse TRAN ( transitoire ) :

 

SPICE considère lors de cette analyse toutes les sorties transitoires du circuit comme des fonctions du temps sur un intervalle de temps spécifié par l'utilisateur. Les conditions initiales sont automatiquement définies par une analyse DC.

Forme générale:

 

.TRAN Tstep Tstop <Tstart <Tmax>>

 

Tstep est l' incrémentation du temps pour sortir une courbe avec .print ou .plot.

Tstop est le temps final, et Tstart la valeur initiale. Tstart peut être omis, et sera alors mis par défaut a 0.

N.B.: en réalité, l'analyse est toujours menée de 0 a Tstop; Tstart est en fait la valeur du temps a partir de laquelle les résultats seront stockés; Avant Tstart, l'analyse a lieu, mais aucun résultat n'est conservé.

Tmax est le pas maximal de temps. Il peut aussi être omis. Dans ce cas, il vaudra par défaut le minimum entre Tstep et (Tsop-Tstart)/50. Tmax est utile lorsque l'on veut la garantie que le pas de calcul est inférieur au pas de traçage.

Exemple:

 

.TRAN 1ns 100ns 500ns

 

SPICE va calculer la sortie transitoire du circuit toutes les nanosecondes entre 100nset 500ns.

 

  Informations complémentaires : taper ``help tran''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help tran''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

 

Analyse NOISE :

Elle tient compte des générateurs de bruit du circuit .

 

Lorsqu'une source d'entrée et un port de sortie sont fournis, elle calcule les contributions du bruit pour chaque composant (et chaque générateur de bruit dans celui-ci) pour la tension du port de sortie.

Elle calcule aussi le bruit d'entrée du circuit équivalent au bruit de sortie correspondant a la source d'entrée spécifiée.

 

Ceci est fait pour toutes les fréquences d'un panel donné par l'utilisateur.

Forme générale:

 

.NOISE V(output <,ref>) Gen (DEC | LIN | OCT) Pts Fstart Fstop <Fstep>

 

Output est le numéro du noeud du circuit ou on désire le bruit total de sortie.

Si ref est spécifié, le bruit en tension sera calculé pour V(output)-V(ref). Sa valeur par défaut est la masse.

Gen est la source indépendante à laquelle correspond le bruit d'entrée.

(DEC | LIN | OCT) Pts Fstart Fstop spécifient le panel de fréquences d'une simulation AC pour lesquelles une courbe est désirée.

Si Fstep est indiqué, chaque générateur de bruit produit sa contribution au bruit total tous les Fstep Hz.

Exemple:

 

.NOISE V(5) Vin DEC 6 1khz 100Mhz 1

 

  Informations complémentaires : taper ``help noise''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help noise''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

 

Analyse DISTO ( distorsion ) :

 

Elle calcule les distorsions (résultats des inter-modulations et harmoniques) dues a un signal d'entrée de petite amplitude.

Si les signaux d'entrée du circuit sont à la même fréquence, les valeurs complexes des deuxième et troisieme harmoniques sont déterminés à tous les points du circuit.

Si les signaux d'entrée sont de deux fréquences différentes F1 et F2 (avec F1 > F2), l'analyse retourne les valeurs complexes des variables du circuit aux fréquences F1+F2, F1-F2 et (seconde harmonique de F1)-F2.

Une analyse DISTO peut être pratique si le circuit contient des composants linéaires et d'autres non-linéaires de la liste suivante: diodes, BJT, JFET, MOSFET (niveaux 1, 2, 3, 4/BSIM1, 5/BSIM2 et 6) et MESFET.

Forme générale:

 

.DISTO (DEC | OCT | LIN) Pts Fstart Fstop <F2overF1>

 

(DEC | LIN | OCT) Pts Fstart Fstop sont les paramètres de l'analyse AC pendant laquelle est calculée la distorsion.

Si le paramètre optionnel F2overF1 n'est pas spécifié, SPICE fait une analyse harmonique, c'est à dire il analyse la distorsion dans le circuit en utilisant uniquement la fréquence F1 définie comme pour analyse AC. Seront alors enregistrées toutes les tensions de tous les noeuds du circuit; tous les courants de toutes les branches aux fréquences 2F1, 3F1, tandis que F1 varie (une valeur de 1 signifie alors cos(2.2F1.t) pour la fréquence 2F1 et cos(2\( \pi \).3F1.t) pour la fréquence 3F1 ).

Si par contre F2overF1 est spécifié, il devra être un réel compris entre 0 et 1 (la valeur 0 lui est interdite). Dans ce cas;SPICE fait une analyse spectrale. Il considère le circuit avec des entrées sinusoïdales à deux fréquences, F1 et F2. F1 est définie dans la commande .DISTO comme pour une analyse AC, et F2 est fixe et égale à F2overF1*Fstart. Chaque source indépendante du circuit peut avoir deux entrées sinusoïdales superposées pour la distorsion aux fréquences F1 et F2. L' amplitude et la phase du signal de fréquence F1 sont données par les paramètres du mot-clé DISTOF1 de la déclaration de la source (cf SOURCES DE COURANT ET DE TENSION); l' amplitude et la phase du signal de fréquence F2 sont déterminées par les arguments de DISTOF2 (même remarque que pour DISTOF1). SPICE va calculer toutes les tensions à tous les noeuds et les courants dans toutes les branches du circuit aux fréquences F1+F2, F1-F2 et 2F1-F2 tandis que F1 varie.

Si les mots-clés DISTOF1 et DISTOF2 , manquent dans la description d'une source indépendante, alors la source sera supposée ne pas avoir de signal à cette fréquence. Les valeurs par défaut de l' amplitude et de la phase sont respectivement 1 et 0 (la phase est exprimée en degrés).

Exemple:

.DISTO DEC 10 1K 100M 0.9

SPICE va calculer toutes les tensions et tous les courants du circuit pour 10 valeurs de F1 entre 1KHz et 100MHz et F2 égal à 0.9KHz aux fréquences F1-F2; F1+F2 et 2F1)F2.

 

  Informations complémentaires : taper ``help disto''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help disto''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

Analyse SENS ( sensitivité ) :

Elle va calculer la sensitivité du point de fonctionnement en régime DC ou la sensitivité du signal en régime AC

d'une variable de sortie en considérant toutes les variables du circuit, y compris les paramètres des modèles

utilisés pour les composants. Elle va pour cela calculer la différence de tension pour un noeud ou d'intensité pour

une branche du circuit lorsque chaque paramètre de chaque composant est indépendemment perturbé.

Comme la méthode utilisée est une approximation numérique, le résultat obtenu peut montrer les effets d'une

perturbation d'un paramètre très sensible, mais ne pourra par contre pas être utilisé si la sensitivité trouvée

s'approche de 0.

N.B.: les paramètres, à la valeurs 0 , ne sont pas perturbés lors de cette analyse afin de réduire la quantité de données.

Forme générale:

.SENS OUTVAR

.SENS OUTVAR AC (DEC | OCT | LIN) Pts Fstart Fstop

La pemiere ligne calcule la sensitivité a tous les paramètres non-nul de la variable OUTVAR au point de fonctionnement.

La seconde ligne calcule la sensitivité du signal AC de OUTVAR pour les différentes valeurs de la fréquence définies

comme pour une analyse AC par AC (DEC | OCT | LIN) Pts Fstart Fstop.

N.B.: le résultat représente la variation de OUTVAR par variation de 1 de l'entrée.

Exemples:

.SENS I(Vtest)

.SENS V(OUT) AC DEC 10 100 100k

 

  Informations complémentaires : taper ``help sens''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help sens''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

 

Analyse TF ( Fonction de Transfert ) :

Elle calcule la fonction de transfert en régime petits signaux au point de fonctionnement, la résistance d'entrée et

celle de sortie.

Forme générale:

.TF OutVariable InSource

OutVariable et InSource peuvent être un courant ou une tension.

Exemple:

.TF V(5,3) Vin

SPICE calcule V(5,3)/Vin, la résistance en mode petits signaux d'entrée pour Vin, et celle de sortie entre les noeuds 5 et 3.

 

  Informations complémentaires : taper ``help tf ''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help tf ''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

Analyse FOUR ( Fourier ) :

Elle calcule la composante DC et les neuf premiers harmoniques d'un signal de sortie choisi par l'utilisateur.

Important: cette analyse doit être précédée d'une analyse transitoire (TRAN).

Forme générale:

 

.FOUR Freq OUTVAR1 <OUTVAR2 OUTVAR3 ... >

 

Freq est la fréquence fondamentale.

OUTVAR1, OUTVAR2, ... sont les variables de sortie pour lesquelles l'analyse est désirée.

N.B.: l'analyse sera effectuée sur la période [Tstop-T, Tstop], ou Tstop est la valeur finale donnée lors de l'analyse

transitoire, et T est une période de la fréquence fondamentale. De plus, pour une précision maximum, le paramètre

Tmax de la commande TRAN devrait être mis a T/100.

Exemples:

 

.FOUR 100k V(5)

 

  Informations complémentaires : taper ``help fourier ''

 

        Si cette analyse n'aboutit pas:

 

        ==> Erreur de paramètres : taper ``help fourier ''

 

        ==>lire les remarques précédentes faites pour l' analyse OP .

 

-> simulations : Batch ou Interactive

-> analyses : OP, DC, AC, TR, NOISE, DISTO, SENS, TF, FOUR

-> utilisation avancée

-> Convergence : méthodes pour l' obtenir , améliorations .

-> modèles ( composants , sources, ....)

        -> standards

        -> nouveaux ( EKV 2.4, 2.6, Philips Mextram 503/504,Mos902/903)

-> subcircuits ( paramétrage , ...)

-> comportemental ....

-> visualisations des résultats .

-> Postprocessings ...

-> Manuel de Référence

 


next up previous
Next: La Simulation logique :  Up: Tutoriaux :   Micro-électronique + Previous: La création de Symbole
Jean-Claude Perraud
2014-10-18