Conception Opamp utilisant LTspice
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
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}} $$
où
\$\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}\$où 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.
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.
Quelqu'un peut-il vérifier si le résultat que j'ai est une valeur raisonnable de KP merci!
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