You are on page 1of 52

FACULDADE DE INFORMTICA PUCRS Brasil

http://www.inf.pucrs.br

ANATOMIA DE UMA FERRAMENTA DE SNTESE AUTOMTICA DE LAYOUT


Fernando Gehm Moraes

TECHNICAL REPORT SERIES


____________________________________________________________________________________

August, 2000

Contact: moraes@inf.pucrs.br http://www.inf.pucrs.br/~moraes

F. G. Moraes is a senior lecturer (associate professor) at the PUCRS/Brazil since 1996. His main research topics are digital systems design and fast prototyping, digital systems physical synthesis CAD, telecommunication applications, hardware-software codesign. He is a member of the Hardware Design Support Group (GAPH) at the PUCRS.

F. G. Moraes Professor Adjunto da Faculdade de Informtica da PUCRS desde 1996, Doutor em Microeletrnica pela Universidade de Montpellier II (1994), Mestre em Cincia da Computao pela UFRGS (1990) , Engenheiro Eletricista pela UFRGS (1987). Principais tpicos de pesquisa: sntese fsica de circuitos integrados, ferramentas para o apoio ao projeto de circuitos integrados (CAD), prototipao rpida de sistemas digitais, projeto conjunto hardware/software.

Copyright Faculdade de Informtica PUCRS Published by the Campus Global FACIN PUCRS Av. Ipiranga, 6681 90619-900 Porto Alegre RS Brazil

ii

SUMRIO
1 2 Introduo__________________________________________________________________ 1 Sntese Automtica de layout ___________________________________________________ 2
2.1 2.2 2.3 2.4 Biblioteca Virtual de Clulas______________________________________________________ 3 Sntese de Bibliotecas e Sntese de Macro-Clulas ____________________________________ 4 A Ferramenta de Sntese Automtica de Layout TROPIC3 ____________________________ 5 Referncias bibliogrficas ________________________________________________________ 8

Estilo de Layout da Ferramenta TROPIC3________________________________________ 9


3.1 3.2 3.3 3.4 3.5 Layout a nvel de clula bsica ____________________________________________________ 9 Layout a nvel de banda_________________________________________________________ 12 Layout a nvel de macro-clula ___________________________________________________ 14 Codificao da tecnologia _______________________________________________________ 15 Referncias bibliogrficas _______________________________________________________ 17

Sntese Fsica: do Netlist ao Layout_____________________________________________ 18


4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Extrao de clulas folha ________________________________________________________ 19 Posicionamento das clulas folha _________________________________________________ 20 Gerao de clulas folha ________________________________________________________ 23 Assinalamento de pinos _________________________________________________________ 25 Gerao de banda______________________________________________________________ 27 Fixao dos pontos de passagem entre bandas no adjacentes _________________________ 28 Roteamento ___________________________________________________________________ 29 Gerao do arquivo de layout em formato CIF______________________________________ 31 Referncias bibliogrficas _______________________________________________________ 31

Extrao de Elementos Parasitas_______________________________________________ 33


5.1 5.2 5.3 Algoritmo de Extrao de Conectividade___________________________________________ 34 Modelo de Extrao ____________________________________________________________ 36 Referncias bibliogrficas _______________________________________________________ 39

Integrao da Sntese Fsica Sntese Lgica ____________________________________ 40


6.1 6.2 Abordagem de biblioteca virtual no ambiente Virtual Synopsys________________________ 41 Referncias bibliogrficas _______________________________________________________ 46

Exerccios _________________________________________________________________ 47

iii

ANATOMIA DE UMA FERRAMENTA DE SNTESE AUTOMTICA DE LAYOUT

1 INTRODUO
Este Captulo apresenta os procedimentos que so necessrios para implementar uma ferramenta de sntese automtica de layout, assim como integr-la a um fluxo de projeto que contemple nveis abstratos de descrio, como por exemplo, VHDL. O Captulo 2 apresenta os conceitos de biblioteca virtual de clulas e sntese de macro-clulas. Estes conceitos so importantes, pois permitem situar a abordagem de sntese automtica frente a outras abordagens, como standard-cells ou full-custom. Ainda neste Captulo, apresenta-se as motivaes que conduziram ao desenvolvimento da ferramenta TROPIC3, que ser a ferramenta utilizada como exemplo no decorrer do texto. O Captulo 3 apresenta o estilo de layout adotado na ferramenta TROPIC3. Cada detalhe de implementao, como posicionamento dos transistores, posio da alimentao, posio dos ns de sada, entre outros, so apresentados e justificados. O Captulo 4 apresenta de forma simplificada os algoritmos necessrios para implementar-se uma ferramenta de sntese de layot. Considerando a importncia das capacitncias parasitas em tecnologias sub-micrnicas, o Captulo 5 apresenta o procedimento adotado para extrair-se estas capacitncias, de uma forma rpida e precisa. O ltimo Captulo, 6, mostra o procedimento para integrar a sntese automtica de layout a um fluxo de projeto com entrada VHDL, permitindo o uso de bibliotecas virtuais.

TROPIC

2 SNTESE AUTOMTICA DE LAYOUT


A reduo acentuada do tempo de vida de um produto no mercado, a crescente complexidade dos circuitos integrados (CIs) e a presso para que um produto esteja disponvel o mais rapidamente possvel ao consumidor so alguns dos problemas enfrentados pelos projetistas. Dois fatores tem contribudo significativamente para o aumento da complexidade dos CIs: utilizao de cores (mdulos pr-definidos de hardware) e tecnologias submicrnicas. Logo, um projetista de CIs deve concentrar-se em nveis de projeto mais abstratos, utilizando por exemplo linguagens de descrio de hardware como VHDL, deixando a sntese fsica para ferramentas que gerem o layout automaticamente. Existem diversas solues automatizadas para a sntese fsica, como: biblioteca de clulas prdefinidas (standard-cells e gate-arrays) e geradores de mdulos (multiplicadores, memrias). A primeira classe, baseada em biblioteca de clulas, utilizada para sntese de lgica irregular, ou randmica (no apresentam um padro definido, como por exemplo mquinas de estado ou lgica de cola). A segunda classe, geradores de mdulos, geram estruturas regulares a partir de blocos construtivos bsicos, resultando em mdulos compactos e com bom desempenho eltrico. A nossa abordagem visa a sntese de blocos com lgica irregular. A diferena em relao aos mtodos correntemente utilizados a no utilizao de biblioteca de clulas. Bibliotecas de clulas representam uma boa soluo para tecnologias micrnicas, onde o desempenho eltrico basicamente funo do atraso das clulas. Logo, fica fcil caracterizar um bloco contendo clulas pr-definidas, pois basta somar os atrasos das clulas no caminho crtico do circuito. Em tecnologias submicrnicas esta caracterstica no mais verdadeira, pois o atraso depende em grande parte do comprimento das interconexes, e para tecnologias abaixo de 0,35 micrmetros o atraso das interconexes ser superior ao atraso das prprias clulas que compem o circuito. As principais desvantagens dos mtodos baseados em clulas pr-definidas so: (i) nmero limitado de funes lgicas, normalmente poucas funes complexas esto disponveis nas bibliotecas; (ii) transistores de tamanho fixo, o que leva necessidade de se implementar diversos padres de clulas (templates) para cada funo; (iii) dependncias s regras de projeto, a cada mudana na tecnologia deve-se refazer toda a biblioteca; (iv) complexidade para as ferramentas de sntese gerenciarem bibliotecas complexas, contendo em torno de uma centena de funes diferentes, cada uma com diversos templates. A abordagem que parte de uma lista de portas lgicas interconectadas (netlist) e gere o layout automaticamente a partir deste netlist e das regras de projeto resolve os 4 problemas acima: (i) o nmero de funes ilimitado, em funo apenas do netlist; (ii) cada clula pode ter o tamanho de seus transistores dimensionado em funo da carga e das restries de atraso; (iii) o layout independente das regras de projeto, pois para uma nova tecnologia basta alterar o arquivo contendo as regras; (iv) as ferramentas de sntese no necessitam mais gerenciar complexas bibliotecas de clulas. Esta abordagem, sntese automtica de layout, tem entretanto algumas deficincias que limitam a sua utilizao: As clulas no so pr-caracterizadas. Como visto acima, a pr-caracterizao permite uma estimao rpida de qual ser o atraso do circuito. Quando parte-se de um netlist deve-se primeiro gerar o circuito, o que pode consumir um tempo grande de CPU, para depois estimar-

Sntese Automtica de Layout

se o atraso. Como visto acima, pre-caracterizao no mais uma garantia de estimao precisa de atraso, pois nas atuais tecnologias deve-se considerar o atraso das interconexes. Logo, tanto para sntese automtica quanto para biblioteca de clulas, deve-se estimar primeiro as capacitncias de roteamento (parasitas) para depois estimar o atraso. A topologia das clulas fixa. A sntese automtica de layout segue padres regulares de clulas, gerando apenas clulas complementares e portas de transmisso. Lgica no dual, como em circuitos dinmicos, no so normalmente sintetizados. A ferramenta LAS (Cadence) sintetiza estas clulas irregulares, porm com uma densidade de integrao muito baixa. O nmero de ferramentas no fluxo de projeto maior que nas abordagens baseadas em clulas. Por exemplo, ferramentas como LAS ou TROPIC2, utilizam compactao de layout, a qual consome um tempo muito grande de CPU.

Apesar das vantagens das ferramentas de sntese automtica, as 3 desvantagens acima fazem com que este tipo de ferramenta no seja muito utilizada pelos projetistas de CIs. Alm disto, devido ao uso de estilo regular de implementao do layout, a densidade de integrao (em transistores por milmetro quadrado) obtida com ferramentas de sntese automtica de layout tende a ser menor que as abordagens baseadas em bibliotecas de clulas (standard cells). Esta densidade de integrao melhor para a bordagem standard cells deve-se ao fato que as clulas so projetadas manualmente (projeto full-custom), com uma ocupao mnima de rea. Exemplo de clulas com layout extremamente otimizado nas bibliotecas de clulas: flip-flops e somadores. A forma encontrada pelas ferramentas de sntese de layout para compensar esta perda em densidade a utilizao de clulas complexas, o que reduz o nmero total de transistores. Nosso objetivo mostrar a implementao de uma ferramenta de sntese automtica que resolva ao menos dois dos problemas acima, tornando o uso de sntese automatizada uma real alternativa aos mtodos baseados em clulas. As deficincias que sero tratadas so: predio rpida de parasitas de roteamento e ausncia de compactao. A predio de parasitas permite uma rpida estimativa do atraso do circuito. A ausncia de compactao de layout permite uma sntese de layout extremamente rpida.

2.1 Biblioteca Virtual de Clulas


A principal diferena no fluxo de projeto entre as abordagens baseadas em bibliotecas e a sntese automtica de clulas o mapeamento tecnolgico, que consiste na implementao de uma rede Booleana em termos de dispositivos providos pela tecnologia alvo. Em abordagens baseadas em biblioteca de clulas a ferramenta de mapeamento tecnolgico restrita a um conjunto limitado de funes pr-existentes. Em ferramentas de sntese automtica de layout o nmero de funes lgicas normalmente funo do nmero de transistores em srie. Como mostrado na Tabela 1, se limitarmos o nmero de transistores em srie em 4 (tanto no plano N como no plano P), teremos 3503 funes lgicas diferentes, o que muito superior qualquer biblioteca de clulas. A Figura 1 ilustra as 7 diferentes funes lgicas que podem ser obtidas com a limitao de 2 transistores em srie, tanto no plano N quanto no plano P. A funo F7, que implementa uma soma de produtos negada, necessita 8 transistores para ser implementada. Caso fossem utilizadas clulas simples, como nands ou nors, seriam necessrios ao menos 14 transistores. Se considerarmos clulas mais complexas, com 4 transistores em srie, esta diferena muito mais acentuada.

TROPIC

Nmero de Transistores PMOS em Srie 1 Nmero de Transistores NMOS em srie 1 2 3 4 5 1 2 3 4 5 2 2 7 18 42 90 3 3 18 87 396 1677 4 4 42 396 3503 28435 5 5 90 1677 28435 425803

Tabela 1 - Nmero de clulas versus nmero de transistores em srie.

A B F7= not(A.B + CD) C D

Figura 1 - Biblioteca (2,2), contendo 7 funes lgicas diferentes.

Quando a ferramenta de mapeamento tecnolgico trabalha sobre restries topolgicas (por exemplo, mximo nmero de transistores em srie ou mximo fanout) ao invs de uma biblioteca pr-existente, dizemos que estamos trabalhando sobre uma biblioteca virtual. A restrio topolgica de nmero de transistores em srie funo da tecnologia utilizada e do desempenho eltrico. Recomenda-se para tecnologias submicrnicas a utilizao de bibliotecas (4,3), ou seja, at 4 transistores em srie no plano N e at 3 transistores em srie no plano P. A vantagem de utilizarmos bibliotecas virtuais o aumento do espao de solues para o mapeador tecnolgico, o que conduz a um nmero sensivelmente menor de transistores (em mdia 35% menos) e consequentemente uma menor rea de silcio, melhor desempenho eltrico e menor consumo de potncia.

2.2 Sntese de Bibliotecas e Sntese de Macro-Clulas


Duas alternativas para a sntese automtica do layout utilizando bibliotecas virtuais podem ser consideradas: Sntese de Bibliotecas. Este mtodo isola todas as clulas do netlist de entrada, gerando um layout nico para cada clula. Todas as clulas devem apresentar a mesma altura e posio prdefinida para as entradas e sadas. Os passos seguintes da sntese fsica so praticamente os mesmos que na abordagem baseada em clulas, ou seja, posicionamento e roteamento. Este mtodo resolve o problema de dependncia tecnologia e nmero limitado de funes, porm no permite um dimensionamento individual dos transistores. Sntese de Macro-Clulas. Neste mtodo todas as clulas que compem o circuito so sintetizadas, independentemente de terem ou no a mesma funo. Desta forma, cada porta

Sntese Automtica de Layout

lgica do circuito, mesmo tendo a mesma funo lgica, poder ter layouts diferentes. Esta abordagem exige ferramentas de posicionamento e roteamento dedicadas, porm permite o dimensionamento individual de cada transistor do circuito, de acordo com as restries impostas pelo projetista.

2.3 A Ferramenta de Sntese Automtica de Layout TROPIC3


TROPIC3 uma ferramenta de sntese automtica de layout de circuitos integrados. Utiliza bibliotecas virtuais, permitindo assim a sntese de qualquer clula complexa. O mtodo de sntese empregado o de sntese de macro-clulas, ou seja, todas as clulas do circuito so sintetizadas. Apenas dois arquivos so necessrios para a sntese do layout: um netlist em formato SPICE e um arquivo contendo as regras de projeto. Como sada da ferramenta TROPIC3 temos o layout do circuito, em formato CIF, e o arquivo contendo as capacitncias parasitas de roteamento (inclusive, como ser visto adiante, as de acoplamento entre condutores vizinhos). As motivaes para o desenvolvimento da ferramenta TROPIC3 foram: Reduzir o tempo de CPU necessrio para a sntese de layout. A etapa de sntese responsvel por consumir um grande tempo de CPU, como mencionado anteriormente, a compactao de layout. Tanto as ferramentas LAS quanto TROPIC2 geram uma descrio simblica do circuito, sendo posteriormente convertida por um programa de compactao baseado em um grafo de restries. Esta etapa de compactao consome mais de 1 hora para um circuito com 5000 transistores, em uma Ultra-Sparc 10. Utilizar 3 nveis de metal e contatos empilhados para reduzir a rea final do circuito.

A compactao de layout baseada em grafo de restries foi substituda por uma compactao simplificada, baseada em grade virtual, adaptada ao estilo de layout implementado no TROPIC3. Esta compactao simplificada gera layouts menos densos, perda esta compensada largamente pela utilizao dos 3 nveis de metal e contados empilhados. A Tabela 2 compara as densidades obtidas com TROPIC2/LAS e TROPIC3. Observa-se que a densidade obtida foi sempre melhor com TROPIC3, justificando assim a nova abordagem.
Circuito Adder Addergate Alu Alugate Rip Cla Hdb3 Mult6 Mult2 Tr# 28 40 260 432 448 528 570 972 4512 Bandas 2 2 4 4 5 5 4 7 16 LAS dml 4780 5598 5812 6050 5961 5614 4903 5950 4879 TROPIC2 5942 6020 5294 5405 5610 5498 6516 5779 4080 TROPIC3 10136 9542 7606 7494 8726 8133 7892 7152 5924

Tabela 2 - Comparao de densidade de integrao (tr/mm2) entre ferramentas de sntese de layout que utilizam compactao baseada em grafo de restries (TROPIC2 e LAS) e TROPIC3 (grade virtual e 3 nves de metal). Tecnologia 0.7 m . LAS dlm significa LAS com dois nveis de metal.

A conseqncia da simplificao da etapa de compactao fez com que o tempo de CPU para a sntese fosse reduzido drasticamente. A Tabela 3 mostra a densidade e o tempo de CPU para sntese e a clculo de capacitncias parasitas. Observa-se que o tempo total para sntese e clculo de

TROPIC

capacitncias parasitas foi de 337920 ms (5,6 minutos) para um circuito com 14376 transistores. Se fosse utilizada compactao, como no TROPIC2/LAS, certamente seriam necessrias vrias horas de CPU na mesma mquina, e uma quantidade imensa de memria (mais que 200 Mbytes).
Circuito adder addergate alu alugate rip cla hdb3 5xp1 sao2 mult6 9sym c499 c1355 c1908 mult2 c2670 c7552_3x3 c3540 mult12 c6288 c5315 c7552 Transistores 28 40 260 432 448 528 570 798 930 972 1092 1556 2244 3146 4512 4976 6164 7154 8584 10112 10656 14376 Redes 13 15 94 117 163 215 191 308 361 308 420 511 647 990 1239 1762 2101 2359 2455 2706 3429 4764 Bandas 1 2 3 4 4 4 6 7 7 6 8 7 9 14 13 15 15 15 16 18 15 17 X x Y (m) 20.45 x 13.60 16.80 x 25.20 74.45 x 47.40 90.00 x 59.40 88.70 x 56.40 111.45 x 62.80 87.00 x 85.60 107.45 x 101.20 123.25 x 107.20 135.70 x 96.60 126.00 x 122.80 194.45 x 117.20 200.45 x 148.40 199.00 x 239.40 284.70 x 260.80 302.45 x 278.00 364.45 x 364.80 435.25 x 309.00 432.00 x 341.60 442.00 x 337.80 636.45 x 390.00 764.00 x 433.20 Area 2 (mm ) 0.00028 0.00042 0.00353 0.00535 0.00500 0.00700 0.00745 0.01087 0.01321 0.01311 0.01547 0.02279 0.02975 0.04764 0.07425 0.08408 0.13295 0.13449 0.14757 0.14931 0.24822 0.33096 Densidade 2 (tr/mm ) 100676 94482 73677 80808 89552 75439 76539 73386 70388 74147 70575 68277 75437 66036 60768 59181 46363 53193 58169 67726 42930 43437 CPU (ms) Gerao 50 180 440 500 720 660 420 790 1030 1230 1170 1730 2390 3850 5610 6360 14730 9100 15110 11030 24360 109700 CPU (ms) Ext. Capac. 170 310 3970 6050 8360 9010 9810 15310 17770 15800 22790 28820 41460 63680 66220 98230 101100 118810 133850 162970 167510 228220

Tabela 3 Densidade e tempo de CPU para a sntese de diversos benchmarks, utilizando-se a ferramenta TROPIC3, tecnologia 0.25 m, transistores dimensionados com w=2 m, l=0.25 m, mquina Ultra-Sparc 10.

Como conseqncia da velocidade da sntese automtica de layout obtida com a ferramenta TROPIC3, iteraes entre a sntese lgica e fsica podem agora serem feitas, pois o tempo de CPU para o clculo preciso das capacitncias parasitas no mais o gargalo, como nas abordagens anteriores. Desta forma, o netlist de capacitncias parasitas gerado por TROPIC3 pode ser utilizado por: Ferramentas de mapeamento tecnolgico para selecionar quais portas sero utilizadas e onde buffers devem ser inseridos; Ferramentas de dimensionamento de transistores para dimensionar corretamente os transistores em funo das capacitncias obtidas; Ferramentas de anlise de atraso (timing analysers) para estimativa do desempenho do circuito. Ferramentas de estimativa de consumo de potncia.

muito importante ressaltar o fato que o posicionamento das clulas deve manter-se o mais prximo possvel entre as diversas iteraes de sntese de layout, afim de manterem-se coerentes as capacitncias parasitas. Por exemplo, considere o dimensionamento de transistores. O dimensionamento de transistores feito baseado na informao das capacitncias parasitas. Se entre

Sntese Automtica de Layout

uma iterao e a seguinte de sntese de layout o posicionamento for alterado, todas as capacitncias parasitas sero tambm alteradas, tornando o dimensionamento feito sem valor. Para concluir este Captulo, mostramos que TROPIC3 uma eficiente ferramenta de sntese de layout, tanto em termos de densidade de integrao quanto de tempo de CPU. Falta apenas mostrar quo longe as densidades obtidas por TROPIC3 esto da densidade tima. Para isto foi feito um estudo, considerando-se o estilo regular de implantao. A Tabela 4 mostra a mxima densidade que pode-se obter sem roteamento. Consideraremos a rea de roteamento proporcional rea de difuso dos transistores (rea ativa), 50% e 25% para tecnologias com dois e trs nveis de metal respectivamente.
Process (m) l=0.8 l=0.6 l=0.5 l=0.35 l=0.25 l=0.18 Densidade Mxima (tr/mm2) 8296 14748 31332 62644 125328 250656

Tabela 4 Densidades mximas que podem ser obtidas com o estilo de implementao adotado por TROPIC3, sem considerar o roteamento.

Assim, para a tecnologia 0.25 m teremos uma densidade com roteamento de 94000 transistores/mm2 (125328*0.75). A mdia obtida atravs da Tabela 3 de aproximadamente 60000 transistores/mm2. A principal causa desta diferena devido abordagem tradicional de roteamento adotada, baseada em canais de roteamento. Um ponto importante a ser investigado em verses futuras da ferramenta TROPIC uma metodologia de roteamento, com roteamento completo sobre a rea ativa. O prximo Captulo detalha o estilo de layout adotado pela ferramenta TROPIC3.

TROPIC

2.4 Referncias bibliogrficas


[DET87] E.DETJENS; G.GANNOT; R.RUDELL; S.VIN-CENTELLI; A.WANG. Technology mapping in MIS. ICCAD, 1987, pp. 116-119. Virtuoso layout synthesizer - LAS - user guide. CADENCE Version 4.2, October 1991. P.IENNE, A.GRIEING. Practical Experiences with Standard-Cell Based Datapath Design Tools - Do We Really Need Regular Layouts? DAC'98. M.GURUSWAMY; R.L.MAZIASZ; D.DULITZ; S.RAMAN; V.CHILUVURI; A.FERNANDEZ; L.G.JONES. CELLERITY: A fully automatic layout synthesis system for standard cell libraries. DAC97. C.HWANG, Y.HSIEH, Y.LIN, Y.HSU. An efficient layout style for two-metal CMOS leaf cells and its automatic synthesis. IEEE Transactions on CAD, Vol. 12, No.3, March 1993, pp. 410-423. M.LEFEBVRE, D.MARPLE, C.SECHEN. The Future of Custom Cell Generation in Physical Synthesis. DAC'97. A.D.LOPEZ, H.S.LAW. A dense gate matrix layout for MOS VLSI. IEEE Transactions on Electron Device, Vol. ED-27, No. 8, August 1980, pp. 1671-1675. F. MORAES, M. ROBERT and D. AUVERGNE. A Virtual CMOS Library Approach for Fast Layout Synthesis. VLSI, 1999. SARRAFZADEH,M.; WONG,C.K. An Introduction to VLSI Physical Desig. McGraw-Hill, 1996, 334p. T.UEHARA, W.VANCLEEMPUT. Optimal layout of CMOS functional arrays. IEEE Transactions on Computers, Vol. C-30, No. 5, May 1981, pp. 305-312.

[CAD91] [IEN98]

[GUR97]

[HWA93]

[LEF97]

[LOP80]

[MOR99]

[SAR96]

[UEH81]

Sntese Automtica de Layout

3 ESTILO DE LAYOUT DA FERRAMENTA TROPIC3


Este Captulo apresenta o estilo de implantao adotado por TROPIC3, justificando as escolhas feitas. Ao final deste Captulo apresenta-se a codificao das regras de projeto para uma dada tecnologia. pressuposto para TROPIC3 a utilizao de 3 nveis de metal e de contatos empilhados (conexo direta entre nveis no adjacentes, como polisilcio e o segundo nvel de metal). Deve-se analisar o layout gerado pelo TROPIC3 em partes: a nvel de clula, a nvel de banda (linha horizontal de clulas) e a nvel de layout completo (macro-clula).

3.1 Layout a nvel de clula bsica


Os transistores so implementados horizontalmente, paralelos s linhas de alimentao. Esta tcnica de posicionamento de transistores denominada linear-matrix. A Figura 2 ilustra duas formas de implementao do estilo linear-matrix.
Vcc
Difuso P

Vcc Gnd
Difuso N

Gnd

Polisilcio

(a) Linhas de alimentao externas

(b) Linhas de alimentao entre os transistores

Figura 2 - Alternativas para a implementao dos transistores segundo o estilo linear-matrix.

A primeira alternativa, com as linhas de alimentao externas aos transistores sugere uma abordagem muito prxima implementao standard-cells, com clulas de altura constante. A principal deficincia deste estilo de implementao ocorre quando o roteamento feito entre os transistores, obrigando o afastamento dos planos N e P, e um conseqente aumento no comprimento do polisilcio vertical que une os transistores. Este aumento no comprimento do polisilcio introduz capacitncias e resistncias parasitas que comprometem o desempenho eltrico do circuito. O segundo problema desta abordagem, independente se o roteamento interno ou externo aos transistores, o fato da altura de todas as clulas da mesma linha horizontal de clulas (banda) ser funo da clula contendo os maiores transistores. Isto conduz a uma perda muito grande de rea. Este estilo de implantao foi o adotado pelas ferramentas TROPIC2 e LAS. A segunda alternativa, linhas de alimentao entre os transistores, permite manter o comprimento mnimo nas linhas verticais de polisilcio (proporcional ao afastamento entre os planos N e P), e permite que cada clula tenha um dimensionamento independente, sem afetar a rea das clulas vizinhas. Esta topologia adotada pela ferramenta TROPIC3. Justifica-se o uso do estilo linear-matrix pelo fato de haver uma reduo importante na capacitncia lateral. A Figura 3 mostra 2 transistores conectados em srie, de acordo com o estilo linear-matrix, sendo o primeiro par sem quebra na linha de difuso e o segundo par conectado por uma ponte em metal1. Muitos estilos de layout, como o gate-matrix, conectam todos os transistores

10

TROPIC

com pontes em metal1. A tecnologia para este exemplo tem os seguintes parmetros: Lmim=1.0m, capacitncias de rea e de permetro para o nvel difuso: Carea=0,31 fF/m2 and Cside-wall=0,45 fF/m). Observa-se que os transistores conectados por justaposio apresentam uma capacitncia parasita 4 vezes menor que quando conectados por uma ponte em metal1. A partir desta observao, uma importante funo custo que ser utilizada pelo algoritmo de sntese de clulas ser a minimizao do nmero de quebras (gaps) nas linhas de difuso. Transistores justapostos:
1.5 m 1.5 m Cpar 1m

Cpar = CAREA * 2.25m2 +Cside-wall* 3m Cpar = 2.05 fF

Conexo entre transistores via ponte de metal1 (gap de difuso)

2.75 m 1.5 m

Cpar = 2*(CAREA*4.12m2+Cside-wall* 7m) Cpar = 8.86 fF ( + Cmetal + Ccontact )

perimeter = 2.75+2.75+1.5

Figura 3 - Capacitncias parasitas no estilo linear-matrix.

Uma vez definido o posicionamento dos transistores, deve-se decidir a direo dos nveis de metal. A escolha natural para as conexes de dreno e source dos transistores metal1 (primeiro nvel de metal), pois caso um outro nvel fosse utilizado seria necessrio acrescentar contatos empilhados. A Figura 4 mostra a utilizao de metal1 e metal2 a nvel de clula, para uma porta nand de 3 entradas (3 transistores N em srie e 3 transistores P em paralelo). O metal1 utilizado para as conexes das regies de dreno/source alimentao, e para conectar o plano N ao plano P. Observar que a conexo dos ns de sada, entre o plano N e o plano P, feita totalmente em metal1, sem contatos intermedirios. O nmero elevado de contatos nas regies de dreno/source objetivam a reduo da resistividade nestas reas. Caso a tecnologia empregada utilize silicetos nestas regies, a insero de apenas 1 contato suficiente, o que reduziria o nmero de restries topolgicas impostas ferramenta de roteamento. Esta caracterstica no est atualmente implementada na ferramenta TROPIC3.
ctos metal1 via Vcc (metal2) Ns de sada Gnd (metal2)

(metal1)

(a) Conexes s regies de dreno/ source e linhas de alimentao

(b) Ns de sada

Figura 4 - Utilizao de metal1 e metal2 para a sntese das clulas.

A escolha seguinte refere-se implementao das linhas de alimentao (gnd e vcc). O nvel metal1 no pode ser utilizado, devido aos obstculos impostos pelos ns de sadas. O nvel metal3 est muito distante do metal1, e reduziria a "porosidade" (transparncia para o roteamento) da

Sntese Automtica de Layout

11

clula. A escolha o metal2. A largura das linhas de alimentao definida no arquivo que descreve as regras de projeto. A cada conexo de um dreno/source alimentao insere-se uma via (contato) entre os nveis metal1 e metal2. Ainda, a nvel de clula, temos as conexes ao substrato (body-ties). Estas podem ser facilmente realizadas, sobrepondo-se um retngulo de difuso e um contato sobre os ns conectados alimentao. Desta forma, na atual verso da ferramenta TROPIC3, h sempre um body-tie para cada conexo alimentao. Observar a existncia de um contato empilhado (contato e via) em todas as conexes alimentao. A Figura 5 ilustra o layout completo de um conjunto de 4 clulas (o nmero de clulas pode ser deduzido do nmero de pontes de metal1 para conectar os transistores N aos transistores P). Observar neste layout a utilizao dos nveis difuso, polisilcio, metal1 e metal2. O polisilcio utilizado para conectar os gates duais apresenta quebras (denominadas jogs), que so inseridas com o objetivo de reduzir a rea das regies de dreno/source. O mesmo ocorre com o metal1 utilizado para conectar os transistores N aos transistores P. Esta insero de jogs realizada pelo algoritmo de "sntese de banda", e vem de fato a substituir o algoritmo de compactao baseado em grafo de restries.

metal1 metal2

polisilcio

difuso

Figura 5 - Layout completo de um conjunto de clulas.

Uma otimizao que pode tornar o layout mais denso a utilizao de mltiplos jogs nas linhas de metal1 e polisilcio. Uma verso do TROPIC em desenvolvimento, denominada WTROPIC, contempla esta otimizao. Um dos problemas ainda no resolvidos pela verso WTROPIC onde posicionar os body-ties, pois as quebras de polisilcio podem ocorrer sobre a via de alimentao. Para finalizar o layout a nvel de clula, mostra-se na Figura 6 a implementao de um flipflop contendo portas de transmisso. Observa-se neste layout que os pares de portas de transmisso pertencentes a um mesmo estgio do flip-flop so agrupados, de forma a evitar a separao dos diversos componentes pertencentes mesma clula. O pares de portas de transmisso so facilmente encontrados, bastando encontrar 2 portas de transmisso em srie, com oposio de fase em relao ao controle de clock. Este par de portas de transmisso denominado clula macro. A estrutura do layout pode ser adaptada a portas no duais, modificando-se as restries impostas ao algoritmo de sntese de clulas. Este exemplo de portas de transmisso mostra que pode-se implementar clulas sem necessariamente haver gates duais.

12

TROPIC

QZ

Par de portas de transmisso com transistores no duais

Figura 6 - Layout de um flip-flop mestre-escravo tipo D com reset, implementado com portas de transmisso.

3.2 Layout a nvel de banda


A conexo entre uma determinada clula e suas vizinhas feita atravs de contatos inseridos nos limites superiores e inferiores da clula. A regio onde so inseridos os contados denominada regio de interface, ilustrada na Figura 7. Cada dreno/gate/source poder ou no ser conectado s regies de roteamento (regies externa s clulas). Desta forma, os ns dos transistores classificam-se em: Ns externos: so aqueles que sero conectados s regies de roteamento. Ns internos: so aqueles sem conexo s regies de roteamento ( importante notar que existem ns internos que possuem conexes, porm sendo estas feitas sobre os transistores).
Regio P de interface

Regio N de interface

Figura 7 - Regies N e P de interface entre as clulas e as regies de roteamento.

Os ns externos sero alinhados a uma grade virtual, cujo passo definido pelo tamanho da cabea de contado da tecnologia. Os ns internos no possuem restries de alinhamento, podendo utilizar as distncias mnimas das regras de projeto. Esta caracterstica resulta em reduo de rea (reduz a largura do circuito) e reduz as capacitncias de dreno/source (melhorando o desempenho eltrico do circuito). Observar ainda na Figura 7 a existncia de reas de dreno/source superiores rea mnima. Este problema ocorre devido ao alinhamento de certos ns s regies de roteamento. A insero de mltiplos jogs nas linhas de polisilcio e metal1 pode reduzir estas reas (mas no elimin-las). Utilizando esta tcnica de implementao, uma mesma funo lgica poder ter layouts diferentes, pois uma dada instncia pode ter conexes apenas com a parte superior da banda, e outra

Sntese Automtica de Layout

13

instncia ter conexes apenas com a parte inferior. Neste caso, a primeira instncia (conexes com o lado superior) ter a rea dos drenos/sources P superior as reas N, devido ao alinhamento dos ns P, e vice-versa para a segunda instncia. O algoritmo que determina de qual lado das clulas so feitas as conexes denomina-se assinalamento de pinos (do ingls pin-assignement). Este algoritmo o que determina de forma indireta qual ser a largura da banda, pois impe quais pinos sero alinhados grade. Antes do roteamento ser realizado, um conjunto de redes que atende a certos critrios (como ser n interno de porta complexa ou pertencer a apenas um banda) excludo da lista de redes a serem roteadas. O roteamento deste conjunto de redes feito sobre a rea ativa do circuito, sem haver alinhamento grade virtual de roteamento. Esta tcnica de roteamento denomina-se OTC over the cell routing. Os pinos que sero roteados sobre os transistores deixam de ser externos e passam a ser internos. O roteamento OTC feito em metal2, inserindo-se um via sobre os drenos/source. Se uma rede conecta apenas drenos/sources a sua implementao OTC simples, sendo apenas uma linha horizontal de metal2 com vias nos pontos de contato. Caso uma linha OTC conecte tambm gates, faz-se necessrio implementar um jog em metal2, at a regio de interface, e l inserir um contato que una o polisilcio ao metal2. Estas conexes OTC acabam gerando obstculos para outras redes OTC, devido existncia de segmentos verticais em metal2. Logo, h uma seqncia na escolha das redes OTC a ser seguida: primeiro seleciona-se todas as redes que conectam apenas drenos/sources (ns internos de portas complexas) e depois as redes que possuem conexo a gates de transistores (redes presentes em apenas uma banda). Todas as redes internas das portas complexas so roteadas sobre os transistores. Pode-se argumentar que isto ir aumentar em demasia a rea reservada aos transistores, pois poderia ocorrer um nmero excessivo de trilhas em determinadas clulas. A literatura reporta um nmero mximo de 4 trilhas. Logo, esta deciso de projeto no ir penalizar a rea final do circuito. A Figura 8 resume as caractersticas vistas at agora, tanto a nvel de clula quanto a nvel de banda. No canto superior esquerdo da figura observa-se as duas topologias de rede OTC mencionadas no pargrafo anterior.
Roteamento OTC (sobre os transistores) Pinos alinhados Pinos no alinhados Regio de Interface Difuso P vcc (metal2) Conexo em metal1 entre os planos N e P gnd (metal2) Difuso N Metal1 utilizado para conexo alimentao

Jog em fio de polisilcio

Contato empilhado formar para body-tie

Figura 8 - Layout completo a nvel de banda.

14

TROPIC

3.3 Layout a nvel de macro-clula


A Figura 9 ilustra as regies de roteamento assim como a utilizao do terceiro nvel de metal, o metal3. Tanto o layout a nvel de clula quanto a nvel de banda no utilizam o metal3. Logo, as bandas so transparentes ao metal3, permitindo o seu uso para a conexo vertical entre bandas no adjacentes.
BANDA i+2

canal i+1

BANDA i+1

Metal3 para conectar bandas no adjacentes

canal i

BANDA i
Figura 9 - Regies de roteamento e utilizao do metal3.

A primeira observao importante no que concerne a regio de roteamento a existncia de dois canais superpostos para cada canal de roteamento. Em cada regio de roteamento existe um canal implementado em polisilcio/metal1 e outro superposto a este em metal2/metal3. A vantagem deste procedimento a reduo da rea de silcio ocupada para a implementao das conexes. A dificuldade na implementao deste procedimento est na resoluo de ciclos verticais, como ser explicado posteriormente na Seo relativa ao roteamento vertical. A escolha dos nveis de roteamento detalhado na Tabela 5.
Regio Banda (clula) Horizontal Difuso Metal2 Roteamento Metal1 Metal2 Vertical Polisilcio Metal1 Metal3 Polisilcio Metal3

Tabela 5 - Nveis de roteamento.

As regies de interface entre as bandas e os canais de roteamento tem por funo bsica "ajustar" os nveis. Por exemplo, se tivermos um linha vertical em polisilcio no canal de roteamento com conexo a um gate de transistor, nenhum contato ser necessrio. Porem, se houver um metal3 vertical com conexo a um gate necessrio inserir um contato empilhado, compreendo via2-via-contato. As regies de interface pode ser facilmente observadas na Figura 9. Uma crtica que pode ser feita atual escolha dos nveis das regies de roteamento o fato do metal1 estar em paralelo ao metal2, o que pode causar grandes capacitncias de acoplamento no caso em que a rea comum entre dois fios for grande. A direo dos fios pode ser facilmente

Sntese Automtica de Layout

15

modificada no algoritmo de roteamento. A escolha das direes foi arbitrria, tendo por objetivo apenas reduzir o nmero de contatos nas regies de interface. A explicao simples, h muito mais gates (polisilcio) e redes entre bandas no adjacentes (metal3) que sadas de clulas (metal1). Por esta razo adotou-se a direo vertical para metal3 e polisilcio, deixando a direo horizontal para metal1 e metal2. Para concluir este estudo de estilo de layout a nvel de macro-clula, a Figura 10 mostra os planos difuso/polisiccio e metal1/metal2/metal3 de um circuito exemplo. Os objetivos em se mostrar esta figura so: (i) percebe-se pelo plano difuso/polisilcio que aproximadamente 50% da rea do circuito dedicada implementao dos transistores e 50% dedicada ao roteamento; (ii) h uma distribuio homognea do roteamento vertical/horizontal (devido ao algoritmo de posicionamento); (iii) no h reas de congesto no roteamento (tambm devido ao posicionamento); (iv) as entradas/sadas do circuito esto posicionados nas extremidades superior e inferior da macro-clula. O usurio pode definir no netlist que descreve a macro-clula o lado em que as entradas/sadas sero posicionadas (norte, sul, leste, oeste).

Figura 10 - Planos difuso/polisiccio e metal1/metal2/metal3 de um circuito exemplo.

3.4 Codificao da tecnologia


Esta Seo mostra como definir as regras de projeto para uma dada tecnologia. A Figura 11 mostra o arquivo de regras para uma tecnologia 0.25 m. Este arquivo contm 4 partes principais: (i) diretrios de entrada e sada; (ii) regras geomtricas; (iii) regras para gerao do arquivo CIF, ou seja, camadas para o layout final; (iv) regras eltricas para o clculo das capacitncias parasitas (neste exemplo esta parte esta incompleta). As regras geomtricas so descritas em termos de m/1000 (nm). Por exemplo, a distncia entre dois polgonos de polisilcio - DPOLI, de 450, ou seja 0,45 m. As regras referentes ao condutores (polisilcio, difuso, metal1, metal2, metal3) compreendem apenas as regras de distncia mnima (D) e largura mnima (L). Para cada contato (contato, via1 e via2) temos 3 regras: largura do contato (L), distncia entre dois contatos (D) e margem (M) que deve ser respeitada. As regras dos contatos definem a largura da grade virtual que ser utilizada no momento do roteamento. O passo da grade definido por: grid = head + max(DM1, DM2, DM3) onde (1)

16

TROPIC

head = 2*max(MCTO, MVIA1, MVIA2) + max(LCTO, LVIA1, LVIA2)

(2)

Esta regra a que define praticamente a largura do circuito a ser gerado. Caso os contatos tenham regras muito distintas (por exemplo, no tamanho), pode-se pensar em uma otimizao da grade virtual, havendo uma para cada plano de conexo. Isto no foi implementado devido dificuldade de conectar as diferentes grades entre si.
#dirIN benchs #dirOUT ST0.25 #DPOLY #LPOLY #DDIF #DM1 #LM1 #DM2 #LM2 #DM3 #LM3 #LCTO #MCTO #DCTO #LVIA1 #MVIA1 #DVIA1 #LVIA2 #MVIA2 #DVIA2 #XTRW #XTRL #XTRPOLY #XTRPOLYDIF #MDIFIMP #MIMPWELL #DIMPWELL #MTIEIMP #DTIEWELL #WSUPPLY 450 250 500 400 400 400 600 400 600 300 100 500 400 100 500 400 100 500 350 250 350 200 250 600 350 250 0 1500 minimum transistor width minimum transistor length Input files directory Output files directory #LABELCMD #CIFLAYERS nwell pimp nimp ndif pdif poly metal1 metal2 metal3 cont via via2 label END 94 CIF command for labels

Width (L) Distance

margin length distance

CIF layers nwell <tropic name> <CIF name> pplus nplus active active poly metal1 metal2 metal3 contact v1 v2 text

Ver figura de transistor

#CAPAS - typical parasitic capacitance values CaPOL 0.0987 CpPOL 0.0445 CaME1 0.0247 CpME1 0.0408 CaME2 0.0150 CpME2 0.0380 CaME3 0.0080 CpME3 0.0328 Cjn 0.7992 Cjp 0.8187 Cjnsw 0.1479 Cjpsw 0.1514 Tox 5e-9 FDIF 2.0 divider of Cdif Climit 5.0 defines the load limit END

Supply lines width

Figura 11 - Arquivo de regras para um tecnologia 0.25 m.

A Figura 12 mostra o conjunto de regras necessrias para a implementao dos transistores. A ltima regra geomtrica - Wsupply, refere-se largura das linhas de alimentao.
1

2 3 4

(1) MIMPWELL: distncia entre implante P e poo N (2) MDIFIMP: distncia entre implante N/P e regio ativa (difuso) (3) MTIEIMP distncia entre implante N/P e regio ativa (difuso) para contrato de substrato (body-tie) (4) DTIEWELL distncia entre implante N/P e poo N para contrato de substrato (body-tie) (normalmente 0) (5) DIMPWELL: distncia entre implante P e poo N (6) XTRPOLY: extenso de polisilcio (7) XTRPOLYDIF: margem de difuso para implementar o transistor

Figura 12 - Regras para o desenho dos transistores.

Sntese Automtica de Layout

17

A seo seguinte s regras de desenho compreende as regras de traduo de camadas para o arquivo CIF. Define-se o comando que a ferramenta de edio de layout utiliza para os textos (LABELCMD) e uma tabela que relaciona o nome da camada utilizada pela ferramenta TROPIC3 e o nome da camada utilizada pela ferramenta de edio de layout. O ltimo conjunto de regras referem-se s capacitncias parasitas. As capacitncias de rea so denominadas por Ca e as de permetro por Cp. As capacitncias Cj referem-se s capacitncias de difuso. Estas regras so utilizadas pela ferramenta que determina as capacitncias de roteamento. Este pequeno conjunto de regras de projeto, simples de modificar e de fcil compreenso, permite ao projetista rapidamente sintetizar o mesmo circuito para diferentes processos de fabricao. Este arquivo de regras permite uma rpida migrao de uma tecnologia para outra. Esta uma importante vantagem das ferramentas de sntese automtica de layout sobre as abordagens baseadas em bibliotecas de clulas.

3.5 Referncias bibliogrficas


[BUR98] J.L.BURNS; J.A.FELDMAN. C5M A Control-Logic Layout Synthesis System for High-Performance Microprocessors. IEEE Transactions on CAD, Vol. 17, no. 1, January 1998, pp. 14-23. J.C.DUFOURD, J.F.NAVINER, F.JUTAND. Preform : A Process Independent Symbolic Layout System. ICCAD 90, pp. 248-251. M.FUKUI, N.SHINOMUYA, T.AKINI. A New Layout Synthesis for Leaf Cell Design. Asia South Pacific DAC 95, pp. 259-264. J.KIM, S.M.KANG, S.SAPATNEKAR. High Performance CMOS Macromodule Layout Synthesis. ISCAS'94, pp.179-182. LEE, J.; WONG, C. K. A Performance-Aimed Cell Compactor with Automatic Jogs. IEEE Transactions on CAD, v. 11, n.12, p. 1495-1507, Dec. 1992. R.L.MAZIASZ, J.P.HAYES. Layout minimization of CMOS Cells. Kluwer Academic Publishers, 1992. F.MORAES, R.REIS. EXTRALO - Extrator Lgico. 5th SBCCI, 1990, pp. 167-176. M.LEFEBVRE, C.CHAN. Optimal ordering of gate signals in CMOS complex gates. CICC 89, pp. 17.5.1-17.5.4. M.LIN, H.PERNG, C.HWANG, Y.LIN. Channel density reduction by routing over the cells. 28th DAC, 1991, pp. 120-125. C.PIGUET et al. Alladin: a CMOS gate matrix layout system. ISCAS 88, pp. 2427-2430. O.WING. Automated gate matrix layout. ISCAS 82, pp. 681-685.

[DUF90]

[FUK95]

[KIM94]

[LEE92]

[MAZ92]

[MOR90]

[LEF89]

[LIN91]

[PIG88]

[WIN82]

18

TROPIC

4 SNTESE FSICA: DO NETLIST AO LAYOUT


Este Captulo apresenta de forma sucinta as diversas etapas da sntese fsica. As etapas que compe a ferramenta TROPIC3 so descritas abaixo. 1. Leitura dos arquivos Spice e de regras de projeto. 2. Planificao do netlist Spice. Esta etapa transforma o netlist Spice em uma lista plana de transistores, independentemente do formato da descrio de entrada ser hierrquico ou no. 3. Extrao das clulas folha. Esta etapa encontra todas as clulas folha (aquelas compostas por um conjunto de n entradas e somente 1 sada) e portas de transmisso na lista plana de transistores. A largura de cada clula uma funo de seu nmero de entradas, dado o estilo de implantao regular. 4. Posicionamento das clulas folha. Esta etapa posiciona todas as clulas do circuito conforme o nmero de bandas especificado pelo usurio. Caso o usurio no especifique o nmero de bandas, este calculado pelo programa de forma a gerar um circuito com altura igual largura. A principal funo custo de algoritmo de posicionamento a reduo da rea de roteamento, distribuindo de forma homognea o roteamento horizontal e vertical. 5. Gerao da clulas folha. O algoritmo de sntese de clulas define a ordem dos transistores N e P para cada clula do circuito de forma a minimizar o nmero de quebras nas linhas de difuso e o nmero de trilhas internas de roteamento. 6. Assinalamento de pinos. Uma vez as clulas posicionadas nas bandas e a ordem de seus transistores definida, pode-se determinar a posio dos pinos de entrada e sada. Os pinos podero ser conectados na extremidade superior ou inferior da clula. Nesta fase tambm so selecionadas as redes que sero roteadas sobre os transistores (roteamento OTC). 7. Gerao de banda. um algoritmo guloso, que gera cada banda da extremidade esquerda at a extremidade direita. Nesta etapa so posicionados os drenos/gates/source de acordo com o estado de cada n. Se os ns devem ser conectados s regies de roteamento eles so alinhados grade virtual, caso no possuam conexes ou so ns OTC no sero alinhados grade virtual. Ao final da gerao de todas as bandas permite-se mover as clulas que esto nas extremidades das bandas para equilibrar as larguras entre as bandas e assim economizar rea. No h descrio simblica, gera-se diretamente o layout em funo das regras de desenho. 8. Fixao dos pontos de passagem entre bandas no adjacentes. Esta etapa fixa a posio das linhas verticais em metal3 que sero utilizadas para conectar bandas que no so vizinhas. Apesar de as bandas serem transparentes ao nvel metal3, existem um srie de restries ao seu posicionamento, como ser visto posteriormente. 9. Roteamento de canal. Esta etapa conecta os ns de cada canal, utilizando a tcnica de dois canais superpostos, utilizando 4 nveis para o roteamento. 10. Gerao do arquivo de layout em formato CIF. As etapas 1 a 6 so independentes da tecnologia, sendo as etapas 7 a 10 dependentes das regras de projeto. Segue-se neste Captulo a descrio das etapas 3 a 7. As etapas 1 e 2, por sua simplicidade de implementao, no so descritas.

Sntese Automtica de Layout

19

4.1 Extrao de clulas folha


Esta a terceira etapa no fluxo de sntese. At o incio desta etapa a base de dados da ferramenta possui apenas duas listas de transistores, uma N e outra P, cada uma podendo conter, por exemplo, 20000 transistores. Inicia-se o procedimento de extrao de clulas folha pela reduo do netlist. O procedimento de reduo mostrado na Figura 13. Passa-se para o algoritmo uma dada lista de transistores (N ou P), e o algoritmo busca nesta lista, enquanto houverem, transistores em paralelo e depois em srie.
funo reduz_netlist( lista de transistores ) { enquanto ( ); } Figura 13 - Algoritmo de reduo do netlist SPICE. busca_transistores_em_paralelo(lista de transistores) busca_transistores_em_srie (lista de transistores)

A Figura 14 mostra a execuo da etapa de reduo sobre a rede N de uma dada clula complexa. Ao final da execuo da reduo do netlist, teremos os conjuntos (N,P) de cadeias que representam todas as clulas folha do circuito. Os transistores que no foram reduzidos pelo algoritmo da Figura 13 podem ainda serem classificados como portas de transmisso. Uma porta de transmisso uma ocorrncia de um transistor P em paralelo com um transistor N. Todos os demais transistores no reduzidos correspondem a casos de lgica no dual, ocasionando um interrupo no programa, dado o fato que TROPIC3 no trata lgica que no for complementar, ou porta de transmisso.
Vdd
TRANSISTORES P

f d ab c e d

f e

f e d((ab)c) f (e(d((ab)c)))

f d a b gnd clula c

sada e

f(e(d((ab)c )))

((ab)c)

primeira iterao
a

segunda iterao
1 iterao 2 iterao (ab)c) d((ab)c)
a

terceira iterao
3 iterao (e(d((ab)c))) f(e(d((ab)c)))
a

Transistores em paralelo Transistores em srie

ab

Figura 14 - Reduo de uma rede N.

Observar que, se no netlist original tivermos portas and ou flip-flops, estas portas sero quebradas em mais de uma clula folha. As cadeias encontradas so representadas por uma grafo, tendo por extremidade um n de alimentao (gnd para a cadeia N, e vcc para a cadeia P) e na outra extremidade um n qualquer. Logo, para formar uma clula folha basta encontrar uma cadeia N que possua um n comum outra cadeia P. Este n comum a sada da clula. Esta etapa denominada pareamento. No final da etapa de pareamento teremos um vetor contendo as seguintes informaes cada clula:

20

TROPIC

cadeias N e P: permitem recuperar os transistores N e P da clula, e desta forma os ns dreno/gate/source, assim como as dimenses W/L; rede de sada; nmero de entradas, o que define a largura da clula; se porta dual ou porta de transmisso. A dimenso deste vetor igual ao nmero de clulas folha mais o de portas de transmisso. Este algoritmo o utilizado pela ferramenta EXTRALO (extrao lgica), pois permite recuperar a partir de um netlist SPICE todas as funes lgicas que compe o circuito. Se na notao de parnteses utilizarmos '[' para designar transistores em paralelo e '(' para designar transistores em srie, torna-se simples descrever a equao booleana da cadeia. A Figura 15 mostra a obteno da equao booleana a partir da cadeia N que forma a clula. H entre as ferramentas de TROPIC a ferramenta SPI2VHDL, que converte um netlist SPICE em VHDL estrutural.
[ ( [ M2M3M4 ]M5 ) ( M6M7M8 ) ]
paralelo srie paralelo srie
M6 M7 M8 M5 M2 M3 M4

F = not( ((M2 or M3 or M4) and M5 ) or (M6 and M7 and M8) )


Figura 15 - Utilizao da reduo do netlist para determinar a equao booleana.

4.2 Posicionamento das clulas folha


Esta a quarta etapa no fluxo de sntese. A ferramenta de posicionamento externa, comunicando-se com TROPIC3 atravs de arquivos. A Figura 16 ilustra esta comunicao. TROPIC3 recebe o netlist SPICE e as regras de projeto. Envia para a ferramenta de posicionamento o arquivo reduzido (com as clulas folha) e um arquivo de biblioteca, contendo para cada clula folha o seu nmero de entradas e a largura. O posicionamento envia para o TROPIC3 as clulas posicionadas. Uma otimizao feita no netlist, objetivando evitar que flip-flops tenham seus componentes internos posicionados separadamente, a formao de clulas macro. As clulas macro agrupam as portas de transmisso internas flip-flops, garantido assim que sejam posicionadas de forma justaposta.
Arquivo SPICE : sim SPICE reduzido : sp

TROPIC3
Arquivo biblioteca: bib

POSICIONAMENTO

Regras de Projeto

Posicionamento : pos

Figura 16 - Comunicao entre TROPIC3 e a ferramenta de posicionamento.

O algoritmo de posicionamento implementado pertence classe dos algoritmos determinsticos. A escolha do algoritmo baseou-se em dois critrios: reduo do comprimento total de roteamento e distribuio homognea entre roteamento horizontal e vertical, evitando assim reas de congesto nos centros das bandas.

Sntese Automtica de Layout

21

O algoritmo de base o min-cut (corte mnimo). Este algoritmo utilizado para dividir o circuito iterativamente em quadrantes. O circuito inicialmente dividido verticalmente, de tal forma que a rea total da esquerda seja igual rea da direita, e haja um nmero mnimo de redes cruzando a fronteira entre os dois quadrantes (Figura 17, passo 1). A diviso seguinte, horizontal, deve respeitar o nmero de bandas. Por exemplo, se o nmero de bandas for 5, haver uma relao de 3 para 2 entre as reas superior e inferior. Depois, cada quadrante sucessivamente dividido verticalmente e horizontalmente, at que no for mais possvel realizar parties horizontais.
1 3b 3d

2a

2b

3a

3c

Figura 17 - Algoritmo de partio utilizando quadratura.

Ao final da quadratura haver um grande conjunto de quadrantes, cada um possuindo em mdia 2 a 8 clulas. As clulas so posicionas internamente aos quadrantes utilizando-se um algoritmo muito simples, baseado na conectividade entre as clulas. Somente a utilizao do algoritmo de quadratura no ir otimizar o roteamento. Considere a Figura 18. Se realizarmos a partio horizontal dos dois quadrantes de forma independente, acontecer situaes em que uma rede comum entre os dois quadrantes seja posicionada no quadrante esquerdo na parte superior e no quadrante direito na parte inferior, resultando numa conexo muito longa, apesar de haver corte mnimo nos quadrantes (Figura 18a). Se considerarmos a existncia de milhares de rede, o roteamento ter uma qualidade medocre. A soluo para otimizar o roteamento a propagao de pinos. Isto significa que- cada quadrante a ser particionado deve levar em considerao todos os demais quadrantes j posicionados. O resultado da propagao de pinos mostrada na Figura 18b. A propagao de pinos reduz o comprimento total do roteamento, melhorando assim o desempenho eltrico do circuito.

2a

2b

2a

(a) Sem propagao

(b) Com propagao

Figura 18 - Propagao de pinos.

Para cada quadrante devemos determinar os sinais de interface. Estes sinais de interface so utilizados como foras, que atraem uma determinada clula para um dado quadrante. No exemplo da Figura 18 a clula do quadrante da direita seria puxada para cima, pois h uma vizinha esquerda impondo uma interface. Para a partio horizontal, os quadrantes so processados linha a linha, da esquerda para a direita. Para a partio vertical, os quadrantes so processados coluna por coluna, de baixo para cima.

22

TROPIC

Exemplo de propagao horizontal de pinos Suponha que estejamos realizando a partio horizontal do quadrante de nmero 11 (Figura 19b). Os sinais que sero considerados interface para este quadrante so: Pinos sul: entrada/sadas sul da macro-clula presentes no quadrante 11; sinais comuns entre os quadrantes 11 com os quadrantes 1 a 8; sinais comuns entre os quadrantes 11 e os sinais presentes na partio inferior dos quadrantes 9 e 10 (j particionados). entrada/sadas norte da macro-clula presentes no quadrante 11; sinais comuns entre os quadrantes 11 com os quadrantes 17 a 32; sinais comuns entre os quadrantes 11 e os sinais presentes na partio superior dos quadrantes 9 e 10 (j particionados).

Pinos norte: -

A partio vertical de pinos similar, utilizando-se pinos leste/oeste ao invs de pinos norte/sul.
5 3 5 1 3 5 3 5 1 5 3 5

4 4 3 2 2 4 1

12

16 4 15 2

25

26

27

28

29

30

31

32

pin propagation direction

11

17

18

19

20

21

22

23

24

10

14

6 4

10 11

12

13

14

15

16

pin propagation direction

13

(a) VERTICAL PIN PROPAGATION

(b) HORIZONTAL PIN PROPAGATION

Figura 19 - Propagao horizontal e vertical de pinos.

Observar que no h distino entre partio e posicionamento. A sada do posicionamento de clulas um arquivo texto, contendo o nmero de bandas, e para cada banda o nmero de clulas e a posio relativa de cada clula, da esquerda para a direita. Um exemplo de arquivo de sada do posicionamento mostrado na Figura 20. Neste exemplo temos 3 bandas. A primeira banda contm 8 clulas, posicionadas na ordem X21, X13, X9, X15, X4, X17, X27, X2 (X indica clula, notao herdada do netlist SPICE para designar sub-circuito). As bandas 2 e 3 contm respectivamente 12 e 7 clulas, com a posio indicada na Figura. A banda 1 corresponde banda inferior (sul) e a ltima banda, a banda superior (norte).
3 8 12 7 X21 X13 X9 X15 X4 X17 X27 X2 X22 X6 X18 X26 X25 X12 X3 X11 X19 X1 X7 X14 X10 X5 X24 X20 X8 X16 X30

Figura 20 - Arquivo exemplo de posicionamento.

Sntese Automtica de Layout

23

4.3 Gerao de clulas folha


Esta a quinta etapa no fluxo de sntese. Esta etapa poderia ser realizada em paralelo ao posicionamento, pois so etapas independentes. O objetivo desta etapa no gerar o layout de cada clula, como poderia indicar o ttulo desta seo. O objetivo determinar a ordem dos transistores N e P no interior de cada clula. A primeira etapa na gerao a construo da estrutura de dados necessria para a gerao de cada clula. A Figura 21 ilustra a estrutura de dados para uma porta complexa. Os vrtices correspondem aos ns de dreno/source e as arestas aos ns de gate. Cada grafo, N e P, so representados por duas listas, uma de arestas e outra de vrtices. A lista de arestas contm para cada aresta (gate) suas duas extremidades (dreno/source), e a lista de vrtices as arestas conectadas a cada vrtice.
vcc
1 2

Lista de arestas

Lista de vrtices N 2 1 2 3 sada sada flag 0 0 0 0 0 nome vcc 1 2 3 sada a a b c e b c d d e

a b c
3

nome N 1 a b c d e vcc 1 2 3 2

vcc a b c d
3 1 2

e
sada e sada

grafo P
Lista de arestas sada

Estrutura de dados 'P'

e c
4

gnd

e a
4

clula

c
gnd

b d

nome N 1 sada a sada b c d e 4 4 sada

N 1 gnd gnd gnd gnd 4

flag 0 0 0 0 0

Lista de vrtices nome saida 4 gnd a c a b d b e e c d

grafo N

Estrutura de dados 'N'


Figura 21 - Grafo para representar os planos N e P de uma dada clula.

Assim como na etapa de pareamento, ns iremos agora construir uma cadeia para cada grafo, que represente um caminho que passe por todas as arestas do grafo, passando uma nica vez por cada aresta. Este caminho denominado de caminho de Euler. A existncia do caminho de Euler no grafo implica na sntese da linha de difuso sem quebras (gaps), o que minimiza as capacitncias parasitas, conforme mencionado no Captulo de estilo do layout. O algoritmo simplificado para encontrar o caminho de Euler apresentado na Figura 22. passado para este algoritmo uma aresta inicial ai e um vrtice a ela conectado vk.
procedimento visitar_grafo(ai, vk ) { colocar ai em um vetor temporrio sinalizar ai como visitado ( ai.flag=1) se todos os arcos do grafo j foram visitados ento : armazenar o vetor temporrio como uma soluo temporria seno : para todos os arcos as conectados ao vrtice vizinho de sk : visitar_grafo(as, vvizinho ) retira ai do vetor temporrio liberar ai ( ai.flag=0) } Figura 22 - Algoritmo para o caminho de Euler.

24

TROPIC

A Figura 23 mostra a execuo do algoritmo acima, considerando como ponto de partida a aresta 'a' e o vrtice sada (out na Figura). O nmero de vezes em que o algoritmo executado em cada plano proporcional ao nmero de arestas*2 (pois cada aresta conecta 2 vrtices).
visit(a, out)
a out 4 c e b d

gnd

out a 4 c gnd

visit(c, gnd)

visit(d, gnd)
a

out 4 d gnd

visit(b, gnd)
a

out 4 gnd b

out a 4 c gnd e a

out 4 c d gnd a

out 4 gnd e d a

out 4 c d gnd a

out 4 gnd e b

visit(e, 4)
out a 4 c gnd e b

visit(d, 4)
out a 4 c d gnd b a

visit(e, 4)
out 4 e b

visit(c, 4)
out a 4 c d gnd b a out 4

visit(e, out)
out e b a 4 d gnd e b

visit(b, out) visit(d, gnd) soluo: acebd

visit(b, gnd) visit(e, out) soluo: acdbe

visit(b, out) visit(c, gnd)

d gnd

visit(b, gnd) visit(e, out)

visit(c, 4) visit(d, gnd)

c gnd

visit(d, 4) visit(c, gnd)

soluo: adebc soluo: adcbe

soluo: abecd soluo: abedc

Figura 23 - Execuo do algoritmo visitar grafo (visit) sobre a clula (AB(E(CD))) - Figura 21, plano N, partir da aresta 'a' e do vrtice 'out'.

A execuo do algoritmo no caso apresentado, gerou 6 ordenamentos de transistores que satisfazem a condio do caminho de Euler: ACEBD, ACDBE, ADEBC, ADCBE, ABEC e ABEDC. Ao executarmos o algoritmo sobre todas as arestas e vrtices deste exemplo, obteremos 32 ordenamentos para o plano N e 4 ordenamentos para o plano P. Uma vez criado os conjuntos de solues N e P, deve-se realizar a interseo entre os dois conjuntos, de forma a encontrar o mesmo ordenamento N e P. Para o exemplo acima, teramos as solues CDEBA e ABEDC, simtricas entre si. So adotados diversos critrios de desempate, quando existem solues comuns: reduo do nmero de linhas de roteamento interno (minimiza a altura da clula), reduo do comprimento total do roteamento interno e por ltimo o maior nmero possvel de pontos de conexo alimentao. Caso no seja encontrada uma soluo comum, mas existe ao menos uma soluo em um dos planos, seleciona-se primeiro aquela que minimiza o nmero total de quebras nas linhas de difuso. Apesar de extremamente raro, pode acontecer ausncia de caminho de Euler em ambos os grafos. Neste caso, o ordenamento acaba sendo feito pela concatenao de solues parciais. Este caso especfico no est otimizado na ferramenta TROPIC3, por representar uma situao particular, que pode ser resolvida alterando-se a ordem dos transistores no interior da clula, sem alterar a funo lgica. Este procedimento, denominado reordering, pode ser automtico, porm no est implementado. Ento, caso acontea no netlist uma clula sem caminho de Euler (o programa envia mensagem), o projetista pode alterar manualmente esta clula afim de obter um layout final de

Sntese Automtica de Layout

25

melhor qualidade. Ao final desta etapa de sntese, teremos em cada clula uma ordenao de transistores que implicar em um nmero mnimo de quebras de difuso.

4.4 Assinalamento de pinos


Ao chegarmos neste ponto da sntese j temos a ordem relativa dos transistores no interior de cada clula, e a ordem relativa da posio de cada clula, em cada banda. Logo, possvel construir uma representao simblica de todo o circuito, utilizando distncias unitrias. Esta representao simblica interna base de dados, no existindo em nenhum momento da sntese gerao de descrio simblica para ferramenta de compactao, como TROPIC2 ou LAS. As clulas de cada banda que compe o circuito podem ter conexes tanto pelo lado superior (top) quanto pelo lado inferior (bottom). A Figura 24 ilustra uma rede "x", que interface sul1, conectada 6 clulas, C1 a C6. O roteamento timo implica que o algoritmo utilize os seguintes pinos: top/bottom da clula C1, top C2, top/bottom C3, bottom C4, bottom C5, top C6. Observar que ser necessria a passagem de uma linha em metal3 sobre a segunda banda (BANDA 1).
Regio de roteamento 4 BANDA 3 C4 C5 Regio de roteamento 3 BANDA 2 C3 C6 Regio de roteamento 2 BANDA 1 Regio de roteamento 1 BANDA 0 x C1 C2 Regio de roteamento 0

Figura 24 - Exemplo de assinalamento (correto) de pinos.

H uma otimizao realizada antes de iniciar o assinalamento de pinos. Esta otimizao a seleo dos pinos que tero roteamento sobre os transistores, ou pinos OTC. Estes pinos conectam redes internas s portas complexas ou so redes que pertencem apenas a uma nica banda. Os ns OTC so pr- marcados como mortos, e no so considerados durante o assinalamento de pinos. Eles sero roteados separadamente das demais redes. O algoritmo de assinalamento inicialmente marca todos os pinos da rede como livres e determina em quais regies de roteamento (canais) a rede encontra-se. Depois, executa-se o algoritmo da Figura 25.

restrio de posio de entrada ou sada (interface) na borda do circuito, imposta pelo usurio, podendo ser norte, sul, leste e oeste.

26

TROPIC

faa{ 1. escolher regio de roteamento (canal i) com o maior nmero de pinos livres; 2. se no houverem pinos livres no canal i ir para o passo 7; 3. para as clulas com pinos inferiores livres (top do canal), marcar os pinos como usados, e matar os pinos superiores destas clulas; 4. para as clulas com pinos superiores livres (bottom do canal), marcar os pinos como usados, e matar os pinos inferiores destas clulas; 5. caso as clulas com pinos inferiores tenham conexo nos canais superiores, liberar um dos pinos superiores que foram mortos no passo 3. O pino liberado escolhido de forma a ter sua coordenada dentro, ou o mais prximo possvel, do intervalo da rede nos canais superiores ao canal i. 6. caso as clulas com pinos superiores tenham conexo nos canais inferiores, liberar um dos pinos inferiores que foram mortos no passo 4. O pino liberado escolhido de forma a ter sua coordenada dentro, ou o mais prximo possvel, do intervalo da rede nos canais inferiores ao canal i. 7. marcar canal i como assinalado; } enquanto houverem regies sem assinalamento de pinos efetuado Figura 25 - Algoritmo de assinalamento de pinos.

A Figura 26 ilustra o assinalamento de pinos para o exemplo da Figura 24. A rede encontra-se presente em todos os canais. A execuo do algoritmos seria: escolhe-se o canal 3 (4 pinos livres), marca-se estes 4 pinos como usados (em preto), e os demais (pinos superiores do canal i+1 e inferiores do canal i-1) como mortos (em cinza). Como nos canais superiores ao canal i+1 no h pinos livres, no h necessidade de liberar nenhum pino. Porm como nos canais i-1 h pinos livres, libera-se um pino cuja coordenada esteja dentro do intervalo das coordenadas da rede nos canais i-1; escolhe-se agora o canal 1, pois ele tem 3 pinos livres (clulas C1 e C2 e ponte em metal3 a ser inserida sobre a banda 1). Novamente temos 2 pinos marcados como usados, e um liberado no canal 0. O pino escolhido aquele conectado na interface sul. como no h mais nenhum canal com pino livre, o algoritmo termina.
Canal 4 C4 C5 Canal 3 C3 C6 Canal 2 C3 C6 Canal 2 C4 Canal 4 C5 Canal 3

metal3

Pino liberado
Canal 1 C1 C2 Canal 0 x

metal3

Canal 1 C1 C2 Canal 0 x

Pino liberado

Figura 26 - Execuo do assinalamento de pinos. O ponto de passagem em metal3 determinado posteriormente, em funo das restries geomtricas impostas na banda. Ele considerado como pino livre na contagem de pinos nos canais.

O algoritmo de assinalamento de pinos o que define de forma indireta a largura de cada banda, pois todos os pinos marcados como usados sero alinhados grade virtual de roteamento. Todos os demais nodos so posicionados livremente, em funo das distncias mnimas especificadas no arquivo de regras da tecnologia.

Sntese Automtica de Layout

27

4.5 Gerao de banda


Esta stima etapa a responsvel por determinar a coordenada real (geomtrica) de cada dreno/gate/source que compe o circuito. O algoritmo implementado varre cada banda, da primeira ultima, da esquerda para a direita, coluna a coluna. O algoritmos bsico mostrado na Figura 27. Ao final da gerao de todas as bandas, caso haja diferena na largura destas, permite-se mover as clulas que esto nas extremidades das bandas para equilibrar as larguras entre as bandas e assim economizar rea.
para todas bandas r do circuito para todas as clulas c da banda r para todos os transistores t da clula c para os planos n e p de t {

determinar a coordenada em microns do dreno t referente ao plano n ou p, levando-se em conta se o dreno deve ser alinhado ou no grade virtual. Se for alinhado, fixar a coordenada geomtrica com a primeira posio livre da grade disponvel. Se no for alinhado, utilizar regra de distncia mnima em relao ao gate anterior. Caso a coordenada sobreponha-se a outra rede, avanar a coordenada do dreno (caso de coliso em meta1 com sada de clula anterior);

determinar a coordenada em microns do gate t referente ao plano n ou p. Mesmas restries que o dreno, tomado-se o cuidado de no se colocar linhas de polisilcio em curto-circuito; determinar a coordenada em microns do source t referente ao plano n ou p, segundo as mesmas restries. Figura 27 - Algoritmo de gerao de banda.

A Figura 28 ilustra o layout de uma banda, considerando-se o procedimento acima. Nesta Figura pode-se observar claramente como o layout montado. H uma tendncia, neste exemplo, das linhas de polisilcio apresentarem jogs para a direita, pois nesta banda a maior parte das conexes est sendo feita pela lado superior, e por conseqncia os alinhamentos sero feitos neste lado. Observa-se tambm uma grande rea de difuso N. Esta deve-se a um quebra (gap) no plano P.
rea no mnima devido ao alinhamento do source Pinos no alinhados

Pinos alinhados

grande area de difuso, pois deve-se evitar o curto nas linhas de poli

Figura 28 - Gerao de Banda.

GAP

28

TROPIC

Apesar de acontecerem algumas reas de difuso que possam introduzir capacitncias parasitas, o algoritmo gera de forma eficiente as bandas, com poucas reas no mnimas. H duas formas de otimizar este procedimento de gerao. A primeira permitir a insero de mltiplos jogs nas linhas de polisilcio. O perigo desta soluo a gerao de topologias do tipo "escada", como ocorrem nos compactadores baseados em grafo de restries. A segunda soluo realizar ao menos duas passagens por banda, a primeira da esquerda para a direita (como est-se fazendo) e uma segunda, da direita para a esquerda, uniformizando as reas de difuso. Esta etapa ainda no gerou o layout, porm j temos as coordenadas em microns de todos os drenos/gates/source que compem o circuito.

4.6 Fixao dos pontos de passagem entre bandas no adjacentes


Esta etapa fixa a posio das linhas verticais em metal3 que sero utilizadas para conectar bandas que no so vizinhas (ver Figura 24). O termo utilizado para designar estas redes de metal3 que so posicionadas sobre as bandas feedthrough, termo herdado da metodologia standard-cells. Apesar das bandas serem totalmente transparentes ao metal3, um conjunto de 4 regras restringe o uso deste nvel. Estas regras so aplicadas para que o roteamento de canal possa depois ser realizado. As regras so: 1. Os feedthroughs so alinhados grade vertical de roteamento. 2. O nmero de redes diferentes por coluna no canal de roteamento no mximo 2 (Figura 29). Como utilizamos 4 nveis de roteamento, poderiam haver em cada coluna at 4 redes diferentes. Porm com temos apenas 2 nveis verticais, uma terceira rede na mesma coluna pode tornar o roteamento impossvel. Por outro lado, podemos ter mais que 2 pinos por coluna, desde que seja mantida a restrio de duas redes, exemplo com 3 pinos, no lado superior redes A e B e no lado inferior rede A.
BANDA i+1
B

BANDA i+1
C B

Roteamento impossvel para C

BANDA i
Coluna i

BANDA i
Coluna i

(a) duas redes na mesma colunas so sempre roteveis com 4 nveis de roteamento.

(b) Caso tenhamos 3 redes na mesma coluna, o roteamento pode at ser realizvel em alguns caso, mas como o apresentado impossvel.

Figura 29 - Restrio de duas redes por coluna.

3. No so permitidos feedthroughs sobre gates de transistores OTC. A razo para isto muito simples, necessita-se de uma via para conectar o metal2 do roteamento OTC ao polisilcio de gate. Se colocarmos um feedthrough, provavelmente ser necessrio uma via2 para conectar este feedthrough ao canal de roteamento, o que geraria um curto circuito com o n OTC. 4. No so permitidos feedthroughs pertencentes a diferentes redes em bandas adjacentes.

Sntese Automtica de Layout

29

Uma vez determinado o conjunto de restries, ordena-se as redes conforme o nmero de feedthroughs que devem ser inseridos. Inicia-se pelas redes com o maior nmero de feedthroughs, pois estas so as redes mais longas. O procedimento para determinar a coordenada dos feedthroughs baseado no clculo dos intervalos das coordenadas da rede nas bandas superiores e inferiores, como o procedimento de assinalamento de pinos. Uma vez determinada a posio do feedthrough na banda, verifica-se se no h restries na coordenada. Havendo restries, passa-se a procurar posies livres esquerda e direita. A insero do feedthrough feita de forma independente no lado superior e inferior, pois nem sempre h a mesma coluna livre. O resultado uma linha de metal3 com jog, assim como no polisilcio dos gates e metal1 dos ns de sada. A Figura 30 mostra as linhas de metal3 sobre uma determinada banda. Observar no centro da Figura uma linha de metal3 com jog inserido.

Figura 30 - Insero de feedthrough.

Esta a nica etapa que pode abortar a sntese de layout, devido falta de espao para inserir feedthroughs. A soluo indicada quando isto acontece ou utilizar um nmero menor de bandas (reduz o roteamento vertical) ou substituir as interfaces norte/sul por interfaces leste/oeste (reduz o nmero de redes que cruzam verticalmente o circuito).

4.7 Roteamento
Ao chegarmos nesta etapa, temos todos os canais de roteamento definidos, com os ns pertencentes s bandas (etapa de gerao de banda) e com os ns que passam sobre as bandas (etapa de insero feedthroughs). O algoritmo empregado muito simples, baseado no procedimento leftedge. Todo o roteamento simblico, sobre a grade virtual. Os polgonos referentes ao roteamento so gerados na ltima etapa de sntese, gerao do arquivo de layout (formato CIF). A principal otimizao realizada a utilizao de dois canais superpostos, utilizando 4 nveis de roteamento. Com isto consegue-se reduzir metade a rea de conexes. A Figura 31 ilustra esta idia. H uma canal inferior, implementado em polisilcio/metal1 conectado por um contato; e um canal superior, implementado em metal2/metal3 conectado por uma via2. Este canais so independentes. Raras situaes de ciclos verticais ocasionam a utilizao de dois condutores verticais para o mesmo condutor horizontal.

30

TROPIC

V2 CTO
Figura 31 - Roteamento com 4 nveis.

O algoritmo de roteamento, de forma simplificada, mostrado na Figura 32.


Para todos os canais de roteamento: (a) Trilha = 0; (b) Repetir enquanto houverem redes a serem roteadas no canal: (b.1) Inserir na trilha corrente o maior nmero possvel de redes, iniciando na coordenada esquerda do canal indo at a extremidade direita, utilizando o nvel de roteamento horizontal1. Para que uma rede seja inserida, no devem haver restries verticais (ver Figura 33). (b.2) Repetir b.1, para o nvel horizontal2. Estamos neste caso sobrepondo 2 canais de roteamento. (b.3) Se b.1 e b.2 falharem (restries verticais em todos os fios), insere-se redes utilizando ambos nveis verticais para o mesmo nvel horizontal. Neste caso no permitido sobreposio de roteamento. (b.4) track = track+1; Figura 32 - Algoritmo de roteamento.

BANDA i+1
A B

trilha 3
V1

Canal sendo roteado


H1 A

trilha 2 trilha 1 trilha 0

BANDA i

Figura 33 - Exemplo de restrio vertical. Considere que a trilha 0 j foi roteada, e que a rede B utilizou nesta trilha os nveis H1 (horizontal1) e V1 (vertical1). Ao tentarmos rotear na trilha 1 a rede A com o nvel H1, haver coliso no nvel V1, impossibilitando o uso de H1 para a rede A.

A superposio dos nveis de roteamento e o caso de uma rede roteada com os 2 nveis horizontais mostrado Figura 34
Routing: 1. Net a, with H1-V1, in track 0 2. Net b, with H2-V2, superposed to net a, in track 0 3. Net d, with H1-V1, superposed to net d, in track 0 4. Net c, with H2-V2, in track 1 Observe: 1. Vertical superposition of layers 2. We can have more than 2 pins per column, if the number of signals in not greater than 2.

a,b
track 1 track 0

a,c

b a,c

d,b

track 1 track 0

Vertical conflict: no horizontal superposition is possible - Net c will be routed with H1, however the vertical layers must be respectively V1 and V2.

b,c

Figura 34 - Procedimento de roteamento.

A escolha dos nveis de roteamento H1/V1/H2/V2 foi arbitrria, tendo por objetivo apenas

Sntese Automtica de Layout

31

reduzir o nmero de contatos nas regies de interface. Foram escolhidos os nveis: H1 - metal1, V1 - polisilcio, H2 - metal2 e V2 - metal3. O fato do metal1 estar em paralelo ao metal2, pode causar grandes capacitncias de acoplamento caso a rea comum entre dois fios for grande. Pode-se alterar facilmente o roteador para utilizar metal3 horizontalmente. O nico efeito negativo desta escolha ser a insero de vias2 em todos os feedthroughs de metal3, pois a direo destes vertical, e no canal de roteamento a condutor vertical ser o metal2. Soluo mais eficiente em termos de rea seria limitar a sobreposio entre metal1/metal2, conforme um parmetro inserido no arquivo de regras de projeto.

4.8 Gerao do arquivo de layout em formato CIF


Esta a ltima etapa do procedimento de sntese. O procedimento bsico varrer a estrutura de dados dos canais e das bandas, gerando os polgonos conforme as regras de projeto. As coordenadas horizontais j esto definidas: nos canais pela grade virtual e nas bandas pela etapa de gerao de banda. A altura do circuito at o momento desconhecida. Logo, o procedimento de expanso (gerao de polgonos) procede na seguinte ordem: canal 0, banda 1, canal 1, banda 2, canal 2, , banda n-1, canal n, onde n designa o nmero de bandas do circuito. Insere-se um pente de alimentao, em metal2, conforme a largura da alimentao definida no arquivo de regras.

4.9 Referncias bibliogrficas


[BHI93] S.BHINDARDE, A.PANYAM, N.A.SHERWANI. On optimum cell models for over-the-cell routing. 6th International Conference on VLSI Design, 1993, pp. 94-99. B.S.CARLSON, C.Y.R.CHEN, D.S.MELIKSETIAN. An efficient algorithm for the identification of dual eulerian graphs and its application to the cell layout. ISCAS 92, 1992, pp. 2248-2251. J.CONG, B.T.PREAS, C.L.LIU. General Models and algorithms for the over-the-cell routing in standard-cell design. 27th DAC, 1990, pp. 709-715. DONATH,W.E. et al. Timing Driven Placement Using Complete Path Delays. 27th DAC, 1990, pp. 84-90. J.KIM, S.M.KANG. A New Triple-Layer OTC Channel Router. IEEE Transactions on CAD, v. 15, no. 9, September 1996, pp. 1059-1070. C.M.FIDUCCIA, R.M.MATTHEYSES. A linear time heuristic for improving network partitions. 19th DAC, 1982, pp. 175-181. KAHNG,A.B., ROBINS,G. On Optimal Interconnections for VLSI. Kluwer Academic Publishers, 1995, 286p. B.W.KERNIGHAN, S.LIN. An efficient heuristic procedure for partitioning graphs. Bell System Technical Journal, No. 49, February 1970, pp. 291-308. H.LIN, H.PERNG, Y.HSU. Cell height reduction by routing over the cells. ISCAS 1992, pp. 2244-2247. MORAES, FERNANDO. Synthse de Macro-Cellules en Technologie CMOS. Montpellier, Frana, Universit de Montpellier II - Sciences et Techniques du Languedoc, 1994. 180p. Thse Doctoral.

[CAR92]

[CON90]

[DON90]

[KIN96]

[FID82]

[KAH95]

[KER70]

[LIN92]

[MOR94]

32

TROPIC

[PRE88]

B.T.PREAS, M.J.LORENZETTI. Physical Design Automation of VLSI Systems. Benjamin/Cummings Publishing, 1988. 510p. S.REKHI; J.D.TROTTER; D.H.LINDER. Automatic layout synthesis of leaf cells. DAC95. SHERWANI, Naveed. Algorithms for VLSI Physical Design Automation. Kluwer Academic Publishers, Boston, 1995. 538p. M.TERAI, K.NAKAJIMA, K.TAKAHASHI, K.SATO. A New Approach to Over-the-Cell Channel Routing with Three Metal Layers. IEEE Transactions on CAD, Vol. 13, No 2, February 94, pp. 187-200. M.TSUCHIYA, T.KOIDE, S.WAKABAYASHI, N.YOSHIDA. A Three-Layer Over-the-Cell Multi-Channel Routing Method for a New Cell Model. Asia South Pacific DAC 95, pp. 195-202. A.J.VELASCO; X.MARN; R.PESET; J.CARRABINA. Performance driven layout synthesis: optimal pairing and chaining. Fith ACM/SIGDA Physical Design Workshop, April 1996, pp. 176-182.

[REK95]

[SHE95]

[TER94]

[TSU95]

[VEL96]

Sntese Automtica de Layout

33

5 EXTRAO DE ELEMENTOS PARASITAS


Com a diminuio do tamanho dos transistores para dimenses sub-micrnicas, o tamanho das interconexes passou a contribuir de maneira significativa para o atraso do circuito. Isto pode ser visto na Figura 35, onde nas tecnologias de 0,25 m, as capacitncias de interconexo, formadas por metalizao de alumnio e dieltrico de dixido de silcio, contribuem em 50% do atraso total. J para as tecnologias 0,18 m, a contribuio de 70%, e para tecnologias 0,15 m, espera-se que a capacitncia das interconexes contribuam 80% do atraso total.

Figura 35 - Contribuio do atraso devido as interconexes.

Com isto, tem sido estudado a utilizao de outros materiais para as interconexes que representem uma menor contribuio no atraso do circuito. Por exemplo, melhores resultados so obtidos com a utilizao do cobre juntamente com um isolante de baixa constante dieltrica (Figura 35). Para tecnologias 0,25m utilizando cobre, a contribuio das interconexes de apenas 25% do atraso total, chegando a 45% nas tecnologias 0,18m, e 55% nas tecnologias 0,15m. Alm disto, a crescente diminuio na largura das interconexes fez com que a espessura se mantivesse constante ou fosse diminuda de um fator muito menor, para limitar a resistncia. Ento, a maior dimenso das conexes passa a ser a altura, como mostrado na Figura 36. Para tecnologias 0,25 m, a razo entre a altura e a largura de 1,8, enquanto que espera-se que atinja 2,7 nas tecnologias 0,07 m.

Figura 36 - Vista de uma conexo submicrnica.

Juntamente com o aumento do nmero de nveis de interconexes (5-6), a capacitncia de acoplamento entre conexes prximas tornou-se to significativa quanto as capacitncias ao plano terra (substrato). Isto provoca o efeito crosstalk, que a interferncia no nvel de um sinal que est trafegando em um conexo devido a uma outra conexo vizinha, degradando a integridade dos

34

TROPIC

sinais e podendo levar ao mal funcionamento do circuito. Com tudo isto, o problema de avaliao das capacitncias de interconexes passa a ser uma funo complexa com vrios parmetros do layout. Logo, uma anlise ps-layout necessria para considerar os efeitos das interconexes, principalmente em processos submicrnicos. Nestes processos as limitaes de desempenho, como atraso e integridade dos sinais, tem sido determinadas muito mais pelos efeitos das interconexes do que pelas caractersticas dos dispositivos ativos. Com isto, foi integrado ao ambiente de sntese automtica de layout TROPIC3 uma ferramenta chamada LASCA, que avalia as interaes entre as diversas camadas de um circuito integrado, resultando na extrao das capacitncias de acoplamento, capacitncias ao plano terra (substrato) e resistncias.

5.1 Algoritmo de Extrao de Conectividade


A extrao das conectividades uma das primeiras tarefas realizadas por um extrator eltrico. Ela tem a funo de identificar as diferentes camadas dos polgonos e consequentemente, estabelecer a forma como os dispositivos esto interligados, atribuindo-lhes nmeros de nodos para regies equipotenciais. A extrao das conectividades realizada pelo extrator LASCA feita por um algoritmo binbased. Ele sobrepe uma grade virtual sobre a rea do layout, como mostrado na Figura 37. Esta grade divide a rea total do circuito em uma srie de quadrados, chamados "bins". A complexidade de espao desta estrutura de dados dada por O(b.P), onde b o nmero total de bins, e P o nmero total de polgonos.

Figura 37 - Algoritmo Bin-Based.

Cada elemento desta matriz ir conter todos os polgonos que esto interseccionando este quadrado, sendo armazenados atravs de uma lista encadeada. Poder ocorrer que um polgono esteja contido em mais de um quadrado, e consequentemente estar includo em cada lista encadeada destes quadrados. Pode parecer um grande desperdcio de memria, mas somente ponteiros para os polgonos so armazenados. Isto tambm evita redundncia de informaes, j que cada polgono dever ter informaes da sua posio e do nvel a que pertence. Na Figura 37 temos o bin em destaque sendo interseccionado por sete polgonos que representam vias, metal1 e metal2. O algoritmo bin-based apresenta um melhor desempenho do que uma estrutura de listas

Sntese Automtica de Layout

35

encadeadas, desde que cada bin possua um pequeno nmero de polgonos, e consequentemente, os procedimentos de pesquisa sero realizados em listas curtas. O desempenho deste algoritmo funo do tamanho dos bins. Se os bins forem muito grandes, as listas encadeadas podero conter centenas de polgonos, aumentando o tempo de CPU. Com o tamanho dos bins pequenos, haver um aumento da memria utilizada, j que cada polgono interssecionar diversos bins. Para uma tecnologia 0,25 m, foi fixado o tamanho dos bins em 2 m x 2 m. Desta forma, as listas encadeadas apresentaram, em mdia, at 20 polgonos. Na Figura 38 temos o histograma de distribuio dos polgonos para o circuito C7552 (benchmark ISCAS) Este circuito apresenta 265563 polgonos. Analisando-se o tamanho das lista encadeadas, temos que 86,8% dos bins apresentaram at 16 polgonos. Outra anlise realizada, foi referente ao nmero de bins ocupados por um polgono, onde 97% dos polgonos ocupam de 1-5 bins. Com isto, para encontrar todos os polgonos conectados a um dado polgono, devemos pesquisar 80 polgonos (5x16), ao invs de pesquisar todos os polgonos. Observe que este o caso tpico.

Figura 38 - Histograma da distribuio dos polgonos.

Outra vantagem deste algoritmo o reduzido tempo de CPU para a extrao da conectividade de circuitos complexo. A Figura 39 relaciona o tempo de CPU para a extrao dos elementos parasitas do circuito versus o nmero de polgonos do circuito.
100000

O(n)
10000 CPU time (msec)

1000

( n )

100

10 1 10 100 1000 10000 100000 1000000 number of polygons

Figura 39 Tempo para realizar a extrao versus o nmero de polgonos no arquivo de layout.

36

TROPIC

5.2 Modelo de Extrao


A capacitncia parasita de cada rede, Cload dada pela frmula abaixo. Estes trs elementos so mostrados na Figura 40. Cload = Cdiff + Cactive + Croute
Cactive (!wn + !wp) Wp_out

(1)

Wout

periphery wsd

Wcin

Croute
l(n)

Wn_out
Figura 40 Componentes que determinam a capacitncia parasita de uma determinada rede.

A capacitncia de difuso dada pala equao abaixo:


Cdiffusion = (Wnout .Cjn + 2.Cjnsw ).wsd .drainN # + (W pout .Cjp + 2.Cjpsw).wsd .drainP # + Wnout .Cjnsw + W pout .Cjpsw FDIF

onde:
drainN# e drainP# correspondem ao nmero de regies de dreno/source que devem ser consideradas para o

clculo a capacitncia parasita;


wsd corresponde largura mdia das reas de dreno/source no layout; Cjn, Cjp, Cjnsw, Cjpsw correspondem as capacitncias de difuso, fornecidas pelo arquivo de tecnologia;

FDIF um constante que divide o valor total da capacitncia de difuso, valor fornecido no arquivo de regras.

A parcela de capacitncia ativa funo do fanout da rede, ou seja, do nmero de gates conectados na rede. Esta capacitncia dada por:

Cactive = (

Wn +

W p ) . lmin . Cox

Como as capacitncias de difuso e de rea ativa dependem do layout gerado, ela so calculadas pela ferramenta de sntese de layout e fornecidas ao extrator de conectividade.
Modelo para capacitncia de roteamento

Algumas simplificaes foram tomadas para a avaliao desta capacitncia, tendo em vista que o tratamento de estruturas multinveis uma tarefa complexa e difcil. Para cada conexo em anlise num plano i, os planos i2 foram tomados como terra, e somente foram calculadas as capacitncias entre conexes vizinhas ou conexes nos planos i1. As capacitncias de interconexo de cada nodo do circuito foram calculadas usando o modelo da Figura 41. Ele consiste de dois nveis condutores sobre um plano (substrato), considerado como terra.

Sntese Automtica de Layout

37

Figura 41 - Modelo de capacitncias.

Trs componentes foram considerados: Capacitncia de Overlap (Cover) devido a sobreposio de dois condutores em planos diferentes. Eles so C21a e C23a na Figura 41. So calculados considerando a rea de sobreposio, dada pela seguinte frmula: Cover = Carea.W.L Onde Carea a capacitncia de rea (fF/m2), W.L a rea de sobreposio Capacitncia lateral (Clat) a capacitncia entre dois condutores no mesmo plano. Na Figura 41 a parcela C22lat. calculada utilizando formulao emprica, onde deve-se considerar a distncia entre os dois condutores. Capacitncia Fringing (Cfr) devido ao acoplamento entre dois condutores de planos diferentes. So representados por C21fr e C23fr na Figura 41. calculada pela frmula abaixo, sendo Clength a capacitncia de permetro (fF/m), e L o permetro da conexo. Cfr=2.Clength.L
Modelo para resistncia de roteamento

O clculo das resistncias foram realizados utilizando a seguinte frmula: R=R


L W

Onde R a resistividade do material, dada em / , L o comprimento da conexo e W a largura. Para obter a resistncia de uma conexo, simplesmente multiplicamos a resistividade do material pelo comprimento da conexo, divida pela largura. Uma rede completa, geralmente tem vrios polgonos, com segmentos verticais e horizontais. A resistncia total da rede obtida somando-se as resistncias de todos os polgonos que compem a rede. Aps a extrao das capacitncias e resistncias, devemos representar a conexo de forma apropriada. No extrator LASCA, trs opes esto disponveis ao usurio, que dever considerar a preciso requerida numa anlise do funcionamento eltrico do circuito, tempo de simulao e a complexidade do circuito extrado. Os modelos disponveis so: L, e T lumped, mostrados na Figura 42. Na Figura 43 temos um exemplo de um cruzamento de duas conexes e o seu respectivo modelo de extrao. Note-se o elevado nmero de componentes utilizados para representar as duas conexes.

38

TROPIC

Figura 42 - Modelos RC (a) L lumped (b) lumped (c) T lumped.

Figura 43 - Cruzamento de duas conexes e a respectiva extrao.

Anlise do desempenho da extrao de capacitncias parasitas

A Tabela 6 mostra resultados de simulao eltrica. Se extrairmos apenas as capacitncias relativas ao substrato, teremos uma avaliao otimista do atraso do circuito, com um erro mdio de 8,25 % (pior caso: 15%). Quando consideremos todas as capacitncias de roteamento o erro mdio passa a ser 3,63%, com pior caso inferior a 10%. Estes dados validam o extrator de parasitas LASCA, o qual muito mais rpido que as ferramentas de extrao convencionais (exemplo para um circuito com 265563 polgonos: a ferramenta lasca consumiu 42,5 segundos, enquanto que o extrator DIVA 19,2 minutos).
Circuito Adder Addergate Alu Alugate Rip 16bits Cla 16bits Rip 32 bits Cla 32bits Transistores 28 40 260 432 448 528 896 1056 Redes 13 15 94 117 163 215 323 427 Nmero de polgonos 449 635 4291 6503 7270 9066 15503 19051 Atraso do caminho crtico (ns) Cground 0.3624 0.4042 0.985 1.0984 3.3713 2.5539 7.0158 5.3084 Cground + Ccoupl 0.3847 0.4304 1.1167 1.2401 3.7872 2.8737 8.2248 6.2971 Diva 0.36783 0.4247 1.1056 1.2208 3.8571 2.6234 8.2730 5.7966

Tecnologia: 0.25m, 3 nveis de metal com contatos empilhados. Dimenso dos transistores w=2m, l=0.25m.
Tabela 6 Atraso obtido por simulao eltrica, considerando: (1) apenas as capacitncias relativas ao substrato, extradas com a ferramenta LASCA; (2) capacitncias de acoplamento mais as relativas ao substrato, extradas com a ferramenta LASCA; (3) capacitncias obtidas com o extrator de referncia, Diva, do conjunto de ferramentas CADENCE.

Sntese Automtica de Layout

39

5.3 Referncias bibliogrficas


[ARO96] N.D. ARORA, K.V. RAOL, R. SCHUMANN AND L.M. RICHARDSON. Modeling and Extraction of Interconnect Capacitances for Multilayer VLSI Circuits. IEEE Transactions on CAD, 15(1):58-66, Jan. 1996. Diva Interactive Verification Reference CADENCE. 1998 J.CHERN, J.HUANG, L.ARLEDGE, P.LI, P.YANG. Multilevel Metal Capacitances Models for CAD Design Synthesis Systems. IEEE Electron Devices Letters, v.13, n.1, p.32-34, Feb. 1992. J. Cong, A.B. Kahng, D. Noice, N. Shiralli and S.H. Yen. Analysis and Justification of a Simple, Practical 2 1/2D Capacitance Extraction Methodology. UCLA Computer Science Technical Report 970013, 1996.
Fbio Klein Ferreira Extrao de Elementos Parasitas em Circuitos CMOS Submicronicos Dissertao de Mestrado, PPGC-UFRGS, 2000 http://www.inf.pucrs.br/~moraes/FMpapers.html

[CAD98] [CHE92]

[CON96]

[FER00]

[NAB91]

K. NABORS and J. WHITE. FastCap: A Multipole Accelerated 3D Capacitance Extraction Program. IEEE Transactions on CAD, 10(11):1447-1459, Nov. 1991. T. SAKURAI. Approximation of wiring delay in Mosfet LSI. IEEE Journal Electron Devices Letter, 13(1):32-34, Feb. 1992.

[SAK92]

40

TROPIC

6 INTEGRAO DA SNTESE FSICA SNTESE LGICA


Este Captulo apresenta o procedimento para integrar a sntese automtica de layout a um fluxo de projeto com entrada VHDL, permitindo o uso de bibliotecas virtuais. Como mencionado, bibliotecas virtuais baseiam-se no uso de clulas geradas automaticamente por uma ferramenta de sntese de layout, ao invs da utilizao de bibliotecas com clulas pr-caracterizadas. Desta forma, pode haver na biblioteca virtual um conjunto muito rico de portas complexas. Nossa primeira abordagem para integrar sntese de layout sntese lgica foi baseada em utilizar ferramentas dedicadas para mapeamento tecnolgico, tais como TABA (UFRGS-LIRMM) ou SYNTHETIC (UAB). O procedimento consiste em gerar uma descrio contendo apenas portas bsicas (and, or, inv em formato netblif), e depois utilizando estas ferramentas obtm-se o circuito com portas complexas. Esta abordagem foi abandonada por trs razo muito fortes: 1. Ao especificar-se restries temporal e/ou de rea para a ferramenta de sntese lgica, ela deve gerar uma soluo que atenda s restries utilizando as portas lgicas que sero utilizadas na sntese fsica. Se a ferramenta de sntese lgica gera uma soluo com portas bsicas, o atraso/rea ser calculado sobre estas portas bsicas. Logicamente, aps o mapeamento com portas complexas estas estimativas perderam todo o sentido. 2. As ferramentas para mapeamento com portas complexas no consideram lgica sncrona, o que impede de gerar circuitos reais. 3. As ferramentas de sntese lgica, como Synopsys, podem tratar a especificao de uma biblioteca virtual contendo centenas de portas complexas, modeladas atravs de equaes de atraso, e assim realizar a sntese lgica e o mapeamento tecnolgico como uma nica operao. Substituiu-se esta primeira abordagem utilizando-se uma ferramenta que realize ambas tarefas, sntese lgica e mapeamento tecnolgico, conjuntamente. A Figura 44 mostra o fluxo de projeto utilizando esta abordagem. Caso o circuito seja especificado de forma comportamental, uma ferramenta de sntese lgica, por exemplo Synposys, deve ser utilizada para gerar uma descrio estrutural, mapeada sobre a biblioteca virtual. Quando o projetista define seu circuito desta forma, ele no precisa a priori ter nenhum conhecimento da biblioteca virtual que est sendo utilizada. Caso o projetista deseje especificar o seu circuito utilizando nveis mais baixos de abstrao, ele pode descrever seu circuito diretamente em VHDL estrutural, mas neste caso ele deve ter conhecimento das portas existentes na biblioteca, pois ele as instanciar. Uma vez obtida a descrio estrutural, ela automaticamente convertida em formato SPICE, pois para a sntese automtica de layout necessita-se uma descrio a nvel de transistores. A biblioteca virtual modelada para um dimensionamento regular de transistores, isto significa, todos os transistores tm a mesma largura. Esta dimenso regular modificada aps a otimizao eltrica, caso necessria, em funo das capacitncias parasitas inseridas pelo roteamento. Uma primeira sntese de layout feita, objetivando-se obter as capacitncias parasitas. A descrio SPICE original, em conjunto com as capacitncias calculadas, so utilizadas pelas ferramentas de anlise de desempenho eltrico (timing analysis) e de otimizao eltrica. Caso o desempenho eltrico obtido no atenda s especificaes impostas no incio da sntese, algumas estratgias de otimizao podem ser empregadas: dimensionamento de transistores, insero de buffers ou estgios repetidores.

Sntese Automtica de Layout

41

Caso esta otimizao eltrica seja necessria, feita uma segunda sntese de layout, mantendo-se o posicionamento da primeira. Deve-se manter o mesmo posicionamento entre as iteraes de sntese de layout, pois as otimizaes eltricas so feitas considerando-se o posicionamento/roteamento feitos.
Behavioral VHDL SYNOPSYS Struct. VHDL User constraints
Conversion Struc. VHDL SPICE VIRTUAL LIB Logic functions

SPICE
TROPIC
Parasitic capacitances

Technology data

OPTIMIZATION: Sizing, buffers, repeaters TROPIC

TIMING ANALYSIS

LAYOUT
Figura 44 - Fluxo de projeto utilizando biblioteca virtual e sntese automtica de layout.

At a data de hoje, agosto de 2000, a etapa de otimizao eltrica no est implementada no fluxo de projeto de TROPIC3, sendo alvo de investigaes futuras. Um prottipo do sistema est disponvel comunidade cientfica em: http://www.inf.pucrs.br/~moraes/tropic2000.tar.gz

6.1 Abordagem de biblioteca virtual no ambiente Virtual Synopsys


A Figura 45 mostra a abordagem de biblioteca virtual no ambiente Synopsys de sntese lgica. Trs arquivos alimentam a ferramenta de sntese lgica "design compiler": o arquivo contendo a descrio da biblioteca virtual, o arquivo contendo a descrio VHDL (ou Verilog) do circuito de entrada e o script de sntese contendo os parmetros de sntese.

42

TROPIC

BEHAVIORAL VHDL

Virtual.LIB

LIBRARY COMPILER (SYNOPSYS)

Virtual.DB

DESIGN COMPILER (SYNOPSYS)

Synthesis script

STRUCTURAL VHDL

Figura 45 - Abordagem de biblioteca virtual no ambiente Synopsys de sntese lgica.

Biblioteca Virtual

O primeiro passo no fluxo de projeto descrever a biblioteca virtual, no formato da ferramenta "library compiler". Esta biblioteca aps compilada gera um arquivo binrio, aceito pela ferramenta de sntese lgica. Para exemplificar o processo, temos na Figura 46 a descrio de uma clula complexa. A sintaxe para descrever a funcionalidade de uma clula muito simples, bastando indicar sua funo booleana, atravs do comando function. A descrio de timing porm muito complexa, havendo diversos modelos possveis para a descrio do atraso da clula. O modelo apresentado na Figura considera tempo constante para subida e descida, assim como a mesma capacitncia para todos as entradas. Outros modelos, como os baseados em tabelas (look-up tables) esto hoje sendo investigados.
cell(AOI1125) { area : 18; pin(z) { direction : output; function : "!(A*(B+(C*(D+E*(F+G*(H+I))))))"; max_capacitance : 0.250000; timing() { intrinsic_rise : 0.25 ; intrinsic_fall : 0.30 ; rise_resistance : 0.15 ; fall_resistance : 0.10 ; related_pin : "A B C D E F G H I" ; } } pin(A B C D E F G H I) { direction : input; capacitance : 0.250000; } }

Figura 46 - Descrio de uma clula complexa no ambiente de sntese Synopsys (a declarao de timing est simplificada)

No h restries quanto ao nmero de clulas complexas que podem ser descritas na biblioteca virtual. Deve-se entretanto observar a restrio do nmero de transistores em srie, aconselhando-se utilizar 4 no plano N e 3 no plano P (396 funes diferentes, conforme a Tabela 1). Os elementos seqenciais (flip-flops, latches) e tri-states esto presentes tambm na biblioteca virtual. Estes elementos no podem ser automaticamente inseridos na biblioteca, devido complexidade de sua descrio. Existe um arquivo padro, que configurado para cada tecnologia, atravs de simulaes eltricas, de acordo com as regras de projeto. H 9 elementos nesta

Sntese Automtica de Layout

43

biblioteca: 4 FFDs (somente D, set, reset, set/rest), 4 LATCHs (somente D, set, reset, set/rest) e 1 buffer tri-state. A documentao Synopsys indica como conjunto mnimo 3 elementos: FFD set/rest, LATCH D set/rest e buffer tri-state
Descrio VHDL circuito de entrada

A descrio VHDL de entrada pode ser comportamental, estrutural ou um misto de ambas. A Figura 47 mostra uma descrio VHDL parcial no nvel comportamental. Neste tipo de descrio o projetista no necessita saber quais clulas esto presentes na biblioteca virtual. A descrio feita utilizando-se comandos como atribuies concorrentes (equivalentes a multiplexadores) ou processos (equivalentes a registradores). Descries neste nvel apresentam a vantagem de serem portveis, permitindo uma fcil migrao de uma biblioteca virtual a outra.
input_adder2 <= (not busB) when uins.ula=AsubB else (others=>'0') when uins.ula=negA or uins.ula=incB else (others=>'1') when uins.ula=decA else busB; process(ck,reset,uins) begin if (reset = '1') then c <= '0'; n <= '0'; z <= '0'; elsif ck'event and ck = '0' then if uins.c = '1' then c <= cout; end if; if uins.nz = '1' then n <= out_ula(15); if out_ula="0000000000000000" then z <= '1'; else z<='0'; end if; end if; end if; end process;

Figura 47 - Exemplo parcial de descrio VHDL comportamental.

Caso uma descrio VHDL estrutural ou mista utilizada, como a apresentada na Figura 48, o usurio deve conhecer o nome das clulas na biblioteca virtual.
library IEEE; use IEEE.Std_Logic_1164.all; entity my_circuit is port( pg: out reg2; PGij, PGjk, PGkl : in reg2 ); end my_circuit; architecture A1 of my_circuit is signal s1, s2 : std_logic; begin U0 : nor3 port map ( PGij(0), PGjk(0), PGkl(0), s1); U1 : inv port map ( s1, pg(0)); U3 : AOI_BK3 port map (PGij(1), PGij(0), PGjk(1), PGjk(0), PGkl(1), s2); U4 : inv port map ( s2, pg(1)); end A1;

Figura 48 - Exemplo parcial de descrio VHDL estrutural.

Neste exemplo, as clulas nor3, inv e AOI_BK3 devem estar presentes na biblioteca, pois caso no estejam, a sntese lgica e o mapeamento tecnolgico no sero feitos. Este tipo de descrio no recomendado, pois no portvel entre uma biblioteca e outra. Seu uso recomendado

44

TROPIC

apenas quando o projetista deseje utilizar especificamente uma dada porta complexa. Por exemplo, suponha que o projetista esteja implementando uma arquitetura de soma muito rpida, e na sua cadeia de propagao de carry ele necessite um porta complexa especfica. Neste caso ele referencia a porta complexa da biblioteca com a funo desejada.
Script de sntese

O terceiro arquivo que alimenta a ferramenta de sntese lgica o script de sntese. Este script guia a ferramenta de sntese lgica, indicando qual biblioteca utilizar, esforo de sntese, qual a mxima rea que o circuito deve ter, qual o atraso, qual o fanout mximo, etc. O conjunto de parmetros da ferramenta muito rico em opes, permitindo explorar um vasto espao de solues. A Figura 49 apresenta um script de sntese contendo restries de rea (set_max_area), de atraso (set_max_delay) e de fanout (set_max_fanout). muito importante que o VHDL resultante da sntese no possua hierarquia, pois o atual tradutor de VHDL para SPICE trata apenas descries planas. Para isto, no script so inseridos os comandos uniquify e ungroup que realizam a tarefa de "planificar" o arquivo de sada.
link_library = {sccg33.db libdff.db} target_library = {sccg33.db libdff.db} cell_list = { sklansky } foreach (cell, cell_list) { read -f vhdl cell + ".vhdl" current_design cell set_input_delay 0.0 all_inputs() set_max_delay 3.5 to all_outputs() out_load = 0.25 set_load out_load all_outputs() set_max_area 300 set_max_fanout 6 cell compile -map_effort medium /* Removes multiply-instantiated hierarchy */ uniquify -force ungroup -flatten -all vhdlout_write_components = TRUE vhdlout_single_bit = "TRUE" vhdlout_dont_create_dummy_nets = "TRUE" write -format vhdl -hierarchy -output cell + "_S.vhdl" } quit // Bibliotecas de portas complexas e de elementos // sequenciais

Figura 49 - Exemplo de script de sntese, onde rea e atraso so especificados.

Resultado da sntese

O arquivo resultante da sntese lgica um arquivo VHDL estrutural, mapeado sobre a biblioteca virtual, o qual automaticamente convertido em descrio SPICE. A descrio a nvel de transistor para cada clula obtida atravs de sua equao booleana (comando function na Figura 46). A Figura 50 mostra a equao de uma dada clula, e o respectivo sub-circuito em formato SPICE. A ferramenta que converte VHDL estrutural para SPICE utiliza o mesmo arquivo de descrio utilizado pelo compilador de biblioteca (library compiler).

Sntese Automtica de Layout SUBCKT AOI1 out A B C D E F G H vcc MN1 gnd I 6 NMOS w=2.0um MN2 6 H 3 NMOS w=2.0um MN3 3 G out NMOS w=2.0um MN4 gnd F 5 NMOS w=2.0um MN5 5 E 2 NMOS w=2.0um MN6 2 D out NMOS w=2.0um MN7 gnd C 4 NMOS w=2.0um MN8 4 B 1 NMOS w=2.0um MN9 1 A out NMOS w=2.0um MP10 vcc I 16 PMOS w=2.0um MP11 vcc H 16 PMOS w=2.0um MP12 vcc G 16 PMOS w=2.0um MP13 16 F 15 PMOS w=2.0um MP14 16 E 15 PMOS w=2.0um MP15 16 D 15 PMOS w=2.0um MP16 15 C out PMOS w=2.0um MP17 15 B out PMOS w=2.0um MP18 15 A out PMOS w=2.0um .ends AOI1

45

!((A*B*C)+(D*E*F)+(G*H*I))

l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um l=0.25um

Figura 50 - Equao booleana de uma porta complexa e sua descrio em formato SPICE.

Cada clula (component, em VHDL) utilizado no VHDL estrutural convertido em um subcircuito SPICE, a partir do comando function na biblioteca virtual. Esta traduo feita por uma rotina recursiva, que considera a operao * (and) como transistores conectados em srie e a operao + (or) como transistores conectados em paralelo, para o plano N (o plano P dual ao plano N). Observar que todas as funes na biblioteca virtual so negativas. Os elementos seqenciais e o buffer tri-state so gerados partir de um arquivo modelo (assim como para a biblioteca virtual). Todas as referncias s clulas (port map em VHDL) so traduzidas como chamadas a sub-circuitos. Finalmente, os pinos de entrada/sada do circuito so obtidos atravs das portas declaradas na entity (comando que inicia um novo circuito em VHDL). O arquivo SPICE resultante utilizado como descrio de entrada para a ferramenta de sntese fsica. Exemplo de descrio VHDL de origem e descrio de SPICE final mostrada na Figura 51.
Entity div4 is Port( clk,rst: in std_logic; div, div4, div8: out std_logic ); end div4; Architecture arch of div4 is component DIV2 Port( clk,rst: in std_logic; d2_clk: out std_logic ); end component; signal carry : std_logic_vector(2 downto 0); begin st0 : DIV2 Port Map ( clk => clk, rst=> rst, d2_clk => carry(0) ); st1 : DIV2 Port Map ( clk => carry(0),rst=> rst, d2_clk => carry(1) ); st2 : DIV2 Port Map ( clk => carry(1),rst=> rst, d2_clk => carry(2) ); div <= carry(0); div4 <= carry(1); div8 <= carry(2); end; ** ** SUBCIRCUITS (generated from the ** .SUBCKT DFFR D rst clk QN Q vcc MN1 H clk gnd gnd NMOS l=0.25u MP2 H clk vcc vcc PMOS l=0.25u MN3 NH H gnd gnd NMOS l=0.25u MP4 NH H vcc vcc PMOS l=0.25u .ends DFFR .SUBCKT GAT1_1 out A vcc MN1 gnd A out gnd NMOS MP2 vcc A out vcc PMOS .ends GAT1_1 ** ** ** X1 X2 X3 X4 X5 X6 lib file)

w=2u w=2u w=2u w=2u

l=0.25u l=0.25u

w=2u w=2u

COMPONENTS

(generated from the VHDL file)

Entity DIV2 is Port(clk,rst: in std_logic; d2_clk: out std_logic ); end DIV2; Architecture arch of DIV2 is signal temp : std_logic; begin d2_clk <= temp; process (clk,rst) begin if (rst='0') then temp <= '0'; elsif (clk'event and clk='1') then temp <= not temp; end if; end process; end;

net21 n3 clk net21 div vcc DFFR net20 n3 n1 net20 div8 vcc DFFR net19 n3 n2 net19 div4 vcc DFFR n3 rst vcc GAT1_1 n2 net21 vcc GAT1_1 n1 net19 vcc GAT1_1

** ** INPUTS AND OUTPUTS ** (generated from the ENTITY in the VHDL file) ** *interface: div8 orient n output *interface: div4 orient n output *interface: div orient n output *interface: rst orient s input *interface: clk orient s input

(a) descrio VHDL de origem

(b) descrio SPICE final obtida da descrio SPICE

Figura 51 - Exemplo de descrio VHDL de origem e de descrio SPICE final.

46

TROPIC

6.2 Referncias bibliogrficas


[BEN91] BENKOSKI, J.; STEWART, R. TATOO: An industrial Timing Analyzer with False Path Elimination and Test Pattern Generation. EDAC, 1991, p.256-260. CHANG, Hoon, ABRAHAM, Jacob A., CHAN: An Efficient Critical Path Analysis Algorithm. EDAC, 1993, pp.444-448. S.CREMOUX; N.AZEMARD; D.AUVERGNE. Path resizing based on incremental technique. ISCAS98. J.DAGA, D.AUVERGNE. A Comprehensive Delay Macro-Model of Submicrometer CMOS Logics. IEEE Journal of Solid States Circuits, vol 34, n1, pp.42-55, January 1999. FANG, C.-L.; JONE, W.-B. Timing Optimization by Gate Resizing and Critical Path Identification. IEEE Transactions on CAD, v.14, n.2, p.201-217., February 1995. JOUPPI, Norman P. Timing Analysis and Performance Improvement of MOS VLSI Designs. IEEE Transactions on CAD, v.CAD-6, n.4, pp. 650-665, July 1987. OBERMEIER, F.W.; KATZ, R. An Electrical Optimizer that Consider Physical Layout. 17th DAC, 1988. p. 453-459. A.REIS, M.ROBERT, D.AUVERGNE, R.REIS. Associating CMOS Transistors with BDD Arcs for Technology Mapping. Electronic Letters, Vol. 31, No 14, July 1995. SAIT,S.; YOUSSEF,H. VLSI Physical Design Automation - Theory and Practice. IEEE Press, 1995, 436p. SEMICONDUCTOR INDUSTRY ASSOCIATION. The National Technology Roadmap for Semiconductor. Available by WWW in http://notes.sematech.org/ntrs/PublNTRS.nsf, 1997 SYNOPSYS. Library Compiler User Guide, Volume 1. Synopsys Documentation, v1998.08.

[CHA93]

[CRE98]

[DAG99]

[FAN95]

[JOU87]

[OBE88]

[REI95]

[SAI95]

[SIA97]

[SYN98]

Sntese Automtica de Layout

47

7 EXERCCIOS
Supe-se para estes exerccios a instalao do TROPIC3. O nome dos circuitos nas questes refere-se aos circuitos no diretrio tropicD/benchs. Aconselha-se a ler modo de utilizao do programa e como instal-lo lendo o arquivo README_TROPIC2000, no diretrio tropicD. Buscar em: http://www.inf.pucrs.br/~moraes/tropic2000.tar.gz Para visualizar o layout pode-se utilizar o editor de layout edllex com o arquivo de configurao ed.cfg, ambos presentes no diretrio tropicD. Ateno: deve-se remover os labels do arquivo de layout, pois o edllex no aceita texto com caracteres especiais, para isto usar o programa label, tambm disponvel na instalao. 1. Faa o diagrama de transistores para a funo F = not( (A and B) or C), descreva esta funo no formato SPICE, colocando as entradas no lado superior (interface norte) e a sada no lado direito (interface leste). Utilize as regras 0.25 m (parmetro t t25), com dimensionamento W=2m e L=0,25m. Sintetize este circuito com uma banda e observe o layout. Altere a dimenso dos transistores, gerando o layout novamente. 2. Agora, para o layout acima gerado modifique alguns parmetros do arquivo de tecnologia e observe o impacto no layout. Sugesto, altere a largura do polisilcio, largura do metal, regras relacionadas aos contatos. Altere uma regra por vez para analisar o impacto no layout. 3. possvel o circuito da questo 1 (F = not( (A and B) or C)) ser gerado em mais de uma banda? Por qu. 4. O diagrama de transistores abaixo sintetizvel pela ferramenta TROPIC3? Argumente a resposta.
vcc tp1 tp2 tp3 tp7 tp4 tp5 tp6 out tn1 tn2 tn3 gnd tn7 tn4 tn5 tn6

5. Determine uma funo lgica que no tenha caminho de Euler no plano N, e outra funo lgica sem caminho em ambos planos. 6. Implemente um circuito com portas de transmisso, por exemplo, uma latch, e identifique no layout o posicionamento destas portas de transmisso. 7. A ferramenta LASCA (ou ext na instalao) permite exibir graficamente a distribuio do comprimento das conexes. Sintetize um grande circuito (com mais de 10000 transistores, use a ferramenta extralo para localiz-lo), e com a ferramenta LASCA exiba o histograma de distribuio do comprimento das conexes. Qual a porcentagem do nmero de redes com comprimento igual ou inferior a 200 m? Qual a concluso que pode-se tirar, e se ela ou no positiva? O algoritmo de posicionamento de clulas pode ser considerado eficiente? Por qu? 8. Use a ferramenta EXTRALO (extrao lgica) sobre o circuito adder.sim, e analise as funes lgicas obtidas. Exprima na forma de equao booleana as equaes obtidas e verifique se correspondem funo de soma.

48

TROPIC

9. O arquivo rip.sim e cla.sim so somadores de 16 bits. Pede-se (o modelo do arquivo de simulao encontra-se em tropicD/simul, assim como o arquivo contendo o modelo dos transistores): a) Utilize as regras 0.25 m, com dimensionamento W=2m e L=0,25m, e sintetize ambos circuitos de tal forma que tenham um formato o mais prximo de um quadrado (altura igual a largura). b) Anote em tabela o nmero de transistores, nmero de bandas, rea e densidade de transistores por milmetro quadrado para cada um dos circuitos. c) Extraia as capacitncias parasitas de ambos circuitos, utilizando a ferramenta LASCA, utilizando os 3 modelos de capacitncias. O resultado ser um conjunto de 6 arquivos de capacitncias parasistas. d) Simule agora as 3 verses de cada somador, anotando o atraso do caminho crtico em uma tabela. Analise o desempenho eltrico de ambos somadores. e) Qual dos dois somadores voc escolheria, e por qual razo?