Criação de Layouts Digitais Utilizando Ferramentas de Síntese e Place&Route Automáticas Licenciatura em Engenharia Electrotécnica e de Computadores – Projecto, Seminário ou Trabalho Final de Curso 2003/2004 Aluno: Fernando José Soares Leal ( [email protected] ) Local de Trabalho: FEUP ( Lab. Microelectrónica I223 ) e Chipidea Orientador: Prof. João Canas Ferreira ( [email protected] ) Página Web: www.fe.up.pt/~ee00236/ Supervisor: Engº Célio Albuquerque ( [email protected] ) INTRODUÇÃO back-end digital front-end O trabalho insere-se na segunda parte do projecto de circuitos integrados digitais, ou seja, a obtenção de um layout digital a partir das descrições HDL do circuito pretendido. Para tal foram utilizadas as ferramentas de CAD automáticas apropriadas. Pretende-se pois executar a Síntese Lógica, Place&Route e Verificação Final de alguns blocos digitais já correctamente codificados e validados. Os blocos foram implementados numa tecnologia de Standard-Cells de 0.18µm. Contemplava-se a execução de blocos de complexidade variável e pretendia-se verificar os resultados obtidos com diferentes abordagens na utilização das ferramentas. Síntese Lógica Descrições HDL Place&Route Netlist Gate-Level Verificação Final Layout Digital MOTIVAÇÃO As tarefas de Síntese Lógica e Place&Route, embora parcialmente automatizadas através do recurso às ferramentas de CAD, são de vital importância para o sucesso ou fracasso do resultado final. Importa portanto conseguir realizá-las de maneira a obter, não só o melhor resultado possível, mas também obtê-lo dentro de parâmetros competitivos. SÍNTESE LÓGICA Ficheiro .synopsys_dc Netlist Gate-Level Bibliotecas Tecnológicas Para Place&Route Design Compiler Descrições HDL Reports Scripts de Síntese Top-level Instruções de: SubBloco1 -Condições de Operação -Restrições Temporais A tarefa consiste numa tradução das descrições em HDL (Verilog, no caso) dos circuitos em portas lógicas. No final é gerada uma netlist chamada de gate-level que será usada para fazer o Place&Route. A ferramenta tem como entradas: as bibliotecas tecnológicas e as descrições HDL; O ficheiro de configuração .synopsys_dc, que deverá ser atentamente trabalhado; e os scripts de síntese criados pelo projectista, onde constarão todas as instruções para as operações a serem executadas pela ferramenta. OBJECTIVO As diversas tarefas que compõem o back-end digital revestem-se de uma complexidade bastante apreciável. Isto deve-se, logo de início, ao trabalho em circuitos de grande dimensão em termos de número de transístores, dimensão essa que obriga à utilização das referidas ferramentas. Serão elas que se encarregarão de semiautomatizar algumas tarefas que de outro modo seriam simplesmente impracticáveis. Estas ferramentas são, no entanto, bastante genéricas, pelo que a sua utilização para cada determinado circuito ou bloco de circuito implica a tomada de uma série de decisões de estratégia de utilização, bem como uma configuração muito apurada, de modo a se conseguir obter aquilo que era pretendido. É exactamente nisto que este trabalho incidiu. No final pretendia-se ter obtido conhecimentos profundos sobre todas estas questões que surgem durante o back-end digital. Estes conhecimentos irão permitir uma muito maior sistematização e portanto fluidez nas tarefas, o que levará inevitavelmente a uma maior competitividade, num ambiente empresarial em que o time-to-market desempenha um papel fulcral. Para a síntese Lógica foi utilizada a ferramenta DesignCompiler da Synopsys. SubBloco n Estes scripts são exactamente o factor onde existe maior grau de liberdade e por isso concentram em si a maior parte da complexidade da Síntese. Tiveram de ser tomadas decisões em diversas áreas, tanto mais gerais como a estratégia de síntese, ou mais particulares como restrições a impor ou introdução de características particulares a um circuito ou bloco. -Inserção de Scan-Chains -Compilação/Optimização -Verificação No final foram gerados também diversos reports que permitiram analisar os resultados da síntese. -Geração de Reports PLACE & ROUTE Bibliotecas Tecnológicas ficheiro LEF ) LAYOUT DIGITAL ( BitStream ( formato GDS ) Bibliotecas Tecnológicas ( ficheiro Verilog ) Silicon Ensemble Timing Librarys ( ficheiro CTLF ) CT-Gen Netlist Gate-Level Netlist Post-Layout ( Verilog ) Ficheiros ctgen.commands ctgen.constraints Para geração de esquemático Para o Place&Route foi utilizada a ferramenta Silicon Ensemble da Cadence. A tarefa consiste na definição e implementação do desenho físico dos blocos já sintetizados. É feita a definição dos vários parâmetros para o layout, a colocação das células da tecnologia adequadas da forma pretendida (placement), o dimensionamento e planeamento de linhas de alimentação e suas ligações. Poderá incluir outros itens como, por exemplo, inserção de pads ou geração de clock-trees (como no caso). Finalmente, é feito o encaminhamento (routing) de todas as ligações começando pelas mais prioritárias, ou seja, as referentes aos clocks. Sequência de Tarefas PLANO DE TRABALHO Estava previsto o seguinte plano de trabalho: - Estudo das ferramentas a utilizar - Síntese e Place&Route de blocos digitais de complexidade variável. - Elaboração do Relatório Final Floorplanning Placement Ex. de parâmetros: -Aspect Ratio -IO to Core Distance -Row Utilization Power Routing Clock Trees Generation Ex. de operações: -Especificação de Power Rings -Especificação de Stripes Filler Cells Procedimentos: Identificação de células disponíveis -Inserção recursiva das maiores para as menores Routing Procedimentos: Clock Routing -Global/Final Routing ou WROUTE VERIFICAÇÃO FINAL Para a Verificação Final (signoff) foi utilizada a ferramenta Calibre da Synopsys. Esta é a ferramenta aconselhada pela foundry para a tecnologia em causa. Ficheiro com as regras a cumprir BitStream completo ( formato GDS ) Reports Calibre Netlist Spice Extraida do esquemático Tarefas DRC LVS A tarefa consiste na execução do DRC- Design Rules Check e do LVS- Layout vs Schematic. Estas duas verificações permitem aferir a correcção do design antes de uma eventual inclusão noutros projectos ou mesmo produção. O DRC verifica se não há violações ás regras de desenho relativas à tecnologia. O LVS confirma a correcção das ligações ou seja, se o circuito corresponde realmente ao esquemático pretendido. Ambas as operações geram reports de erros para posterior análise. RESULTADOS e CONCLUSÔES A execução do trabalho veio confirmar a complexidade das tarefas envolvidas. O aparecimento consecutivo das mais diversas questões, que originaram por exemplo muitas repetições de operações, colocou de facto em realce a importância que assume o seu conhecimento e experiência na sua resolução para uma sistematização cada vez maior do trabalho. Compreende-se pois que, num meio de produção, seja vital que todo este processo seja feito da forma mais fluída e rápida possível. Apesar do esforço envolvido, e confirmando uma vez mais a complexidade verificada, apenas foi executado um bloco digital. Na figura da direita pode-se ter uma ideia do aspecto visual do layout digital obtido. Este layout passou sem erros a fase de verificação final (executada na Chipidea). No final, penso ter realmente adquirido os conhecimentos pretendidos, apesar de obviamente, a execução de outro bloco ser desejável para a consolidação dos mesmos. Referências Bibliográficas: [1] User’s Guide e Tutoriais disponibilizados pela Synopsys e Cadence; [2] Cadence Silicon Ensemble in the Digital Backend Domain for AMIS 0.35 Autores: J. Neves Rodrigues, T. Olsson e T. Lenart; [3] Place & Route with Silicon Ensemble Autor: T. Lenart - Lund University; [4] Step by Step guide to Place&Route with Cadence Silicon Ensemble Autor: J.C.Alves – FEUP; [5] Clock Tree Generation Autor: Lund University; Retirados da Internet Agradecimentos: aos professores João Canas Ferreira e José Carlos Alves; aos Engenheiros Célio Albuquerque e Pedro Alves da Chipidea, pela disponibilidade sempre demonstrada. Recebe, como entradas, os vários ficheiros da tecnologia e a netlist gate-level criada pela Síntese. No final é exportado um ficheiro bitstream em formato GDS e eventualmente uma descrição Verilog do layout (para geração de esquemático)