Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Introdução à Microeletrônica
Aula 04
● Simulações de Circuitos no SPICE Opus
− Conceitos básicos da linguagem SPICE
− Netlist e tipos de análise: DC, Transiente e AC
● Constante de tempo em circuitos RC
− Análise gráfica no SPICE Opus
● Subcircuitos
− Varicap
Hugo Leonardo D. de S. Cavalcante – DSC – CI – UFPB
 
SPICE
● Simulation Program for Integrated Circuit Emphasis
● SPICE é um simulador (linguagem para descrição) de circuitos 
analógicos, importante para circuitos integrados Electr. Research Lab-
UC - Berkley (1975).
● Análise não-linear DC e transiente
● Análise Linear AC, etc.
● Elementos e modelos
– Resistores, capacitores, indutores, fontes de tensão e corrente
– Diodos, transistores bipolares, MOSFET e JFET
 
SPICE - formato
● Formato do arquivo com a descrição do circuito e simulação (netlist):
1.Título (nome do circuito) 
2.Elementos do circuito (descrição do circuito: nós e componentes)
3.Comando de simulação (tipo de análise: .dc, .tran, .ac ) 
4.Comandos de saída (opcional)
5..END
Linhas começadas com * são comentários. 
A linguagem não é sensível à capitalização.
Ver ref.: Circuit Simulation with SPICE OPUS, Tuma e Bürmen
 
SPICE - exemplo
Um circuito simples
V1 1 0 dc 5
R1 1 2 1k
Q1 2 3 0 t2n2222
R2 3 4 1k
Vin 4 0 dc 0.68
.model t2n2222 npn 
+ is=19f bf=150 vaf=100 ikf=0.18 ise=50p
+ne=2.5 br=7.5 var=6.4 ikr=12m isc=8.7p
+nc=1.2 rb=50 re=0.4 rc=0.3 cje=26p tf=0.5n 
+cjc=11p tr=7n xtb=1.5 kf=0.032f af =1
.end
 
SPICE OPUS
Vamos usar o SPICE OPUS para simular e analisar o circuito:
> cd Circuitos
> spiceopus & (← no terminal do Linux)
> source exemplo.cir (← na janela do Spice Opus)
> op (calcula o “ponto de operação”)
> display (mostra os “vetores” com resultados)
> print v(2) (mostra o valor da tensão no nó 2)
> dc vin 0 1.4 0.01 (varredura DC da fonte Vin)
> plot v(2) (gráfico v(2) x Vin)
O comando de análise pode ser incluído no arquivo da netlist.
O comando do gráfico é específico do Spice Opus, mas também 
pode ser colocado no bloco .control … .endc.
 
Circuito RC – Medir a constante de tempo
Circuito RC
*Vname N1 N2 pulse(VL VH TD TR TF PW T)
Vin 1 0 pulse(0 10.0 2n 0 0 4n 8n)
R1 1 2 1k
C1 2 0 0.32p
.tran 1p 18n
.end
* RC medido da descida = 0.320 ns
* RC medido da subida = 0.320 ns
* Concorda com a teoria: tau = RC
 
Subcircuitos no SPICE
● Formato do arquivo com a descrição de um subcircuito:
1. .SUBCKT Nome_do_sub Nó1 Nó2 ...
2. Elementos do circuito (descrição do circuito: nós e componentes)
3. .ENDS [Nome_do_sub] (termina o .subckt, opcionalmente pode 
repetir o nome)
Linhas começadas com * são comentários. 
A linguagem não é sensível à capitalização.
Somente os nós listados na primeira linha (terminais do 
subcircuito/componente) serão visíveis no circuito chamador.
 
Incluindo subcircuitos
● Formato do arquivo com usando um subcircuito:
1. .INCLUDE Nome_do_arquivo 
2. Xidentificador Nó1 Nó2 … Nome_do_sub
3. ...
Os identificadores dos Nós na linha acima podem ser diferentes 
daqueles especificados no arquivo: a conexão é por ordem. 
O número de nós conectados tem que ser igual ao número de 
terminais no subckt.
 
Circuito RD – Varicap
Circuito RD – Usa um diodo como varactor (varicap)
*Vname N1 N2 pulse(VL VH TD TR TF PW T)
Vin 2 1 pulse(0 10.0m 2n 0 0 4n 8n)
Vp 1 0 dc 10.0
R1 2 3 5
D1 0 3 1SV325
.model 1SV325 D (IS = 2.593e-15 N = 1.024 BV = 11 IBV = 
1e-4 RS = 0.4 CJ0 = 7.67e-11 VJ = 100 M=0.9)
.tran 1p 18n
.end
* RC medido com Vp = 1.0 V: tau = 0.378 ns
* RC medido com Vp = 10.0 V: tau = 0.339 ns
 
Circuito RD – Varicap
Para simular o circuito:
Execute o SPICE Opus:
> spiceopus &
No prompt do SPICE Opus, carregue a netlist:
> circuito_rc.cir
Execute a análise listada na netlist:
> run
Desenhe o gráfico:
> plot v(2)-v(1) v(3)-v(1)
Meça a constante de tempo usando zoom (z) e cursores (clique, 
solta e arrasta) adequados.
 
 
 
Introdução à Microeletrônica
Aula 04
● Simulações de Circuitos no SPICE Opus
− Conceitos básicos da linguagem SPICE
− Netlist e tipos de análise: DC, Transiente e AC
● Constante de tempo em circuitos RC
− Análise gráfica no SPICE Opus
● Subcircuitos
− Varicap
Hugo Leonardo D. de S. Cavalcante – DSC – CI – UFPB
Antes de ver a metodologia para projetar os circuitos 
lógicos queremos ser capazes de testar o 
comportamento dos circuitos, do ponto de vista 
elétrico. 
Além de verificar que a lógica está correta, a 
simulação também permite avaliar o tempo de 
resposta, a qualidade do sinal, as correntes, 
potência consumida, etc.
O padrão universal de simulação na área de 
eletricidade e eletrônica é a linguagem SPICE, que 
apresentaremos na aula de hoje. 
Vamos usar um programa gratuito, de código aberto, 
SPICE Opus, que executa as simulações escritas 
em SPICE.
 
 
 
SPICE
● Simulation Program for Integrated Circuit Emphasis
● SPICE é um simulador (linguagem para descrição) de circuitos 
analógicos, importante para circuitos integrados Electr. Research Lab-
UC - Berkley (1975).
● Análise não-linear DC e transiente
● Análise Linear AC, etc.
● Elementos e modelos
– Resistores, capacitores, indutores, fontes de tensão e corrente
– Diodos, transistores bipolares, MOSFET e JFET
SPICE é uma linguagem desenvolvida para a 
simulação de circuitos elétricos, especialmente 
circuitos integrados. Quase todos os programas de 
simulação modernos usam alguma versão do 
SPICE ou linguagens inspiradas por ele. 
Um roteiro de simulação usualmente tem três 
partes/etapas:
1 – descrição do circuito e parâmetros
2 – escolha do tipo de simulação (análise)
3 – análise dos resultados (gráfico ou leitura de 
valores).
Para a descrição do circuito, o SPICE permite indicar 
nós (de Kirchhoff) e elementos fundamentais: 
Resistores, capacitores, fontes, transistores, etc.
Para a análise: vamos usar séries temporais 
(transiente) e varreduras cc (DC sweep).
O SPICE Opus tem comandos para desenhar os 
gráficos dos resultados.
 
 
 
SPICE - formato
● Formato do arquivo com a descrição do circuito e simulação (netlist):
1.Título (nome do circuito) 
2.Elementos do circuito (descrição do circuito: nós e componentes)
3.Comando de simulação (tipo de análise: .dc, .tran, .ac ) 
4.Comandos de saída (opcional)
5..END
Linhas começadas com * são comentários. 
A linguagem não é sensível à capitalização.
Ver ref.: Circuit Simulation with SPICE OPUS, Tuma e Bürmen
A descrição do circuito é conhecida como netlist 
(embora o nome se generalize para qualquer texto 
em SPICE).
O formato está descrito aqui: 
A primeira linha é sempre ignorada (título)
Os elementos (tipo) são identificados pela letra 
inicial: R para resistor, C para capacitor, etc.
São listados também os nós de conexão e demais 
parâmetros
O comando de simulação e demais comandos de 
saída são opcionais. Sempre começando com .
O arquivo termina com “.END” 
A linguagem NÃO é sensível à caixa (letras 
maiúsculas e minúsculas são equivalentes).
Podemos encontrar ampla literatura sobre SPICE e 
linguagens derivadas na internet. 
 
 
 
SPICE - exemplo
Um circuito simples
V1 1 0 dc 5
R1 1 2 1k
Q1 2 3 0 t2n2222
R2 3 4 1k
Vin 4 0 dc 0.68
.model t2n2222 npn 
+ is=19f bf=150 vaf=100 ikf=0.18 ise=50p
+ne=2.5 br=7.5 var=6.4 ikr=12m isc=8.7p
+nc=1.2 rb=50 re=0.4 rc=0.3 cje=26p tf=0.5n 
+cjc=11p tr=7n xtb=1.5 kf=0.032f af =1
.end
Exemplos: O circuito mais simples (não vazio, não 
aberto, não trivial) que podemos montar é algo 
assim:
Nome do circuito
V1 N1 0 DC 5V
R1 N1 0 1k 
.END
Este circuito é uma fonte de tensão, ligada a um 
resistor. Não fizemos nenhuma análise.
No slide acima temos um circuito mais complexo.
O transistor Q1 recebe um “modelo”, detalhado na 
linha .model. Ainda não fizemos a simulação.
 
 
 
SPICE OPUS
Vamosusar o SPICE OPUS para simular e analisar o circuito:
> cd Circuitos
> spiceopus & (← no terminal do Linux)
> source exemplo.cir (← na janela do Spice Opus)
> op (calcula o “ponto de operação”)
> display (mostra os “vetores” com resultados)
> print v(2) (mostra o valor da tensão no nó 2)
> dc vin 0 1.4 0.01 (varredura DC da fonte Vin)
> plot v(2) (gráfico v(2) x Vin)
O comando de análise pode ser incluído no arquivo da netlist.
O comando do gráfico é específico do Spice Opus, mas também 
pode ser colocado no bloco .control … .endc.
Na máquina vitual preparada para a discplina, temos 
o programa SPICE Opus instalado. Podemos 
chamar o programa no prompt de comando 
(terminal), ler a netlist com a descrição do circuito e 
realizar as análises desejadas.
Alguns tipos de análises:
.op : ponto de operação DC
.dc : varredura de uma ou mais fontes de tensão ou 
corrente
.tran : produz série temporal (resolve as equações 
diferenciais associadas a capacitores e indutores)
.ac : análise de Fourier (linear) para pequenos sinais 
(As equações são linearizadas ao redor do ponto 
de operação)
Para ver o resultado podemos usar: 
display (mostra valores das variáveis)
plot (desenha gráfico)
print > file.txt (escreve dados em um arquivo)
 
 
 
Circuito RC – Medir a constante de tempo
Circuito RC
*Vname N1 N2 pulse(VL VH TD TR TF PW T)
Vin 1 0 pulse(0 10.0 2n 0 0 4n 8n)
R1 1 2 1k
C1 2 0 0.32p
.tran 1p 18n
.end
* RC medido da descida = 0.320 ns
* RC medido da subida = 0.320 ns
* Concorda com a teoria: tau = RC
Exemplo: um circuito RC, estimulado por uma onda 
quadrada de tensão, simulado no tempo.
Podemos analisar o resultado usando um comando
plot v(1) v(2)
(fazer o gráfico da tensão no nó 1 e da tensão no nó 
2, em função do tempo)
 
 
 
Subcircuitos no SPICE
● Formato do arquivo com a descrição de um subcircuito:
1. .SUBCKT Nome_do_sub Nó1 Nó2 ...
2. Elementos do circuito (descrição do circuito: nós e componentes)
3. .ENDS [Nome_do_sub] (termina o .subckt, opcionalmente pode 
repetir o nome)
Linhas começadas com * são comentários. 
A linguagem não é sensível à capitalização.
Somente os nós listados na primeira linha (terminais do 
subcircuito/componente) serão visíveis no circuito chamador.
Uma ferramenta útil é criar subcircuitos no SPICE. 
Isso permite a modularização. Elementos 
complexos podem ser descritos apenas uma vez 
em como um subcircuito e instâncias destes 
chamadas na netlist principal. 
Subcircuitos são instanciados por um elemento cujo 
identificador é iniciado com “X”. Ex: 
X1 N1 N2 Nome_do_sub
É comum haver “bibliotecas” (libraries), com diversos 
subcircuitos correspondendo a diferentes modelos 
de componentes. 
Subcircuitos e bibliotecas costumam ser colocados 
em arquivos separados da netlist em uso, para 
reaproveitamento e independência.
 
 
 
Incluindo subcircuitos
● Formato do arquivo com usando um subcircuito:
1. .INCLUDE Nome_do_arquivo 
2. Xidentificador Nó1 Nó2 … Nome_do_sub
3. ...
Os identificadores dos Nós na linha acima podem ser diferentes 
daqueles especificados no arquivo: a conexão é por ordem. 
O número de nós conectados tem que ser igual ao número de 
terminais no subckt.
Arquivos podem ser importados na netlist com o 
comando 
.include nome_do_arquivo
As extensões no nome do arquivo são arbitrárias, 
mas é bom seguir alguma convenção. Para nós:
.spi : modelo de subcircuito
.lib : biblioteca com vários subcircuitos
.cir : uma netlist principal (chamadora).
 
 
 
Circuito RD – Varicap
Circuito RD – Usa um diodo como varactor (varicap)
*Vname N1 N2 pulse(VL VH TD TR TF PW T)
Vin 2 1 pulse(0 10.0m 2n 0 0 4n 8n)
Vp 1 0 dc 10.0
R1 2 3 5
D1 0 3 1SV325
.model 1SV325 D (IS = 2.593e-15 N = 1.024 BV = 11 IBV = 
1e-4 RS = 0.4 CJ0 = 7.67e-11 VJ = 100 M=0.9)
.tran 1p 18n
.end
* RC medido com Vp = 1.0 V: tau = 0.378 ns
* RC medido com Vp = 10.0 V: tau = 0.339 ns
Uma junção p-n se comporta como um capacitor cuja 
capacitância é dependente da tensão aplicada. 
Um diodo polarizado reversamente pode ser usado 
com um “capacitor controlado por tensão”, ou 
varicap.
Como exercício, vamos medir a capacitância de um 
diodo, e alguma variação desta com a tensão 
reversa aplicada, conforme o circuito descrito aqui.
Vamos forma o análogo a um circuito RC, mas 
substituindo o capacitor por um diodo. Note que a 
tensão de estímulo tem duas partes: uma grande 
tensão constante Vp, para polarizar o diodo 
reversamente e controlar sua capacitância, e uma 
pequena tensão que varia no tempo (uma onda 
quadrada), somada a Vp, para causar a carga e 
descarga do capacitor. Queremos medir a 
constante de tempo (tau) e determinar a 
capacitância.
 
 
 
Circuito RD – Varicap
Para simular o circuito:
Execute o SPICE Opus:
> spiceopus &
No prompt do SPICE Opus, carregue a netlist:
> circuito_rc.cir
Execute a análise listada na netlist:
> run
Desenhe o gráfico:
> plot v(2)-v(1) v(3)-v(1)
Meça a constante de tempo usando zoom (z) e cursores (clique, 
solta e arrasta) adequados.
Para carregar a netlist na memória, basta digitar o 
nome do arquivo que contém a netlist. 
Sempre que o arquivo for alterado, é necessário 
carregar novamente na memória. 
A simulação só será executada se você executar o 
comando “run” no prompt do SPICE Opus ou na 
seção .control do arquivo netlist.
As grandeza desenhadas no eixo y do plot podem 
ser expressões aritméticas envolvendo constantes 
e variáveis. O eixo x depende da simulação 
(análise) que foi realizada. 
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10

Mais conteúdos dessa disciplina