Tutorial HSPICE (Marlon)

12
 Tutorial do Simulador SPICE Microeletrônica 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 Introdução Este tutorial tem como objetivo principal fazer uma breve e sucinta intro- dução à ferramenta de simulação de circuitos SPICE aos alunos da disciplina de Microeletrônica do curso de Engenharia Elétrica da PUCRS. Além do contato inicial com ambiente de simulação SPICE, abordaremos também os princípios da sintaxe de descrição de circuitos juntamente com os comandos básicos para simulações de componentes semicondutores, foco desta disci- plina. O que é o SPICE? O SPICE é um software de simulação que pode ser utilizado para anali- sar o comportamento elétrico 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 usuário estime com bas- tante precisão, através de vários tipos de simulações, o comportamento de cir- cuitos elétricos dos mais variados tamanhos e níveis de complexidade. Para que o SPICE possa realizar tais estimativas, via simulação, o usuário deve fornecer ao software os seguintes dados: a) Descrição do circuito : uma descrição completa do circuito a ser analisado; seus elementos, suas fontes de sinais e de polarização e principalmente, como estes dispositivos estão interligados no circuito. Também é necessário o fornecimento dos parâmetros modelares empregados para a descrição comportamental dos componentes ativos a serem simulados. b) Especificação de análise : uma definição dos tipos de análise, por exemplo, cc , transiente, pequenos sinais, etc..

description

Manual

Transcript of Tutorial HSPICE (Marlon)

  • 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.