Vous êtes sur la page 1sur 11

Tutorial do Simulador SPICE

Microeletrnica

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 introduo 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 disciplina.

O que o SPICE?
O SPICE um software de simulao que pode ser utilizado para analisar o comportamento eltrico de um circuito contendo uma grande variedade
de componentes, como por exemplo, transistores, diodos, resistores, capacitores e etc. Esta poderosa ferramenta possibilita que o usurio estime com bastante preciso, atravs de vrios tipos de simulaes, o comportamento de circuitos 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..

Prof. Fabian Vargas. & Prof. Juliano Benfica

1/11

Tutorial do Simulador SPICE

Microeletrnica

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 arbitrria e fica a critrio do usurio, embora seja recomendvel o uso de comentrios 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 nonegativos, 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:

Prof. Fabian Vargas. & Prof. Juliano Benfica

2/11

Tutorial do Simulador SPICE

Microeletrnica

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 alfanumricos.
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 listados anteriormente. Por convenincia, prefixos de unidades podem
ser usados, conforme indicado na Tabela 2.
Sufixo indicativo
Prefixo mtrico
Fator multiplicador
12
T
tera
10
9
G
giga
10
6
Meg
mega
10
3
K
quilo
10
-3
M
mili
10
-6
U
micro
10
-9
N
nano
10
-12
P
pico
10
-15
F
fento
10
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.

Prof. Fabian Vargas. & Prof. Juliano Benfica

3/11

Tutorial do Simulador SPICE

Fonte
DC
Senoidal
Quadrada

Microeletrnica

QUAL
DC valor_dc
sin(offset amplitude freqncia temp_inicio)
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 entre os ns 4 e 5, pode ser descrito ao SPICE pela seguinte declarao de elemento (note que usado ponto e MEG):
RB2

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 declarao:
CC1

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

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 declarao 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+
NMNOME
TJB
Qxxxxxxx
NC
NB
NE
NS
MNOME
MOSFET
Mxxxxxxx
ND
NG
NS
NB
MNOME
Tabela 4 Declarao de elemento para dispositivos semicondutores.

Prof. Fabian Vargas. & Prof. Juliano Benfica

AREA
AREA
L W

4/11

Tutorial do Simulador SPICE

Microeletrnica

1. A declarao inicia-se com o nome do dispositivo, do qual a primeira 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 substrato.
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 substrato.
5. MNOME indica o nome do modelo para o dispositivo em particular. Os valores dos parmetros do modelo so especificados separadamente na declarao do modelo (abordaremos esta declarao a seguir).
6. AREA um fator de escala de rea (opcional): o nmero de diodos 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 modelos 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

Prof. Fabian Vargas. & Prof. Juliano Benfica

5/11

Tutorial do Simulador SPICE

Microeletrnica

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
Ponto de operao
Varredura cc
Resposta ca em freqncia

Resposta transiente

Comando SPICE
.OP
.DC nome_da_fonte valor_inicial valor_final valor_do_passo
.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
.TRAN passo_de_tempo tempo_final [tempo_sem_imprimir
tamanho_mximo_do_passo] [UIC]
Tabela 7 Principais comandos de anlise.

Prof. Fabian Vargas. & Prof. Juliano Benfica

6/11

Tutorial do Simulador SPICE

Microeletrnica

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)

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.

Prof. Fabian Vargas. & Prof. Juliano Benfica

7/11

Tutorial do Simulador SPICE

Microeletrnica

Antes do incio de qualquer anlise transiente, o SPICE precisa determinar 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 formato de apresentao para estas informaes. A Tabela 8 apresenta a sintaxe
dos formatos de impresso e plotagem dos dados no SPICE.
Sada solicitada
Imprima os pontos calculados

Comando SPICE
.PRINT DC variveis_sada
.PRINT AC variveis_sada
.PRINT TRAN variveis_sada
.PLOT DC variveis_sada [limite_inferior; limite_superior]
Plote os pontos calculados
.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).

Prof. Fabian Vargas. & Prof. Juliano Benfica

8/11

Tutorial do Simulador SPICE

Microeletrnica

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 independentes 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 Resistivo

Circuito Equivalente

** 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

R1
1

R3
2

1k

470

Vcc

R2

7.5

R4

560

470

.end

Prof. Fabian Vargas. & Prof. Juliano Benfica

9/11

Tutorial do Simulador SPICE

Microeletrnica

Circuito RC Diferenciador
C1

** 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

10m

Vin
VOFF = 0
VAMPL = 1
FREQ = 10

** comandos
.tran 0.1m 1000 [990]
.print tran v(1) v(2)

R1
1k

.end
Circuito RC Diferenciador e Integrador
** declarao das fontes.
vin 1 0 pulse(0 10 0 0 0 1m 2m)
C1

** descrio do circuito.
c1 1 2 100p
r1 2 0 47k

R2

100p

r2 1 3 47k
c2 3 0 100n
** comandos
.tran 0.001m 50m
.print tran v(1) v(2) v(3)

47k

V3

V1 = 0
V2 = 10
TD = 0
TR = 0
TF = 0
PW = 1m
PER = 2m

R1

C2

47k

100n

.end
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)
VCC

** 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

S
M1
D

IN

OUT

** descrio do circuito.
X1 2 1 vcc inv
X2 3 2 vcc inv
C1 3 0 1fF

D
M2
G
S
X1

.tran 0.1n 80n


.plot tran v(1) v(2) v(3)
.end

1
INV
Vin

Prof. Fabian Vargas. & Prof. Juliano Benfica

X2

2
V1 = 3.3
V2 = 0
TD = 0
TR = 0.1n
TF = 0.1n
PW = 10n
PER = 20n

3
INV
C1
1fF

10/11

Tutorial do Simulador SPICE

Microeletrnica

Bibliografia
[1]
[2]

[3]
[4]

Sedra, Adel S., Microeletrnica. 4. ed. So Paulo: Makron Books, 2005.


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.
HSPICE Command Reference Release W-2004.09, Synopsys, 2004
Renato P. Ribas, Tutorial do Simulador Eltrico SPICE, UFRGS, Abril, 2001.

Prof. Fabian Vargas. & Prof. Juliano Benfica

11/11