{{{ #!html

TP4-1 : Simulateur électrique ELDO

}}} [[PageOutline]] = 1.1 Introduction = Dans ce premier TP, nous allons utiliser le simulateur électrique '''ELDO''' et l'interface de visualisation '''XELGA''' pour extraire les caractéristiques statiques et dynamiques de l'inverseur CMOS. Nous allons aussi étudier les différents paramètres qui influencent les temps de propagation de cet inverseur. Pour ce TP vous rédigerez un compte rendu détaillé des résultats obtenus et de leurs significations. '''XELGA''' ne fonctionnant que dans un environnement graphique en 256 couleurs il faut créer un nouveau bureau virtuel avec la commande ''vncloop''. Pour utiliser les outils '''ELDO''' et '''XELGA''' vous devez être sur une machine de type Solaris (ex : rachmaninov). Un script d'initialisation des variables d'environnement fonctionnant avec l'interpréteur de commande ''tcsh'' vous permet d'avoir accès aux outils. En résumé en début de séance effectuez dans l'ordre : 1. dans un terminal lancez la commande ''vncloop'' qui ouvre un bureau virtuel avec un terminal, {{{ > vncloop }}} 2. dans ce nouveau terminal se loguer sur une machine Solaris en utilisant la commande : {{{ > ssh , }}} 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/2007/TP4/Fichiers/eldo.csh }}} = 1.2 Caractéristiques du transistor MOS = [[Image(mos_tr.png, nolink)]] Recopiez le fichier ''/users/enseig/trncomun/TP/2007/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. 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). 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). Identifier les différents régimes du transistor : régime bloqué, linéaire et saturé du transistor. [[Image(tableau_mode.png, nolink)]] 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, (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 : {{{ > xelga fichier.wdb }}} = 1.3 Les caractéristiques de l'inverseur CMOS = Les régions de fonctionnement de l'inverseur CMOS: [[Image(regions.png, nolink)]] ||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|| La figure illustre les différentes régions de fonctionnement de l'inverseur CMOS. Sachant que les courants qui traversent les transistors N et P en mode saturé sont définis par les équations suivantes : [[Image(ids.png, nolink)]] la tension de seuil Vseuil de l'inverseur peut être décrite par l'équation suivante : [[Image(seuil.png, nolink)]] [[Image(kn.png, nolink)]] [[Image(kp.png, nolink)]] 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''. 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 = Temps de montée, temps de descente, TPHL et TPLH d'un inverseur CMOS: [[Image(tftr.png, nolink)]] Les temps de montée et de descente, illustrés dans la figure 1.3, sont définis par les relations approximatives : [[Image(tempsacces.png, nolink)]] Où CL est la capacité de charge de l'inverseur. TPHL et TPLH peuvent être approximés de la façon suivante : [[Image(tempsacces2.png, nolink)]]