Está en la página 1de 32

PISCES IIB

El programa PISCES IIB ha sido desarrollado en la universidad de Stanford


(http://www.stanford.edu), y permite la simulación de dispositivos en una y dos
dimensiones. PISCES II ha sido comercializado por varias empresas, entre ellas por
Technology Modeling Associates, Inc. (TMA). Sin embargo es posible obtener una versión
de libre distribución para ser ejecutada en sistemas BSD Unix en la dirección http://www-
tcad.stanford.edu/tcad/programs/ftpable.html. Durante la realización de este proyecto
hemos empleado la versión 9009 de PISCES IIB compilada por John Faricelli para ser
utilizada en entorno Windows. Esta versión está disponible en la dirección
http://www.ultranet.com/~faricelli/tcad.htm.

Por desgracia las opciones de visualización de resultados presentes en el código inicial


de PISCES IIB 9009 no están disponibles en la versión compilada para Windows. No
obstante el propio John Faricelli ha desarrollado una aplicación, llamada POSTMINI, que
sirve de interfaz para varios programas de simulación entre los que se incluye PISCES,
permitiendo la representación de los resultados de las simulaciones. En la dirección
mencionada anteriormente se puede obtener este programa así como los manuales en
formato PDF tanto de PISCES como de POSTMINI. También hemos utilizado la
documentación de una de las versiones comerciales de PISCES IIB (TMA PISCES-2B 9033)
de la empresa TMA.

Los datos de salida de PISCES IIB serán procesados y visualizados de dos formas
distintas y complementarias: utilizando el programa POSTMINI para representar la
distribución de una característica eléctrica, y a través de hojas de cálculo (EXCEL) cuando
trabajemos con los valores de corriente-tensión de los terminales del dispositivo.

Estudiaremos la forma en que PISCES IIB lleva a cabo las simulaciones y analizaremos
los principales comandos con que cuenta así como los distintos archivos de salida que
genera. De igual modo dedicaremos algún tiempo a explicar la utilización de POSTMINI
para la correcta visualización de los datos de salida que PISCES IIB nos proporciona.

No pretendemos explicar con detenimiento cada uno de los comandos de ambos


programas. Mencionaremos únicamente los de mayor importancia o que hayamos
utilizado expresamente. En la documentación que acompaña a estos programas se puede
encontrar una descripción detallada de todos los comandos. En estas páginas nos
centraremos en todo aquello que no se puede encontrar en la documentación y que solo
puede ser conocido mediante la utilización de PISCES y POSTMINI y la experiencia que
esto aporta. La versión que hemos utilizado presenta muchas más limitaciones que las
versiones comerciales, con lo que hemos tenido que hacer frente a algunas dificultades no
previstas que comentaremos y analizaremos en su momento.

Con el fin de facilitar la tarea a todos aquellos que pretendan utilizar esta u otras
versiones similares de PISCES IIB, pondremos a su disposición numerosos consejos sobre
la utilización práctica de este programa aprendidos tras muchas horas de “pelea” con
PISCES.

1
PISCES IIB 2

2.1 PISCES IIB.


PISCES II (Poisson and Continuity Equation Solver) es un simulador de dispositivos
bidimensionales desarrollado por Pinto, Rafferty y Dutton de la universidad de Stanford.
Es capaz de resolver tanto las ecuaciones de continuidad de ambos portadores como la
ecuación de Poisson, trabaja con transitorios y estados estacionarios y puede simular
MOSFETs y transistores bipolares. A su vez permite trabajar con perfiles de dopado
obtenidos de SUPREM III o SUPREM IV o mediante funciones analíticas.

2.1.1 Descripción de PISCES IIB.


PISCES IIB modela las distribuciones bidimensionales de potencial y de concentración
de portadores en un dispositivo para predecir sus características eléctricas en cualquier
condición de polarización, resolviendo las ecuaciones que rigen el comportamiento
eléctrico del mismo. Posee una malla de simulación triangular y no uniforme lo que le
permite simular dispositivos de geometría arbitraria tanto planares como no planares. La
malla de puntos de cálculo puede ser refinada automáticamente durante la simulación,
añadiéndose nodos adicionales allí donde una variable como el potencial o la
concentración de impurezas varíe más que una tolerancia especificada por el usuario. Se
pueden colocar múltiples electrodos y contactos en cualquier zona del dispositivo.

2.1.1.1 Ecuaciones y modelos físicos.

El comportamiento eléctrico de los dispositivos semiconductores es gobernado por la


ecuación de Poisson (Ec. 2.1) y las ecuaciones de continuidad para electrones y huecos (Ec.
2.2 y 2.3):

  2 = - q(p – n + N D - N A ) -  F (Ec. 2.1)

n 1  
=   J n - U n = F n ( ,n,p) (Ec. 2.2)
t q

p 1  
= -   J p - U p = F p ( ,n,p) (Ec. 2.3)
t q

La función principal de PISCES IIB es resolver las tres ecuaciones diferenciales parciales
de forma autoconsistente para el potencial electrostático,  , y las concentraciones de
electrones y huecos, n y p, respectivamente. N D y N A son las concentraciones de
impurezas ionizadas y  F es una densidad de carga fija que puede estar presente en
materiales aislantes.
PISCES IIB 3
 
De la teoría de transporte de Boltzmann, J n y J p pueden ser expresadas como
funciones de las concentraciones de portadores y de los potenciales de Fermi para
electrones y huecos,  n y  p :

 
J n = - q  n n  n (Ec. 2.4a)
 
J p = - q  p p  p (Ec. 2.4b)

 
A su vez J n y J p pueden ser escritas como funciones de  , n y p, de acuerdo con las
componentes de arrastre y difusión
  
J n = q  n E n n + qD n n (Ec. 2.5a)
  
J p = q  p E p p - qD p p (Ec. 2.5b)
donde  n y  p son las movilidades de electrones y huecos y D n y D p las difusividades de
electrones y huecos. Asumiendo las estadísticas de portadores de Boltzmann se puede
considerar:

   
En = E p = E = -   (Ec. 2.6)

En las ecuaciones de continuidad U n y U p representan la recombinación de electrones


y huecos en la red. PISCES IIB puede considerar los modelos de recombinación de
Shockley-Read-Hall y Auger con lo que tendríamos

U= U n = U p =U SRH + U Auger (Ec. 2.6)

PISCES IIB implementa las estadísticas de Fermi-Dirac y las de Boltzmann, mecanismos


de recombinación superficial en las interfaces aislante-semiconductor, tiempos de vidas
dependiente de la concentración y un gran número de mecanismos físicos.

Especial importancia presentan los distintos modelos de movilidad. La primera


clasificación que se puede hacer es atendiendo a la intensidad del campo eléctrico. Dentro
de las movilidades de bajo campo el modelo más simple es considerar un valor constante
tanto para electrones como para huecos a lo largo de toda la estructura. Con el modelo de
movilidad dependiente de la concentración de impurezas se puede simular el efecto del
scattering con átomos de impurezas, usando valores de movilidad de tablas dependientes
de la concentración local de impurezas a T=300 K (ver Tabla 2.1). Otra alternativa es usar
expresiones analíticas empíricas que dependen tanto de la temperatura como de la
concentración de impurezas.

Existen distintos modelos de movilidad superficial que reflejan la sustancial reducción


en la magnitud de la movilidad de ambos portadores en las interfaces aislante-
semiconductor debido a los mecanismos de scattering superficial.
PISCES IIB 4

Por último cuando la intensidad del campo eléctrico es elevada es necesario emplear
otros modelos de movilidad que puedan simular los efectos de portadores calientes y de
saturación de la velocidad.

2.1.1.2 Métodos numéricos.

Tabla 2.1. Valores de movilidad de electrones y huecos frente a la concentración de


impurezas en Silicio y Arseniuro de Galio para T=300 K.
PISCES IIB 5

Tres ecuaciones diferenciales parciales describen el comportamiento de los dispositivos


semiconductores. La ecuación de Poisson gobierna el potencial electrostático y las
ecuaciones de continuidad las concentraciones de electrones y huecos. Estas ecuaciones
diferenciales serán discretizadas dando lugar a un conjunto de ecuaciones algebraicas
acopladas y no lineales. No existe ningún método para resolver estas ecuaciones en un
solo paso: las soluciones deben obtenerse mediante un método de iteración no lineal
partiendo de algún valor inicial. Veamos con un poco más de detalle el proceso que debe
seguirse.

Para resolver estas ecuaciones en un ordenador deben ser discretizadas en una malla de
simulación. Es decir, las funciones continuas de las ecuaciones diferenciales parciales son
representadas por los valores de la función en los nodos, y los operadores diferenciales
son sustituidos por operadores aritméticos. En vez de trabajar con 3 funciones
desconocidas, PISCES IIB trabaja con 3N números reales desconocidos, donde N es el
número de nodos de la malla.

La forma de discretizar los operadores diferenciales en una malla triangular general es


el “método de la caja”. Cada ecuación es integrada en un pequeño polígono que rodea a
cada nodo, generándose 3N ecuaciones algebraicas no lineales para las concentraciones y
potenciales desconocidos. La integración equipara el flujo que entra en el polígono con las
fuentes y sumideros presentes en él, de forma que se considera la conservación de la
corriente y el flujo eléctrico. Las integrales se llevan a cabo triángulo a triángulo
permitiendo de esta forma trabajar con cualquier geometría y cualquier condición de
ligadura. Desde el punto de vista del usuario la discretización es completamente
automática y no es necesaria intervención alguna.

La discretización de las ecuaciones de los dispositivos semiconductores da lugar a un


conjunto de ecuaciones algebraicas acopladas y no lineales que deben ser resueltas
mediante un método de iteración no lineal. Existen dos aproximaciones ampliamente
usadas: el método de Gummel y el método de Newton. Cada uno de ellos implica resolver
grandes sistemas lineales de ecuaciones. El número de ecuaciones en cada sistema es 1-3
veces el número de nodos de la malla, dependiendo del número de portadores para el que
se resuelva.

En un dispositivo y un rango de operación concreto un método de solución u otro


puede ser el más adecuado. En transistores MOS solo es necesario simular para un
portador, sin embargo en transistores bipolares ambos portadores deben ser considerados.
El método de solución y el número de portadores para los que se va a resolver son
especificados con la sentencia SYMBOLIC. Es en este momento cuando el programa
genera un mapa de la matriz de ecuaciones. Posteriormente en la sentencia METHOD
pueden ser especificados varios parámetros como los límites de las iteraciones, factores de
aceleración, etc.

Las iteraciones no lineales generalmente convergen de forma lineal o cuadrática. En la


primera de ellas el error decrece en el mismo factor aproximadamente en cada iteración,
mientras que en el método cuadrático el error es aproximadamente la raíz cuadrada del
anterior lo que posibilita una rápida convergencia. Para soluciones precisas es muy
PISCES IIB 6

conveniente emplear un método cuadrático. El método de Newton es cuadrático mientras


que el de Gummel es lineal en la mayoría de los casos.

El error existente en cada iteración puede ser medido de dos formas. La primera,
conocida como la norma del lado derecho (RHS, right-hand-side), es la diferencia entre los
lados derecho e izquierdo de las ecuaciones (2.1)-(2.3). Puesto que es esta cantidad la que
pretendemos reducir a cero la norma RHS es la forma más natural de medir el error. De
forma alternativa el error puede ser medido como el tamaño de las modificaciones que se
hacen en las variables del dispositivo en cada iteración. Estas modificaciones son las
incógnitas “x ” en cada iteración con lo que a este método se le llama norma X.

Se considera que una solución converge y se terminan las iteraciones cuando o bien la
norma X o la norma RHS es inferior a una determinada tolerancia. Por defecto PISCES IIB
usa una combinación de ambas normas para determinar la convergencia. El programa
asume que una simulación converge si se satisface la tolerancia de cualquiera de las dos
normas en todos los nodos de la malla.

Analicemos a continuación los dos métodos de solución mencionados anteriormente.

En el método de Gummel las ecuaciones se resuelven secuencialmente. La ecuación de


Poisson se resuelve asumiendo que los potenciales de Fermi son fijos. Luego el nuevo
potencial es sustituido en las ecuaciones de convergencia, que son lineales y pueden ser
resueltas directamente. Las nuevas concentraciones de portadores son sustituidas a su vez
en el término de carga de la ecuación de Poisson y comienza otro ciclo. En cada paso
solamente se resuelve una ecuación de forma que la matriz posee N filas y N columnas
independientemente del número de portadores (0/1/2) para el que se simule. Es un
método desacoplado: un grupo de variables se mantienen fijas mientras se resuelve para
otro grupo. El éxito de este método depende del grado de acoplamiento existente entre las
ecuaciones. El acoplamiento más importante es debido al término de arrastre de la
corriente de portadores. Siempre que la corriente de arrastre sea poco relevante el método
de Gummel será apropiado.

En el método de Newton todas las variables del problema pueden cambiar durante
cada iteración considerándose todo el acoplamiento existente entre ellas. Debido a esto el
algoritmo de Newton es muy estable y el tiempo de simulación es prácticamente
independiente de las condiciones de polarización. El algoritmo básico es una
generalización del método de Newton-Raphson para el cálculo de la raíz de una ecuación
simple. Se obtiene una matriz Jacobiana que tiene tres veces más columnas y filas (o dos
veces más si se resuelve para un solo portador) que la matriz para una sola variable. La
desventaja del método de Newton es que para grandes mallas, la memoria y el tiempo
necesario para procesar esta matriz puede ser excesivo. El coste por cada iteración es
elevado pero en cambio el número de iteraciones es pequeño, típicamente entre tres y
ocho. El método de Newton es muy recomendable para simulaciones de dos portadores.
Sin embargo puede resultar bastante costoso en tiempo y memoria si la estructura del
dispositivo es muy complicada.

Se emplee uno u otro método siempre es necesario contar con un punto inicial de
partida al realizar cualquier simulación. Existen varias formas de conseguir esto. La más
PISCES IIB 7

simple de todas es la asunción de neutralidad de la carga (SOLVE INIT) usada para


obtener el primer punto de polarización (en equilibrio). Este es el punto de partida de toda
simulación. Cualquier otra simulación en la que exista un voltaje aplicado necesita un
punto inicial de algún tipo obtenido bien de este modo o modificando una o dos
simulaciones previas. Cuando se carga una simulación para ser usada como punto de
partida, esta se modifica estableciendo los voltajes aplicados a los contactos.

2.1.1.3 Malla de simulación.

En la simulación de dispositivos es muy importante definir correctamente la malla. El


número de nodos de la malla (N) tiene una influencia directa en el tiempo de simulación.
El número de operaciones aritméticas necesarias para alcanzar una solución es
proporcional a N  donde  normalmente varía entre 1,5 y 2. Debido a que las diferentes
partes de un dispositivo tienen un comportamiento eléctrico muy distinto, normalmente
es necesario definir una malla fina en algunas regiones y una malla menos densa en otras.
Tanto como se pueda es deseable que las regiones con una malla muy fina no se extiendan
a regiones donde es innecesario, con el fin de mantener el tiempo de simulación dentro de
unos límites razonables.

Otro aspecto en la definición de la malla es la correcta representación de la geometría


del dispositivo. Para poder simular correctamente el flujo de portadores la malla debe
ajustarse razonablemente a la forma del dispositivo.

Por las razones mencionadas anteriormente PISCES IIB contempla una estructura
irregular de la malla, lo que permite el análisis de dispositivos con formas arbitrarias y
posibilita el refinamiento de regiones concretas con un impacto mínimo en las otras.

Existe la posibilidad de usar un sistema de coordenadas cartesiano o cilíndrico. Como


PISCES IIB es un simulador bidimensional las simulaciones se llevan a cabo siempre en
solo dos de las tres dimensiones físicas, independientemente del sistema de coordenadas
usado. Con el sistema cartesiano las simulaciones se desarrollan en el plano x-y. Se asume
que el comportamiento del dispositivo es idéntico para todos los valores de z. Por esta
razón las corrientes de terminales se expresan en unidades de Amp/micra (o profundidad
en la dirección z).

El número máximo de nodos permitido al crear la malla en la versión que hemos


utilizado es de 3000. Sin embargo debido a los requerimientos de memoria impuestos por
los distintos métodos de solución, el máximo número de nodos permitidos al intentar
realizar una simulación puede ser inferior a ese valor. Recordemos que en el método de
Newton todas las ecuaciones se resuelven simultáneamente lo que hace que los
requerimientos de memoria sean sustancialmente mayores que los del método de
Gummel. Se ha de procurar siempre tener una malla de nodos lo suficientemente densa
para simular correctamente el dispositivo sin alcanzar el número máximo de nodos y sin
que el tiempo de simulación sea excesivo.

Regrid
PISCES IIB 8

A la hora de crear una malla PISCES IIB posee un mecanismo que automáticamente
refina la malla allí donde determinadas variables varíen rápidamente. Sin embargo en
algunas ocasiones puede no ser necesario utilizar este mecanismo. Se puede crear una
malla rectangular inicial con un conjunto de filas y columnas no uniformemente
espaciadas. La malla puede ser modificada para ajustarse a la geometría del dispositivo,
pueden eliminarse nodos de zonas donde no sean necesarios e incluso cambiar la posición
de algunas líneas de nodos. A pesar de estas facilidades al definir la malla, es altamente
aconsejable refinar la malla (comando REGRID) para poder representar correctamente las
características eléctricas del dispositivo.

Al realizar un regrid el usuario puede definir mallas finas solamente donde sea
necesario, creándose automáticamente una región de transición entre las regiones de alta y
baja densidad. El algoritmo de regrid busca en la malla inicial triángulos que satisfagan el
criterio de refinamiento. Cada triángulo encontrado es dividido en cuatro subtriángulos y
las distintas variables de la malla (potencial, dopado, concentración de portadores, etc.)
son interpoladas usando una interpolación lineal o logarítmica según sea más apropiado,
para asignar valores a los nuevos nodos. Loa nuevos triángulos pertenecen al nivel 1,
mientras que la malla inicial está en el nivel 0. Después de que todos los triángulos del
nivel 0 han sido examinados, se aplica el mismo procedimiento a los triángulos del nivel 1
correspondiendo los subtriángulos obtenidos al nivel 2. En cada nivel la malla es
chequeada y actualizada para evitar cambios bruscos en el tamaño de triángulos
contiguos. En la Figura 2.1 podemos apreciar como se modifica un triángulo sometido a
regrid, y la forma en que se produce la transición ente dos zonas de distinta densidad de
nodos.

Figura 2.1. Niveles de regrid en una malla de carácter triangular.

El refinamiento de la malla continua hasta que ningún triángulo satisfaga el criterio o


hasta que se alcance el nivel máximo especificado. En la mayoría de los casos es este nivel
máximo el que determina el tamaño final de la malla.

Si se realizan varios niveles de regrid consecutivamente, como después de cada regrid


se interpolan los datos para asignar valores a los nuevos nodos, los regrids de los niveles
más altos se van a basar en estos datos interpolados para tomar las decisiones de
refinamiento. Esto es totalmente desaconsejable debido a la no linealidad de los problemas
de los semiconductores: los datos usados para refinar la malla deben ser actualizados lo
antes posible. Se debe realizar un regrid de un nivel en cada ocasión, releyendo los
perfiles de dopado y realizando una nueva simulación entre niveles.
PISCES IIB 9

En la Figura 2.2 se muestra el efecto de realizar tres regrids atendiendo a variaciones de


0,1 V en el potencial. Los datos interpolados corresponden a la línea continua, mientras
que en trazo discontinuo aparecen los datos obtenidos realizando simulaciones. Como la
variación del potencial no es lineal, el uso de los datos interpolados no representaría
correctamente la distribución del potencial. Al realizar simulaciones entre los niveles de
regrid conseguimos una representación mucho más real de la variación del potencial.

Figura 2.2. Valores de potencial obtenidos mediante interpolación (línea continua) y


realizando simulaciones (línea discontinua).

Aunque cualquier paso en la generación de la malla puede introducir triángulos


obtusos (con un ángulo mayor de 90º), estos aparecen principalmente al distorsionar una
malla rectangular o cuando una malla que posee triángulos con una relación de aspecto
elevada (>2,8) es refinada. En este último caso pueden aparecer elementos muy obtusos en
la región de transición entre zonas de la malla con diferente densidad.

Para evitar esto existen dos técnicas: “node smoothing” y “triangle smoothing”. En la
primera de ellas los nodos son movidos de sitio de forma que se mejoran los ángulos de
los triángulos que los contienen. Esto solo es aplicable a la malla inicial, pues si la malla ya
ha sido refinada se tiende a redistribuir los nodos alejándolos de las zonas de mayor
interés físico donde son más necesarios. En “triangle smoothing” cada pareja de triángulos
adyacentes es examinada y si es necesario se modifica la diagonal del cuadrilátero que
forman. Este proceso es aconsejable en casi todos los casos y debe aplicarse tanto a la malla
inicial como después de haber realizado cualquier regrid. En la Figura 2.3 podemos
apreciar el efecto de aplicar “triangle smoothing” a una malla en la que se ha realizado un
regrid.
PISCES IIB 10

Figura 2.3. Malla resultante tras realizar un regrid: (a) sin utilizar triangle smoothing;
(b) empleando triangle smoothing.

Es muy difícil triangular una región sin que aparezcan triángulos obtusos. Estos
triángulos tienen dos efectos indeseables en la simulación. El primero es que magnifican
cualquier pequeña irregularidad presente en la simulación, dificultando la interpretación
de las representaciones de los resultados. El segundo efecto es que en ocasiones pueden
hacer que una simulación se interrumpa, al producirse un cambio en el signo de algunos
coeficientes de la matriz de simulación. En ambos casos lo mejor que se puede hacer es
asegurarse de que la malla es suficientemente fina en aquellas regiones donde sea
necesario y que la malla inicial ha sido correctamente creada.

2.1.2 Utilización de PISCES IIB. Descripción de los


comandos.
Existen dos formas de utilizar PISCES IIB: la primera es ejecutar el programa en una
ventana de MS-DOS e ir introduciendo los comandos en el espacio que el programa nos
reserva; la segunda es crear un archivo de entrada con cualquier procesador y escribir en
él los comandos y parámetros que queramos emplear. El archivo de entrada no debe tener
ningún formato (solo texto) y puede llevar cualquier extensión (nosotros hemos empleado
“.in” ). A continuación abriríamos una ventana de MS-DOS y teclearíamos “pisces2”
seguido del nombre del archivo de entrada. El programa leería una a una todas las líneas
del archivo que no estuvieran comentadas y se llevaría a cabo la simulación.

Esta segunda opción tiene una ventaja clara, y es que se puede modificar fácilmente el
archivo de entrada sin tener que volver a escribirlo enteramente cada vez que se quisiera
realizar una simulación o se tuviera un error de sintaxis. La ejecución del programa puede
detenerse momentáneamente (por ejemplo para observar la información que aparece en
pantalla) pulsando la tecla “Pausa”, e interrumpirse definitivamente mediante las teclas
“Control C”.
PISCES IIB 11

PISCES IIB genera principalmente tres tipos de archivos de salida. En un primer archivo
(archivo de malla) se recoge información sobre la malla creada (coordenadas de los nodos,
dopado y material de cada uno de los nodos, información sobre todos los triángulos que se
han creado, sobre los nodos que constituyen los electrodos, sobre las distintas regiones que
componen el dispositivo, etc.). También se genera un archivo de salida por cada
simulación realizada conteniendo toda la información obtenida tras la simulación:
distribución de potencial, de campo eléctrico, densidades de portadores, distintos tipos de
corrientes, etc. Estos dos archivos constituyen los archivos de entrada de POSTMINI, que
lee la información que contienen y permite su visualización gráfica.

Si se indica expresamente (comando LOG), PISCES IIB puede generar un tercer archivo
(archivo I-V) en el que vuelca toda la información relativa a los voltajes aplicados y las
corrientes de los terminales del dispositivo. Es esta la información que procesaremos
mediante una hoja de cálculo para poder obtener unas representaciones gráficas que
POSTMINI no nos proporciona. PISCES IIB puede visualizar el mismo esta información
pero como ya comentamos estas opciones no están disponibles en la versión para
Windows que hemos empleado.

Existe la posibilidad de que estos archivos (salvo el archivo I-V) sean creados en
formato binario o en formato ASCII. Los archivos de malla y simulación deben ser creados
en formato binario si queremos procesarlos posteriormente con POSTMINI y en formato
ASCII si lo que pretendemos es acceder directamente a los datos contenidos en ellos. El
archivo I-V es creado siempre en formato ASCII con lo que podemos acceder a la
información que contiene y procesarla con una hoja de cálculo. En el apartado 2.1.4
comentaremos con detalle el contenido de este archivo de salida.

Descripción de los comandos


La versión de PISCES de que disponemos ha sido compilada para Windows y en ella no
están operativas todas las funciones que el programa posee. En la Tabla 2.2 se muestran
todos los comandos con que cuenta PISCES IIB, señalados en letra negrita aquellos no
disponibles en la versión que hemos empleado.
*CHECK *EXTRACT *METHOD SOLVE
COMMENT IMPACT MODELS SPREAD
CONTACT * INCLUDE *OPTIONS SYMBOLIC
CONTOUR INTERFACE PLOT.1D TITLE
DOPING LOAD PLOT.2D VECTOR
ELECTRODE LOG PRINT X.MESH
ELIMINATE *MATERIAL REGION Y.MESH
END MESH REGRID

Tabla 2.2. Comandos con que cuenta PISCES IIB. En negrita aparecen aquellos no
disponibles en la versión compilada para Windows.

Los comandos resaltados en negrita se refieren todos a distintas formas de


visualización (en gráficas en una o dos dimensiones, a lo largo de todo el dispositivo o en
un área concreta, etc.) por parte de PISCES IIB de los resultados de las simulaciones. Los
PISCES IIB 12

comandos precedidos por un asterisco aún estando disponibles no han sido utilizados en
la realización de las distintas simulaciones al no ser necesarios.

Al crear un archivo de entrada se ha de respetar un orden al introducir los comandos en


él:

 El comando MESH debe preceder a todos los demás, salvo a TITLE, COMMENT y
OPTIONS.
 Al definir la malla rectangular de nodos el orden de comandos es el siguiente:
MESH
X.MESH
Y.MESH
ELIMINATE
SPREAD
REGION
ELECTRODE

Los comandos ELIMINATE y SPREAD son opcionales, pero si aparecen han de ir


en esa posición.

 Después de la definición de la malla debe ir a continuación el comando DOPING


(creación de los perfiles de dopado).
 CONTACT debe preceder siempre al comando SYMBOLIC. Es decir, hemos de
definir las características de los electrodos antes de que el programa discretice las
ecuaciones y cree la matriz de simulación.
 Después de haber realizado una simulación (SOLVE) los parámetros físicos no
pueden ser cambiados mediante los comandos MATERIAL, CONTACT o MODEL.
Al especificar estos comandos el último de ellos ha de ser siempre MODEL.
 Al hacer una simulación siempre se han de usar los resultados de una simulación
anterior como condiciones iniciales. La primera de todas las simulaciones que
vayamos a hacer ha de ser una simulación inicial o para las condiciones de equilibrio
(SOLVE INIT).

Vamos a comentar a continuación la función y utilización de los comandos más


importantes, aportando ejemplos de su uso extraídos de los archivos de entrada que
hemos creado durante la realización de este proyecto. Estos archivos se muestran
íntegramente en el capítulo 3 (transistor bipolar) y en el capítulo 5 (nMOS). Los
estudiaremos siguiendo el orden lógico de aparición en el archivo de entrada.

La mayoría de los comandos pueden ir acompañados de una serie de parámetros u


opciones que matizan y especifican las funciones que estos realizan. De nuevo sólo
comentaremos aquellos parámetros importantes o que hayamos empleado en nuestros
archivos de entrada.

Algunos parámetros son de tipo lógico: escribiendo el nombre del parámetro activamos
la opción asociada a él. Otros requieren de la especificación de un valor numérico o de un
texto; para realizar esa asignación se utiliza un signo de igualdad ‘=’.
PISCES IIB 13

No es necesario escribir los comandos en letras mayúsculas en el archivo de entrada


pero lo hemos hecho así para una mayor claridad. La mayoría de los comandos permiten
ser abreviados y escribir únicamente las primeras letras siendo igualmente reconocidos
por el programa. Si una línea de comandos es excesivamente larga puede dividirse en dos
líneas utilizando el símbolo “+” para unirlas.

Gran parte de lo que aquí se comente será a su vez tratado en posteriores capítulos, al
explicar los archivos de entrada concretos utilizados para las simulaciones. En algunas
ocasiones nos referiremos a estos capítulos indicando que en ellos se puede ampliar lo que
aquí se comenta y ver ejemplos prácticos del uso de los comandos.

 TITLE. Se usa para asignar un título (máximo 60 caracteres) al archivo que estamos
creando. Ese título aparece luego remarcado por el programa durante la simulación.

 COMMENT. Este comando nos permite introducir comentarios en el archivo de


entrada. Se puede realizar la misma función tecleando el símbolo del dólar ‘$’. Toda
línea que comience por este símbolo o por COMMENT será ignorada por PISCES IIB
durante la simulación.
 MESH. Es uno de los comandos más importantes. Con él definimos la malla o red de
nodos que recorre nuestro dispositivo. En todos y cada uno de estos puntos es
donde se van a considerar los distintos parámetros y realizar las simulaciones. Para
PISCES II nuestro dispositivo consiste únicamente en esa malla de nodos.

La elección de esta malla es crucial para el desarrollo de las simulaciones. PISCES


II es especialmente sensible al número y distribución de los puntos de cálculo
pudiendo obtenerse resultados erróneos si no se define correctamente.

Una malla muy densa con muchos nodos puede alargar considerablemente el
tiempo de cálculo empleado por PISCES II en cada una de las simulaciones, al tener
que trabajar con un gran número de datos. Si el número de nodos es excesivo,
PISCES II interrumpirá la simulación y mostrará un mensaje de error advirtiendo
de esta circunstancia.

Los principales parámetros que se pueden indicar dentro de este comando son:

MESH <type> <output files> <smoothing key>

Dentro de type se especifica si generamos nuestra propia malla o bien si


utilizamos una malla previamente creada y almacenada en un archivo.
Normalmente las mallas son de tipo rectangular, pero PISCES II contempla también
la opción de generar una malla cilíndrica, rotando la malla rectangular en torno al
eje Y.

Para crear una malla rectangular hemos de considerar a su vez cuatro variables:

Rectangular NX NY Diag.fli
PISCES IIB 14

Con la variable lógica Rectangular establecemos que nuestra malla va a ser de este
tipo. NX es el número de columnas o nodos en la dirección X, mientras que NY es el
número de filas o nodos en la dirección Y. Con Diag.fli podemos hacer que la malla
sea simétrica respecto a un eje vertical que atraviese el dispositivo por su centro. Lo
que se hace es distribuir las diagonales simétricamente respecto a ese eje en vez de
que todas vayan en la misma dirección.

Es aconsejable utilizar este parámetro siempre que el dispositivo presente ese


tipo de simetría. En un transistor nMOS se consigue que las regiones de fuente y
drenador posean una malla simétrica al emplear Diag.fli, mientras que no introduce
ninguna mejora en un transistor bipolar. El hecho de que todas las diagonales
converjan en un mismo eje, puede provocar pequeñas irregularidades a la hora de
visualizar las variables eléctricas con POSTMINI. Así nos ha ocurrido al representar
la distribución del campo eléctrico en el transistor nMOS. En el apartado 5.2 del
capítulo 5 se analiza este problema (ver Figuras 5.10 y 5.11).

Una vez definida la malla de nodos PISCES II crea automáticamente triángulos


entre cada tres nodos consecutivos. Dependiendo de la distribución de los nodos,
pueden formarse los denominados “triángulos obtusos”, es decir, triángulos en los
que alguno de sus ángulos supera los 90º. Aparecen tras la definición de la malla y
después de someterla a modificaciones, sobretodo con el comando REGRID que
veremos más adelante. En una malla rectangular pura no existen triángulos
obtusos; pero si se actúa sobre ella eliminando líneas de nodos o aumentando la
separación entre líneas existentes entonces sí que pueden aparecer.

Al definir la malla y tras realizar un regrid, PISCES II muestra durante la


simulación el número de triángulos obtusos existentes y el tanto por ciento que
representan respecto del total de triángulos. Este valor no suele superar el 6 u 7 por
ciento. Conjuntamente se proporciona información sobre el número de nodos de
que se compone la malla y el número de triángulos formados. En los capítulos 3
(Figura 3.12) y 5 (Figura 5.6) se muestra la evolución de estas variables al realizar
varios regrids tanto en el transistor bipolar como en el nMOS, respectivamente.

PISCES II cuenta con mecanismos para evitar la aparición, dentro de lo posible,


de triángulos obtusos y para reducir su número una vez que ya han sido creados.
Podemos actuar en este sentido en dos momentos distintos: al definir la malla y al
realizar un regrid en una malla previamente creada.

Uno de las opciones del comando MESH, smoothing key (el parámetro se escribe
smooth.key), es el encargado de suavizar o pulir la malla disminuyendo el número
de triángulos obtusos. Este parámetro también está presente en el comando
REGRID. Puede tomar tres valores: 1, suaviza los triángulos manteniendo fijos todos
los límites de las distintas regiones; 2, suaviza los triángulos pero solo mantiene
invariables los límites de los distintos materiales de que consta el dispositivo; 3,
hace un promedio de nodos. La opción más común y la que hemos empleado es la
uno: disminuimos el número de triángulos obtusos pero sin modificar la geometría
de las distintas regiones de que consta nuestro dispositivo.
PISCES IIB 15

En algunas ocasiones la presencia de este parámetro en el comando MESH no


influye en el número de triángulos obtusos: todo depende de lo irregular que sea la
malla inicial. De todas formas es conveniente ponerlo siempre. Donde si es
imprescindible utilizarlo es al realizar un regrid.

Como ejemplo de todo lo dicho hasta ahora veamos la generación de la malla de


un transistor nMOS. Se especifica que va a ser de tipo rectangular con 24 columnas
y 15 filas, se utiliza smooth.k con el valor 1 y se establecen simétricamente las
diagonales por medio del parámetro Diag.fli.

$ Creación de la malla.
MESH RECTANGULAR NX=24 NY=15 SMOOTH.K=1 DIAG.FLI

Ya se ha mencionado que la presencia de triángulos obtusos o irregularidades en


la malla puede magnificar las pequeñas inconsistencias que aparecen en cada
simulación. Como consecuencia de esto las representaciones con POSTMINI de las
variables eléctricas se ven ligeramente alteradas lo que dificulta su interpretación.
Por ejemplo, pueden aparecer pequeñas zonas con un valor bajo de una magnitud
en el interior de una región con un valor mucho más elevado, algo que no es lógico.

El caso más notorio con el que nos hemos topado es al representar la densidad de
corriente que atraviesa a un transistor bipolar. Esta representación se ve muy
afectada por las irregularidades de la malla. En el capítulo 3, concretamente en el
apartado 3.3.3, se analiza este efecto con la ayuda de las Figuras 3.16, 3.17 y 3.18 y se
comentan las posibles soluciones.

Para terminar con el comando MESH sólo nos queda por ver la opción output files.
Dentro de este apartado podemos indicar con el parámetro OUTFILE que se
almacenen todos los datos relacionados con la malla que estamos generando en un
archivo de texto cuyo nombre especifica el usuario. Por defecto está en formato
binario, con lo que puede ser leído como archivo de entrada por POSTMINI. Si
utilizamos la variable lógica ASCII.OUT el archivo será creado en formato ASCII
con lo que tendremos acceso directo a la información contenida en él.

Siempre que se quiera utilizar POSTMINI para visualizar los resultados hay que
almacenar la información relativa a la malla en un archivo. Esto puede indicarse en
el comando MESH o cada vez que se utilice el comando REGRID. Si no se va a
realizar ningún regrid incluimos el parámetro OUTFILE en el comando MESH; pero
si vamos a someter a la malla a algún regrid es conveniente incluir el parámetro
OUTFILE solamente en las sentencias REGRIDs y no con el comando MESH.

La razón es que al realizar un regrid se generan archivos donde se especifican


propiedades de la malla resultante. Si ejecutamos PISCES II varias veces y estamos
realizando regrids, cuando, dentro del comando MESH, el programa vaya a
almacenar la información de la malla en un archivo, leerá esos archivos que se
crearon al realizar un regrid en simulaciones anteriores. La estructura de la malla
que lee de esos archivos y la estructura de la malla que va a almacenar en el archivo
de texto no coinciden (pues al hacer un regrid la malla fue modificada). El
programa informa de este hecho y se detiene la simulación.
PISCES IIB 16

Lógicamente se puede mantener el parámetro OUTFILE en ambos comandos


(MESH y REGRID) y borrar, después de haber ejecutado PISCES II, los archivos
generados al realizar los regrids. Esto es más pesado y puede evitarse si como
aconsejamos solo se incluye el parámetro OUTFILE en los comandos REGRID.

Hemos de mencionar también que PISCES II puede admitir como entrada un


dispositivo que haya sido creado por otro programa, por ejemplo SUPREM IV. Este
programa simula los distintos procesos tecnológicos existentes en la fabricación de
dispositivos electrónicos. Permite definir dispositivos con unas características muy
parecidas a los reales, simulando los distintos procesos de fabricación. Los
dispositivos así creados pueden ser posteriormente simulados por PISCES II,
estableciéndose de este modo una cooperación de gran utilidad entre ambas
aplicaciones.

Las dimensiones y geometría del dispositivo, los perfiles de dopado, los


materiales de las distintas regiones, la colocación de los electrodos, etc. viene ya
definido en el archivo que lee PISCES II. Esto hemos de indicarlo en el comando
MESH mediante el parámetro Geometry, que iría englobado dentro de la opción type,
la primera que analizamos. Asociado a Geometry hemos de indicar mediante el
parámetro INFILE el nombre del archivo que debe ser leído.

En las líneas que aparecen sombreadas podemos ver la sentencia MESH empleada
para trabajar con un dispositivo que ha sido creado con SUPREM IV. Como en la
malla de este dispositivo no se va a realizar ningún regrid, indicamos en esta
sentencia que se almacene toda la información relativa a la malla en un archivo.

$ Lectura del archivo de salida de SUPREM IV.


MESH GEOM INFILE=pisces_cl1.str OUTFILE=mesh

 X.MESH e Y.MESH. Si con MESH definíamos el número de filas y columnas de nodos


en una malla rectangular, con X.MESH e Y.MESH determinamos la posición de cada
una de ellas. Sus parámetros son los siguientes:

X.MESH <node> <location> <ratio>


Y.MESH <node> <location> <ratio>

Node (o N) es el número de la línea de la malla cuya posición vamos a establecer.


Puede haber un máximo de 120 líneas en cada una de las direcciones (filas y
columnas) y los números de las mismas se asignan consecutivamente desde la
primera a la última. Location es la posición en micras donde se va a localizar la línea.
Ratio es el coeficiente utilizado para calcular el espaciado entre líneas cuando se
interpolan líneas entre dos posiciones dadas. Se proporciona la situación de la
primera y de la última línea calculándose la posición de las intermedias mediante
este coeficiente. El espaciado entre cada dos líneas crece o disminuye según indique
ese coeficiente, que puede valer entre 0,667 y 1,5 (con valor unidad la separación es
uniforme).
PISCES IIB 17

Como ejemplo vamos a analizar la distribución de la malla en el transistor


bipolar que hemos simulado. En este dispositivo, de 6x2 micras de tamaño, se
utilizan 25 columnas de nodos repartidas uniformemente desde las 0 hasta las 6
micras de ancho (sentencias X.MESH). De las 11 filas de nodos existentes, las cinco
primeras abarcan desde 0 hasta 0,5 micras de profundidad. Las seis restantes se
distribuyen en una región 3 veces mayor (1,5 micras) de manera no uniforme,
aumentando su separación (RATIO=1.3) según profundizamos en el dispositivo. La
zona inferior del dispositivo posee menos nodos pues su importancia desde el
punto de vista físico es menor.

$ Creación de la malla.
MESH RECTANGULAR NX=25 NY=11 SMOOTH.K=1

X.MESH N=1 LOC=0.0


X.MESH N=25 LOC=6.0

Y.MESH N=1 LOC=0.0


Y.MESH N=5 LOC=0.5
Y.MESH N=11 LOC=2 RATIO=1.30

Con los comandos MESH, X.MESH e Y.MESH la malla de nodos queda perfectamente
definida. Sin embargo hay ocasiones en que se somete a pequeñas modificaciones de dos
tipos: se eliminan líneas sobrantes y/o se modifica la separación entre algunas de las
líneas ya existentes. De esto se encargan los comandos ELIMINATE y SPREAD,
respectivamente. No son de uso muy común pero los mencionamos porque los hemos
utilizado al configurar la malla de los transistores nMOS. Estas modificaciones se
diferencian de las realizadas por el comando REGRID en que son mucho más localizadas y
en ningún momento se consideran las características eléctricas del dispositivo al
realizarlas.

 ELIMINATE. Este comando permite eliminar líneas de nodos de una malla ya


creada. Se emplea para reducir el número de nodos en zonas donde no sea necesaria
una malla muy densa. Los parámetros de que consta son:

ELIMINATE <range> <direction>

Con direction se especifica si se van a eliminar filas o columnas: con X.direction se


eliminan filas y con Y.direction columnas. La zona donde se van a eliminar las líneas
se define con region, cuyos parámetros son: IY.Low e IY.High, que determinan las
filas superior e inferior de esa región, e IX.Low e IX.High que especifican el número
de las columnas utilizadas como límite izquierdo y derecho.

Dentro de esa región así definida se eliminarán la mitad de las filas o columnas
que haya. Es decir, se eliminan la 2º, 4º, 6º, etc. líneas. A continuación podemos ver
la utilización de este comando al modificar la malla de un transistor nMOS. Se
indica que se eliminen la mitad de las columnas (Y.DIR) de todas las que se
encuentren entre las filas 11 y 15 (zona inferior del sustrato) y las columnas 1 a 24
(todo el ancho del dispositivo).

$ Eliminación de nodos del sustrato innecesarios.


ELIMINATE Y.DIR IY.LO=11 IY.HI=15 IX.LO=1 IX.HI=24
PISCES IIB 18

 SPREAD. Permite distorsionar una malla rectangular en la dirección vertical,


modificando la separación entre las filas. Lo hemos empleado para modificar la
región de óxido del transistor nMOS. Las opciones que posee son:

SPREAD <direction> <region> <specifies>

Dentro de direction se especifica (LEFT o RIGHT) que extremo de la malla va a ser


distorsionado. En region indicamos la anchura (Width) desde el extremo derecho o
izquierdo del área distorsionada. Con Upper y Lower definimos las filas superior e
inferior entre las que tiene lugar la distorsión. Por último, dentro de specifies,
podemos indicar el espesor (Thickness) de la zona ya distorsionada y lo abrupta que
es la transición (Encroach) entre la región distorsionada y la malla inicial. Cuanto
menor es este parámetro (el valor mínimo es 0,1) más abrupta es la transición con lo
que pueden aparecer triángulos muy irregulares.

Es un comando bastante complejo; lo entenderemos mejor viendo un ejemplo. En


ambas sentencias se va a distorsionar una región de una anchura de 1,25 micras,
situada a la izquierda o derecha del dispositivo, que abarca las tres primeras filas (1-
3). Se asigna a la región ya distorsionada un espesor de 0,2 micras con una
transición bastante gradual (ENC=2). En el apartado 5.1.2 del capítulo 5 se explica
con más detalle esta y otras modificaciones realizadas a la malla del transistor
nMOS.

$ Modificación de las regiones de fuente y drenador.


SPREAD LEFT WIDTH=1.25 UP=1 LO=3 THICK=0.2 ENC=2
SPREAD RIGHT WIDTH=1.25 UP=1 LO=3 THICK=0.2 ENC=2

 REGION. Con este comando definimos las distintas regiones con que cuenta el
dispositivo y el material de que se componen. Todo triángulo debe ser definido de
algún material.

REGION <number> <position> <material>

Solamente hay que asociar un número a cada región (Number), indicar las filas y
columnas que definen esa región (IX.Low, IX.High, IY.Low, IY.High) y asignarle un
material (Silicon, Insulator, Gaas, etc.).

Los transistores bipolares solo poseen silicio pero un transistor MOS está
formado de silicio y óxido. En nuestro caso definimos una región de silicio que
abarca todo el dispositivo y posteriormente creamos la región de óxido como la
parte central (columnas 5 a 20) del área que abarcan las tres primeras filas de la
malla.

$ Definición de las regiones de silicio y de óxido.


REGION NUM=1 IX.LOW=1 IX.HIGH=24 IY.LOW=1 IY.HIGH=15 SILICON
REGION NUM=2 IX.LOW=5 IX.HIGH=20 IY.LOW=1 IY.HIGH=3 OXIDE

 ELECTRODE. Este comando permite especificar la localización de los electrodos del


dispositivo en la malla. Hemos de asignar un número (Number) a cada electrodo
hasta un máximo de 10, y definir la región (IX.Low, IX.High, IY.Low, IY.High)
PISCES IIB 19

asociada a él. Todo nodo que se encuentre dentro de esa región será considerado
como nodo de electrodos.

ELECTRODE <number> <position>

El transistor bipolar cuenta con tres electrodos: el emisor (columnas 12-18) y la


base (columnas 7-10) ocupan parte de la primera fila de nodos de la malla y el
electrodo de colector comprende todos los nodos de la última fila (la base del
transistor).

$ Electrodos: 1=Emisor 2=Base 3=Colecotor.


ELECTRODE N=1 IX.LOW=12 IX.HIGH=18 IY.LOW=1 IY.HIGH=1
ELECTRODE N=2 IX.LOW=7 IX.HIGH=10 IY.LOW=1 IY.HIGH=1
ELECTRODE N=3 IX.LOW=1 IX.HIGH=25 IY.LOW=11 IY.HIGH=11

 DOPING. Es uno de los comandos más importantes: con el se definen los perfiles de
dopado del dispositivo. Posee un gran número de parámetros para poder realizar
prácticamente cualquier tipo de dopado. Vamos a mencionar los parámetros más
importantes y aquellos que hayamos empleado.

DOPING <profile type> <location> <profile specification>


<save>

En primer lugar hay que especificar el tipo de dopado que vamos a realizar:
Gaussian, Uniform, etc. También se puede indicar que se van a utilizar perfiles de
dopado definidos con otros programas, como Suprem IV. En location definimos el
área o la línea donde la concentración es máxima y constante, mediante los
parámetros X.Left, X.Right, Y.Top e Y.Bottom. Fuera de esta área el perfil cae de una
u otra forma según el tipo de dopado que se esté realizando.

En el apartado <profile specification> se pueden utilizar unos u otros parámetros


según el tipo de dopado que hayamos elegido. En un dopado uniforme basta con
indicar la concentración de dopado (Concentration) y el carácter del mismo (N.type o
P.type). Si el perfil es de tipo gaussiano, además de los parámetros anteriores hay
que definir la posición de la zona de máximo dopado (Peak), el punto en el que el
dopado se iguala al dopado existente (Junction) o la penetración del dopado
definida por la longitud característica (CH). La difusión lateral viene dada por el
coeficiente Ratio.Lateral, que es el cociente entre la difusión lateral y la difusión
vertical o principal.

Con el parámetro Outfile podemos almacenar en un archivo, cuyo nombre


especificamos, toda la información relativa al dopado del dispositivo. Se incluye en
la primera sentencia DOPING y automáticamente la información contenida en todas
las sentencias de este tipo es grabada en el archivo. Este será leído siempre que se
realice un regrid para distribuir el dopado en la nueva malla.

Analicemos el ejemplo de los transistores MOS de canal n con los que hemos
trabajado. En la primera línea se dopa uniformemente todo el dispositivo con un
dopado tipo p de 3E15. En ella también se indica el nombre del archivo donde se
almacenará toda la información sobre el dopado. En la siguiente línea se realiza otro
PISCES IIB 20

dopado tipo p, pero esta vez con una concentración mayor y con un perfil
gaussiano, para ajustar el potencial umbral. Se especifica una longitud característica
de 0,5 micras.

$ Especificación de los perfiles de dopado.


DOPING UNIFORM CONC=3E15 P.TYPE OUTFILE=dopado
DOPING GAUSS CONC=2E16 P.TYPE CH=0.5
DOPING GAUSS CONC=2E20 N.TYPE X.LEFT=0.0 X.RIGHT=1.0 PEAK=0
+ JUNCTION=0.68 RATIO.LAT=0.75
DOPING GAUSS CONC=2E20 N.TYPE X.LEFT=5.0 X.RIGHT=6.0 PEAK=0
+ JUNCTION=0.68 RATIO.LAT=0.75

Las dos últimas sentencias DOPING realizan dopados gausianos tipo n con la
misma concentración, una profundidad de unión de 0,68 micras y un coeficiente de
difusión lateral de 0,75 (el dopado se extiende lateralmente un 75% de lo que lo hace
verticalmente). En la primera sentencia se define la región de fuente localizada en el
extremo izquierdo del transistor (de 0 a 1 micras). El área de dopado constante de la
región de drenador abarca también una micra pero en el extremo opuesto (de 5 a 6
micras). Ambos dopados tienen su valor máximo en la superficie del transistor
(PEAK=0).

 INTERFACE. Este comando permite especificar algunas características de las


interfaces aislante-semiconductor, como las velocidades de recombinación de ambos
portadores (S.N y S.P) o la presencia de una densidad de carga fija (Qf). Su sintaxis
es:

INTERFACE <parameters> <location>

Dentro de location con (X.Min, X.Max, Y.Min e Y.Max) podemos indicar la región
a considerar. A toda interfaz aislante-semiconductor que se encuentre en su interior
se le aplicarán las velocidades de recombinación y la densidad de carga definidas
anteriormente.

En los transistores MOS hemos trabajado con una densidad de carga fija de 1E10
átomos/cm 2 .

INTERFACE QF=1E10
 REGRID. Este es el comando del que ya hemos hablado y que permite refinar la
malla. Cualquier triángulo en el que la variable escogida cambie más de lo indicado
o supere un determinado valor es refinado, es decir, dividido en cuatro
subtriángulos. La utilización de este comando lleva en la mayoría de los casos a la
aparición de triángulos obtusos e irregularidades en la malla.

REGRID <location> <variable> <control> <files>

El regrid puede aplicarse a todo el dispositivo, a una determinada área (X.Min,


X.Max, Y.Min, Y.Max), a una región específica (Region) o a todas las regiones menos
a una (Ignore). La variable física usada como patrón para refinar la malla puede ser
Doping, Potential, El.field, etc.
PISCES IIB 21

Dentro de la opción control se puede especificar la variación en la variable física


que provoca el refinamiento de un triángulo (Step) y si se ha de considerar o no en
escala logarítmica (Logarithm). Podemos indicar el máximo nivel de regrid que debe
realizarse (Max.level), activar la opción para evitar la aparición de triángulos
obtusos (Smooth.k) o establecer un criterio para limitar su aparición (Cos.ang). Si al
llevarse a cabo el regrid aparece un ángulo cuyo coseno es menor que el indicado en
COS.ANG, se añaden más puntos a la malla de modo que esto no ocurra. Es decir,
estamos poniendo un límite en el tamaño de los ángulos de los triángulos que se
generan tras el regrid. En el apartado 3.3.3 se analiza con más detalle este
parámetro.

Por último conviene indicar que se almacene la malla resultante en un archivo de


salida (especificado con Outfile), como ya mencionamos al estudiar el comando
MESH. El programa lee el perfil de dopado del dispositivo de un archivo
(especificado con Dopfile) que fue creado con los comandos DOPING, para distribuir
el dopado en la nueva malla. Siempre que se realiza un regrid se genera un archivo
conteniendo información sobre la estructura de triángulos existente, para facilitar
futuros regrids. Si no se especifica, el nombre del archivo se forma añadiendo “tt” al
nombre indicado en Outfile. Es la presencia de este archivo lo que nos llevó a
aconsejar, cuando estudiamos el comando MESH, no utilizar el parámetro Outfile en
ese comando si posteriormente se iban a realizar regrids.

Veamos en primer lugar el tercer regrid al que sometemos a la malla del


transistor bipolar. Es un regrid basado en variaciones de 3 órdenes de magnitud
(LOG STEP=3) en la concentración de dopado, que se aplica solamente a una zona
concreta (la unión base-emisor). En todos los regrids que realizamos empleamos los
parámetros SMOOTH.K=1, DOPFILE y OUTFILE.

$ Tercer regrid en dopado solo en la unión base-emisor.


REGRID DOPING LOG STEP=3 SMOOTH.K=1 X.MIN=2.25 X.MAX=4.75
+ Y.MAX=0.50 DOPFILE=dopado OUTFILE=mesh

En los nMOS también relizamos regrids basados en el potencial electrostático. En


este caso se consideran variaciones de 0,2 V en el potencial y se aplica a todo el
dispositivo menos a la región 2, la región de óxido. También se limita el nivel
máximo de regrids a uno.

REGRID POTENTIAL STEP=0.2 MAX=1 IGNORE=2 SMOOTH.K=1


+ DOPFILE=dopado OUTFILE=mesh

Hay algunos regrids que solo pueden llevase a cabo después de que se haya
realizado alguna simulación (SOLVE), y se disponga ya de la información relativa a
esa variable. Es el caso, por ejemplo, del potencial electrostático.

 CONTACT. Si con el comando ELECTRODE definimos la posición de los electrodos,


ahora con este comando especificamos sus características físicas.

CONTACT <number> <workfunction> <special conditions>


PISCES IIB 22

Podemos definir las características de todos los electrodos a la vez (ALL) o las de
cada uno de ellos (Number). La función trabajo del material de que conste el
electrodo es lo que va a especificar sus características eléctricas. Si se quiere utilizar
contactos óhmicos normales se utiliza el parámetro Neutral, aunque se pueden usar
varios materiales como Aluminum, N.poysilicon, P.polysilicon, etc. Dentro de la
opción special conditions se incluyen las distintas velocidades de recombinación
superficial o la posibilidad de utilizar el electrodo para aplicarle una corriente en
vez de un voltaje (Current).

En los nMOS se definen todos los contactos como óhmicos salvo el de puerta
(NUM=1) que se especifica de polysilicio N+. En el transistor bipolar en algunas
ocasiones se emplea el electrodo de base (NUM=2) como electrodo de corriente.

$ Especificación del tipo de contactos.


CONTACT ALL NEUTRAL
CONTACT NUM=1 N.POLY

CONTACT ALL NEUTRAL


$CONTACT NUM=2 CURRENT

 MODELS. Este comando establece la temperatura a la que se realizará la simulación y


permite considerar varios modelos y mecanismos físicos. Su sintaxis es:

MODELS <model flags> <numerical parameters>

Como se puede ver los parámetros son de dos tipos: los que especifican modelos
físicos y los que definen el valor numérico de alguna variable. Dentro de los
primeros hemos utilizado los siguientes modelos en los nMOS: movilidad
dependiente de la concentración de impurezas (CONMOB), movilidad dependiente
de la intensidad del campo eléctrico (FLDMOB) y movilidad superficial basada en
el campo efectivo (SRFMOB). Este último parámetro aparece en la documentación
como SURFMOB, pero la versión de PISCES IIB que hemos empleado no lo
reconocía con esa sintaxis.

Además de CONMOB en el transistor bipolar hemos empleado modelos de


recombinación de portadores (CONSRH y AUGER), el modelo de estrechamiento
del gap de energías (BGN) y hemos simulado a distintas temperaturas (TEMP): este
último parámetro pertenece a los del tipo numérico.

$ Modelos físicos a considerar durante la simulación.


MODELS CONMOB CONSRH AUGER BGN TEMP=300

MODELS CONMOB FLDMOB SRFMOB

 IMPACT. Este comando especifica el uso del modelo de ionización por impacto, que
permite la simulación de la ruptura por avalancha del dispositivo. Se pueden
especificar varios modelos de ionización por impacto y algunos parámetros
asociados a ellos. En ambos tipos de transistores hemos empleado el modelo de
Crowell y Sze.
PISCES IIB 23

IMPACT <parameters>

$ Ionización por impacto.


IMPACT CROWELL

 LOG. Utilizando este comando hacemos que toda la información de las


características AC o de corriente-tensión del dispositivo sea almacenada en un
archivo. Este archivo está en código ASCII y puede ser procesado por una hoja de
cálculo, lo que nos permite visualizar un tipo de características que POSTMINI no
nos proporciona. Únicamente hay que especificar el nombre de los archivos
(OUTFILE o ACFILE).

LOG <file specification>

$ Archivo de salida de las características I-V.


LOG OUTFILE=IV_nmos

 SYMBOLIC. Este comando lleva a cabo una factorización simbólica en preparación


para la simulación. Es decir, se discretizan las ecuaciones diferenciales parciales que
rigen el comportamiento del dispositivo, creándose la matriz de números reales con
la que se trabajará durante las simulaciones. Como esta matriz depende de la malla
existente, siempre que esta se modifique o cambie el número de nodos es necesario
realizar una nueva factorización simbólica.

SYMBOLIC <solution method> <carriers> <options>

Con este comando hemos de indicar el método de solución que se va a emplear


(Newton o Gummel) y el número (y tipo si solo es uno) de portadores para los que se
va a simular (Carriers, Electrons, Holes). En options se pueden especificar algunos
parámetros relacionados con la forma de procesar las ecuaciones.

Como ya se ha comentado el transistor bipolar exige trabajar con ambos


portadores, mientras que al simular los nMOS solo es necesario considerar los
electrones.

SYMBOLIC NEWTON CARRIERS=2

SYMBOLIC NEWTON CARRIERS=1 ELECTRONS

En algunas ocasiones se puede simular para cero portadores si solo se pretende


polarizar un terminal. Cuantos más portadores se simulen más tiempo requiere la
simulación y aumenta la posibilidad de que aparezcan problemas durante el
desarrollo de la misma.

 LOAD. Con este parámetro podemos cargar simulaciones realizadas anteriormente y


almacenadas en un archivo, para utilizarlas como punto de partida para otras
simulaciones. Únicamente hay que indicar el nombre del archivo (Infile) que
contiene la simulación a cargar.
PISCES IIB 24

LOAD <solution files>


En el transistor bipolar es necesario cargar una simulación inicial con una
polarización de base, para poder realizar simulaciones aplicando corrientes a ese
terminal:

$ Cargamos una solución inicial.


LOAD INFILE=sol_Init

 SOLVE. Este es el comando más importante de todos: con el se indica al programa el


tipo de simulaciones a realizar y la forma en que se han de llevar a cabo. Su sintaxis
es:

SOLVE <estimate> <dc bias> <transient> <ac> <files>

En la primera de las opciones se especifica cómo se obtienen los valores iniciales


que toda simulación necesita para llevarse a cabo. Lo más común es realizar una
simulación inicial (Initial) antes que cualquier otra: se aplica una polarización nula a
todos los electrodos y se resuelven las ecuaciones. Como ya comentamos también se
puede utilizar una simulación anterior almacenada en un archivo como punto de
partida (Previous).

Dentro de la opción dc bias se indican los voltajes o corrientes que se aplican a


cada electrodo (V1, V2 ... I1, I2 ...). Si queremos incrementar consecutivamente el
voltaje o la corriente aplicados a un electrodo la cantidad a incrementar se indica
con Vstep o Istep, el número de veces que se aumenta con Nsteps y el electrodo al
que se aplican con Electrode.

También es posible simular transitorios (<transient>) o características AC (<AC>).

Los resultados de las simulaciones se pueden almacenar en archivos. Con Outfile


indicamos el nombre del archivo donde se almacena la primera simulación. Si en
una misma sentencia SOLVE se realizan múltiples simulaciones, el resto de
simulaciones se almacenan en archivos cuyo nombre se obtiene incrementando el
código ascii del último carácter no blanco del nombre indicado en Outfile. Todos los
archivos son creados por defecto en código binario, pero si se pretende acceder
directamente a la información que contienen es necesario que su formato sea ascii
(parámetro Ascii). Dentro de este apartado también se encuentra el parámetro
currents. Cuando este parámetro está presente PISCES II calcula las corrientes de
electrones y huecos y el campo eléctrico y almacena esta información con el resto de
datos de la simulación.

Estos archivos de salida son procesados por POSTMINI (además del archivo de
la malla). Por lo tanto siempre que se quiera utilizar este programa hay que incluir
el parámetro currents en las simulaciones y almacenarlas en archivos de salida.

Veamos a continuación varios ejemplos de cómo se puede utilizar el comando


SOLVE.
PISCES IIB 25

En primer lugar se suele hacer una simulación inicial. Al realizar esta simulación
podemos aplicar una polarización no nula en alguno de los electrodos si lo
consideramos conveniente, o hacer que el resultado de la misma se almacene en un
archivo para ser posteriormente utilizada (como ocurre cuando se quiere utilizar
una corriente de base en el transistor bipolar).

$ Factorización simbólica y simulación inicial.


SYMBOLIC NEWTON CARRIERS=2
SOLVE INIT

$ Simulación inicial de referencia para emplear Ib.


SYMBOLIC NEWTON CARRIERS=2
SOLVE INIT V2=0.7 OUTFILE=sol_Init

Esta última simulación es cargada y utilizada posteriormente como punto de


partida para todas las simulaciones en las que se aplique una corriente al electrodo
de base.

LOAD INFILE=sol_Init
SYMBOLIC NEWTON CARRIERS=2
SOLVE PREV V1=0 I2=5E-6 V3=0

Lo más común suele ser aplicar una polarización concreta a uno o dos electrodos
y variar la polarización del tercero en un rango especificado. A veces es conveniente
realizar una simulación en la que solo se polariza un electrodo, de forma que las
simulaciones siguientes utilicen esta simulación como punto de partida.
Dependiendo del dispositivo que se simule y de las particularidades del electrodo
concreto conviene realizar esa primera simulación con cero o un portador. En los
nMOS comprobamos que las simulaciones en que polarizábamos el terminal de
puerta requerían cero portadores, pero si polarizábamos el drenador era necesario
simular para un portador (electron).

A continuación podemos ver las simulaciones necesarias para obtener las


características Ids-Vds de un nMOS. En primer lugar se polariza la puerta
simulando con cero portadores. Después, simulando ya para electrones, se polariza
el drenador (electrodo número 4) con 0 V y se le aplican 30 incrementos de 0,1 V.
Los resultados de las simulaciones se almacenan en el archivo sol_1 y los sucesivos.

$ Características Ids-Vds.
SYMBOLIC CARRIERS=0
SOLVE V1=2
SYMBOLIC NEWTON CARRIERS=1 ELECTRONS
SOLVE V4=0 VSTEP=0.1 NSTEPS=30 ELECT=4 OUTFILE=sol_1
+ currents

Para obtener las características subumbrales el proceso es análogo. En esta


ocasión se simula para electrones polarizando el drenador. Luego partiendo de una
polarización inicial de –1 V en la puerta (electrodo número 1), se realizan 30
simulaciones en las que se incrementa en cada una 0,1 V la polarización de puerta.

$ Características Ids-Vgs y características subumbrales


SYMBOLIC NEWTON CARRIERS=1 ELECTRONS
SOLVE V4=2
SOLVE V1=-1 VSTEP=0.1 NSTEPS=30 ELECT=1 OUTFILE=sol_1
+ currents
PISCES IIB 26

Aquellas simulaciones cuyos resultados de salida vayan a ser procesados por


POSTMINI han de llevar el parámetro currents y OUTFILE, como podemos observar
en las características Ic-Vce del transistor bipolar. Ambos parámetros complican la
realización de las simulaciones, ralentizándolas y provocando a veces su
interrupción. Por esta razón solo deben emplearse cuando sea estrictamente
necesario.

Para obtener las características Ic-Vce la forma de actuar es similar a las


anteriores, pero aquí se aplica un valor fijo de corriente a un terminal. En el
apartado 3.3.2 del capítulo 3 se explica detalladamente la forma de trabajar cuando
se utilizan corrientes en vez de voltajes.

$ Características Ic-Vce.
SOLVE V1=0 I2=1E-5 V3=0 VSTEP=0.1 NSTEPS=50 ELECT=3
+ OUTFILE=sol_1 currents

 END. Con este comando se indica el final del archivo de entrada. Todas las líneas que
se encuentren por debajo de este comando son ignoradas por el programa.

Brevemente vamos a mencionar la función de algunos comandos disponibles en esta


versión de PISCES IIB pero que no hemos empleado en nuestros archivos de entrada.

 INCLUDE. Permite incluir información de otros archivos dentro de un archivo de


entrada. Al leer el archivo de entrada PISCES II sustituye la sentencia INCLUDE por
la información del archivo especificado. Se puede, por ejemplo, definir la estructura
de la malla de un dispositivo en un archivo, y luego crear otro aparte para realizar
las simulaciones insertando en él el archivo que contiene la malla.

 MATERIAL. Con este parámetro se pueden modificar las características físicas de los
distintos materiales empleados (silicio, óxido, etc.). Si no se modifica se utilizan los
parámetros que el programa asocia por defecto.

 METHOD. Con él establecen una serie de parámetros asociados con el algoritmo de


solución concreto elegido con el comando SYMBOLIC. Existen una serie de
parámetros generales para establecer el número máximo de iteraciones, las
tolerancias a considerar, etc. y parámetros específicos de los métodos Gummel y
Newton.

 OPTIONS. Dentro de este comando se puede indicar que se muestre información y


parámetros numéricos por pantalla durante las simulaciones o que se almacene la
utilización de la cpu y el tiempo consumido en cada simulación realizada.

2.1.3 Consejos de utilización.


Para poder utilizar correctamente PISCES IIB y sacarle el mayor rendimiento posible
necesitamos cierta información que no se encuentra en los manuales. Esta información se
PISCES IIB 27

adquiere con la experiencia tras haber empleado muchas horas intentando resolver los
pequeños problemas que surgen de su utilización. Con este apartado pretendemos
compartir esa información en forma de consejos prácticos con el único propósito de
facilitar el manejo de PISCES IIB a todo aquel que se enfrente a él.

 Siempre se ha de procurar distribuir los nodos de la malla de forma que representen


correctamente la geometría del dispositivo. La malla ha de ser más densa en aquellas
zonas de mayor importancia desde el punto de vista de los fenómenos eléctricos que
ocurren en ellas, y poseer pocos nodos en zonas de poco interés (normalmente las
zonas de sustrato).

 Al definir la malla conviene utilizar el parámetro Smooth.k=1 para reducir en la medida


de lo posible la existencia de triángulos obtusos en la malla.

 Se ha de alcanzar un compromiso entre el hecho de crear una malla correctamente


definida, y la aparición de triángulos obtusos y su influencia negativa en las
representaciones realizadas con POSTMINI. Es imposible evitar que estos triángulos
aparezcan: solo se conseguiría con una malla muy simple y por lo tanto inadecuada.
Ante todo una malla debe simular correctamente el comportamiento eléctrico del
dispositivo: la aparición de triángulos obtusos debe considerarse como algo secundario
e inevitable.

 En aquellos dispositivos que sean simétricos respecto a un eje vertical que lo atraviese
por su centro (como los transistores MOS) conviene distribuir las diagonales de la
malla también simétricamente mediante la utilización del parámetro Diag.fli (ver
comando MESH).

 No almacenar la información relativa a la malla en un archivo en la sentencia MESH si


posteriormente se van a realizar regrids (basta con hacerlo en las sentencias REGRID).

 En los transistores MOS se facilita la simulación si la interfaz óxido-silicio se sitúa en la


coordenada vertical cero (ver archivo de entrada en el capítulo 5).

 Aunque aparece en algunos ejemplos de la bibliografía, la versión de PISCES IIB de


que disponemos no permite utilizar electrodos que ocuparan varias líneas de nodos (es
decir, que su apariencia fuera la de un rectángulo). Todos los electrodos que hemos
empleado están formados por líneas verticales u horizontales que contienen un
número determinado de nodos: es decir, no tienen superficie.

 Se ha de tener cuidado de que todos los nodos que forman los electrodos se encuentren
en regiones de silicio. Si existe un electrodo en una región de óxido no fluirá por el
ninguna corriente y por tanto es como si no existiera.

 Para poder apreciar a simple vista la posición de los electrodos que hemos definido se
puede hacer lo siguiente: anular todas las simulaciones y los regrids, almacenar la
información de la malla en un archivo en la sentencia MESH y definir regiones de
óxido que abarquen los electrodos. Por ejemplo si un electrodo ocupa una línea de
cinco nodos se puede definir una región de óxido que abarque esta línea y otra
PISCES IIB 28

inmediatamente paralela con el mismo número de nodos. La región de óxido así


definida es un rectángulo que será representado en blanco si visualizamos con
POSTMINI el archivo con la información de la malla. De esta forma podemos ver
donde se localiza cada electrodo sabiendo que en realidad son líneas de nodos y no
rectángulos. Todos estos cambios son únicamente para visualizar los electrodos: una
vez hecho se han de deshacer los cambios introducidos.

 Cuando se definen los perfiles de dopado del dispositivo hay que salvar toda esa
información en un archivo, para que pueda ser posteriormente leído por las sentencias
REGRID.

 Es conveniente realizar en cada dispositivo al menos un par de regrids basados en


variaciones de dos o tres órdenes de magnitud en la concentración de dopado. Se
pueden realizar otros regrids en dopado en zonas concretas de especial relevancia en el
dispositivo (unión base-emisor en los transistores bipolares). Si existe alguna zona
importante en la que los regrids en dopado apenas hayan afectado a la malla, conviene
realizar nuevos regrids atendiendo a otra magnitud física que si varíe en el interior de
esa zona (es el caso de los regrids en potencial de los nMOS para mejorar la malla de la
zona del canal). Dependiendo de que magnitud física se trate puede ser necesario
realizar una simulación inicial antes de realizar el regrid para poder contar con la
distribución de esa magnitud.

 En todas la sentencias REGRID se debe almacenar la información de la malla de nodos


en un archivo, así como indicar el nombre del archivo que contiene los perfiles de
dopado del transistor para que pueda distribuirse el dopado en la nueva malla.

 El comando que más puede perjudicar a la malla es precisamente REGRID, con lo que
tampoco se debe abusar de él. Es indispensable incluir el parámetro Smooth en estas
sentencias pues tiene un efecto especialmente positivo en la reducción del número de
triángulos obtusos que pueden aparecer.

 En cuanto a qué modelos físicos incluir en las simulaciones el consejo es obvio: incluir
aquellos que sean relevantes para el tipo de dispositivo que se quiera simular. Especial
atención merecen los modelos de movilidad: existen varios modelos y la elección de
unos u otros puede alterar en gran medida las características I-V del dispositivo.

 Es muy aconsejable incluir el comando IMPACT en todas las simulaciones que


realicemos, pues es la única forma que tenemos de saber si se están produciendo
mecanismos de ionización por impacto que puedan conducir a la rotura del transistor.

 Si se quieren analizar las características I-V de un dispositivo es necesario almacenar


esta información en un archivo mediante el uso del comando LOG. Como en la versión
de PISCES IIB compilada para Windows que hemos utilizado, no están disponibles las
opciones de visualización que posee el propio programa, hemos de procesar con la
ayuda de una hoja de cálculo los datos sobre las características I-V almacenados en ese
archivo.
PISCES IIB 29

Realización de las simulaciones.

 Nos vamos a referir únicamente a simulaciones en las que se aplican voltajes a todos
los electrodos. El caso en el que se aplica una corriente en algún electrodo es tratado
ampliamente en el apartado 3.3.2 del capítulo 3.

 Siempre que se modifique la malla o cambie el número de nodos (por ejemplo después
de una sentencia REGRID) es necesario hacer una factorización simbólica, para que se
discreticen las ecuaciones diferenciales atendiendo al nuevo número y distribución de
los nodos.

 Como ya hemos comentado al trabajar con MOSFETs sólo es necesario simular para
electrones, mientras que con los transistores bipolares hay que incluir ambos
portadores: esto hace las simulaciones más lentas y complicadas.

 En cuanto a los métodos de solución el mejor es el método de Newton pues resuelve


todas las ecuaciones diferenciales conjuntamente y es el más estable de los dos.

 Como punto de partida siempre es necesario realizar una simulación inicial en la que
se pueden incluir ambos portadores pues no suele dar problemas (excepción hecha del
caso en el que se aplican corrientes).

 Únicamente incluir los parámetros Outfile y currents en las sentencias SOLVE si se


quieren visualizar con POSTMINI los resultados de las simulaciones, pues con estos
parámetros aumenta la posibilidad de que aparezcan problemas durante las
simulaciones.

 Siempre, y esto es muy importante, se han de aplicar las polarizaciones de forma


gradual, sin cambios bruscos. Si queremos trabajar con 3 V aplicados a un electrodo y
lo polarizamos directamente con ese valor lo más probable es que la simulación se
interrumpa. Lo mejor es realizar varias simulaciones en las que se vaya incrementando
progresivamente la polarización del electrodo hasta llegar al valor deseado. Por
ejemplo podemos partir de cero voltios y realizar 6 simulaciones aumentando 0,5 V en
cada una.

 En otras ocasiones se puede realizar una simulación incluso con cero portadores con el
único fin de polarizar un electrodo. Es solo una simulación para aplicar un voltaje a un
electrodo, no necesitamos simular con uno o dos portadores. A continuación se
incluiría otra sentencia en la que ya se realizarían todas las simulaciones necesarias
para obtener unas características. Esto se ha utilizado por ejemplo para obtener las
características Ids-Vds en los nMOS, realizando una primera simulación con cero
portadores para fijar el voltaje de puerta.

 Si los incrementos en el voltaje aplicado a un electrodo, cuando se realizan múltiples


simulaciones en una misma sentencia, son elevados, la simulación puede no realizarse.
Variaciones de 1 V o más en un electrodo pueden ser excesivas. Normalmente se
suelen aplicar incrementos de varias décimas de voltio (0,6 o 0,7 como mucho) sin que
aparezcan problemas. El valor concreto depende del dispositivo, del electrodo en
PISCES IIB 30

particular y de las condiciones de polarización. La solución es ir probando y averiguar


en que rango se puede trabajar sin problemas.

 En ocasiones las simulaciones no se interrumpen pero aparece un mensaje advirtiendo


de que no se han cumplido las tolerancias exigidas por el programa. En estas ocasiones
se proporcionan unos resultados que pueden no ser correctos y no tener ningún
significado físico. Si este tipo de sentencias aparecen en varias ocasiones durante el
desarrollo de un grupo de simulaciones lo mejor es interrumpir la ejecución del
programa (teclas “Control C”), si es que no se interrumpe automáticamente. Sin
embargo si este aviso aparece solo una o dos veces puede ser únicamente un fallo
pasajero y desarrollarse el resto de las simulaciones correctamente y con total
normalidad. En este caso conviene echar un vistazo a los resultados obtenidos y si son
lógicos se pueden utilizar sin ninguna preocupación.

 Si se pretende cortocircuitar varios electrodos durante una simulación la forma de


realizarlo es aplicarles en todo momento el mismo voltaje. Para modificar
simultáneamente el voltaje aplicado a varios electrodos hay que especificar los
números de todos esos electrodos en el parámetro que identifica los electrodos cuya
polarización se modifica. Por ejemplo, si queremos barrer simultáneamente los
electrodos 1 y 4 lo indicaríamos en la sentencia SOLVE de este modo:

SOLVE V1=0 V4=0 VSTEP=0.1 NSTEPS=30 ELECT=14

2.1.4 Archivos de salida.


PISCES IIB genera principalmente tres tipos de archivos de salida: el archivo de malla,
el archivo que contiene los resultados de las simulaciones y el archivo donde se almacenan
los datos de las características I-V y A.C. del dispositivo. La estructura y el formato de los
dos primeros es una información que no está disponible para el usuario (no aparece ni
siquiera en la documentación de las versiones comerciales de PISCES II). Tampoco se
facilita el formato del archivo de las características I-V pero se puede deducir. En este
apartado mostraremos que tipo de datos se almacenan en este archivo y en que orden lo
hacen, información indispensable para poder procesar esa información con una hoja de
cálculo.

Los archivos de malla y simulación se crean por defecto en formato binario. Por lo tanto
si queremos echar un vistazo a su contenido hemos de indicar expresamente que se
escriban en código ASCII (parámetro ASCII de los comandos MESH y SOLVE). Los datos
contenidos en ambos archivos no se distribuyen en forma de simples columnas, pues sería
ineficiente dado que el programa maneja una gran cantidad de datos distribuidos en
mallas triangulares. Aunque no sepamos la estructura interna de estos archivos vamos a
mencionar que tipo de información contienen.

El archivo de malla contiene una descripción de la malla de simulación y de las


concentraciones de impurezas en cada nodo. Se especifica el número de filas y de
columnas, el número total de nodos, el número de triángulos, el número de electrodos, de
regiones, etc. Se muestran las coordenadas de cada nodo, la concentración de dopado de
PISCES IIB 31

cada uno, las movilidades de bajo campo, el área que ocupa cada nodo, etc. También se
especifica la estructura de triángulos presentes en la malla: los nodos que componen cada
uno de los triángulos, el material de cada triángulo, los triángulos adyacentes a uno dado,
etc.

Se genera un archivo de simulación para cada simulación realizada (a cada punto de


polarización distinto le corresponde una simulación). Estos archivos contienen los
resultados de resolver la ecuación de Poisson, y opcionalmente (parámetro currents) las
ecuaciones de continuidad de electrones y huecos.

El último archivo del que vamos a hablar lo denominamos archivo I-V y contiene toda
la información de los terminales del dispositivo, es decir, las características I-V y A.C. Este
archivo se genera al utilizar el comando LOG y siempre en formato ASCII, con lo que
puede ser procesado directamente por una hoja de cálculo. Únicamente hemos de utilizar
la opción Abrir del menú Archivo de la hoja de cálculo y el programa automáticamente lee
la información distribuida en columnas y nos permite coger unos u otros datos. El archivo
I-V sigue por supuesto la nomenclatura inglesa representando los decimales con un punto:
es un detalle a tener en cuenta pues existen versiones de Excel u otras hojas de cálculo que
no siguen la norma inglesa lo que puede dar lugar a una interpretación errónea de la
información que contiene.

El primer dato que nos encontramos en este archivo es el número de terminales con que
cuenta el dispositivo. Debajo de él aparece un conjunto de datos asociados a cada una de
las simulaciones. El primer valor se refiere al instante de tiempo en el que se está
simulando. Esto se utiliza lógicamente cuando se simulan transitorios o evoluciones
temporales. A continuación se muestra el potencial de contacto de todos los terminales
ordenados según el número que se le asignó. Posteriormente aparecen las polarizaciones
aplicadas a cada uno de los terminales y por último la corriente que fluye por cada uno de
los terminales. El potencial de contacto del electrodo y la polarización aplicada coinciden
en la mayoría de los casos.

Analicemos un ejemplo sencillo de un transistor bipolar. El primer número que vemos


(3) nos indica que es un dispositivo de tres terminales. A continuación se muestran un
grupo de datos asociado cada uno a una simulación (en total se realizaron seis
simulaciones). Como el transistor posee 3 terminales cada grupo contiene 10 números: el
primero indica el instante de tiempo; los tres siguientes el potencial de contacto de los tres
terminales; a continuación aparecen tres números que muestran el voltaje aplicado a cada
terminal; por último se muestran las corrientes de los tres terminales.

Como no estamos analizando ningún transitorio el instante de tiempo siempre es cero.


La primera de las simulaciones es una simulación inicial con lo que tanto los potenciales
de contacto como el voltaje aplicado son nulos. En las 5 simulaciones restantes se aplica un
voltaje de –0,8 V al terminal 1 y se varía la polarización del terminal número 3 desde los 3
V iniciales hasta un voltaje final de 3,8 V.

3  Número de terminales.

0.00000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00


0.00000000E+00 0.00000000E+00 0.00000000E+00
PISCES IIB 32

2.61040445E-18 5.36006020E-20 -1.75386549E-20

0.00000E+00 -8.00000012E-01 0.00000000E+00 3.00000000E+00  Vcontacto


(tiempo) -8.00000012E-01 0.00000000E+00 3.00000000E+00  Vaplicado
-1.31703961E-05 5.06118631E-06 8.10920978E-06  Corrientes

0.00000E+00 -8.00000012E-01 0.00000000E+00 3.20000000E+00


-8.00000012E-01 0.00000000E+00 3.20000000E+00
-1.31718545E-05 5.05682117E-06 8.11503335E-06

0.00000E+00 -8.00000012E-01 0.00000000E+00 3.40000001E+00


-8.00000012E-01 0.00000000E+00 3.40000001E+00
-1.31733057E-05 5.05257706E-06 8.12072866E-06

0.00000E+00 -8.00000012E-01 0.00000000E+00 3.60000001E+00


-8.00000012E-01 0.00000000E+00 3.60000001E+00
-1.31747525E-05 5.04842073E-06 8.12633180E-06

0.00000E+00 -8.00000012E-01 0.00000000E+00 3.80000001E+00


-8.00000012E-01 0.00000000E+00 3.80000001E+00
-1.31762121E-05 5.04428748E-06 8.13192460E-06

También podría gustarte