Você está na página 1de 6

LAYOUT XL

No exemplo do inversor, seguimos os passos abaixo:

1. Geração do esquemático
2. Simulação do esquemático gerado
3. Criação do layout
4. Verificação de regras de projeto (DRC)
5. Extração do circuito
6. Comparação das netlists do esquemático e do layout (LVS)
7. Simulação pós-layout

Observe que, quando geramos o layout, criamos uma nova View utilizando o
procedimento File -> New -> Cell View, e selecionamos a ferramenta Virtuoso. Nesse
caso, a janela Virtuoso Layout Editing apareceu em branco, e o layout foi criado
manualmente, ou seja, através da seleção de instâncias cujo layout já estão prontos (como
no caso dos transistores PMOS e NMOS da biblioteca PRIMLIB) ou do desenho dos
componentes camada a camada. Entretanto, utilizamos esse procedimento apenas para fins
didáticos. Para circuitos maiores, ele se torna muito lento e trabalhoso. Sendo assim,
utilizaremos agora uma outra ferramenta que gera o layout a partir do esquemático do
circuito que se deseja construir. Essa ferramenta se chama Layout XL e pode ser acessada
a partir do Composer Schematic. Sendo assim, na janela Library Manager, abra a view
“schematic” do inversor criado (Figura 54).

Figura 54. Selecionando a view schematic do inversor

No menu Tools, selecione Design Synthesis -> Layout XL (Figura 55).


Figura 55. Abrindo o Layout XL

A janela Startup Option aparecerá (Figura 56). Pode-se escolher criar um novo layout
ou abrir um arquivo existente para edição. Neste caso, criaremos um novo arquivo.
Portanto, selecione Create New e clique OK.

Figura 56. Escolhendo a opção Create New

Observe que, para essa célula, já existe uma view chamada layout (veja na janela
Library Manager). Sendo assim, utilizaremos um nome diferente para esse novo layout. Na
janela Create New File, digite “layoutxl” no campo View Name e clique OK (Figura 57).

Figura 57. Nomeando a nova view

A Figura 58 mostra as janelas que serão abertas após esse comando. Neste caso, foi
aberta também uma janela na qual podemos ver o esquemático correspondente. Isso servirá
como referência para a geração do layout e é muito útil em circuitos com muitos
componentes, pois, ao selecionarmos um componente no layout, o mesmo também é
selecionado no esquemático, de maneira que podemos visualizar as conexões com mais
facilidade.
Figura 58. Janelas abertas pelo Layout XL

Observe que a janela Virtuoso XL Layout Editing apareceu em branco. Em primeiro


lugar, alteremos o grid. Para isso, clique no menu Options e, em seguida, Display. Preencha
os campos como mostrado abaixo e clique APPLY:

Minor Spacing: 0.05


Major Spacing: 1
X Snap Spacing: 0.05
Y Snap Spacing: 0.05

OBS: Os valores ajustados para o grid (acima) devem ser utilizados toda vez que se
for editar um layout e não apenas quando forem gerar um layout utilizando a ferramenta
Layout XL.

Para gerarmos o layout, devemos selecionar a opção Design -> Gen From Source
(Figura 59).

Figura 59. Opção Gen From Source

Com isso, aparecerá uma janela com as opções do gerador de layout (vide Figura 60).
Podemos ver que, nas propriedades dos pinos (I/O Pins), adotamos como padrão a camada
de metal 1 (pn), com a dimensão 0.5 um x 0.5 um . Logo abaixo, há uma lista com os
nomes dos pinos encontrados no esquemático do circuito (gnd, in, out, vdd). Se
selecionarmos qualquer um deles, poderemos alterar as propriedades do mesmo, inclusive a
camada do pino. Neste exemplo, deixaremos todos inalterados, ou seja, em metal 1 (pn).
Selecione Label no campo Pin Label Shape para visualizarmos os rótulos dos pinos e
clique OK.

Figura 60. Opções do gerador de layout

O layout gerado aparecerá com o aspecto mostrado na Figura 61. Nela, podemos ver
os transistores PMOS e NMOS, posicionados aproximadamente da mesma forma que no
esquemático, os pinos de alimentação, de entrada e de saída, e uma fronteira na forma de
um quadrado. Neste exemplo, não utilizaremos e mesma e, portanto, podemos apagá-la.
Para visualizar as camadas dos transistores, basta utilizar SHIFT+F.

Figura 61. Aspecto da janela Virtuoso após a geração do layout


Adicione os contatos de substrato nos transistores selecionando essa opção nas
propriedades dos mesmos. Observe que, ao movermos um dos componentes, as ligações
entre este e os demais componentes são mostradas por meio de linhas amarelas, conforme
mostra a Figura 62. As ligações dos pinos também aparecem.

Figura 62. Conexões entre os componentes e os pinos de I/O

Faça as ligações necessárias, utilizando o mesmo procedimento visto na seção


“Criando um layout”.
Uma convenção que a equipe da UnB fez foi a de utilizar o metal 4 para as ligações
de alimentação (vdd e gnd) dos circuitos. Nesse tutorial, essa convenção será seguida.
Assim, antes de conectar o vdd e o terra será necessário adicionar vias para passar da
camada de metal 1 (onde estão os contatos de substrato dos transistores) para a camada de
metal 4. Há dois procedimentos para fazer isso e será utilizado um procedimento para cada
transistor.
Para o primeiro transistor, adicione contatos utilizando o comando Path (de maneira
análoga à criação do contato entre o poly e o metal 1 para a entrada do inversor) no contato
de substrato de um dos transistores (p ou n). Para isso, selecione metal 1 (dg) na janela
LSW, utilize o comando path e clique uma vez no centro de um dos contatos de substrato.
Desenhe o caminho até um determinado ponto fora do contato e clique apenas uma vez.
Aperte F3 e selecione a camada metal 2 (dg) no campo Change to Layer. Posicione o
contato de forma que o mesmo fique sobreposto ao contato de substrato e clique uma vez.
Observe que, ao arrastar o mouse, um caminho de metal 2 é desenhado. Arraste o mouse
até um ponto fora do contato e clique uma vez. Aperte novamente F3 e selecione a camada
metal 3 (dg) no campo Change to Layer. Posicione o contato novamente sobrepondo-o aos
contatos existentes e clique uma vez. Repita esse procedimento, escolhendo metal 4 (dg) e,
ao posicionar este último contato, clique duas vezes ou pressione ENTER.
Para o segundo transistor, utilize o comando Contact no menu Create. Vamos utilizá-
la para adicionar os contatos ao contato de substrato do outro transistor. Na janela Create
Contact, selecione VIA1_C (contato entre metal 1 e metal 2) em Contact Type e clique OK.
Posicione a via exatamente em cima do contato de substrato, de maneira que ambos fiquem
alinhados. Repita o procedimento para as vias VIA2_C (contato entre metal 2 e metal 3) e
VIA3_C (contato entre metal 3 e metal 4). Observe que, uma vez criados os contatos,
podemos copiá-los e colá-los ao invés de repetir o procedimento. Apenas deve-se ter o
cuidado de selecioná-los todos quando se usa mais de um.
Antes de posicionarmos os pinos, devemos selecioná-los, clicar em propriedades e
alterar a camada dos mesmos para metal 4 (pn). Essa mudança na camada dos pinos poderia
ter sido feito na figura 60.
Vale enfatizar aqui que não há necessidade nem de acrescentar os contatos, nem de se
alterar os pinos para metal 4. Os pinos vdd! e gnd! foram criados em metal 1 e poderiam ser
ligados diretamente nos contatos de substrato dos transistores. A criação das vias e a
utilização dos pinos vdd! e gnd! em metal 4 são apenas convenções adotadas pela nossa
equipe para facilitar a alimentação dos circuitos que utilizam mais de um componente.
Feitas essas considerações, o layout está pronto e podemos agora realizar os
procedimentos convencionais e necessários de DRC, extração, LVS e simulação pós-
layout. A Figura 63 mostra o layout final.

Figura 63. Layout final

A ferramenta Layout XL apresenta grandes simplificações na realização do layout. Há


algumas opções que facilitam o trabalho no menu Connectivity, na janela do Virtuoso XL
Layout Editing, que devem ser exploradas. Outra vantagem de se utilizar o Layout XL é a
simplificação na hora de resolver erros de LVS, que costumam demandar um tempo
considerável. Sendo assim, a equipe da UnB padronizou o procedimento de realizar
qualquer layout através da ferramenta Layout XL e de evitar sempre a realização do layout
antes de fazer o esquemático.

Você também pode gostar