}}}
3. au cas où l'interpréteur de commande de l'étudiant n'est pas le ''C-SHELL'', taper
{{{
> tcsh
}}}
pour changer de shell,
4. faites un source du script de configuration de l'environnement ''eldo.csh''.
{{{
> source ~trncomun/TP/2008/TP4/Fichiers/eldo.csh
}}}
Alternativement, pour lancer eldo directement sous linux, vous pouvez ignorer les étapes 1-4 et lancer directement:
{{{
> source /users/soft/mentor/AIDE.mentor2008.csh
}}}
= 1.2 Caractéristiques du transistor MOS =
{{{
#!html
}}}
[[Image(mos_tr.png, nolink)]]
{{{
#!html
}}}
Recopiez le fichier ''/users/enseig/trncomun/TP/2008/TP4/Fichiers/trMos/polar_nmos.spi''.
Ce fichier décrit un transistor N. Vous vous inspirerez de ce fichier pour décrire un transistor P.[[BR]]
Dans un premier temps simuler et visualiser les courbes du courant en fonction de la tension des transistors N et P :
* ''IDS'' en fonction de ''VGS'', pour ''VDS'' = ''VDD'' (''VGS'' varie de ''VSS'' à ''VDD'').[[BR]]
Déterminer les tensions de seuil ''Vtn'', ''Vtp'' des deux types de transistors graphiquement et avec l'instruction '''.print VT(Mxx)'''.
* ''IDS'' en fonction de ''VDS'', pour différentes valeurs de ''VGS'' (''VDS'' varie de ''VSS'' à ''VDD'').[[BR]]
Identifier les différents régimes du transistor : régime bloqué, linéaire et saturé du transistor.
{{{
#!html
}}}
[[Image(tableau_mode.png, nolink)]]
{{{
#!html
}}}
On prendra comme dimensions pour les transistors :
* ''Ln'' = 0.35 µm, ''Wn'' = 1.4 µm
* ''Lp'' = 0.35 µm, ''Wp'' = 2.9 µm
* ''VDD''=3.3V
'''NB:'''
* La première ligne d'un fichier eldo correspond au titre du circuit.
* Insérer au fichier '''ELDO''' le chemin d'accès aux modèles des transistors par la primitive :
{{{
.include ~techno/labo/035/models/mosn_mosp.wc
}}}
(pour modèle ''"Worst Case"'').
* utliser la commande '''.DC''' pour effectuer une analyse statique.
* utliser la commande '''.PLOT''' pour indiquer les noeuds à visualiser.
* pour la simulation :
{{{
> eldo fichier.spi
}}}
* pour la visualisation :
{{{
> ezwave fichier.wdb
}}}
= 1.3 Les caractéristiques de l'inverseur CMOS =
{{{
#!html
}}}
[[Image(regions.png, nolink)]]
{{{
#!html
|
}}}
||RÉGION || transistor P || transistor N ||
||A || LINÉAIRE || OFF||
||B || LINÉAIRE || SATURÉ||
||C || SATURÉ || SATURÉ||
||D || SATURÉ || LINÉAIRE||
||E || OFF || LINÉAIRE||
{{{
#!html
|
Figure: Les régions de fonctionnement de l'inverseur CMOS.
}}}
La figure illustre les différentes régions de fonctionnement de l'inverseur CMOS.[[BR]]
Sachant que les courants qui traversent les transistors N et P en mode saturé sont définis par les équations suivantes :
{{{
#!html
}}}
[[Image(ids.png, nolink)]]
{{{
#!html
}}}
la tension de seuil Vseuil de l'inverseur peut être décrite par l'équation suivante :
{{{
#!html
}}}
[[Image(seuil.png, nolink)]]
[[Image(kn.png, nolink)]]
[[Image(kp.png, nolink)]]
{{{
#!html
}}}
où ''µn'', ''µp'' sont les mobilités des électrons et des trous respectivement et ''Cox'' est la capacité d'oxyde.
= 1.4 Simulation statique d'un inverseur CMOS =
Décrivez un inverseur dans un fichier au format '''SPICE''' ''.spi''.[[BR]]
On prendra comme dimension des transistors ceux de la partie 1.2. avec une tension ''VDD''=3.3V.
* Simuler et visualiser la fonction de transfert ''VOUT=f(VIN)'' d'un inverseur.
* Déterminer le seuil électrique de l'inverseur voir figure de la section 1.3.
* Pour des tailles raisonnables de ''Wn'' et ''Wp'', trouver le rapport ''Wp/Wn'' pour que le seuil soit égal à ''VDD''/2.
* les commandes '''.PARAM''' et '''.STEP''' pour faire varier ''Wp''.
* la commande '''.EXTRACT''' avec l'argument '''"yval"''' pour obtenir la tension de seuil pour chaque ''Wp''.
* On visualise le résultat de l'extraction avec '''XELGA''' ''fichier.ext.wdb''
Exemple d'utilisation de '''PARAM''' et '''STEP''' sur la valeur d'une capacite :
{{{
* Capacite C1 entre les noeuds a et b de valeur capa
C1 a b capa
*Declaration de capa comme variable
.PARAM capa=1pf
*Capa varie de 1pf a 10pf par pas de 0.1pf
.STEP PARAM capa 1pf 10pf 0.1pf}
}}}
Exemple d'utilisation '''EXTRACT''' :
{{{
*Si a=f(b), alors ceci donne la valeur de a pour b=0.5
.EXTRACT yval(v(a),0.5)
}}}
= 1.5 Simulation dynamique de l'inverseur CMOS =
{{{
#!html
}}}
[[Image(tftr.png, nolink)]]
Figure: Temps de montée, temps de descente, ''TPHL'' et ''TPLH'' d'un inverseur CMOS.
{{{
#!html
}}}
Les temps de montée et de descente, illustrés dans la figure, sont définis par les relations approximatives :
{{{
#!html
}}}
[[Image(tempsacces.png, nolink)]]
{{{
#!html
}}}
Où ''CL'' est la capacité de charge de l'inverseur.
''TPHL'' et ''TPLH'' peuvent être approximés de la façon suivante :
{{{
#!html
}}}
[[Image(tempsacces2.png, nolink)]]
{{{
#!html
}}}
Dans cette partie nous allons extraire les caractéristiques temporelles de l'inverseur CMOS.
Pour cela on effectue une analyse transitoire sur l'inverseur, équilibré statiquement, à vide (sans capacité de charge) et on observe les temps de propagation.
* Utiliser la commande '''.TRAN''' pour l'analyse transitoire
* Utiliser la source de tension '''PULSE''' pour générer le signal d'entrée. (voir ''"Eldo User's Manual"'').
* Mesurer ''TPLH ''et ''TPHL'' sous '''XELGA''', cela en utilisant le ''"Wave Processor"'' dans le menu ''"Page"'' avec la fonction '''"xval"'''.
== 1.5.1 Influence de la capacité de sortie ==
Nous avons vu dans la section 1.5 que les temps de montée et de descente dépendaient de la capacité en sortie de l'inverseur. [[BR]]
Pour fixer cette dernière à une valeur réaliste, une bonne estimation consiste à le charger avec 4 autres inverseurs comme le montre la figure et à déterminer la capacité équivalente.
{{{
#!html
}}}
[[Image(CapaSortie.png, nolink)]]
Figure: Capacité de sortie.
{{{
#!html
}}}
* Utiliser la commande '''.SUBCKT''' pour déclarer un modèle d'inverseur.
* Instancier 5 inverseurs comme présenté dans la figure.
* Effectuer une analyse transistoire du circuit.
* Mesurer les temps de propagation du premier inverseur et conserver ces valeurs.
Dans un nouveau fichier ''.spi'', retirer les 4 inverseurs de charge, et remplacer les par une capacité. [[BR]]
Nous allons determiner la capacité equivalente correspondant aux 4 inverseurs de sortie.
* Mesurer ''TPLH'' et ''TPHL'' en faisant varier la valeur de la capacité de sortie de 1fF à 100fF.
* Utiliser la commande .'''EXTRACT''' avec l'argument '''TPD'''.
* Tracer l'évolution de ''TPLH'' et de ''TPHL'' en fonction de la capacité de sortie. Comment évoluent-ils ?
* En comparant les temps de propagation, déterminer la valeur de la capacité équivalente pour les quatre inverseurs de charge.
Conserver la capacité de sortie équivalente aux 4 inverseurs pour les questions suivantes.
== 1.5.2 Equilibrage de l'inverseur ==
Pour la suite du TP, on prendra la configuration de base suivante :
* ''Ln'' = 0.35 µm
* ''Wn'' = 1.4 µm, ''Lp'' = 0.35 µm,
* ''C'' = capacité equivalente à l'entrée de quatre inverseurs
* ''Vdd'' = 3.3 volts
* un front de 0.5 ns
A faire:
* Vérifier sur les chronogrammes que la sortie de l'inverseur a bien commuté.
* Afin d'équilibrer cet inverseur, faire varier le rapport ''Wp''/''Wn''.
* Mesurer à chaque fois ''TPLH'' et ''TPHL''.
* Pour quel rapport ''Wp''/''Wn'' l'inverseur est-il équilibré ?
* Comparer ce rapport avec celui de la question précédente.
* Lequel doit-on garder ?
== 1.5.3 Influence de la durée du front ==
* En conservant la largeur de transistor P trouvée, mesurer ''TPLH'' et ''TPHL'' en faisant varier la valeur de la durée du front de 0.1 ns à 5 ns.
* Tracer l'évolution de ''TPLH'' et de ''TPHL'' en fonction de la durée du front.
* Donner vos conclusions.
== 1.5.4 Influence de la température ==
* Mesurer ''TPLH'' et ''TPHL'' en faisant varier la valeur de la température de 0 à 140°C.
* Tracer l'évolution de ''TPLH'' et de ''TPHL'' en fonction de la température.
* Donner vos conclusions.
== 1.5.5 Influence de la tension d'alimentation ==
* Mesurer ''TPLH'' et ''TPHL'' en faisant varier la valeur de la tension d'alimentation de 2 volts à 4 volts.
* Tracer l'évolution de ''TPLH'' et de ''TPHL'' en fonction de la tension d'alimentation.
* Donner vos conclusions.
== 1.5.6 Influence des Paramètres technologiques ==
* Mesurer ''TPLH ''et ''TPHL'' en changeant le fichier de paramètres dans la directive d'inclusion, de façon à étudier l'influence de la dispersion des paramètres du procédé de fabrication : ''worst case'', ''typic'',''best case''.
{{{
.include ~techno/labo/035/models/mosn_mosp.ty
}}}
puis
{{{
.include ~techno/labo/035/models/mosn_mosp.bc
}}}