Gummel Poon
Gummel Poon
Gummel Poon
U. N. R.
Proyecto de Ingeniería
Asignatura: A-365
- Marzo 1993 -
Resumen: El trabajo consistió en el desarrollo del Programa
Estimador de Parámetros (ProEsP), que es una herramienta para calcular
parámetros de transistores bipolares y de efecto de campo de juntura.
Luego de la introducción hacemos una descripción general del programa
desde el punto de vista del usuario, seguida por los fundamentos teóricos
que hicieron posible la realización del programa y cuyo conocimiento
permite un mejor aprovechamiento del mismo. A continuación repasamos los
algoritmos para la determinación de raíces de funciones usados en el
programa para luego describir su estructura interna. En en final damos
detalles, sugerencias y observaciones acerca de la utilización del
programa.
Contenido
1. Introducción ..................................................... 1
2. Descripción general del sistema .................................. 2
2.1. Esquema de funcionamiento................................. 2
2.2. Requerimientos del sistema................................ 5
3. Fundamentos Teóricos ............................................. 6
3.1. Transistor Bipolar........................................ 6
3.1.1. Descripción del Modelo de Gummel-Poon ........... 6
3.1.2. El modelo de Gummel-Poon modificado en
SPICE2G.1 ............................................... 11
3.1.3. Cálculo de IS y nF .............................. 16
3.1.4. Cálculo de VAf: ................................. 18
3.1.5. Cálculo de Bf, IKf, ISE y nE: ................... 18
3.1.6. Cálculo de rB y rBm: ............................ 21
3.1.7. Cálculo de ISC, Br y rC: ........................ 22
3.1.8. Cálculo de CjE, VjE, mjE, CjC, VjC y mjC: ....... 24
3.1.9. Cálculo de Tf: .................................. 25
3.1.10. Cálculo de Tr: .................................. 26
3.2. Transistor de efecto de campo de juntura.................. 26
3.2.1. Cálculo de λ: ................................... 28
3.2.2. Cálculo de β: ................................... 29
3.2.3. Cálculo de las capacidades CGD0 y CGS0: ......... 30
4. Algoritmos ....................................................... 33
4.1. Método Dicotómico......................................... 33
4.1.1. Características generales: ...................... 33
4.1.2. Diagrama del algoritmo: ......................... 34
4.2. Método de Newton-Raphson.................................. 34
4.2.1. Características Generales: ...................... 34
4.2.2. Diagrama del algoritmo: ......................... 35
5. Implementación ................................................... 36
5.1. Lenguaje de programación utilizado........................ 36
5.2. Estructura interna........................................ 36
5.2.1. PRINC.C ......................................... 37
5.2.2. GRAF.C .......................................... 40
5.2.3. Subrutina de grupo general ...................... 41
5.2.4. IFORWARD.C ...................................... 42
5.2.5. VAF.C ........................................... 42
5.2.6. HFE.C ........................................... 42
5.2.7. RBASE.C ......................................... 42
5.2.8. BREV.C .......................................... 42
5.2.9. CAPBJT.C ........................................ 42
5.2.10. TFOR.C .......................................... 43
5.2.11. TREV.C .......................................... 43
5.2.12. LAMBDFET.C ...................................... 43
5.2.13. BETAFET.C ....................................... 43
5.2.14. CAPFET.C ........................................ 43
5.3. Códigos fuente y ejecutable............................... 43
6. Manual del Usuario ............................................... 44
6.1. Ejemplo................................................... 44
6.2. Resumen de comandos....................................... 51
6.3. Observaciones y Recomendaciones........................... 51
7. Bibliografía ..................................................... 53
1
1. Introducción
En los programas de simulación de circuitos como por ejemplo el
SPICE, se presentan frecuentemente problemas cuando los circuitos a
simular contienen elementos activos y no se dispone de los valores de los
parámetros de sus modelos. Aún contando con una biblioteca de modelos
para el simulador, no siempre podemos estar seguros que los parámetros
contenidos en esta son adecuados para nuestro problema en particular.
Inicio
Presentación
General
Elección:
Fin
BJT, JFET,
Info, Fin
Fin
JFET Info
BJT
Menú:
Salir
Grupo parámetros,
Grabar, Salir
Grupos 1 ... n
Grabar
Grupo 1
Muestra Info
Graba
Grupo n
Modelo
Figura 1
Menú
BJT o FET
Figura 2
Figura 3
Con respecto al orden de los grupos hay que destacar que por regla
general los parámetros calculados en el grupo i intervienen en el cálculo
del grupo j, con i<j. Esto significa que si por ejemplo estimamos los
parámetros del grupo 3 y luego modificamos los del grupo 1, la curva del
grupo 3 puede alejarse de manera significativa de los datos
correspondientes. En ese caso puede ser necesario forzar un nuevo cálculo
en el grupo 3 (esto se hace con la opción D). Considerando lo anterior,
en principio es conveniente comenzar por el grupo 1 y luego ir avanzando
siempre hacia adelante. Los usuarios más experimentados podrán podrán
alterar esa secuencia, ya que hay veces que eso agiliza el trabajo.
3. Fundamentos Teóricos
Describiremos brevemente los modelos que utiliza SPICE tanto para el
trasistor bipolar como para el de efecto de campo de juntura, para luego
ver los métodos para determinar los parámetros más relevantes y las
condiciones en las que estos métodos son válidos.
d qB
i B = i BE + i BC + (q1)
dt
Analizamos primero las componentes de continua, iBE e iBC. En la
componente base-emisor (iBE) pueden considerarse dos contribuciones:
iBE1, que representa la corriente a través de un diodo ideal y describe
la recombinación de los huecos de la corriente de base en la zona del
emisor, e iBE2, que contempla la corriente a través de un diodo no ideal:
v BE vBE
= I s1 e
Vt
− 1 + I sE e E t − 1 ,
n ⋅V
análogamente, para iBC;
v BC v BC
= I s 3 e − 1 + I sC e C t − 1
Vt n ⋅V
3
10
1
10
0
10
-6 -4 -2 0 i
C
10 10 10 10
Figura q1
qB = QB 0 + qC + qE + B. Tf . I f + Tr . Ir (q4)
qC = ∫ CSBC (v BC ) ⋅ dv BC (q5)
iC
Figura q2
C JC
CSBC = (q7)
(1 − u BC VJC ) m JC
7
CJE
CSBE = (q8)
(1 − u BE VJE ) mJE
Cs
Cj
-Vj Vjuntura
Figura q3
iCE = i f − ir (q9)
Resultan:
Q v BE
i f = IS B 0 e VT − 1 (q10)
qB
QB 0 VT
v BC
ir = I S e − 1 (q11)
qB
en las cuales Is (del orden de 10-15A) corresponde a la intersección de
la asíntota de iC(uBE) con el eje de las ordenadas en una gráfica
semilogarítmica (mirar más adelante, fig. q6). El término Tfif describe
el incremento de la carga de la base con el aumento de la corriente de
colector y con esto el decrecimiento de β (efecto de Webster). El factor
de proporcionalidad B representa el cociente al cuadrado del ancho
eléctrico (eficaz) de la base (Weff) y el ancho geométrico (WB):
2
Weff
B= (q12)
WB
qB
N qB = = (q13)
QB 0
8
qC qE 1 v BE 1 vBC
= 1+ + + B ⋅ Tf ⋅ I S e Vt − 1 + Tr ⋅ I s e Vt − 1 =
QB 0 QB 0 N qB ⋅ QB 0 N qB ⋅ QB 0
q2
= q1 + (q14)
NqB
qC q
q1 = 1 + + E
QB 0 QB 0
1 v BE 1 vBC
q2 = B ⋅ T f ⋅ I S e Vt − 1 + Tr ⋅ I s e Vt − 1
N qB ⋅ QB 0 N qB ⋅ QB 0
en donde q1 representa la carga almacenada y las de transición
normalizadas y q2 las capacidades de difusión normalizadas. De la ec. q4
obtenemos:
2
NqB = 1 + 1 + q2
q q
(q15)
2 2
iB = −iC − iE = (q16)
v& BE
B ⋅ T f I s Vt
iE = −i f + ir − iBE − CSBE ⋅ v& BE + e v& BE (q17)
Vt N qB
v BC
T I
+ r s e
Vt
iB = i f − ir − iBC − CSBC ⋅ v& BC v& BC (q18)
Vt N qB
iE rE if ir rC iC
E E’ C’ C
ir if
iB’E’ iB’C’
VB’E’ VB’C’
CsB’E’ CsB’C’
CdB’E’ CdB’C’
B’
(rB - rBm) / NqB
rBm
iB
B
Figura q4
v B ’E ’
B ⋅ T f I s Vt
CDB’E’ = e (q19)
Vt N qB
v B’C ’
T I
= r s e
Vt
CDB’C’ (q20)
Vt N qB
rBB’ = rBm +
( rB − rBm ) (q21)
N qB
d qB
iB = iBE + iBC + = (q22)
dt
v BE v BE I v BC v BC d q
I s n f ⋅Vt
− 1 + I sE e − 1 + e − 1 + I sC e C t − 1 + E
n E ⋅Vt nr⋅Vt n ⋅V
= e s
Bf Br dt
v BC v BE
1 du 1 du
N qB = 1 +
VAf ∫ u
m JC +
VAr ∫ u
m JE +
1 − 1 −
0 0
VJC VJE
v BE v BC
1 I s n f ⋅Vt 1 I s
+ e −1 + e nr ⋅Vt − 1 (q23)
I Kf N qB I Kr N qB
Pero estas ecuaciones serán utilizadas solo en DC, como veremos luego.
v BC v BE
q C du C du
N qB = B = 1 + JC
QB 0 QB 0 ∫ u
m JC + JE
QB 0 ∫ u
m JE +
1 − 1 −
0 0
VJC VJE
B ⋅ Tf I s v BE v BC
+ e n f ⋅Vt − 1 + Tr I s e nr ⋅Vt − 1 (q24)
QB 0 N qB QB 0 N qB
iC = i f − ir − iBC = (q25)
v BE v BC v BC
Is nr ⋅Vt
v BC
Is n f ⋅Vt
nr ⋅Vt
− e − 1 − I SC e C t − 1
n ⋅V
= e −e
N qB Br
La carga NqB se obtiene de resolver la ec. q23 para NqB en forma análoga
a la ecuación q15:
NqB =
q1s
2
q q
(
+ 1s + q2 s ≈ 1s 1 + 1 + 4 ⋅ q2 s = NqBSPICE
4 2
) (q26)
De la ec. q14:
v BE
I s n f ⋅Vt I s nr ⋅Vt
v BC
q2 s = e −1 + e − 1 (q27)
I Kf I Kr
1
q1s = (q28)
v v
1 − BE − BC
VAr VAf
v BE − m JE
I s n f ⋅Vt u
v BE
q Eges = Bs ⋅ T f e − 1 + C JE ∫ 1 − du (q29)
N qB 0
VJE
I v BC v BC
u
− m JC
v BE
d q Eges Bs ⋅ T f I s n f ⋅Vt CJE
CBEges = = e + m JE = C DBE + CSBE (q31)
d u BE n f ⋅ Vt N qB v BE
1 −
VJE
v BC
d qCges T I s nr ⋅Vt CJC
CBCges = = r e + m JC = CDBC + CSBC (q32)
d u BC nr ⋅ Vt N qB v BC
1 −
VJC
2 v
i f 1.44BC⋅VTf
Bs = 1 + XTf e (q33a)
i f + ITf
v BE
i f = Is e f t − 1
n ⋅V
con (q33b)
Esto explica la particularidad del modelo SPICE, en el que están
considerados el efecto Webster (fig. q1), la caída de β = iC/iB para
grandes corrientes de colector a través de IKf , y en AC el decrecimiento
de la fT y también el aumento del tiempo de tránsición Tf , en forma
separada.
rC
Gpi Cpi gm Go
rE
Figura q5
∂iB ∂i ∂i
G pi = , G0 = C + B ,
∂v BE ∂v BC ∂v BC
∂iC ∂i ∂i
gm = + C + B ,
∂v BE ∂v BC ∂v BC
Pasemos a ver ahora los fundamentos del cálculo de cada uno de los
siguientes grupos de parámetros.
3.1.3. Cálculo de IS y nF
v BE v BE
I n ⋅V
n ⋅V
iB = S e f T + I SE ⋅ e E T (q34)
Bf
v BE
i n ⋅V
iC = S e f T (q35)
N qB
v BE
1 IS n f ⋅VT
NqB = 1 + 1 + 4 ⋅ e (q36)
2 IKf
iC
NqB = 1 + (q37)
I Kf
para iC<< IKf ( <100 µA típica) se puede suponer NqB≅ 1 (de la ec. q26).
De ahí sigue de la ec. q35:
v BE
n f ⋅VT
iC = I S ⋅ e (q38)
iC, iB
iB
Valores Típicos
iC
Pendiente 1 / (2*2,3*nF*
-2 IKf
10
Pendiente 1 / (2,3*nF*VT)
-13 ISE
10
Pendiente 1 / (2,3*nE*VT)
-16 IS
10
-18
10 IS / Bf
VBE
0,7 V
Figura q6
15
vBE1 − vBE 2
nF = (q39)
i
VT ⋅ ln C1
iC 2
v BE 1
−
n F ⋅VT
I S = iC1 ⋅ e (q40)
iC i
VAf ≈ = C (q41)
∂iC hOE
∂vCE
iC
β= v BE v BE
(q42)
IS
n F ⋅VT n E ⋅VT
e + I SE ⋅ e
Bf
nF
1 1 i I i i nE
= 1 + C + SE C 1 + C (q43)
β (iC ) B f I Kf iC iS I Kf
β
max
β
2
β
1
Pendiente m2
Figura q7
nF
1 1 ISE iC nE
= + (q44)
β (iC ) Bf iC IS
nF
1 ISE iC nE
< para iC > 0.5µA
Bf iC IS ≈
I nn F
log( β ) = log S E + 1 − nF ⋅ log(iC ) , 0,5µA < iC < IKf (q45)
ISE nE
el valor:
nF
nE = (q47)
1 − m2
∂β (iC )
=0
∂ iC i =i (β )=I
C C max CM
se obtiene:
17
ICM
1+
nF
ISE I I nE
1 IKF
CM 1 + CM = (q48)
ICM IS IKf Bf I
m2 2 + Kf − 1
ICM
ICM 1
B f = β max 1 + 1+ (q49)
I Kf
I
m2 2 + − 1
Kf
ICM
1
IKf > − 2 ⋅ ICM = IKf min (q50)
m2
1 1 nF
IKf > − ⋅ IC1m2 ⋅ IS nE (q51)
β 1 Bf
Así, se determinan los parámetros nE, Bf e ISE para β(iC) (ec. q43).
Solo debe estimarse IKf min de la ec. q50. Luego hay que aumentar iKf
hasta obtener el juego de parámetros que más se aproxime a la curva del
hFE, utilizando por ejemplo el criterio del error cuadrático medio entre
puntos de la curva del modelo y del manual.
Bf
B fcorregido =
1 + vcb VAf
18
iC
Recta correspondiente a vB’E (rBB’=0)
-1
10
2
-2
10 Caída (iB2 . rBB'2)=delta vC
1
-3
10
~ 0,6V vCE
Figura q8
v B ’E
I n ⋅V
1 + 1 + 4 ⋅ S e F T
IKf
NqB = , (q52)
v −v
21 − B’E CE
VAf
∆vCE1 (r − r )
= rBm + B Bm
iB1 N qB1
∆vCE 2 = r + ( rB − rBm )
, (q53)
iB 2 Bm
N qB2
v B’E v B’E
= I S e F T − 1 = I SE e E T − 1 ,
n ⋅V n ⋅V
I BE1 , I BE 2
(q54)
v B’C ’ v B’C’
= I S e R T − 1 = I SC e C T − 1
n ⋅V n ⋅V
I BC1 , I BC 2
IBE1
1+ 1+ 4⋅
IKf
NqB = (q55)
v −v
21 − B’E CE
VAf
IBE1 I
IB = + IBE 2 + BC1 + I BC 2 (q57)
NqB Br
vCEsat
hFEsat=cte
~ 300 mV
3
1
2
log iC
-3 -2 IC3 -1
10 10 10
Figura q9
IBE11 I BC1
iB1 = B + I BE 21 + B + ISC ⋅ sum1
f r
I BE12 I BC2
iB2 = + IBE 2 2 + + ISC ⋅ sum2 (q59)
Bf Br
v B’C j
sum = e nC ⋅VT − 1
j
− m ji
v
CSBi = C ji 1 − Bi , i = E, C (q61)
Vji
v
ln(CSBi ) = ln(C ji ) − m ji ⋅ ln1 − Bi
Vji
21
La sustitución por :
v
Y = ln(CSBi ) , X = ln 1 − Bi ,
Vji (q62)
A = ln(C ji ) , B = − m ji
Y = A + B⋅ X (q63)
N
1 N N
∑x y k k − ∑ xk ∑ yk
N k =1 k =1
B= k =1
2 (q64)
N
1 N
∑
k =1
x k −
2
∑ xk
N k =1
1 N N
A= ∑ k y − B ∑ xk (q65)
N k =1 k =1
2
N
1 N
∑
k =1
x k −2
∑ xk
N k =1
r 2 = B2 2 (q66)
N
1 N
∑
k =1
yk
2
− ∑ yk
N k =1
m ji = − B, C ji = e A ; i = E, C (q67)
log fT 1 / fT
fT1
1 / fT2
fT2
1 / fT0
Ic1 Ic2 1 / Ic2 1 / Ic1
log iC 1 / iC
Figura q10
Haciendo eso:
I C1 − I C 2
fT 0 = fT 2 ⋅ fT 1 (q68)
fT 1 ⋅ IC 2 − fT 2 ⋅ IC1
1
Tf = − C jC ⋅ rC (q69)
2π ⋅ fT 0
ts
Tr = (q70)
2 ⋅ iC
Br ⋅ ln
h (
FEsat ⋅ iBa + iC hFEsat )
rD
CGS
IGD
G VGD
ID vDS
VGS
IGS
CGS
rS
Figura j1
VGS’ VGS’
= I s e t − 1 + e t − 1
V V
IG = IGS’ + IGD’ (j1)
La corriente en los otros terminales es:
Restan las capacidades que son las correspondientes a los dos diodos del
modelo. Notemos que en el transistor efecto de campo de juntura no hay
capacidades de difusión ya que no hay junturas polarizadas directamente
(en funcionamiento normal).
CGS 0
CGS’ = M (j5)
VGS’
1 −
PB
CGD0
CGD’ = M (j6)
VGD’
1 −
PB
24
Este modelo de las capacidades está bastante más limitado que en el caso
de las capacidades de transición del transistor bipolar, ya que M es fijo
igual a 0.5 y PB es común a las dos capacidades, pero hay que tener en
cuenta que en realidad en el transistor de efecto de campo de juntura hay
una sola juntura.
CGD
gGD rD
G D
gm vGS
rS
Figura j2
∂ ID ∂I
gm = , gDS = D ,
∂ VGS ∂ VDS
(j7)
∂I ∂I
gGS = GS , gGD = GD
∂ VGS ∂ VDS
β: coeficiente de transconductancia.
3.2.1. Cálculo de λ:
ID Pendiente proporcional a La
VGS=0
ID2
ID1
VDS
VDS1 VDS2
Figura j3
25
IDS 2 − I DS1
λ= , (j8)
I DS1 ⋅ VDS 2 − IDS 2 ⋅ VDS1
3.2.2. Cálculo de β :
log ID
IDSS
IDS1
VDS=cte (15V)
VGS1 VGS
Figura j4
I DS1
β= (j9)
( VTO − VGS1 ) 2 (1 + λ ⋅ VDS )
Si en cambio tenemos datos referentes de rDSon= 1/gDS de la ec. j7 con
VDS= 0 (figura j5), hacemos el cálculo de β de la siguiente forma:
1
β=
2( VGS1 − VTO ) ⋅ ron1
(j10)
log rDSon
rDSon1
VDS=0
VGS1 VGS
Figura j5
26
CGD ≅ Crs
; (j11)
CGS = Cis − Crs
lo que implica que primero deberemos calcular CGD0 para poder luego
obtener valores de CGS a partir de los datos (Cis), como veremos luego.
V
log(CGD ) = log(CGD0 ) − M ⋅ log1 − GD , (j12)
PB
Y = A + B⋅ X ;
V (j13)
Y = log(CGD ) , X = log1 − GD , A = log(CGD 0 ) , B = − M
PB
Crs
VGS=cte.
VDS
Figura j6
Tomaremos N puntos de esta gráfica. Surge entonces el problema que Crs=
CGD está en función de VDS y no de VGD como necesitamos, por lo que
deberemos calcular esta última para cada punto, lo cual es posible porque
27
conocemos VGS que es constante para toda la gráfica. Entonces VGDi= VGS-
VDSi; i=1... N.
N N
∑ Y − B∑ X
A= k =1 k =1
(j14)
N
El valor de CGD0 surge inmediatamente de la ec. j13.
Cis
VDS=cte.
VGS
Figura j7
CGD0
CGS = Cis − M (j15)
VGS − VDS
1 −
PB
4. Algoritmos
En esta sección haremos un breve repaso de los algoritmos utilizados
en el ProEsP para encontrar las raíces de funciones. Estos algoritmos son
dos: el método dicotómico y el de Newton-Raphson.
Inicio
a(n)-b(n)<e
Fin
u=(a(n)+b(n))/2
si no
f(a(n))*f(u) < 0
a(n+1)=a(n) a(n+1)=u
b(n+1)=u b(n+1)=b(n)
n=n+1
f(x0)
x
z x1 x0
f ( xn )
xn + 1 = xn −
f ’( xn )
Inicio
x(n+1)=x(n)-f(x(n)) / f’(x(n))
si
| x(n+1)-x(n) | < e
no Fin
n=n+1
n: número de iteración
e: acotación del error
30
5. Implementación
En este punto consideramos la estructura interna del ProEsP, así
como también la elección del lenguaje para su implementación.
5.2.1. PRINC.C
main
preswindow
Presentación y menú
1 Esc
Elección
Fin
Rutina bipolar 2 3
Programa principal
33
bipolar
preswindow
Presentación y menú
de elección de grupo
1... 9 Esc
Elección
Ir a la
rutina que
corresponda G Fin bipolar
Rutina bipolar
34
jfet
preswindow
Presentación y menú
de elección de grupo
1... 4 Esc
Elección
Ir a la
rutina que
corresponda G Fin jfet
Rutina jfet
5.2.2. GRAF.C
Grupo n
Inicialización
MainWindow
opción no
DóP
si
print( 'parámetros' )
plot( 'función' )
StatusLine( 'opciones' )
Entrar opción
Cualquier otra
Según opción
D P
no opción
Esc, N, P
si
Fin Grupo n
Retorna opción
5.2.4. IFORWARD.C
5.2.5. VAF.C
5.2.6. HFE.C
5.2.7. RBASE.C
5.2.8. BREV.C
5.2.9. CAPBJT.C
• capbjt: subrutina de grupo para Cje, Vje y mje o Cjc, Vjc y mjc;
según los argumentos de entrada.
5.2.10. TFOR.C
5.2.11. TREV.C
5.2.12. LAMBDFET.C
5.2.13. BETAFET.C
5.2.14. CAPFET.C
6.1. Ejemplo
Figura m1
Figura m2
39
Figura m3
Figura m4
Figura m5
Figura m6
Figura m7
Figura m8
Figura m9
43
Figura m10
Figura m11
44
Nos queda ahora determinar los parámetros para el BC264D. Para ello
entramos, en el menú de la fig m2, directamente en la opción '2' porque
vemos en el manual que en lo único que se diferencian el BC264B y D es en
las carácterísticas correspondientes a este grupo.
Figura m12
Solo nos resta volver al menú del JFET (fig. m2) y grabar el nuevo
modelo, cambiando el nombre BC264D, por ejemplo. Luego oprimiendo Esc
volvemos al menú principal (fig m1). Aquí podríamos entrar en la parte
para transistor bipolar si fuera necesario, ver información sobre el
programa, volver al menú del JFET, o volver al sistema operativo
volviendo a oprimir Esc y confirmando afirmativamente a la pregunta si
queremos salir que nos hará el programa.
45
7. Bibliografía
[1] Franz Sischka, Eine Methode zur Bestimmung der SPICE-Parameter für
Bipolare Transistoren. AEÜ, Band 39 [1985], Heft 4.