Conception Opamp utilisant LTspice

Oct 22 2020

Je viens de terminer une conférence en ligne sur la conception de circuits intégrés analogiques. Je souhaite mettre en pratique ce que j'ai appris et rechercher des projets qui m'aideront à atteindre mon objectif. Je suis tombé sur ce projet en ligne

Dans la conférence que j'ai regardée en ligne, le paramètre KP = Un * Cox est toujours donné. Dans le projet illustré ci-dessus, il existe un modèle de l'appareil qui peut être utilisé pour la conception à l'aide de LTspice, ma question est de savoir comment déterminer la valeur de KP à partir du modèle fourni? Merci!

Le modèle:

* BSIM3 models for AMI Semiconductor's C5 process
*
* Don't forget the .options scale=300nm if using drawn lengths
* and the MOSIS SUBM design rules
*
* 2<Ldrawn<500   10<Wdrawn<10000 Vdd=5V
* Note minimum L is 0.6 um while minimum W is 3 um
* Change to level=49 when using HSPICE or SmartSpice

.MODEL NMOS NMOS (                                 LEVEL   = 8
+VERSION = 3.1            TNOM    = 27             TOX     = 1.39E-8
+XJ      = 1.5E-7         NCH     = 1.7E17         VTH0    = 0.6696061
+K1      = 0.8351612      K2      = -0.0839158     K3      = 23.1023856
+K3B     = -7.6841108     W0      = 1E-8           NLX     = 1E-9
+DVT0W   = 0              DVT1W   = 0              DVT2W   = 0
+DVT0    = 2.9047241      DVT1    = 0.4302695      DVT2    = -0.134857
+U0      = 458.439679     UA      = 1E-13          UB      = 1.485499E-18
+UC      = 1.629939E-11   VSAT    = 1.643993E5     A0      = 0.6103537
+AGS     = 0.1194608      B0      = 2.674756E-6    B1      = 5E-6
+KETA    = -2.640681E-3   A1      = 8.219585E-5    A2      = 0.3564792
+RDSW    = 1.387108E3     PRWG    = 0.0299916      PRWB    = 0.0363981
+WR      = 1              WINT    = 2.472348E-7    LINT    = 3.597605E-8
+XL      = 0              XW      = 0              DWG     = -1.287163E-8
+DWB     = 5.306586E-8    VOFF    = 0              NFACTOR = 0.8365585
+CIT     = 0              CDSC    = 2.4E-4         CDSCD   = 0
+CDSCB   = 0              ETA0    = 0.0246738      ETAB    = -1.406123E-3
+DSUB    = 0.2543458      PCLM    = 2.5945188      PDIBLC1 = -0.4282336
+PDIBLC2 = 2.311743E-3    PDIBLCB = -0.0272914     DROUT   = 0.7283566
+PSCBE1  = 5.598623E8     PSCBE2  = 5.461645E-5    PVAG    = 0
+DELTA   = 0.01           RSH     = 81.8           MOBMOD  = 1
+PRT     = 8.621          UTE     = -1             KT1     = -0.2501
+KT1L    = -2.58E-9       KT2     = 0              UA1     = 5.4E-10
+UB1     = -4.8E-19       UC1     = -7.5E-11       AT      = 1E5
+WL      = 0              WLN     = 1              WW      = 0
+WWN     = 1              WWL     = 0              LL      = 0
+LLN     = 1              LW      = 0              LWN     = 1
+LWL     = 0              CAPMOD  = 2              XPART   = 0.5
+CGDO    = 2E-10          CGSO    = 2E-10          CGBO    = 1E-9
+CJ      = 4.197772E-4    PB      = 0.99           MJ      = 0.4515044
+CJSW    = 3.242724E-10   PBSW    = 0.1            MJSW    = 0.1153991
+CJSWG   = 1.64E-10       PBSWG   = 0.1            MJSWG   = 0.1153991
+CF      = 0              PVTH0   = 0.0585501      PRDSW   = 133.285505
+PK2     = -0.0299638     WKETA   = -0.0248758     LKETA   = 1.173187E-3
+AF      = 1              KF      = 0)
*
.MODEL PMOS PMOS (                                 LEVEL   = 8
+VERSION = 3.1            TNOM    = 27             TOX     = 1.39E-8
+XJ      = 1.5E-7         NCH     = 1.7E17         VTH0    = -0.9214347
+K1      = 0.5553722      K2      = 8.763328E-3    K3      = 6.3063558
+K3B     = -0.6487362     W0      = 1.280703E-8    NLX     = 2.593997E-8
+DVT0W   = 0              DVT1W   = 0              DVT2W   = 0
+DVT0    = 2.5131165      DVT1    = 0.5480536      DVT2    = -0.1186489
+U0      = 212.0166131    UA      = 2.807115E-9    UB      = 1E-21
+UC      = -5.82128E-11   VSAT    = 1.713601E5     A0      = 0.8430019
+AGS     = 0.1328608      B0      = 7.117912E-7    B1      = 5E-6
+KETA    = -3.674859E-3   A1      = 4.77502E-5     A2      = 0.3
+RDSW    = 2.837206E3     PRWG    = -0.0363908     PRWB    = -1.016722E-5
+WR      = 1              WINT    = 2.838038E-7    LINT    = 5.528807E-8
+XL      = 0              XW      = 0              DWG     = -1.606385E-8
+DWB     = 2.266386E-8    VOFF    = -0.0558512     NFACTOR = 0.9342488
+CIT     = 0              CDSC    = 2.4E-4         CDSCD   = 0
+CDSCB   = 0              ETA0    = 0.3251882      ETAB    = -0.0580325
+DSUB    = 1              PCLM    = 2.2409567      PDIBLC1 = 0.0411445
+PDIBLC2 = 3.355575E-3    PDIBLCB = -0.0551797     DROUT   = 0.2036901
+PSCBE1  = 6.44809E9      PSCBE2  = 6.300848E-10   PVAG    = 0
+DELTA   = 0.01           RSH     = 101.6          MOBMOD  = 1
+PRT     = 59.494         UTE     = -1             KT1     = -0.2942
+KT1L    = 1.68E-9        KT2     = 0              UA1     = 4.5E-9
+UB1     = -6.3E-18       UC1     = -1E-10         AT      = 1E3
+WL      = 0              WLN     = 1              WW      = 0
+WWN     = 1              WWL     = 0              LL      = 0
+LLN     = 1              LW      = 0              LWN     = 1
+LWL     = 0              CAPMOD  = 2              XPART   = 0.5
+CGDO    = 2.9E-10        CGSO    = 2.9E-10        CGBO    = 1E-9
+CJ      = 7.235528E-4    PB      = 0.9527355      MJ      = 0.4955293
+CJSW    = 2.692786E-10   PBSW    = 0.99           MJSW    = 0.2958392
+CJSWG   = 6.4E-11        PBSWG   = 0.99           MJSWG   = 0.2958392
+CF      = 0              PVTH0   = 5.98016E-3     PRDSW   = 14.8598424
+PK2     = 3.73981E-3     WKETA   = 5.292165E-3    LKETA   = -4.205905E-3 
+AF      = 1              KF      = 0)
```

Réponses

5 SteKulov Oct 22 2020 at 10:33

Habituellement, KP est explicitement utilisé uniquement avec les modèles MOSFET plus simples, tels que le modèle Shichman-Hodges (c'est-à-dire LEVEL 1). Le modèle BSIM3 (NIVEAU 8) est beaucoup plus sophistiqué et généralement défini à l'aide de paramètres géométriques / physiques au lieu de paramètres électriques. Bien que l'idée de KP existe toujours dans BSIM3, elle est fortement modifiée par de nombreux autres paramètres et est donc rarement utilisée seule. Quoi qu'il en soit, si vous commencez par l'équation de base que vous avez référencée, vous pouvez la développer davantage en tant que telle:$$ \text{KP} = \mu_0 \cdot C_{ox}' = \mu_0 \cdot \frac{\varepsilon_{ox}}{t_{ox}} = \mu_0 \cdot \frac{\varepsilon_r \varepsilon_0}{t_{ox}} $$

\$\text{KP}\$ est le paramètre de transconductance,

\$\mu_0\$ est la mobilité de surface,

\$C_{ox}'\$ est la capacité par unité de surface de la couche d'oxyde,

\$\varepsilon_{ox}\$ est la permittivité de l'oxyde,

\$t_{ox}\$ est l'épaisseur de l'oxyde,

\$\varepsilon_r\$ est la constante diélectrique du matériau oxyde, et

\$\varepsilon_0\$est la permittivité de l'espace libre ( \$8.85 \times 10^{-14} \text{F/cm}\$).


Je me concentrerai uniquement sur le NMOS ici, et vous pouvez faire le PMOS vous-même en utilisant les mêmes calculs. \$\mu_0\$est déjà défini dans le modèle comme U0 = 458.439679. Il en va de même pour \$t_{ox}\$TOX = 1.39E-8, sauf qu'il est spécifié en mètres et doit être converti en centimètres puisque \$\mu_0\$et \$\varepsilon_0\$sont indiqués en centimètres. Je n'en sais pas assez sur la conception des circuits intégrés, je vais donc supposer que le SiO 2 (dioxyde de silicium) est le matériau d'oxyde pour cet exemple, qui a une constante diélectrique de 3.9. En utilisant ces nombres avec la constante \$\varepsilon_0\$ défini ci-dessus, on obtient:

$$ \text{KP} = \mu_0 \cdot \frac{\varepsilon_r \varepsilon_0}{t_{ox}} = 458.439679 \frac{\text{cm}^2}{\text{V} \cdot \text{s}} \cdot \frac{3.9 \cdot (8.85 \times 10^{-14} \text{F/cm})}{(1.39 \times 10^{-6} \text{cm})} \approx 113.835 \times 10^{-6} \frac{\text{A}}{\text{V}^2} $$


Voici les deux références que j'ai utilisées pour créer cette réponse. Je suggère au moins de parcourir la référence BSIM3 puisque c'est ce qui est utilisé comme base pour valider ce projet via SPICE.

  • http://ngspice.sourceforge.net/external-documents/models/bsim330_manual.pdf
  • https://books.google.com/books/about/Semiconductor_Device_Modeling_with_SPICE.html?id=_QZTAAAAMAAJ

EDIT1: J'ai oublié d'inclure les unités, et j'ai donc commis une erreur dans le calcul en raison du manque de conversion des unités. J'ai ajouté les unités et corrigé le calcul.


EDIT2: On m'a demandé d'entrer dans les détails sur la façon d'extraire KP de la mesure des résultats de simulation à l'aide de SPICE, j'ai donc ajouté ces sections supplémentaires ci-dessous. Gardez à l'esprit que la prémisse ici est quelque peu étrange, car nous utilisons les résultats générés à partir d'un modèle NIVEAU 8 (BSIM3) pour revenir aux paramètres du modèle NIVEAU 1.

La première chose à savoir est qu'il existe deux configurations de test distinctes puisque les MOSFET peuvent être utilisés dans les régions linéaire et de saturation. Chaque configuration correspond à chaque région et le KP résultant entre les deux sera légèrement différent. Je présenterai les deux méthodes, mais il est recommandé d'en utiliser une seule en fonction de l'application et du mode de fonctionnement souhaités pour le MOSFET. Pour commencer, les équations de base du modèle NIVEAU 1 sont présentées ci-dessous.$$ \begin{align*} &\text{Linear: } &&I_{DS} = \text{KP} \frac{W}{L-2 \text{LD}} \left( V_{GS}-V_{TH}-\frac{V_{DS}}{2} \right) V_{DS}(1 + \lambda V_{DS}) \\ \\ &\text{Saturation: } &&I_{DS} = \frac{\text{KP}}{2} \frac{W}{L-2 \text{LD}} (V_{GS}-V_{TH})^2 (1 + \lambda V_{DS}) \end{align*} $$Maintenant, quelques simplifications peuvent être apportées. En fonction de la configuration du test de région linéaire, \$\frac{V_{DS}}{2}\$sera négligeable et peut donc être mis à zéro. \$\lambda\$est la modulation de longueur de canal que nous pouvons supposer égale à zéro. Pour simplifier davantage, nous devons définir \$\frac{W}{L-2 \text{LD}}\$à 1. LD est le paramètre de "diffusion latérale" et est fondamentalement un décalage de correction fixe appliqué à \$L\$. Si nous rendons le MOSFET suffisamment long, alors LD est négligeable. En supposant que LD est généralement de 1 µm ou moins, nous définissons L=100uet W=100u(pour correspondre) et nous nous retrouvons avec:$$ \begin{align*} &\text{Linear: } &&I_{DS} = \text{KP} \cdot V_{DS} (V_{GS}-V_{TH}) \\ \\ &\text{Saturation: } &&I_{DS} = \frac{\text{KP}}{2} (V_{GS}-V_{TH})^2 \end{align*} $$Ce que cela dit pour la région linéaire est que si nous balayons \$V_{GS}\$pour un \ fixe$V_{DS}\$et tracer \$I_{DS}\$, puis sa pente divisée par \$V_{DS}\$égale KP. Pour la région de saturation, nous pouvons faire quelque chose de similaire, mais nous devons d'abord prendre la racine carrée de \$I_{DS}\$avant de trouver la pente et de résoudre KP. Mathématiquement, dans chaque scénario:$$ \begin{align*} &\text{Linear: } &&\frac{dI_{DS}}{dV_{GS}} = \text{KP} \cdot V_{DS} \implies \text{KP} = \frac{dI_{DS}}{dV_{GS}} \cdot \frac{1}{V_{DS}} \\ \\ &\text{Saturation: } &&\frac{d\sqrt{I_{DS}}}{dV_{GS}} = \sqrt{\frac{\text{KP}}{2}} \implies \text{KP} = 2 \left( \frac{d\sqrt{I_{DS}}}{dV_{GS}} \right)^2 \end{align*} $$


Les configurations de test sont présentées ci-dessous. M1 est le MOSFET pour le test de région linéaire et M2 est pour le test de région de saturation. La seule différence entre les deux est que \$V_{DS}\$est réglé sur une petite valeur fixe de 50 mV dans le test linéaire, tandis que \$V_{DS}\$est court-circuité à \$V_{GS}\$pour le test de saturation. Nous balayerons \$V_{GS}\$de 1mV à 5V par pas de 1mV. [REMARQUE: commencer à 1 mV au lieu de zéro évite un artefact de division par zéro lors de l'utilisation de LTspice pour effectuer les calculs de KP.]

Le premier tracé est le \$I_{DS}\$de M1. L'idée est d'utiliser la valeur de pente juste après la tension de seuil là où le tracé apparaît d'abord linéaire. Cela évite la région d'inversion faible tout en évitant également les erreurs dans les régions ultérieures dues à la résistance série. J'ai sélectionné des points à 1.0V et 1.1V et divisé cette pente par 50m (notre \$V_{DS}\$) obtenir: $$ \text{KP(lin)} = \frac{6.10144 \times 10^{-6}}{50 \times 10^{-3}} \approx 122.029 \times 10^{-6} \frac{\text{A}}{\text{V}^2} $$Le deuxième graphique est la racine carrée de \$I_{DS}\$de M2. J'ai choisi les mêmes points de tension de 1,0 V et 1,1 V pour obtenir la pente. Cette pente est au carré puis multipliée par deux pour obtenir KP:$$ \text{KP(sat)} = 2 \cdot (7.44373 \times 10^{-3})^2 \approx 110.818 \times 10^{-6} \frac{\text{A}}{\text{V}^2} $$

La dernière chose que je veux mentionner est que vous pouvez également utiliser la fonction mathématique de forme d'onde de LTspice pour le tracer KP sur tous les \$V_{GS}\$. Vous devez simplement brancher les équations ci-dessus comme indiqué ci-dessous. La raison pour laquelle je voulais montrer ces graphiques est de souligner que KP n'est pas constant dans un MOSFET réel, et c'est l'une des raisons pour lesquelles les modèles MOSFET de niveau supérieur ont été développés. Si vous exécutez les mêmes procédures d'extraction de KP sur un modèle LEVEL 1 au lieu d'un LEVEL 8, ces graphiques auront un aspect très différent.

3 Pai Oct 22 2020 at 11:39

J'ai utilisé un exemple de carte modèle pour cette simulation. Le tracé bleu vous donnera la valeur kp qui a été utilisée dans la carte modèle.

Ce graphique représente les caractéristiques d'entrée du MOSFET. Réorganiser l'équation Id pour kp.

J'espère que cela aidera pour le modèle que vous avez fourni.

1 Paumdrdo Oct 22 2020 at 14:04

Quelqu'un peut-il vérifier si le résultat que j'ai est une valeur raisonnable de KP merci!

hoopeer Oct 25 2020 at 13:25

Ce lien vous aidera également si vous considérez le paramètre de modulation de longueur de canal http://www.ece.tamu.edu/~spalermo/ecen474/Lab1.pdf