Professional Documents
Culture Documents
http://www.inf.pucrs.br
August, 2000
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
Exerccios _________________________________________________________________ 47
iii
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
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.
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
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.
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.
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
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
[CAD91] [IEN98]
[GUR97]
[HWA93]
[LEF97]
[LOP80]
[MOR99]
[SAR96]
[UEH81]
Vcc Gnd
Difuso N
Gnd
Polisilcio
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
2.75 m 1.5 m
perimeter = 2.75+2.75+1.5
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)
(b) Ns de sada
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
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
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
Figura 6 - Layout de um flip-flop mestre-escravo tipo D com reset, implementado com portas de transmisso.
Regio N de interface
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
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
14
TROPIC
canal i+1
BANDA i+1
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
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
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).
16
TROPIC
(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
CIF layers nwell <tropic name> <CIF name> pplus nplus active active poly metal1 metal2 metal3 contact v1 v2 text
#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
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
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.
[DUF90]
[FUK95]
[KIM94]
[LEE92]
[MAZ92]
[MOR90]
[LEF89]
[LIN91]
[PIG88]
[WIN82]
18
TROPIC
19
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
ab
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
TROPIC3
Arquivo biblioteca: bib
POSICIONAMENTO
Regras de Projeto
Posicionamento : pos
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.
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
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
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
11
17
18
19
20
21
22
23
24
10
14
6 4
10 11
12
13
14
15
16
13
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
23
Lista de arestas
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
e c
4
gnd
e a
4
clula
c
gnd
b d
flag 0 0 0 0 0
grafo N
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
d gnd
c gnd
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
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.
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.
27
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
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.
BANDA i+1
C B
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.
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.
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.
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.
BANDA i+1
A B
trilha 3
V1
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
A escolha dos nveis de roteamento H1/V1/H2/V2 foi arbitrria, tendo por objetivo apenas
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.
[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]
33
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.
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.
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
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.
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
Figura 39 Tempo para realizar a extrao versus o nmero de polgonos no arquivo de layout.
36
TROPIC
(1)
Wout
periphery wsd
Wcin
Croute
l(n)
Wn_out
Figura 40 Componentes que determinam a capacitncia parasita de uma determinada rede.
onde:
drainN# e drainP# correspondem ao nmero de regies de dreno/source que devem ser consideradas para o
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.
37
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
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
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.
39
[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
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
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
42
TROPIC
BEHAVIORAL VHDL
Virtual.LIB
Virtual.DB
Synthesis script
STRUCTURAL VHDL
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
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;
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;
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
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)
l=0.25u l=0.25u
w=2u w=2u
COMPONENTS
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
46
TROPIC
[CHA93]
[CRE98]
[DAG99]
[FAN95]
[JOU87]
[OBE88]
[REI95]
[SAI95]
[SIA97]
[SYN98]
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?