12
Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Sistemas Eletrônicos - PSI PSI-2451- Introdução ao Projeto de Circuitos Integrados Experiência 3: Análise de Características Estáticas e Dinâmicas do Inversor CMOS 1

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de ...sites.poli.usp.br/d/psi2451/apostila/exp3.pdf · 2012-05-14 · 0 0 V DD V tn tp+VDD Figura 1 Figura

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Escola Politécnica da Universidade de São PauloDepartamento de Engenharia de Sistemas Eletrônicos - PSI

PSI-2451- Introdução ao Projeto de Circuitos Integrados

Experiência 3: Análise de Características Estáticas e Dinâmicas do Inversor CMOS

1

1. Objetivos

Esta experiência visa dar continuidade à familiarização do estudante com a metodologia de projeto dedicado com aplicativo IC Station da Mentor Graphics e o programa de simulação de circuitos ELDO. Especificamente, objetiva a edição do leiaute de um inversor CMOS, a extração do circuito equivalente e a análise de suas características estáticas e dinâmicas a partir de seu esquema elétrico. Este esquema contém os componentes do circuito sendo projetado (transistores NMOS e PMOS) assim como componentes parasitários (resistores e/ou capacitores) extraídos do leiaute.

2. Introdução Teórica

O Inversor CMOS – funcionalidade

O inversor CMOS é formado por um transistor NMOS e um PMOS, como mostrado no diagrama esquemático da figura 1. É constituído de transistores N e P que apresentam quatro terminais elétricos: porta (G), dreno (D), fonte (S) e substrato (B). Sua curva de transferência (VoutxVin) é apresentada na figura 2.

G

G

S

D

D

S

V

V oin V

V

DD

SS

∆∆

A B

C

D E

V

V

VVin

o

DD

00 V

DDVtn DDtp+V

Figura 1 Figura 2

Região Condição PMOS NMOS Saída A 0<Vin<Vtn Linear Corte Vo=VDD B Vtn<Vin<VinC Linear Saturado VoB= f(Vin) C Vin=VinC Saturado Saturado Vo≠ f(Vin) D VinC<Vin<(VDD+Vtp) Saturado Linear VoD= f(Vin) E (VDD+Vtp)<Vin<VDD Corte Linear Vo=0

Tabela 1

A tabela 1 indica o regime de operação de cada transistor em cada região da curva, assim como o valor da saída Vout. Os valores de VoB e VoD em função de Vin, assim como o valor de Vin na região 3, podem ser calculados igualando as correntes nos 2 transistores, resultando nas equações 1, 2 e 3 (é considerado que a saturação ocorre apenas por "pinch-off" ).

2

Idd

Eq1.= região B: VoB= Vin−Vtp [ Vin−Vtp 2−2 Vin−Vdd2

−VtpVdd− βnβp

Vin−Vtn 2 ]12

Eq2. .= região D: VoD= Vin−Vtn [ Vin−Vtn 2− βpβn

Vin−Vdd−Vtp 2]12

Eq3 . .= região C: VinC=V DD +V tp+V tn . βn β p

1β n β p

A equação 3, referente à região C, mostra de que forma a relação βn/βp (portanto as dimensões relativas entre os transistores NMOS e PMOS) afeta o valor do limiar lógico (VM) do inversor. A região de transição C da Figura 2 move-se da esquerda para a direita com a redução de

βn/βp. No caso: βn=KPN WnLn

e βp=KPP WpLp

.

o Margens de ruído

Margem de ruído é um parâmetro ligado às características de tensão de entrada-saída que descreve qual o ruído máximo permitido na entrada de uma porta lógica para que a saída não seja afetada. A especificação mais utilizada para a margem de ruído (imunidade de ruído) é em forma de dois parâmetros - a margem de ruído '0', MR0, e a margem de ruído '1', MR1. Para dois inversores ligados em cadeia, MR0 é definido como a diferença entre a tensão máxima de saída '0' da porta lógica de comando (primeiro estágio) e a tensão máxima de entrada '0' reconhecida pela porta comandada (segundo estágio). Então,

MR0=|Vi0max-Vo0max|.

O valor MR1 é a diferença entre a tensão mínima de saída '1' da porta lógica de comando e a tensão mínima de entrada '1' reconhecida pela porta comandada. Então,

MR1=|Vo1min-Vi1min|,

Onde:

Vi1min= tensão mínima de entrada '1' (ponto em que a declividade na curva é –1)

Vi0max=tensão máxima de entrada '0' (ponto em que a declividade na curva é –1)

Vo1min=tensão mínima de saída '1'

Vo0max=tensão máxima de saída '0'

A Figura 1 mostra os valores Vi0max, Vi1min, Vo0max e Vo1min. Quanto maior o ganho do inversor na região 3 (idealmente o ganho é infinito e a curva nesta região é vertical), mais próximos serão os valores de Vi0max e Vi1min, maximizando-se conseqüentemente as margens de ruído MR0 e MR1.

Outro parâmetro importante da curva da Figura 1 é a tensão de limiar lógica Vinv (no livro-texto é chamado de VM), em que Vin igual a Vout. Este é o valor de equilíbrio das tensões de entrada e saída para estágios inversores encadeados. Deseja-se que Vinv=VDD/2, o que leva a margens de ruído equilibradas.

3

o

o Tempos de atraso tpLH e tpHL.

A velocidade de chaveamento de uma porta lógica CMOS depende de sua capacitância de saída, como ilustra a figura 2. Os tempos de atraso, tpLH e tpHL são medidos pela diferença de tempo entre o instante em que ocorre a transição de entrada (considerada instantânea) e o instante em que a saída está a 50% de VDD. A indicação LH ou HL são referente ao comportamento da saída do inversor.

V

CL

VDD

SS

Vin

Figura 2

Valores aproximados dos tempos de subida e de descida podem ser determinados igualando as equações de corrente dos transistores NMOS ou PMOS à carga sendo retirada ou adicionada ao capacitor C, ocasionando a variação de tensão no capacitor C (ver esquema da figura 3).

4

Vo0max

Vout

Vo1min

Vi0max

Vinv=Vout=Vin(chamado VM no livro texto, Rabaye)

VinVi1min

∆t=0 trans. p trans. p

trans. n trans. n

v vICL

ICL

CLCL

SATURAÇÃO LINEAR

Figura 3

Uma aproximação desenvolvida no capítulo 3 do livro do Rabaey é mostrada a seguir (as fórmulas foram compatibilizadas com as definições de KPP e KPN do manual ENG182):

tpLH=C L Vdd

KPP WpLp

Vdd−∣Vtp∣2

tpHL=C L Vdd

KPN WnLn

Vdd−Vtn 2

Os valores de KPP e KPN, Vtp e Vtn podem ser obtidos no manual ENG182. Vdd, Wp, Lp, Wn e Ln são os projetados. CL é a capacitância de carga vista pelo inversor. Considerações sobre CL são feitas no parágrafo seguinte.

o Capacitância equivalente de saída de um inversor

A capacitância de saída de um inversor é calculada a partir da soma de duas classes de capacitâncias: as intrínsecas, Cint, associados às capacitâncias do próprio inversor, e as extrínsecas, Cext, relacionados à carga externa que está sendo comandada. Dentre a primeira classe, estão incluídas as capacitâncias entre o dreno dos transistores (lembrar que o nó de saída está conectado aos drenos dos transistores N e P) e as suas portas e substratos; estas incluem as capacitâncias de junção (em relação ao substrato) e de difusão lateral (em relação às portas dos inversores). No segundo grupo, temos as capacitâncias de porta à entrada do estágio lógico seguinte e, também, as capacitâncias de interconexão. Para o equacionamento correspondente, consulte o livro-texto.

5

3 – Parte Experimental

Atenção: Muitos dos procedimentos a serem usados nesta experiência foram realizados nas experiências anteriores. Nestes casos, aqui será apenas indicado que o procedimento deve ser realizado e a descrição de como fazer se encontra em apostila anterior (use-as).

3.1 Criar a pasta ~/psi2451/exp3. A partir dela tecle source /home/disc/psi2451/perfil_mgc' e dispare a ferramenta adk_ic.Crie uma nova célula (comando New) chamada inv.O processo tsmc035 e suas regras estão em /tools/mgc_tree/adk3_1/technology/ic/process.

3.2 - Copie o transistor NMOS gerado em exp2. Para isto, execute o comando 'Add-> Instance' e, na janela que aparecerá, escolha, usando o ‘browser’, a célula gerada na experiência 2 (transistor NMOS). Após escolher a célula é necessário teclar com o botão esquerdo do mouse no lugar da tela onde esta será colocada, depois isto, tecla 'ESC' para encerrar o modo inserção.

3.3 – Faça a 'flatten' desta célula de forma a que ela seja editável na nova célula criada, para isto, selecione todo o leiaute com o comando 'Select->Select->All' e ‘flatten’ com o comando 'Edit->Flaten', na pequena janela que aparecerá mantenha 'one level' e tecle o botão OK. Repita a operação de ‘flatten’ ao menos mais uma vez para acessar as camadas co contato de substrato. Selecione os 'labels' da célula copiada (que devem estar na camada 'metal1.port') e os apague. Para isto você pode usar as teclas F2 (deselecionar tudo) e F1 (selecionar o que estiver abaixo do cursor). Neste ponto o seu leiaute deve estar parecido com a figura a seguir.

6

No relatório: inclua o leiaute do transistor sem os labels.

3.4 – Gerando de forma automática o transistor PMOS com as dimensões do seu #USP e adicionando contato de substrato ilha N.

Como foi feito para o transistor canal N, a largura e comprimento de canal do transistor canal P dependerá de seu número USP, agora do terceiro e quarto dígito de trás para frente.

Largura do transistor (Wp em λ) é o terceiro algarismo do seu número USP (a partir da direita). Se for < 5, some o valor 5 a ele.

Comprimento do transistor (Lp) é o quarto algarismo do seu número USP (a partir da direita). Se for < 3, some o valor 3 a ele.

Exemplo: #USP 3164172 leva a Wp =6λ (1+5) e Lp=4λ.

Para gerar automaticamente este transistor, na IC Palettes tecle 'DLA Device', e na nova janela que aparecerá, tecle em 'AddMos'. Na janela ‘ObjectEditor’ escolha 'pmos', e entre com Width=Wp e Length=Lp, mantenha o a ‘sequence’ escolhida cgc. Em atributos escolha Rotation = 90. Coloque o PMOS no leiaute de forma a que a distancia entre sua borda, que corresponde à ilha N e a difusão do transistor NMOS obedeça a regra DRC2_3 (veja o valor na apostila da experiência 1).

Adicione a célula de contato de substrato, semelhante ao da exp2, porém agora contato de ilha N. Ao adicionar esta célula, cuide para que Rotacione seja 0 (zero) e a encoste na região de seleção P+ da fonte do transistor canal P. Use a opção zoom-in para obter maior precisão e a opçãp flaten para visualizar as camadas co contato.

No relatório: Anote:• O valor da regra DRC2_3 (em unidades λ)• O valor desta regra constante no manual ENG183, em μ. Verifique se estes são valores equivalentes. • O valor da distância entre o contato do seu poço N e o contato mais próximo da fonte do seu transistor P (pode ser maior do que a distância mínima).

3.5 – Fazendo as conexões.

Usar a opção automática de desenhar uma linha de interconexão comum entre as duas portas (gates) dos transistores, assim como os seus drenos. Se necessário use a opção view context para ver todo o seu leiaute.

A. Para interligar as portas, clicar em Path da Palheta Easy Edit. Na caixa de diálogo (Object Editor) selecione a máscara Poly (pode escrever ou selecionar na Layer Pallete) e determine a largura Width igual ao menor dos comprimentos de canal adotados (Width=menor(Ln ou Lp)). Centralize a cruzeta sobre a borda da linha de poly do transistor P do seu leiaute e clique uma vez. Desloque o mouse e estenda a linha de poly por alguns lambdas, clicando o mouse novamente. Desloque o mouse para uma nova direção e assim por diante, até conectar com o silício poli ligado a porta do transistor N. Quando não desejar mais estender a linha de poly, clique duas vezes rapidamente o mouse ou use a tecla ESC.B. Faça o mesmo procedimento escolhendo agora a camada METAL1 para interligar os drenos dos transistores..

7

C. Usando, novamente, METAL1 ligue o contato de fonte e de poço N do transistor canal P entre si e avance mais um pouco para mais adiante poder afixar o label VDD. D. Rode o DRC para confirmar que está tudo certo. Corrija os erros se existirem. Se necessário use os comandos Move, Stretch, Copy, etc.E. Salve o seu desenho. Não esqueça de reativar o modo edição (Context -> Layout -> Set Edit Mmode On) para poder prosseguir o trabalho.

Neste ponto, sua figura deve estar semelhante à mostrada a seguir.

No relatório: Imprima o seu leiaute indicando no desenho os valores de W e L dos 2 transistores.

3.6 – Duplicando o inversor e incluindo os terminais.

Duplique o inversor (na simulação dinâmica, o segundo servirá de carga para o primeiro). Para isto, use Select->Select->All e em seguida use Edit->Copy->Selected->Horizontal e escolha com o mouse uma posição à direita do inversor existente. Verifique se a distância é suficiente para evitar erros ativando o DRC.

Para ligar os 2 inversores:• Ligue os terras dos dois inversores.• Ligue a saída do primeiro inversor com a entrada do segundo. • ATENÇÃO: NÃO ligue os VDDs dos dois inversores. Esta ligação será feita mais adiante no modelo de simulação ELDO. Isto será importante quando for analisada a corrente através do

8

primeiro inversor na simulação DC.Adicione os terminais. Use Text e no Object Editor escolha a camada Metal1.port de forma

semelhante ao já feito em experiência anterior. Você deve adicionar os terminais (labels) Vdd1, Vdd2, Gnd, entrada, saida1 e saida2.

Salve o seu desenho. Neste ponto, a figura deve ser semelhante à mostrada a seguir..

No relatório: inclua a figura gerada em formato 'tiff'.

3.7 – Extração

Realize a extração do diagrama esquemático do circuito (instruções abaixo copiadas da exp2).• Tools -> Calibre -> Run PEX• Load Runset -> FILE: /tools/mgc_tree/adk3_1/technology/calibre/pex.tsmc035.runset• OK• Run Pex (aguarde)

Observe se os 3 arquivos (inv.sp; inv.sp.pex; inv.sp.INV.pxi) foram gerados. Identifique os transistores no arquivo de simulação e confira suas dimensões assim como a presença de todos os terminais que você incluiu no seu layout.

No relatório: • Inclua os 3 arquivos. Sublinhe os valores das dimensões W e L dos transistores gerados.• Observe a descrição das conexões entre os diferentes pontos do circuito no arquivo exp3.sp.pex e faça um desenho (a mão) destas linhas em seu relatório.

Saia do programa IC Station.

9

3.8 – SIMULAÇÃO DAS CARACTERÍSTICAS ESTÁTICAS

Copie o arquivo '/home/disc/psi2451/exp3_completo.sp' para a sua pasta de trabalho. Reordene os nomes dos terminais no arquivo exp3_completo para ficarem compatíveis com

a sequência em que comparecem no arquivo inv.sp. Caso você tenha usado nomes diferentes para os terminais em relação aos nomes

recomendados na apostila faça também a correção em todos os pontos do arquivo exp3_completo em que comparecem.

Este arquivo contém a descrição da simulação estática e da dinâmica. Comente as linhas da dinâmica para fazer primeiro a simulação estática. Mais adiante você fará a operação complementar.

Faça a simulação através do comando eldo exp3_completo.sp.Observe os resultados da simulação usando o programa ezwave (ezwave

exp3_completo.wdb).

3.8(a) Apresentação no Relatório : Curva Vout x Vin

Incluir o arquivo ‘ exp3_completo.sp ’.

Incluir a curva Vout x Vin.

Indicar sobre a curva os valores de V inv, V i1min, V i0max, V o1min, V o0max.

Apresentar uma lista com os valores de V inv, V i1min, V i0max, V o1min, V o0max, MR0=|Vi0max-Vo0max| e MR1=| V o1min-Vi1min|.

Análise (comparação com a teoria):

• Determine a tensão de limiar lógico Vinv. Compare com o valor simulado (não esqueça de verificar a causa da saturação dos transistores quando estiverem saturados).

• Analise o resultado, indicando se está coerente com a teoria em relação ao valor esperado devido à sua relação βn / βp.

Use as fórmulas dadas na parte teórica e os valores típicos da tecnologia dados no apêndice abaixo,

3.8(b) Apresentação no Relatório: : Curva Idd x Vin

Incluir a curva Idd x Vin.

Indicar a anotar o valor da corrente máxima, I max do inversor e o intervalo de tensão de entrada D V ( I dd 0 ) para a qual passa corrente no inversor.

Discussão no Relatório

Determinar a partir da curva as tensões de limiar dos transistores, Vtn e Vtp. Compare estes valores com os valores dados pelo modelo de transistores do SPICE-like.

Porque a corrente atinge um máximo na região de transição?

10

3.9 – SIMULAÇÃO DAS CARACTERÍSTICAS TRANSIENTES

• Traçar a curva (Vout x t) e (Vin x t) onde a entrada do primeiro inversor é um gerador de pul-sos (de 0 a 3.3V, tr e tf de 0.01ns), conforme descrito no arquivo ‘exp3_completo.sp’.

OBSERVAÇÃO: Lembre-se que o inversor sob análise é o do primeiro estágio; o segundo é apenas a carga.

3.9(a) Apresentação no Relatório:

Incluir as curvas da simulação dinâmica.

Indicar na curva os tempos de atrasos t pLH e tpHL (50% de V DD). Estime estes valores e os inclua no relatório.

3.9(b) Apresentação no Relatório: Calcule o valor de CL na saída do inversor sob análise. Para isto, determine áreas e perímetros usando seu leiaute; teoricamente o valor de cada um de seus componentes, utilizando os valores corretos de área e perímetro de dreno, o modelo SPICE, assim como as equações vistas nas aulas de teoria. MOSTRE SEUS CÁLCULOS.

Tabela para cálculo da capacitância de carga CL.(obtenha os valores usando o manual ENG-182, valores se encontram no ANEXO 1). Use sempre valores típicos dos parâmetros.

Item Parametro contribuição

Área de dreno de TRN = CJN=

Perímetro de dreno do TRN = CJSWN=

Área de dreno de TRP = CJP=

Perímetro de dreno do TRP = CJSWP=

Área do metal1-Well(field region) = CMFOX=

Perímetro do metal1(field region) = CMFOXF=

Área Poly1-Diff (porta TRN) = CGOX=

Perímetro Poly1-Diff (porta TRN) = CGSDON=

Área Poly1-Diff (porta TRP) = CGOX=

Perímetro Poly1-Diff (porta TRP) = CGSDOP=

Área Poly1-Well(field oxide) = CPFOX=

Perímetro Poly1-Well(field oxide) = CPFOXF=

CL (soma das diversas contribuições)

3.9(c) Apresentação no Relatório: Calcule o valor de tpLH e tpHL com as equações dadas na seção de teoria, usando valores típicos apresentado no manual ENG182(KPN e Vtn/KPP e Vtp na página 14/15), Wn, Ln, Wp e Lp conforme projetados. Vdd=3,3V.

3.9(d) Apresentação no Relatório: Compare os valores medidos e obtidos por cálculo para tpLH e tpHL. Discuta as eventuais discrepâncias.

11

APENDICE 1: Alguns valores de parâmetros do manual ENG-182_rev5.pdf.

A seguir são apresentados valores obtidos no manual ENG182 que serão usados nesta experiência. Os valores reportados são os típicos.

Item Valor típico

Tensão de limiar do TRN VTO10X10N = 0,46 V

Fator de ganho do TRN KPN = 170 uV/V2

Tensão de limiar do TRP VTO10X10P = -0,68 V

Fator de ganho do TRP KPP = 58 uV/V2

Capacitância área de dreno de TRN CJN = 0,84 fF/um2

Capacitância perímetro de dreno do TRN CJSWN = 0,25 fF/um

Capacitância área de dreno de TRP CJP = 1,36 fF/um2

Capacitância perímetro de dreno do TRP CJSWP = 0,35 fF/um

Capacitância área do metal1-Well(field region) CMFOX = 0,029 fF/um2

Capacitância perímetro do metal1(field region) CMFOXF = 0,044 fF/um

Capacitância área Poly1-Diff (porta TRN) CGOX = 4,54 fF/um2

Capacitância perímetro Poly1-Diff (porta TRN) CGSDON = 0,120 fF/um

Capacitância área Poly1-Diff (porta TRP) CGOX = 4,54 fF/um2

Capacitância perímetro Poly1-Diff (porta TRP) CGSDOP=0,086fF/um

Capacitância área Poly1-Well(field oxide) CPFOX=0,119fF/um2

Capacitância perímetro Poly1-Well(field oxide) CPFOXF=0,053fF/um

12