0 évaluation0% ont trouvé ce document utile (0 vote)
56 vues5 pages
A concepção e o desenvolvimento de circuitos integrados de forma manual não são mais possíveis devido à crescente complexidade dos mesmos. O trabalho de desenhar layout de transistores à mão e projetar circuitos com milhares destes não é mais uma realidade. Para acomodar funcionalidades antes inimagináveis, a escala de integração de componentes em um CI aumentou consideravelmente. A tendência de mercado de cada vez mais se obter sistemas miniaturizados, portáteis e com desempenho ampliado em relação às versões anteriores desses dispositivos leva a desafios cada vez mais complexos, pois algumas variáveis que antes não interferiam no funcionamento do circuito, agora aparecem como parasitas ou efeitos que devem ser levados em consideração devido à escala dos elementos integrados.
Titre original
CAD para Microeletrônica: Uma perspectiva do fluxo de desenvolvimento de circuitos digitais
A concepção e o desenvolvimento de circuitos integrados de forma manual não são mais possíveis devido à crescente complexidade dos mesmos. O trabalho de desenhar layout de transistores à mão e projetar circuitos com milhares destes não é mais uma realidade. Para acomodar funcionalidades antes inimagináveis, a escala de integração de componentes em um CI aumentou consideravelmente. A tendência de mercado de cada vez mais se obter sistemas miniaturizados, portáteis e com desempenho ampliado em relação às versões anteriores desses dispositivos leva a desafios cada vez mais complexos, pois algumas variáveis que antes não interferiam no funcionamento do circuito, agora aparecem como parasitas ou efeitos que devem ser levados em consideração devido à escala dos elementos integrados.
A concepção e o desenvolvimento de circuitos integrados de forma manual não são mais possíveis devido à crescente complexidade dos mesmos. O trabalho de desenhar layout de transistores à mão e projetar circuitos com milhares destes não é mais uma realidade. Para acomodar funcionalidades antes inimagináveis, a escala de integração de componentes em um CI aumentou consideravelmente. A tendência de mercado de cada vez mais se obter sistemas miniaturizados, portáteis e com desempenho ampliado em relação às versões anteriores desses dispositivos leva a desafios cada vez mais complexos, pois algumas variáveis que antes não interferiam no funcionamento do circuito, agora aparecem como parasitas ou efeitos que devem ser levados em consideração devido à escala dos elementos integrados.
Uma perspectiva do fluxo de desenvolvimento de circuitos digitais
Thiago Rider Augusto Instituto de Informtica - INF Universidade Federal do Rio Grande do Sul - UFRGS Porto Alegre RS, Brasil thiago.rider@ufrgs.br
Abstract The design and development of integrated circuits manually is no longer possible due to the increasing complexity of the same. The work of designing layout of transistors by hand and circuits with thousands of switches is no longer a reality. To accommodate features previously unimaginable, the scale of integration of components on an IC has increased considerably. The market trend of getting increasingly miniaturized, portable and enhanced-performance systems compared to previous versions of these devices leads to much more complex challenges, because some variables that had not interfered in the functioning of the circuit, now appears as parasites or effects that must be taken into account due to the scale of integrated elements. To aid this task and enable circuits like latest generation microprocessors, SoCs and high density memories, there are specific CAD (Computer Aided Design) softwares for microelectronics. In the flow of an integrated circuit there are many tasks and each may has specialized software or a set of them. For digital circuits there are some well-defined phases and each one has some applications to help the designer in system, logical or physical levels, and also to the processes of implementation and verification of the design. KeywordsCAD; software; synthesis; microelectronics; integrated circuits I. INTRODUO A concepo e o desenvolvimento de circuitos integrados de forma manual no so mais possveis devido crescente complexidade dos mesmos. O trabalho de desenhar layout de transistores mo e projetar circuitos com milhares destes no mais uma realidade. Para acomodar funcionalidades antes inimaginveis, a escala de integrao de componentes em um CI aumentou consideravelmente. A tendncia de mercado de cada vez mais se obter sistemas miniaturizados, portteis e com desempenho ampliado em relao s verses anteriores desses dispositivos leva a desafios cada vez mais complexos, pois algumas variveis que antes no interferiam no funcionamento do circuito, agora aparecem como parasitas ou efeitos que devem ser levados em considerao devido escala dos elementos integrados. As barreiras impostas pela integrao na escala submicron incluem: uma maior contribuio da corrente de leakage do transistor no consumo do circuito, dificuldades de se fabricar o dispositivo fisicamente de forma fiel ao layout e sua comparao com o esquemtico torna-se mais intensa computacionalmente e ainda, a anlise de elementos parasitas tem um peso muito maior do que antes [1]. Visando auxiliar esta tarefa e viabilizar circuitos como microprocessadores de ltima gerao, SoCs e memrias de alta densidade, existem os softwares CAD(Computer Aided Design) especficos para microeletrnica. No fluxo de um circuito integrado existem muitas tarefas e para cada uma pode existir um software envolvido ou mesmo um conjunto deles. Para o fluxo de desenvolvimento de circuitos digitais existem algumas fases bem definidas e que possuem CAD para auxiliar o projetista seja no nvel de sistema, lgico ou fsico e ainda, para os processos de implementao e verificao do design. II. NVEL DE SISTEMA A. Especificao A primeira etapa de um projeto comea pela sua especificao quando so definidos os requisitos e as restries do mesmo, como frequncia de operao, potncia, rea, quantidade de memria, etc. Alm disso, necessrio separar o projeto em macro blocos. B. Microarquitetura A maneira para se atingir o resultado da especificao descrito na forma de uma microarquitetura, onde o designer vai descrever com detalhes cada macro bloco, suas interfaces e suas interaes. a diviso de um bloco em mdulos menores. Pode ainda ser definido como o passo entre a especificao e a descrio de hardware. Para esta fase possvel modelar o sistema utilizando CAD e linguagens como SystemC, evitando erros mais previsveis em estgios mais adiantados, ou mesmo tomar decises arquiteturais adiantadas visando a otimizao sem nem mesmo ter descrito o hardware na forma de RTL. Essa simulao chamada de TLM (Transaction Level Modeling) e permite observar se a arquitetura desempenha a funcionalidade necessria, vai de encontro com as especificaes do usurio, atinge as metas de performance e consumo, alm de ter a definio da viabilidade do projeto[2]. A Figura 1 mostra o modelo da estrutura utilizada em TLM. Essa proposta utiliza uma estrutura com registradores mapeados em memria, definies de entradas e sadas, comportamentos independentes do tempo e polticas para timing e potncia definidas pelo usurio do CAD. O software Mentor Graphics Vista Architect um exemplo de CAD system level[2].
Fig. 1. A estrutura usada para modelagem TLM. III. NVEL LGICO A. RTL Neste nvel de abstrao, a descrio de hardware tal qual consta na microarquitetura implementada pelo designer utilizando RTL (Register Transfer Language), que representa de forma precisa e que no gera ambiguidades em um design[3], pois desenvolver e realizar debug em um circuito diretamente considerando portas lgicas seria uma tarefa muito difcil. Designs consistem de mdulos e suas ligaes, fazendo com que o projetista possa reaproveitar partes do circuito e tornando o mesmo hierarquizado e de mais fcil manuteno. Para este passo, linguagens como Verilog (Fig. 2) ou VHDL so utilizadas.
Fig. 2. Cdigo RTL de um Full Adder em Verilog. B. Sntese Lgica Aps a etapa de descrio, existe a de sntese lgica, um processo no qual o RTL da etapa anterior analisado semanticamente, separado em smbolos, otimizado e mapeado para uma biblioteca de clulas digitais padro (standard cells). O cdigo mapeado para portas lgicas ou gates permite uma aproximao do circuito real um pouco melhor do que no nvel de sistema. Estimativas pouco precisas de rea, potncia e de timing so possveis. Esta etapa uma das que mais possui pesquisa na rea, incluindo algoritmos para encontrar equivalncias entre funes lgicas, estruturas de dados mais eficientes para representar e manipular funes booleanas, formas de representao de tabelas verdade como inteiros, sntese de mquinas de estado e representao de circuitos por AIG (And-Inverter Graph), que uma forma de descrever o mesmo em nodos AND e Inversores interconectados, o que facilita a busca pelo caminho crtico e o corte e reescrita em AIGs, um processo de simplificao lgica, algo que vai alm do tradicional Mtodo de Quine-McClusckey, visando reduzir o nmero de nodos e a profundidade lgica do circuito.
Fig. 3. A estrutura And-Inverter Graph(AIG). Um circuito digital pode ser combinacional ou sequencial, conforme a apresentao ou no de certos elementos. Conforme [4], um AIG combinacional uma rede booleana composta de portas AND de duas entradas e inversores. O tamanho de um AIG o nmero de nodos que o compe e est relacionado diretamente rea de um circuito e a profundidade o nmero de nodos do caminho mais longo, partindo de uma entrada primria at uma sada primria, e faz relao direta com o delay do circuito representado. A meta de transformaes locais em AIG reduzir a rea e o delay. Existem tambm AIGS sequenciais, que introduzem elementos sequenciais estrutura lgica dos AIGS combinacionais. Os elementos sequenciais so considerados latches tipo D com uma entrada e uma sada. Para todos os latches considera-se o mesmo clock, que omitido na representao do AIG. O software ABC da Universidade de Berkeley permite a converso de uma forma abstrata de um circuito em portas lgicas[5]. Com funcionalidades semelhantes a este software, e de acordo com [6], a Universidade Federal do Rio Grande do Sul desenvolve uma sute de aplicativos: Switchcraft, que um ambiente com diversas ferramentas para gerar uma rede de transistores a partir de uma descrio de um circuito, possibilitando estimar delay, rea e potncia dissipada (dinmica e esttica); Karma, que implementa mapas de Karnaugh, minimizao de Quine-McClusckey, rvores de // Full Adder rtl
// Cria duas instancias de half-adders para o circuito.
half_adder u1_half_adder ( .in_x(in_x), .in_y(in_y), .out_sum(w_sum1), .out_carry(w_carry1) ); half_adder u2_half_adder ( .in_x(w_sum1), .in_y(carry_in), .out_sum(sum_out), .out_carry(w_carry2) ); endmodule Deciso Binrias e outras funes associadas; Logic2Logic, que possibilita converter funes lgicas para diferentes formatos de representao (tabela-verdade, expresso, BLIF, termos, BDD, expresses fatoradas e inteiros), sendo possvel tambm comparar e visualizar expresses; e o ELIS, um software que integra diversos mtodos para sntese lgica, semelhante ferramenta SIS de Berkeley, com a diferena que o mapeamento livre de bibliotecas. O final do processo de nvel lgico gera uma netlist ou lista de portas lgicas, ou gates, que ser utilizado como insumo para o prximo nvel, que a concepo fsica do circuito, j visando uma determinada tecnologia de fabricao. IV. NVEL FSICO Com a gerao da lista de portas lgicas interconectadas, possvel j estimar com baixa qualidade resultados de rea das portas lgicas, potncia e timing, utilizando alguns algoritmos que se baseiam em estatsticas e alguns valores ideais de um circuito, mas s aps a concepo fsica do mesmo que essa estimativa se torna mais prximo do real. Este nvel pode ser dividido em diversas fases, como: Floorplanning, Placement, Sntese Fsica, Scan Reorder, Otimizaes Pr-Sntese de rvore de Clock, Sntese da rvore de Clock, Roteamento, Otimizaes Ps-Roteamento, alm das etapas paralelas de Extrao de Parasitas, Clculo de Delay, Integridade de Sinais e Static Timing Analysis [7] [10]. A. Floorplanning A fase de floorplanning consiste na definio do tamanho do die e instanciao de pads; no posicionamento de macro blocos, planejamento de alimentao e alocao de rea no chip (Figura 4). A organizao dos blocos visa facilitar as fases seguintes, tentando evitar problemas relacionados a efeitos fsicos dos elementos, como temperatura, queda de tenso, delay e roteabilidade do design. As entradas para essa fase so: uma netlist de nvel de portas lgicas em Verilog ou outra linguagem de descrio de hardware; restries do projeto, como timing e power; e dependendo da metodologia, bibliotecas com informaes fsicas e de timing sobre as clulas, no caso de standard cells. A sada para standard cells um design dividido em macro blocos com dados sobre conectividade lgica em Verilog ou outra HDL (Hardware Description Language) e mais dados fsicos do design [7] [10].
Fig. 4. Floorplanning. B. Placement Este passo composto pelo processo de disposio de clulas (metodologia standard cells) num design em que se realizou floorplan previamente. Serve como etapa intermediria para verificar se o floorplanning foi efetivo, mostrando se aquela disposio fsica proposta ser vivel, pois um floorplan inicial pode no disponibilizar o espao necessrio para todas as clulas e macro blocos do design, o que deve ser visto antes das prximas etapas para tentar evitar o retrabalho. Para este passo, algoritmos de placement top-down ou bottom-up podem ser aplicados. No caso de bottom-up as clulas de cada bloco podem ser dispostas separadamente, como se cada bloco fosse um processo computacional de placement. No caso de top-down, usado para designs menores, as clulas vo sendo alocadas todas de uma vez. Para designs maiores onde se usa bottom-up, processamento paralelo pode ser feito, dependendo do CAD utilizado [7] [10]. C. Sntese Fsica A sntese fsica a combinao da sntese lgica e do placement (metodologia standard cells). Para alcanar restries do projeto (timing, por exemplo), a sntese fsica deve ser executada, possibilitando o resizing de componentes e a reestruturao lgica. O resizing consiste na substituio da clula por outra com caractersticas de capacitncia mais adequadas a atender as restries de timing do circuito em questo. Arquivos Liberty(.lib) e Library Exchange Format (.lef) descrevem em formato ASCII das clulas. Os arquivos Liberty apresentam dados como: funo da clula; condies de operao; capacitncia total de entrada e sada da rede; e informao de timing para cada pino de sada em relao a cada pino de entrada (Figura 5). J os arquivos LEF encapsulam dados de layout de camadas de metal de uma clula, localizao de pinos de entrada e sada e roteamento interno da clula, possibilitando conhecer a rea em que no possvel rotear outros sinais. Os atributos presentes nos arquivos LEF de capacitncia e resistncia so usados para calcular delays, efeitos de cross-talking e outros parmetros de verificao fsica [7] [10].
Fig. 5. Exemplo de informao de timing de um pino Y em um arquivo LIB. pin(Y) { direction: output; capacitance: 0.0; function: "(A B)"; internal_power() { related_pin: "A"; cell_rise(delay_template_7x7) { index_1 ("0.04, 0.07, 0.1, 0.2, 0.5, 1.0, 2"); index_2 ("0.006, 0.030, 0.078, 0.174, 0.366, 0.749, 1.523"); values ( \ "0.07, 0.09, 0.13, 0.20, 0.35, 0.64, 1.23", \ "0.08, 0.10, 0.13, 0.21, 0.35, 0.65, 1.24", \ "0.09, 0.11, 0.15, 0.22, 0.37, 0.66, 1.25", \ "0.11, 0.13, 0.17, 0.25, 0.39, 0.68, 1.28", \ "0.14, 0.17, 0.20, 0.28, 0.42, 0.72, 1.31", \ "0.18, 0.21, 0.25, 0.33, 0.47, 0.76, 1.35", \ "0.23, 0.26, 0.31, 0.39, 0.54, 0.83, 1.42"); } D. Scan Reorder e Design for Testability Para ser possvel testar um circuito aps a sua fabricao, os elementos sequenciais do design so conectados de uma forma especial que funciona quando o chip est em modo de teste. Uma Scan Chain (cadeia de scan) a conexo dos registradores do design de forma que os padres de teste possam ser aplicados e os resultados obtidos durante o teste automtico. O passo de sntese lgica conecta arbitrariamente a cadeia de scan. A preocupao com a testabilidade dos dispositivos deu origem ao conceito de DFT (Design for Testability), que inclui pensar em como o roteamento das conexes de teste entre esses elementos ir impactar ao mnimo o roteamento dos outros sinais funcionais do circuito. A ordem entre registradores em que os sinais de teste percorrem o circuito no faz diferena, de forma que pode-se reordenar a cadeia de scan para que essas rotas sejam mnimas ou que interfiram o menos possvel no espao rotevel para outros sinais que no os de teste. O insumo para o CAD nessa etapa a sada do passo de sntese fsica e o arquivo de informaes da cadeia de scan no formato SCANDEF, provido pela sntese lgica. Com a definio de onde ficaro as clulas, faz muito mais sentido reordenar a cadeia de scan que foi produzida em uma etapa que no se tinha idia ainda de como as clulas seriam dispostas fisicamente. Uma anlise que escolha a menor utilizao possvel de rotas na rea do chip desempenhada pelo CAD [7] [10]. E. Otimizaes Pr-Sntese e rvore de Clock Aps cada etapa necessrio continuar verificando se as restries do projeto de timing ainda so contempladas. Com as clulas dispostas em uma posio, possvel calcular violaes de tempo que possam ter sido inseridas no design j que se tm os delays baseados nas interconexes estimadas. Para essas correes, o CAD pode realizar upsizing ou downsizing das clulas, inserir buffers ou resintetizar caminhos para melhorar o timing. A sntese da rvore de clock o processo de inserir buffers no caminho de clock para minimizar o skew e latncia do mesmo, provendo otimizao em timing. A partir deste momento, o clock do circuito no mais tratado como ideal, e apresenta atributos como skew, latncia, tempo de transio, etc. Aps a criao da rvore de clock, uma nova anlise executada pelo CAD para verificar se a sntese da rvore de clock adicionou algum distrbio em outros caminhos do circuito. A otimizao Post-CTS pode realizar a insero de buffers, resizing de clulas ou ainda, alteraes na recm- criada rvore de clock, tentando alcanar o melhor timing possvel dado as restries do projeto [7] [10]. F. Roteamento e Otimizaes O roteamento consiste em conectar os pinos das clulas, macro blocos ou pads de um circuito para que corresponda ao esquemtico. Essa fase tambm feita em vrias iteraes, realizando um roteamento preliminar para a obteno do congestionamento de rotas, o que indica que um bloco necessita de que seja retrocedido um passo e se faa o placement novamente, mas utilizando uma densidade menor de clulas para que sobre espao para roteamento. Os algoritmos de roteamento tentam minimizar o mximo possvel dos congestionamentos de rotas e o impacto em timing em caminhos crticos. Aps o roteamento, as ligaes antes estimadas, so reais e as informaes de timing so mais realistas. As otimizaes podem ser feitas nessa fase so de incluso de buffers, resizing e novas modificaes no circuito. As otimizaes podem levar em considerao: as extraes de resistncia e capacitncia de cada rede; clculo de delay das interconexes e clulas; a integridade de sinais; e a anlise de timing. O resultado dessa fase so layouts no formato que permita a confeco de mscaras para a fabricao do chip. Um formato existente para esse passo o GDSII [7] [10]. G. Sign-off Para concluir o desenvolvimento de um chip e envi-lo para a fabricao, so necessrias algumas verificaes, como: Layout versus schematic (LVS), design rule check (DRC), e de potncia. No LVS (Figura 6), o CAD faz uma comparao do layout produzido com o esquemtico, verificando a conectividade do design. O processo de DRC consiste em ter a certeza de que aquele layout produzido fabricvel dado certo n tecnolgico, verificando espaamentos mnimos, tamanhos de via, sobreposies mnimas e outras regras de design para mitigao de falhas dado o processo de fabricao [7] [10].
Fig. 6. Layout versus Schematics(LVS). CONCLUSES A rea de CAD para microeletrnica no mbito de circuitos digitais to ampla quanto as diversas formas de se desenvolver um circuito dessa natureza e sua crescente complexidade. As possibilidades de se combinar metodologias diferentes, como a que utiliza biblioteca de clulas padro e as que so library-free, alm de poder se utilizar de diferentes algoritmos para casa etapa adiciona um grande nmero de possibilidades de pesquisa na rea j que cada etapa pode ser enxergada como bem definida e substituda por algum processamento em que as entradas e sadas sejam as mesmas, porm mais eficiente. Essa questo leva tambm a estudos na parte que envolve a integrao de todos esses passos e algoritmos e os diferentes formatos de arquivos ou mensagens entre processos para troca de informaes e interoperabilidade. Os softwares CAD para microeletrnica tm muitas iniciativas comerciais como as sutes da Synopsis, Cadence e Mentor Graphics[8], mas se encontra muitas solues acadmicas que englobam a maioria das etapas do fluxo de desenvolvimento de circuitos digitais, como o caso em [5], [9] e em [11], onde se prope uma padronizao de troca de mensagens para a integrao das diversas ferramentas de CAD. Esse trabalho apresenta um resumo do panorama da rea de CAD, facilitando o entendimento do encadeamento entre as diversas etapas do fluxo de integrao digital e a visualizao da necessidade crescente de pesquisas na rea, tanto na criao de novos algoritmos quanto para otimizaes de algoritmos j conhecidos. medida que os circuitos vo se tornando mais complexos e maiores, a complexidade de software envolvida acompanha este crescimento e novas proposies para processamento paralelo, otimizaes e a diviso do problema em blocos que possam ser executados dessa forma devero ser desenvolvidas. REFERNCIAS [1] Weste, N. H. E., and Harris, D. CMOS VLSI Design 4th Edition, Addison-Wesley, 2011. [2] Mentor Graphics, Electronic System Level Design, website: http://go.mentor.com/32iew. [3] D. August, Computer architecture and organization, Lecture 15: Register Transfer Language. Princeton University: Princeton, NJ: 2004. [4] R. Brayton, A. Mishchenko, Sequential Rewriting. EECS Department, University of California, Berkeley, CA: 2007. [5] A. Rengaraj, ABC Logic Synthesis basics. College of Engineering UmassAmherst. Amherst, MA: 2011. [6] Instituto de Informtica INF UFRGS, Logic circuit synthesis lab, website: http://www.inf.ufrgs.br/logics/. [7] Cadence, Digital IC Basics 03 (Lectures e Class Notes), 2009. Cadence Design Systems. [8] Mentor Graphics, Vista Architect, website: http://www.mentor.com/esl/. [9] G. Posser, Dimensionamento de portas lgicas usando programao geomtrica. Instituto de Informtica INF UFRGS. Porto Alegre, RS: 2011. [10] O. C. Gouveia Filho, Projeto de circuitos integrados digitais. Departamento de Engenharia Eltrica UFPR. Curitiba, PR. [11] J. D. Togni, M. L. B. Lisba, e R. P. Ribas, Integrao de ferramentas e ambientes de CAD para microeletrnica. Instituto de Informtica INF UFRGS. Porto Alegre, RS: 2003.