-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 1/11
Tutorial do Simulador SPICE Prof. Dr. Fabian Vargas Prof. Msc.
Juliano Benfica
Marlon Moraes Marcelo Mallmann Setembro / 2007
Introduo
Este tutorial tem como objetivo principal fazer uma breve e
sucinta intro-duo ferramenta de simulao de circuitos SPICE aos
alunos da disciplina de Microeletrnica do curso de Engenharia
Eltrica da PUCRS. Alm do contato inicial com ambiente de simulao
SPICE, abordaremos tambm os princpios da sintaxe de descrio de
circuitos juntamente com os comandos bsicos para simulaes de
componentes semicondutores, foco desta disci-plina.
O que o SPICE?
O SPICE um software de simulao que pode ser utilizado para
anali-sar o comportamento eltrico de um circuito contendo uma
grande variedade de componentes, como por exemplo, transistores,
diodos, resistores, capacito-res e etc. Esta poderosa ferramenta
possibilita que o usurio estime com bas-tante preciso, atravs de
vrios tipos de simulaes, o comportamento de cir-cuitos eltricos dos
mais variados tamanhos e nveis de complexidade.
Para que o SPICE possa realizar tais estimativas, via simulao, o
usurio deve fornecer ao software os seguintes dados:
a) Descrio do circuito: uma descrio completa do circuito a ser
analisado; seus elementos, suas fontes de sinais e de polarizao e
principalmente, como estes dispositivos esto interligados no
circuito. Tambm necessrio o fornecimento dos parmetros modelares
empregados para a descrio comportamental dos componentes ativos a
serem simulados.
b) Especificao de anlise: uma definio dos tipos de anlise, por
exemplo, cc, transiente, pequenos sinais, etc..
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 2/11
c) Especificao dos resultados: uma definio do tipo de resultado
esperado com a simulao, por exemplo, uma tabela contendo correntes
e tenses cc, um grfico CTT de uma porta-lgica etc..
Neste tutorial abordaremos, de uma forma bastante breve, como
essas informaes devem ser apresentadas ao SPICE, porm antes devemos
mencionar que todas essas informaes so passadas ao SPICE em forma
de seqncia de linhas de descrio armazenadas em um arquivo chamado
de arquivo de entrada (SPICE input file) cuja sua extenso
usualmente *.cir ou *.sp .
A composio do arquivo de entrada bastante simples, entretanto
algumas regras devem ser seguidas. o caso da primeira linha, que
reservada para a identificao do ttulo da simulao. A ltima linha, do
arquivo de entrada, tambm reservada para o comando .END que
utilizado para a sinalizao do fim do arquivo para o SPICE.
A ordem das linhas de comandos e definies restantes totalmente
ar-bitrria e fica a critrio do usurio, embora seja recomendvel o
uso de co-mentrios ao longo do arquivo para facilitar a sua
posterior interpretao. As linhas de comentrio so identificadas pela
presena do asterisco (*) como primeiro caractere.
Descrio do Circuito
Cada elemento no circuito especificado por uma declarao de
elemento (element statement) contendo o seu nome, os ns do circuito
aos quais ele est conectado e o(s) valor(es) do(s) seu(s)
parmetro(s) eltrico(s). O nome do elemento pode conter at oito
caracteres alfanumricos, sendo a primeira letra a indicao do seu
tipo (por exemplo, R para resistor).
Os ns do circuito so especificados por meio de nmeros inteiros
no-negativos, no sendo necessria a numerao seqencial.
O n de referncia (terra) deve obrigatoriamente ser numerado com
o nmero zero. Cada n deve possuir, pelo menos, duas conexes, exceto
os ns de substrato dos MOSFETs e as linhas de transmisso sem
terminao. Os formatos de especificaes bsicas para componentes so
apresentados na Tabela 1, na qual:
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 3/11
Componentes Nome Ns Valores Resistor Rxxxxxxx N+ N- VALOR
Capacitor Cxxxxxxx N+ N- VALOR Indutor Ixxxxxxx N+ N- VALOR
GCCT(VCCS) Gxxxxxxx N+ N- NC+ NC- VALOR GTCT(VCVS) Exxxxxxx N+
N- NC+ NC- VALOR GCCC(CCCS) Fxxxxxxx N+ N- VNOM VALOR GTCC(CCVS)
Hxxxxxxx N+ N- VNOM VALOR
Fonte de Tenso Vxxxxxxx N+ N- QUAL Fonte de Corrente Ixxxxxxx N+
N- QUAL
Tabela 1 Sintaxes para declaraes de elementos.
1. O nome do componente comea com uma letra especfica (como
indicado na Tabela 1) e possui de um a oito caracteres
alfanum-ricos.
2. N+ e N- indicam os ns de ligao no circuito, o primeiro sendo
o n positivo (se essa informao for necessria). importante observar
que a corrente de uma fonte de corrente flui do n N+ para o n
N-.
3. VALOR est nas unidades bsicas de ohms, farads, henries, A/V,
V/V, A/A, V/A, respectivamente para os sete componentes lista-dos
anteriormente. Por convenincia, prefixos de unidades podem ser
usados, conforme indicado na Tabela 2.
Sufixo indicativo Prefixo mtrico Fator multiplicador T tera 1012
G giga 109
Meg mega 106 K quilo 103 M mili 10-3 U micro 10-6 N nano 10-9 P
pico 10-12 F fento 10-15
Tabela 2 Abreviaturas para fatores de escala reconhecidos pelo
SPICE.
4. NC+ e NC- so ns aos quais a tenso de controle est ligada. 5.
VNOM a fonte de tenso atravs da qual a corrente de controle
flui. 6. QUAL o conjunto de atributos para a descrio das fontes.
A
Tabela 3 apresenta o conjunto de atribuies para algumas fontes
importantes.
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 4/11
Fonte QUAL DC DC valor_dc
Senoidal sin(offset amplitude freqncia temp_inicio) Quadrada
pulse(dc_1 dc_2 inicio_pulso tmp_sub tmp_desc largura_pulso
periodo)
Tabela 3 Atributos de descrio de fontes.
7. Uma fonte de tenso com valor zero usada como ponto de medio
de corrente.
Como exemplo, um resistor de 2,2M, com o nome RB2, conectado
en-tre os ns 4 e 5, pode ser descrito ao SPICE pela seguinte
declarao de ele-mento (note que usado ponto e MEG):
RB2 4 5 2.2MEG
Como outro exemplo, um capacitor de 1,0F (CC1) conectado entre
os ns 3 e 4 e tendo uma tenso inicial de 5V pode ser descrito pela
seguinte de-clarao:
CC1 3 4 1.0M IC=5
Como exemplo final, uma fonte de tenso dependente controlada por
tenso (gerador de tenso controlado por tenso) e com fator de
controle 105 V/V (ganho), pode ser descrito como:
EOUT 3 0 2 1 100K
Onde EOUT indica o GTCT, no qual o seu terminal de sada est
ligado ao n 3, sua referncia ao no de terra (n 0) e os seus
terminais de entrada ligados aos ns 2 e 1.
Descrever um dispositivo semicondutor no SPICE exige, alm da
de-clarao do elemento, a declarao de modelo do elemento (model
statement). A Tabela 4 apresenta a sintaxe das declaraes de
elemento para diodos, o TJBs e os MOSFETs.
Componentes Nome Ns e Modelos Diodo Dxxxxxxx N+ N- MNOME AREA
TJB Qxxxxxxx NC NB NE NS MNOME AREA
MOSFET Mxxxxxxx ND NG NS NB MNOME L W Tabela 4 Declarao de
elemento para dispositivos semicondutores.
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 5/11
1. A declarao inicia-se com o nome do dispositivo, do qual a
pri-meira letra indica o tipo de dispositivo.
2. Para um diodo, N+ o n no qual se liga o anodo e N- o n ao
qual se liga o catodo.
3. Para um TJB, NC, NB, NE e NS so respectivamente os ns do
circuito aos quais se ligam o coletor, a base, o emissor e o
subs-trato.
4. Para um MOSFET, ND, NG, NS e NB so respectivamente os ns do
circuito aos quais se ligam o dreno, o gate, o source e o
subs-trato.
5. MNOME indica o nome do modelo para o dispositivo em
particu-lar. Os valores dos parmetros do modelo so especificados
se-paradamente na declarao do modelo (abordaremos esta decla-rao a
seguir).
6. AREA um fator de escala de rea (opcional): o nmero de dio-dos
ou TBJs do tipo em questo que devem ser conectados em paralelo para
formar o dispositivo desejado.
7. L e W indicam o comprimento e a largura do canal do MOSFET
(em metros).
Notas: O n substrato em geral conectado na referncia de terra (n
0) para transistores NMOS e o na alimentao (n Vcc) para
transistores PMOS.
Finalmente, a Tabela 5 apresenta as sintaxes das declaraes de
mo-delos para diodos, TBJs e MOSFETs.
Componentes Declarao de Modelo Diodo .Model MNOME D(IS=... n=...
etc.) TBJ .Model MNOME NPN (ou PNP) (IS=... F=... etc.)
MOSFET .Model MNOME NMOS (ou PMOS) (kP=... Vt0=... etc.) Tabela
5 Sintaxe para as declaraes de modelos.
Onde MNOME novamente refere-se ao nome do modelo de elemento.
Cada tipo de dispositivo semicondutor, por exemplo, deve possuir
uma declarao de modelo de elemento especificando os valores dos
seus parmetros de fabricao.
Tambm possvel, para a descrio e simulao de circuitos muito
grandes e/ou complexos, o uso da estrutura de sub-circuitos. A
Tabela 6
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 6/11
apresenta a sintaxe de declarao e adio destas estruturas no
arquivo de entrada:
Declarao
.subckt nome_sub-circuito n_1 n_2 ... n_n R.. L... (descrio do
sub-circuito) C... .ends nome_sub-circuito
Adio
X-------- n_1 n_2 ... n_n nome_sub-circuito
Tabela 6 Sintaxe para as declarao e adio sub-circuitos.
Os ns do sub-circuito (n_1 n_2 ... n_n) representam os ns que
podero ser acessados quando o sub-circuito for adicionado, estes ns
obrigatoriamente devem ser descritos na mesma ordem definida no
comando .subckt, sendo que os sinais ou ns internos aos
sub-circuitos sem acesso externo no podem ser observados na
simulao.
Especificando os Tipos de Anlises
Uma vez descrito o circuito o usurio deve ento especificar,
tambm no arquivo de entrada, o tipo de anlise desejada para a
simulao. Existem basicamente trs tipos de anlises: ponto de operao
cc (DC operating ponint), resposta ca em freqncia (AC frequency
response) e resposta transiente (transient response). A Tabela 7
apresenta a sintaxe dessas anlises, juntamente com o comando de
varredura cc (DC sweep command). Note que cada um destes comandos
inicia com um ponto (.), este caractere informa ao SPICE que a
linha se trata de um comando solicitando uma ao especfica.
Anlise solicitada Comando SPICE Ponto de operao .OP Varredura cc
.DC nome_da_fonte valor_inicial valor_final valor_do_passo Resposta
ca em freqncia .AC DEC pontos_por_decada freq_inicial
freq_final
.AC OCT pontos_por_oitava freq_inicial freq_final
.AC LIN total_de_pontos freq_inicial freq_final Resposta
transiente .TRAN passo_de_tempo tempo_final [tempo_sem_imprimir
tamanho_mximo_do_passo] [UIC] Tabela 7 Principais comandos de
anlise.
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 7/11
O comando ponto de operao cc (.OP), calcula o comportamento cc
do circuito, apresentando um arquivo com todas as tenses nodais,
correntes nos ramos e as dissipaes de potncia das fontes.
Embora a curva caracterstica do circuito possa ser determinada
executando algumas anlises de operao cc, alterando-se o valor da
fonte cc de entrada, o SPICE apresenta uma alternativa bastante
eficiente e confivel, o comando de varredura cc (.DC) executa essa
tarefa automaticamente. A sintaxe desse comando inclui o nome da
fonte cc de entrada que deve ser variada (nome_da_fonte), o valor
em que ela comea (valor_inicial), o incremento ou decremento em sem
valor (valor_do_passo) e o valor final a ser atingido
(valor_final).
Com o comando de resposta ca em frequncia (.AC), o SPICE executa
uma anlise em freqncia para pequenos sinais (resposta linear).
Sendo calculado automaticamente o ponto de operao cc, por meio do
qual a ferramenta define os valores dos parmetros a serem
empregados nos circuitos de modelos equivalentes para pequenos
sinais. O circuito linear equivalente completo para pequenos sinais
ento analisado para freqncias iniciando em (freq_inicial) e
terminando em (freq_final). Os pontos intermedirios so espaados
logaritmicamente, ou por dcada (DEC) ou por oitava (OCT). O nmero
de pontos em um dado intervalo de freqncias especificado pelo
usurio (pontos_por_decada ou pontos_por_oitava). Podemos tambm
especificar uma varredura linear em freqncia (LIN) e o nmero de
pontos calculados (total_de_pontos). Usualmente, utiliza-se a
varredura linear em freqncia quando a faixa de freqncias de
interesse estreita e a varredura logartmica quando a faixa de
freqncias de interesse larga.
Finalmente, com o comando de resposta transiente (.TRAN), o
SPICE calcula as variveis de circuito em funo do tempo. O intervalo
de tempo inicia-se em t=0 e prossegue a passos lineares
(passo_de_tempo) at que tempo_final seja atingido. Embora toda a
anlise transiente inicie-se em t=0, pode-se iniciar a impresso ou
plotagem dos resultados de sada aps um determinado intervalo de
tempo especificado (tempo_sem_imprimir). Essa uma forma conveniente
de pular a etapa transiente inicial de uma rede e de visualizar
apenas sua resposta em estado estvel.
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 8/11
Antes do incio de qualquer anlise transiente, o SPICE precisa
determi-nar os valores iniciais das variveis de circuito,
usualmente a partir de uma anlise cc. Se o parmetro opcional UIC
(use initial conditions) for especificado no comando .TRAN, o SPICE
no realizar a anlise cc e usar apenas informaes contida no parmetro
IC= que acompanha cada declarao de capacitor ou indutor.
Entretanto, todos aqueles elementos que no contiverem uma
especificao IC= definida sero considerados com condio inicial
nula.
Especificando os Resultados
Simulaes de circuitos produzem uma enorme quantidade de dados, o
que por vezes bastante inconveniente e desnecessrio. O SPICE possui
ferramentas de apresentao de resultados que possibilitam ao usurio
especificar quais variveis do circuito ele deseja visualizar e qual
o melhor for-mato de apresentao para estas informaes. A Tabela 8
apresenta a sintaxe dos formatos de impresso e plotagem dos dados
no SPICE.
Sada solicitada Comando SPICE Imprima os pontos calculados
.PRINT DC variveis_sada
.PRINT AC variveis_sada
.PRINT TRAN variveis_sada Plote os pontos calculados .PLOT DC
variveis_sada [limite_inferior; limite_superior]
.PLOT AC variveis_sada [limite_inferior; limite_superior]
.PLOT TRAN variveis_sada [limite_inferior; limite_superior]
Tabela 8 Principais comandos de anlise.
Notas: 1. variveis_sada no SPICE podem ser quaisquer tenses
nodais V(n), tenses
diferenciais entre dois ns V(n1,n2) ou correntes atravs de uma
fonte de tenso I(Vnome).
2. variveis_sada em ca tambm podem ser: Vr,Ir: parte real
Vi,Ii: parte imaginria Vm,Im: magnitude Vp,Ip: fase Vdb,Idb: em
decibis
O comando .PRINT imprime as variveis desejadas na forma tabular
como funo da varivel independente associada a cada tipo de anlise.
Com ele, precisamos especificar o tipo de anlise (DC, AC, TRAN) em
questo. A seguir especificado uma lista de variveis (tenses ou
correntes, indicadas por variveis_sada).
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 9/11
Geralmente, uma varivel do tipo tenso especificada como a tenso
diferencial entre dois ns na forma V(n1,n2), entretanto quando um
dos ns omitido, assume-se o n do terra (0) como referncia.
O SPICE permite que apenas as correntes fluindo atravs de fontes
in-dependentes de tenso sejam observadas. Tais correntes so
especificadas na forma I(Vnome), em que Vnome o nome da fonte
independente de tenso atravs da qual a corrente est fluindo. Se
desejarmos observar uma corrente de um ramo no qual no h uma fonte
de tenso, devemos adicionar uma fonte de tenso nula (DC) em srie
com o ramo e solicitar que a corrente atravs desta fonte seja
impressa ou plotada.
Os resultados de uma anlise do tipo TRAN so as tenses nodais e
as correntes nos ramos calculadas em funo do tempo.
As ferramentas de plotagem do SPICE geram grficos com os pontos
conectados por linhas em funo da varivel independente. As sintaxes
para o comando de plotagem so idnticas quelas do comando de
impresso.
Exemplos Nesta seo so apresentados alguns exemplos de fixao
sobre a
sintaxe e o uso do SPICE como ferramenta para descrio e simulao
de circuitos eltricos.
Arquivo de Entrada Circuito Equivalente Circuito Resistivo
** declarao das fontes. vcc 1 0 dc 7.5
** descrio do circuito. r1 1 2 1k r2 2 0 560 r3 2 3 470 r4 3 0
470
** comandos .op
.end
3
0
R3
470
0 0
R2560
R4470
1R1
1k2
Vcc7.5
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 10/11
Circuito RC Diferenciador
** descrio de fontes vin 1 0 pulse(0 10 0 1n 1n 0.5 1)
** descrio do circuito r1 1 2 1k c1 2 0 100m
** comandos .tran 0.1m 1000 [990] .print tran v(1) v(2)
.end
C1
10m
0 0
R11k
Vin
FREQ = 10VAMPL = 1VOFF = 0
1 2
Circuito RC Diferenciador e Integrador
** declarao das fontes. vin 1 0 pulse(0 10 0 0 0 1m 2m)
** descrio do circuito. c1 1 2 100p r1 2 0 47k
r2 1 3 47k c2 3 0 100n
** comandos .tran 0.001m 50m .print tran v(1) v(2) v(3)
.end
C1
100p
0
C2100n
V3
TD = 0
TF = 0PW = 1mPER = 2m
V1 = 0
TR = 0
V2 = 10
0
3
R147k
R2
47k
0
1 2
Titulo: Sub-circuitos e Transistores MOS
.MODEL nmos nmos level=2 vto=.82 tox=2e-08 nsub=2.5e+16
uo=690
.MODEL pmos pmos level=2 vto=-1.4 tox=2e-08 nsub=2.5e+16
uo=231
vcc vcc 0 dc 3.3 vin 1 0 pulse(3.3 0 0 0.1n 0.1n 10n 20n)
** descrio do sub-circuito. .subckt inv out in vcc M1 out in vcc
vcc pmos l=1e-06 w=2u ad=20p as=20p M2 out in 0 0 nmos l=1u w=2u
pd=16u ps=16u ad=8p as=8p .ends inv
** descrio do circuito. X1 2 1 vcc inv X2 3 2 vcc inv C1 3 0
1fF
.tran 0.1n 80n
.plot tran v(1) v(2) v(3)
.end
0
C1 1fF
X1
INV
X2
INV
0
OUT
M1 G
D
S
0
Vin
TD = 0
TF = 0.1n PW = 10n PER = 20n
V1 = 3.3
TR = 0.1n
V2 = 0
VCC
IN
M2 G
D
S
1 2 3
-
Tutorial do Simulador SPICE Microeletrnica
Prof. Fabian Vargas. & Prof. Juliano Benfica 11/11
Bibliografia [1] Sedra, Adel S., Microeletrnica. 4. ed. So
Paulo: Makron Books, 2005. [2] T. Quarles, A.R. Newton, D.O.
Pederson, A. Sangiovanni-Vincentelli, SPICE3 Version 3f3
Users Manual, Department of Electrical Engineering and Computer
Sciences, University of California Berkeley, Ca., May, 1993.
[3] HSPICE Command Reference Release W-2004.09, Synopsys, 2004
[4] Renato P. Ribas, Tutorial do Simulador Eltrico SPICE, UFRGS,
Abril, 2001.