Tutorial Cadence

21

description

Amplificador

Transcript of Tutorial Cadence

  • 1 PROJETO: AMPLIFICADOR CMOS DE ESTGIO SIMPLES

    Este manual pretende servir como guia para o Laboratrio de Projeto de Circuitos Integrados (LPCI) do Departamento de Engenharia Eltrica (ENE) da Universidade de Braslia (UnB). Deseja-se projetar um amplificador CMOS de estgio simples do tipo fonte comum, seguindo o fluxo de projeto apresentado no Tutorial CADENCE - Nvel 1 e utilizando as ferramentas CADENCE de projeto de circuitos integrados, bem como a tecnologia AMS CMOS 0,35m. Nas sees seguintes, o usurio ser orientado no uso dessas ferramentas em cada etapa do projeto.

    2 CRIANDO UM NOVO ESQUEMTICO

    Execute o CADENCE, observando os passos a seguir:

    1) Abrir o terminal

    2) Digitar o comando: csh

    3) Acessar a pasta cadence: cd /home//cadence

    4) Executar a ferramenta digitando o comando: cadence

    Aps a inicializao do CADENCE, a janela Library Manager se abrir. Nela, esto listadas as bibliotecas com todas as clulas disponveis pela tecnologia, bem como os projetos criados pelo usurio que estejam na pasta onde o CADENCE foi executado.

    Selecione a biblioteca Tutorial, criada no projeto do inversor.

    Crie um novo esquemtico realizando os comandos:

    File -> New -> Cell View

    Na janela New File que aparecer, preencha o campo Cell com o nome da clula, no caso, amplificador.

    No campo Type, selecione a opo schematic. Os outros campos sero preenchidos automaticamente.

    Uma janela vazia do Virtuoso Schematic Editor se abrir automaticamente. Ser nessa ferramenta que o amplificador fonte comum da Figura 1 ser criado. Os componentes necessrios esto listados na Tabela1.

    Insira os componentes no esquemtico, usando o comando:

    Create -> Instance

    Atalho: I

    Tabela 1 - Lista de componentes para o projeto do amplificador.

    Componentes Biblioteca Nome na Biblioteca View

    Transistor NMOS PRIMLIB nmos4 symbol

    2 Transistores PMOS PRIMLIB pmos4 symbol

    Fonte de alimentao analogLib vdd symbol

    Terra analoglib gnd symbol

  • Figura 1 - Posicionamento dos componentes no esquemtico.

    Realize as conexes entre os componentes, usando o comando:

    Create -> Wire(narrow)

    Atalho: W

    Pressione a tecla ESC ao final para desativar o comando de conexo.

    Altere as dimenses dos transistores, de acordo com a Tabela 2 (os dois transistores PMOS so idnticos). Para isso, utilize o comando:

    Edit -> Properties -> Objects

    Atalho: Q

    Tabela 2 - Largura e comprimento dos transistores NMOS e PMOS.

    NMOS PMOS

    Width 0.8 m 2.4 m

    Length 0.4 m 0.4 m

    Number of Gates 1 2

  • Insira os pinos de entrada e sada do circuito para finalizar o esquemtico utilizando o comando:

    Create -> Pin

    Atalho: P

    Na janela Add Pin que aparecer, escreva in Iref (sem as aspas) no campo Pin Names e selecione a opo input no campo Direction.

    Insira os pinos de entrada no esquemtico, conforme a Figura 1. Dica: antes de inserir

    o pino Iref, utilize o comando

    Repetindo os procedimentos anteriores, insira o pino de sada, escrevendo out no campo Pin Names e selecionando a opo output no campo Direction.

    Verifique o esquemtico em busca de erros e depois o salve, executando o comando:

    File -> Check and Save

    Atalho: Shift + X

    Verifique se no h erros ou mensagens de alerta na janela MSFB.

    3 CRIANDO UM SMBOLO

    Depois que o esquemtico do amplificador for concludo, deve-se criar um smbolo para esse circuito.

    Crie um smbolo executando o comando:

    Create -> Cellview -> From Cellview

    Na janela Cellview From Cellview que aparecer, preencha o campo Library Name com o nome da biblioteca que contm a clula original, no caso, Tutorial.

    O campo Cell Name deve ser preenchido com o nome da clula que contm o esquemtico do circuito, no caso, amplificador.

    Clique no boto OK.

    Outra janela, chamada Symbol Generation Options, aparecer. Essa janela permite a escolha da posio dos pinos. Por conveno, os pinos de entrada so colocados no lado esquerdo e os pinos de sada, no lado direito. Assim, preencha o campo Left Pins com a opo in e o campo Right Pins, com a opo out. Como Iref a corrente de polarizao, e no uma entrada, coloque-o no campo Bottom Pins.

    Clique no boto OK para finalizar.

    Na ltima janela que se abrir (Figura 2), verifique e salve o smbolo executando o comando:

    File -> Check and Save

    Atalho: Shift + X

  • Figura 2 -Janela de edio do smbolo.

    4 CRIANDO UM TESTBENCH

    necessrio avaliar o funcionamento do circuito atravs de uma simulao funcional. Para isso, necessrio criar outro esquemtico, chamado de Testbench.

    Crie um novo esquemtico chamado amplificador_tb.

    Utilizando os mesmos passos descritos para se inserir componentes ao esquemtico, insira no Testbench os componentes listados na Tabela 3.

    Tabela 3 - Lista de componentes usados para o teste do Inversor.

    Componentes Biblioteca Nome na Biblioteca View

    Amplificador Tutorial amplificador symbol

    Fonte de alimentao analogLib vdd symbol

    Terra analogLib gnd symbol

    3 Fontes de tenso DC analogLib vdc symbol

    Fonte de corrente DC analogLib idc symbol

    Posicione esses elementos e os conecte usando o procedimento descrito anteriormente. A Figura 3 mostra o esquemtico final.

  • Figura 3 - Esquemtico do amplificador_tb.

    Altere os parmetros da fonte de alimentao, inserindo o valor 3.3 no campo DC voltage.

    Altere os parmetros da fonte de corrente de polarizao, inserindo o valor 100u no campo DC current.

    Altere os parmetros da fonte conectada entrada do amplificador, inserindo Vin no campo DC voltage. Dessa forma, a varivel Vin criada automaticamente.

    Finalmente, altere os parmetros da fonte conectada sada do amplificador, inserindo Vout no campo DC voltage. Da mesma forma que anteriormente, a varivel Vout criada automaticamente.

    5 SIMULANDO O ESQUEMTICO DO AMPLIFICADOR.

    Agora que o esquemtico do circuito e seu testbench foram criados, procede-se com a simulao funcional. Sero traadas as curvas caractersticas ID x VDS do NMOS, bem como a curva de carga. Isso feito calculando-se as correntes de dreno dos transistores para vrios pontos de operao do amplificador. Esses clculos sero realizados pela ferramenta de testes Analog Design Environment, ou ADE.

    Inicie o ADE executando o comando:

    Launch -> ADE L

    Na janela que aparecer (Figura 4), selecione o tipo de simulao que se deseja

    realizar no circuito executando o comando no menu do ADE:

    Analyses -> Choose

  • Figura 4 - Janela do Analog Design Environment.

    Na janela Choosing Analyses (Figura 5), escolha a opo dc na seo Analysis.

    Figura 5 - Janela de escolha de simulao a ser realizada pelo ADE.

    Para que as correntes sejam calculadas para vrios valores de VDS, na seo Sweep

    Variable, marque a opo Component Parameter. Ao marcar essa opo, novos

    campos aparecero na janela.

  • Como a tenso VDS do NMOS igual a Vout, clique no boto Select Component e

    depois selecione a fonte de tenso na sada do amplificador, clicando sobre ela no

    esquemtico do testbench.

    Na janela que aparecer (Figura 6), selecione a opo DC voltage e clique em OK.

    Figura 6 - Janela de seleo do parmetro que ser varrido na simulao.

    Na seo Sweep Range (Figura 5), preencha os campos Start e Stop com os valores

    0 e 3.3, respectivamente.

    Em Sweep Type, escolha a opo Linear, selecione Step Size e preencha o campo ao

    lado com o valor 0.3.

    Clique no boto OK.

    O prximo passo recuperar as variveis do testbench.

    No menu da janela do ADE, escolha:

    Variables -> Copy From Cellview

    As variveis, no caso Vin e Vout, aparecero no campo Design Variables. Os valores de Vin sero ajustados mais adiante e os valores referentes fonte de tenso Vout j foram definidos na escolha dos parmetros da anlise DC. Todavia, mesmo que nem todas variveis sejam usadas em determinada anlise, a simulao no ser realizada se alguma varivel estiver indefinida.

    Na coluna Value do campo Design Variables, clique ao lado do nome da varivel Vout e atribua um valor qualquer a ela (por exemplo: 1).

    Agora, necessrio escolher quais ns do circuito se deseja observar.

    No menu da janela do ADE, escolha:

    Output -> To Be Plotted -> Select On Schematic

    Na janela do esquemtico, execute o comando:

    Edit -> Hierarchy -> Descend Edit

    Atalho: Shift + E

  • Clique sobre o smbolo do amplificador.

    Na janela que aparecer (Figura 7), selecione a opo schematic no campo View e, em Open in, selecione new tab.

    Figura 7 - Janela de descida do nvel hierrquico.

    Clique no boto OK. Uma nova aba aparecer na janela do Schematic Editor, contendo o esquemtico do amplificador.

    Selecione o dreno do transistor NMOS e a fonte do transistor PMOS ligado ao NMOS (Figura 8).

    Figura 8 - Janela do esquemtico mostrando os ns selecionados para observao.

    Na janela do ADE, na seo Outputs, note que somente a opo Plot est marcada para os dois ns que apareceram. Marque tambm a opo Save.

    Agora, a janela do ADE deve ficar como a Figura 9. O ltimo passo lanar uma anlise paramtrica em funo de Vin. Note que Vin igual tenso VGS do NMOS.

  • Figura 9 - Janela do ADE mostrando os ns selecionados para observao.

    Na janela do ADE, execute o comando:

    Tools -> Parametric Analysis

    Na janela que aparecer (Figura 10), no campo Variable Name, escreva Vin.

    Na seo de Range Type, nos campos From e To, escreva 0.9 e 2.4, respectivamente.

    Na seo Step Control, selecione a opo Linear e preencha o campo Total Steps com o valor 6.

    Figura 10 - Janela de anlise paramtrica.

    Ainda nessa janela, execute o comando:

    Analysis -> Start

    Ao final das simulaes, uma janela abrir com o resultado da simulao, mostrando as curvas caractersticas - ID x VDS para diferentes valores de VGS - e a curva de carga do amplificador (Figura 11).

  • Figura 11 - Formas de onda obtidas na simulao.

    Finalmente, possvel salvar as configuraes da simulao realizada. Dessa forma, se quisermos repeti-la no futuro, no ser necessrio refazer todos os passos acima.

    Na janela do ADE, execute o comando:

    Session -> Save State

    Repare no nome do estado, que aparece no campo Save As, e clique em OK.

    6 LEIAUTE DO INVERSOR

    Seguindo o fluxo de projeto, aps se criar o circuito do amplificador e de se verificar seu funcionamento atravs de simulao, segue-se com a criao do seu leiaute.

    Para gerar o leiaute, abra o esquemtico do amplificador e execute o comando na barra de ferramentas:

    Launch -> Layout XL

    Na janela que aparecer (Figura 12) escolha a opo Create New e clique em OK.

    Figura 12 - Janela de criao de novo Layout XL.

  • Na prxima janela, clique em OK para confirmar a criao do novo leiaute.

    Lembre-se que antes de se iniciar o posicionamento dos componentes do circuito, necessrio ajustar-se o grid do editor de leiaute.

    Execute o comando:

    Options -> Display

    Na janela que aparecer, ajuste com os valores da Tabela 4.

    Tabela 4 - Valores de Grid.

    Opo Valor

    Minor Spacing 0.025

    Major Spacing 1

    X Snap Spacing 0.025

    Y Snap Spacing 0.025

    Alm dos ajustes nos valores de grid, recorde que h outras opes que auxiliam durante desenho do leiaute, como a opo Cross Cursor, no campo Display Controls. Outra opo interessante selecionar em ambos os campos Create e Edit a opo diagonal.

    Com o grid ajustado, procede-se com a adio e posicionamento dos componentes do circuito.

    Para adicionar os componentes que fazem parte do circuito, clique no boto Generate All From Source, na barra de ferramentas inferior:

    Na janela que aparecer, marque as opes Preserve Mappings, Transistor Folding e desmarque PR Boundary. Clique em OK.

    Agora a view criada contm todos os transistores que fazem parte do circuito, bem como os pinos e seus respectivos labels (Figura 13). Basta posicionar os componentes e criar as conexes entre eles. Lembre-se que, para alternar entre as duas formas de visualizao possveis, devem-se executar os comandos:

    Atalho: Shift + F e Ctrl + F

  • Figura 13 - Layout XL com os transistores, pinos e respectivos labels do circuito do amplificador.

    Recorde, ainda, que a ferramenta Annotation Browser auxilia na visualizao de conexes incompletas no leiaute, indicando-as como linhas coloridas (Figura 14). Para utiliz-la, realize o comando no menu do Layout XL:

    Window -> Assistants -> Annotation Browser

    Figura 14 - Layout XL com a janela do Annotation Browser.

    Primeiramente, criaremos os contatos de substrato de todos os transistores.

  • Selecione um dos transistores, depois execute o comando Edit Properties:

    Edit -> Basic -> Properties

    Atalho: Q

    Na janela que aparecer, selecione a aba Parameter e marque a opo Substrate Contact. Clique em Apply.

    Faa o mesmo para os transistores restantes. Ao final, clique em OK para fechar a janela Edit Instance Properties.

    Lembre-se que tambm podemos criar os contatos de substrato com o comando Create Via.

    Agora, posicione os transistores PMOS lado a lado, de modo que eles fiquem alinhados e que a distncia entre eles seja de 1 m.

    Posicione o transistor NMOS abaixo do transistor PMOS que deve ser ligado ao pino de sada, de forma que a distncia entre o NMOS e o NTUB do PMOS seja de 1,2 m.

    Para mover componentes, utilize o comando:

    Edit -> Move

    Atalho: M

    Para utilizar a rgua, execute o comando:

    Tools -> Create Ruler

    Atalho: K

    Para apagar todas as rguas existentes no leiaute, execute o comando:

    Window -> Clear all rulers

    Atalho: Shift + K

    A Figura 15 mostra a tela do Virtuoso depois que os transistores PMOS e NMOS foram inseridos e posicionados adequadamente.

  • Figura 15 - Transistores PMOS e NMOS posicionados.

    Os transistores devem ser ligados para formar o amplificador. Com auxlio do Annotation Browser, faa uma net de cada vez, realizando todas as conexes necessrias. Deixe gnd! e vdd! para o final.

    Comeando com Iref (ver Figura 16), crie trilhas de POLY1 entre as portas dos transistores PMOS, utilizando o comando:

    Create -> Rectangle

    Atalho: R

    ou o comando:

    Create -> Shape -> Path

    Atalho: P

    No PMOS da esquerda (no conectado sada), conecte o dreno porta, com uma via do tipo P1_C. Para isso, utilize o comando:

    Create -> Via

    Atalho: O

    Com auxlio do Annotation Browser, identifique o pino correspondente a Iref. Mova esse pino, colocando-o sobre a via criada no passo anterior.

    Ainda falta criar um rtulo (label) para ele. Note que todos os pinos foram criados na camada MET1_pin; dessa forma, selecione a camada PIN_M1 na janela LSW.

    Para criao do rtulo de um pino do circuito, execute o comando:

    Create -> Label

    Atalho: L

    Na janela que abrir, preencha o campo Label com o nome Iref.

  • Um rtulo contendo o nome escrito aparecer na ponta do cursor. Posicione esse rtulo sobre o pino.

    A Figura 16 ilustra o resultado aps esses passos. Repare que Iref no aparece mais na janela do Annotation Browser.

    Figura 16 - Conexes da net Iref.

    De forma semelhante, prossegue-se com a criao da net in (ver Figura 17).

    Crie uma via do tipo P1_C; Conecte essa via porta do transistor NMOS com uma trilha de POLY1; Mova o pino correspondente net in, colocando-o sobre a via criada no passo acima; Crie um rtulo chamado in e o posicione sobre pino.

    O leiaute resultante ilustrado na Figura 17. Veja que in tambm no aparece mais na janela do Annotation Browser.

  • Figura 17 - Criao da net in.

    O prximo passo, agora, criar a net out.

    Desenhe trilhas de MET1 para conectar o dreno do NMOS ao dreno do PMOS da direita (ligado sada).

    Mova o pino correspondente net out, colocando-o sobre a trilha de MET1; Crie um rtulo chamado out e posicione-o sobre pino.

    A Figura 18 mostra o leiaute resultante.

    Figura 18 - Criao da net out.

  • Finalmente, necessrio criar as linhas de alimentao (vdd) e de terra (gnd).

    Faa um retngulo de MET1 acima dos transistores PMOS e outro retngulo abaixo do transistor NMOS.

    Faa retngulos conectando os transistores PMOS linha de cima e um retngulo conectando o transistor NMOS linha de baixo.

    Mova o pino correspondente a gnd!, colocando-o sobre o retngulo de MET1 inferior; Crie um rtulo chamado gnd! e posicione-o sobre pino. Da mesma forma, mova o pino correspondente a vdd!, colocando-o sobre o retngulo

    de MET1 superior; Crie um rtulo chamado vdd! e posicione-o sobre pino.

    O leiaute final ilustrado na Figura 19.

    Figura 19 - Linhas de alimentao (vdd) e terra (gnd).

    6.1 VERIFICAO DE REGRAS DE PROJETO - DRC E LVS

    Depois de terminado o desenho, necessrio verificar se as regras de projeto da tecnologia utilizada foram seguidas corretamente. Isso feito com uma ferramenta chamada DRC (Design Rule Checking).

    Para iniciar a verificao DRC, execute o comando na barra de menu do Virtuoso:

    Assura -> Run DRC

    Na janela que aparecer, clique no boto Set Switches; escolha as opes grid e no_coverage; e clique em OK.

    Clique em OK novamente para iniciar a verificao DRC.

    Verifique a janela MSFB. Se houverem erros, eles estaro listados nessa janela. Caso existam erros, execute o comando para abrir uma janela de verificao. Nessa

    janela, cada erro est listado e explicado.

    Depois de corrigir os erros, execute o DRC novamente, seguindo os passos anteriores. Uma boa estratgia corrigir um erro de cada vez e executar o DRC a cada correo, pois muitas vezes a correo de um nico problema elimina mais de uma mensagem de erro.

  • Depois de corrigido o leiaute, a janela de erros de DRC deve ter a aparncia da Figura 20. Os dois ltimos erros que constam na lista - Generated Layers : Missing FIMP Layer e Generated Layers : Missing NLDD LAYER - podem ser ignorados por enquanto. Eles sero resolvidos no leiaute final, onde todos os circuitos j estaro posicionados e conectados.

    Figura 20 - Janela de resultado do DRC.

    necessrio verificar agora se circuito desenhado no leiaute corresponde ao circuito projetado no esquemtico. Isso feito utilizando uma ferramenta chamada LVS (Layout Versus Schematic).

    Para iniciar a verificao LVS, execute o comando na barra de menu do Virtuoso:

    Assura -> Run LVS

    Na janela que aparecer, verifique se os campos do Schematic Design Source e do Layout Design Source esto preenchidos de maneira correta.

    Clique em OK para iniciar a verificao LVS. Caso no haja diferenas entre o leiaute e o esquemtico, aparecer uma janela, como

    a mostrada na Figura 21. Havendo erros, estes tambm aparecero na janela da Figura 21 e devero ser corrigidos e a verificao LVS executada novamente.

    Figura 21 - Janela de resultado do LVS.

    2.7. EXTRAO

    O leiaute de um circuito simplesmente um conjunto de formas geomtricas de cores diferentes sobrepostas. O processo de extrao reconhece os dispositivos representados por essas figuras e gera uma srie de informaes sobre as resistncias e capacitncias parasitas que foram acrescentadas ao circuito devido geometria das conexes, ao posicionamento dos componentes, etc. Tais caractersticas devem ser levadas em considerao pelo projetista, pois podem reduzir consideravelmente o desempenho do circuito projetado ou at mesmo impedir seu funcionamento.

    Para extrair os parasitas do circuito, execute o comando na barra de menu do Virtuoso:

    Assura -> Run RCX

    Na janela que aparecer, selecione a aba Extraction No campo Extraction Type, selecione RC

  • Preencha o campo Ref. Node com o n de referncia, ou seja gnd! Finalize clicando em OK para iniciar a extrao. Se nenhum erro ocorrer, uma

    mensagem aparecer confirmando a concluso da extrao (Figura 22).

    Figura 22 - Janela de confirmao de finalizao da extrao.

    2.8. SIMULAO PS-LAYOUT

    Finalizada as etapas de verificaes DRC e LVS, e a extrao dos parasitas, tm-se duas clulas principais para o mesmo circuito. A primeira delas o esquemtico, que seu projeto inicial (ideal). A segunda o circuito extrado, que leva em considerao os efeitos parasitas associados ao leiaute (real). Nesse exemplo o circuito do amplificador ser novamente simulado, utilizando, desta vez, o circuito extrado.

    Para realizar a simulao ps-leiaute, abra o esquemtico do amplificador_tb Inicie o ADE executando o comando:

    Launch -> ADE L

    Carregue as configuraes da simulao realizada na seo 5, executando o comando no menu do ADE:

    Session -> Load State

    No campo State Name, escolha o estado salvo ao final da seo 5; e clique em OK. No menu da janela do ADE, escolha:

    Setup -> Environment

    Na janela que aparecer, acrescente ao campo Switch View List a opo analog_extracted, que deve necessariamente ficar entre as opes cmos_sch e schematic.

    Figura 23 - Seleo da netlist do circuito extrado para simulao.

  • Na janela do ADE, execute o comando:

    Tools -> Parametric Analysis

    Na janela que aparecer, preencha os campos da seguinte forma:

    o Variable Name: Vin

    o From: 0.9

    o To: 2.4

    o Step Control: Linear

    o Total Step: 6

    Ainda nessa janela, execute o comando:

    Analysis -> Start

    Ao fim da simulao, aparecer uma janela com o resultado (Figura 24), o qual deve ser equivalente ao resultado mostrado na Figura 11.

    Figura 24 - Resultado da simulao ps-leiaute.