Aquí están los modelos MOSFET del enlace que has publicado:
.model MbreakND NMOS
+ Level=1 Gamma=0 Xj=0
+ Tox=1200n Phi=.6 Rs=0 Kp=111u Vto=2.0 Lambda=0.01
+ Rd=0 Cbd=2.0p Cbs=2.0p Pb=.8 Cgso=0.1p
+ Cgdo=0.1p Is=16.64p N=1
*El valor predeterminado de W y L es de 30 y 10 um respectivamente, y AD y AS no deben incluirse.
.model MbreakPD PMOS
+ Level=1 Gamma=0 Xj=0
+ Tox=1200n Phi=.6 Rs=0 Kp=55u Vto=-1.5 Lambda=0.04
+ Rd=0 Cbd=4.0p Cbs=4.0p Pb=.8 Cgso=0.2p
+ Cgdo=0.2p Is=16.64p N=1
*El valor predeterminado de W y L es de 60 y 10 um respectivamente, y AD y AS no deben incluirse.
La estructura del modelo MOSFET Level=1
no modela la conducción subumbral en el estado de inversión débil de la unión MOS. El parámetro que define la conducción subumbral en los modelos Level=2
y Level=3
es el "número de estados superficiales rápidos", denotado como NFS
. Puedes actualizar tus modelos Level=1
a Level=2
cambiando primero el número de Level
(obviamente) y luego definiendo un valor para NFS
. Puedes configurar un circuito de prueba y jugar con el valor de NFS
hasta que satisfaga tus necesidades.
También puedes intentar convertir el modelo Level=1
en un modelo VDMOS
, ya que es una extensión menor de Level=1
y también incluye su propia forma de manejar la conducción subumbral. Este método es posible porque Gamma=0
, lo que significa que el efecto cuerpo no existe y por lo tanto puedes unir permanentemente Body y Source (lo cual es necesario para VDMOS).
La mejor manera de empezar es intercambiando ingenuamente los tipos de modelo. Puedes hacerlo cambiando NMOS
por VDMOS
(solo nos enfocaremos en N-canal por ahora) y eliminando el parámetro Level
, de esta manera:
.model MbreakND VDMOS
+ Gamma=0 Xj=0
+ Tox=1200n Phi=.6 Rs=0 Kp=111u Vto=2.0 Lambda=0.01
+ Rd=0 Cbd=2.0p Cbs=2.0p Pb=.8 Cgso=0.1p
+ Cgdo=0.1p Is=16.64p N=1
Si ejecutas una simulación simple utilizando este modelo, mostrará algunas advertencias en el Registro de Errores de SPICE (CTRL+L):
* Parámetro no reconocido "gamma" -- ignorado
* Parámetro no reconocido "xj" -- ignorado
* Parámetro no reconocido "tox" -- ignorado
* Parámetro no reconocido "cbd" -- ignorado
* Parámetro no reconocido "cbs" -- ignorado
* Parámetro no reconocido "pb" -- ignorado
* Parámetro no reconocido "cgdo" -- ignorado
Comencemos con los más fáciles. Gamma
ya hemos hablado de él y debe ser eliminado. El parámetro Xj
es solo para modelos Level 2/3, así que no debería estar allí en primer lugar... ¡adiós! Pb
simplemente se llama Vj
en el modelo VDMOS, así que solo necesitas cambiar el nombre.
Tox
es un poco más complicado de explicar. El parámetro de transconductancia Kp
está relacionado con el Tox
por la siguiente ecuación:
$$ \text{KP} = \mu_0 \cdot \frac{\varepsilon_{ox}}{t_{ox}} $$
\$\varepsilon_{ox}\$ es un número fijo para el dióxido de silicio, pero \$\mu_0\$ y \$t_{ox}\$ son los parámetros MOSFET de SPICE Uo
y Tox
respectivamente. El truco aquí es que puedes definir Kp
directamente, o indirectamente a través de Uo
y Tox
. Sin embargo, la clave aquí es que cuando Kp
está definido, anula los otros parámetros. Esto es una manera larga de decir que Tox
no se utiliza y no debería estar ahí en primer lugar.
Los tres parámetros de capacitancia son los más complicados ya que aquí es donde la estructura VDMOS tiene el mayor impacto. Cbd
es el más fácil ya que se mapea directamente a Cjo
. Cbs
no existe en VDMOS (recuerda: los nodos del cuerpo y la fuente están conectados) así que puede eliminarse. Cgso
debe mapearse de alguna manera a Cgs
. Cgso
es un parámetro por/metro-ancho-del-canal y Cgs
no lo es. Aquí es donde quiero detenerme y decir que ya hemos encontrado muchos problemas/errores con esta definición original del modelo .model
, y ahora esperamos que una capacitancia por/metro-ancho-del-canal de 0.1p sea creíble? Seguiré por diversión, pero si estás leyendo esto deberías saltar a la siguiente sección. Simplemente voy a multiplicar Cgso
por el defw
que por defecto es 100u
. Los parámetros de capacitancia finales de VDMOS son Cgdmin
y Cgdmax
, pero dado que Cgdo
es tan pequeño simplemente haremos lo mismo que hicimos con Cgso
y aplicaremos el resultado a ambos parámetros CgdXXX
.
Ahora que se ha convertido el modelo, puedes agregar el parámetro Ksubthres
que define la conducción subumbral. Yo comenzaría con Ksubthres=0.1
y luego ajustaría para que se adapte a tus necesidades. Así es cómo queda el .model
resultante al final que no provoca errores/advertencias:
.model MbreakND VDMOS
+ Phi=.6 Rs=0 Kp=111u Vto=2.0 Lambda=0.01
+ Rd=0 Cjo=2.0p Vj=.8 Cgso=0.01f
+ Cgdmin=0.01f Cgdmax=0.01f Is=16.64p N=1
+ Ksubthres=0.1
Nota que para el canal P, todavía escribes VDMOS
pero luego defines un indicador de parámetro llamado pchan
en uno de los parámetros. Consulta la página de ayuda de LTspice para "M. MOSFET" para obtener más información al respecto.
Como se ha señalado a lo largo de la respuesta, las declaraciones originales del modelo .model
que has adquirido son bastante sospechosas. Después de buscar en Internet, encontré algunos modelos SPICE alternativos para CD4007 que deberías considerar.
Si quieres comenzar con un mejor modelo Level=1
para trabajar en cualquier conversión explicada anteriormente, creo que este parece un poco más creíble:
https://cmosedu.com/jbaker/courses/ee420L/s15/students/lej6/Project/CD4007.txt
La conducción subumbral no se modeló muy bien hasta que se desarrollaron y expandieron las estructuras de modelos SPICE de la serie BSIMx. Dr. Lynn Fuller de la Rochester Institute of Technology parece haber trabajado mucho en la generación de modelos de alto nivel para CD4007 y otros ICs MOSFET monolíticos de Advanced Linear Devices. Aquí hay un documento aquí y una presentación aquí que incluye modelos Level=7
que LTspice admite. Se puede encontrar un archivo de texto con los modelos aquí:
https://people.rit.edu/lffeee/RIT_Models_For_LTSPICE.txt
El Dr. Fuller también creó un modelo Level=8
para el CD4007, pero solo puedo encontrar la versión NMOS en este conjunto de diapositivas:
http://diyhpl.us/~nmz787/mems/unorganized/SPICE_MOSFET_Model_Intro.pdf