Introdução aos Circuitos Integrados de Aplicação Específica João Canas Ferreira Projecto de Circuitos VLSI FEUP/LEEC Contém figuras de Application-Specific Integrated Circuits, Michael J. S. Smith, Addison-Wesley Tópicos Circuitos não-programáveis Circuitos programáveis Fluxo de projecto PCVLSI: Introdução aos CIAEs 2/14 2006-02-28
Circuitos Integrados de Aplicação Específica CIAEs (=ASICs) são circuitos orientados para a implementação de tarefas específicas em domínios bem definidos. Exemplos: processamento de áudio e vídeo; indústria automóvel; telecomunicações (com ou sem fios). Os CIAEs estão em contraste com os circuitos de aplicação geral, como: microprocessadores e microcontroladores; memórias estáticas e dinâmicas. Existem muitos tipos de CIAEs, que se distinguem segundo: custo; desempenho (rapidez, consumo de potência); tempo de desenvolvimento; tempo de fabrico; número de unidades fabricadas (viabilidade económica). PCVLSI: Introdução aos CIAEs 3/14 2006-02-28 Circuitos full-custom Projecto completo e individualizado de todos os aspectos do circuito (dimensão e colocação dos dispositivos e respectivas interligações) Usado também para os circuitos de aplicação geral. Só faz sentido quando os requisitos do projecto impedem a utilização de bibliotecas pré-caracterizadas (tecnologia nova, requisitos muito fortes de rapidez ou consumo). Arriscado e demorado (mau para time-to-market). Time-to-market é uma das principais preocupações actuais em certos mercados importantes, como a electrónica de consumo. O fabrico envolve a definição de todas as máscara. Para uma tecnologia avançada (abaixo de 100 nm), a produção das máscaras pode custar cerca de 1 milhão de dólares. Tempo de fabrico (turnaround-time): cerca de 2 meses. PCVLSI: Introdução aos CIAEs 4/14 2006-02-28
Circuitos standard-cell Circuito usa células pré-desenhadas e pré-caracterizadas que implementam portas lógicas, flip-flops e outros circuitos simples. (CBIC = cell-based IC.) O circuito também pode incluir blocos (mega-células), que são células mais complexas (núcleo de processador, RAM) standard-cell area fixed blocks 1 2 3 O risco associado ao projecto é significativamente reduzido (por comparação com full-custom). 0.02 in 500 µm 4 5 Fabrico envolve o conjunto completo de máscaras. PCVLSI: Introdução aos CIAEs 5/14 2006-02-28 Exemplo de uma célula standard Todas as células têm a mesma altura, com as ligações de alimentação percorrendo a célula horizontalmente. As células são ligadas por justaposição. Cada célula tem contactos (quadrados escuros na figura). Podem existir múltiplas células para uma dada funcionalidade, diferindo em largura, rapidez, consumo. Células especiais: feedthrough, spacer cells, row-end cells. PCVLSI: Introdução aos CIAEs 6/14 2006-02-28
Exemplo de encaminhamento num CBIC 1 250λ expanded view of part of flexible block 1 terminal VSS to power pads VDD no connection metal1 metal2 connection VSS to power pads VDD Z row-end cells feedthrough cell A.11 cell A.14 cell A.23 cell A.132 metal2 spacer cells metal2 I1 power cell metal1 metal1 rows of standard cells 50λ PCVLSI: Introdução aos CIAEs 7/14 2006-02-28 Matrizes de transístores Transístores estão pré-fabricados (matriz de base) Célula primitiva é replicada por todo o circuito. Faltam apenas alguns níveis (superiores) de metalização. MGA = Masked Gate Array As máscaras de metalização permitem personalizar o circuito. Projectista (via ferramenta de CAD) escolhe células pré-desenhadas ( macros ). Custo do fabrico da bolacha é distribuído por múltiplos clientes/projectos. Utilização de um pequeno número de máscaras. Turnaround-time: 2 dias 2 semanas. PCVLSI: Introdução aos CIAEs 8/14 2006-02-28
Tipos de MGA base cell base cell embedded block array of base cells (not all shown) array of base cells (not all shown) array of base cells (not all shown) Channeled GA Distância entre linhas de células é fixa. Channelless GA Sea-of-Gates (SOG) structured GA masterslice Inclui blocos prédefinidos (RAM, CPU, etc.). PCVLSI: Introdução aos CIAEs 9/14 2006-02-28 MGA: célula base e personalização PCVLSI: Introdução aos CIAEs 10/14 2006-02-28
Dispositivos lógicos programáveis macrocell programmable interconnect Programmable Array Logic (PAL) modelo 22V10 Cada macrocélula é equivalente a uma pequena PAL. PCVLSI: Introdução aos CIAEs 11/14 2006-02-28 Field-Programmable Gate Arrays Nenhuma máscara é alterada. Tanto os blocos lógicos como as interligações são configuráveis. A configuração pode ser volátil ou não-volátil. Arquitectura mais comum: matriz de blocos lógicos (island FPGA). Pinos de E/S também são configuráveis. Configuração demora alguns ms (valor típico); geração da configuração pode demorar algumas horas (frequentemente, apenas alguns minutos). programmable basic logic cell programmable interconnect PCVLSI: Introdução aos CIAEs 12/14 2006-02-28
Exemplo de um bloco lógico PCVLSI: Introdução aos CIAEs 13/14 2006-02-28 Fluxo de projecto 1. Captura esquemática ou linguagem de descrição de hardware (Verilog/VHDL). 2. Lista de portas lógicas + mapeamento em células. 3. Sistemas muito grandes são divididos em vários CIs. 4. Simulação sem informação das interconexões. 5. Disposição global dos blocos no CI. 6. Colocação das células. 7. Definição das interconexões. 8. Extracção da informação física (principalmente das interconexões). 9. Simulação com informação física detalhada. back-annotated netlist prelayout simulation postlayout simulation circuit extraction design entry logic synthesis system partitioning floorplanning placement routing netlist VHDL/Verilog PCVLSI: Introdução aos CIAEs 14/14 2006-02-28 4 9 8 start 1 2 3 5 6 7 finish A A B chip block logic cells logical design physical design