Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de...
Transcript of Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de...
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