TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Grupo de Apoio ao Projeto de Hardware - GAPH Tópicos Especiais em Sistemas Digitais I Fernando Gehm Moraes e Ney Laert Vilar Calazans Agosto / 2001 (última atualização em 22/08/2001) Fernando Gehm Moraes e Ney Laert Vilar Calazans 1/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I O que FPGAs têm de especial? “Permitem mudar a maneira de pensar, projetar e desenvolver produtos contendo sistemas digitais de alta complexidade: considerar a criação de hardware personalizado, ao invés de só usar dispositivos de prateleira rígidos (em inglês, off-the-shelf).” Mas, por quê? Fernando Gehm Moraes e Ney Laert Vilar Calazans 2/36 Por quê? TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I • FPGAs: possíveis ganhos dramáticos de custo e desempenho; • FPGAs permitem: – criar hardware como software; – mudar hardware total ou parcialmente; – alterar hardware, durante funcionamento ou não; • Atualizações: como software, e.g. via Internet; • 70% dos FPGAs vendidos: valor agregado a produtos telecom; • FPGAs: capacidade de 3.000 a 10.000.000 de portas NAND; • CAD: poderosíssimo e complexo, pré-validação imprescindível; • VHDL: alto nível de abstração para projeto e validação; • VHDL: ferramentas de síntese automatizada para FPGAs. • Pessoal de Informática PODE fazer projeto de SDs complexos! Visa-se, finalmente, produtos mais competitivos! Fernando Gehm Moraes e Ney Laert Vilar Calazans 3/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Onde Buscar Mais Informações? • Homepage de fabricantes de PLDs, e.g.: – www.xilinx.com, www.altera.com, www.actel.com, www.atmel.com • Homepage de fabricantes de plataformas de prototipação e.g.: – www.xess.com/FPGA, www.aptix.com, www.vcc.com • Página de plataformas baseadas em FPGA de S. Guccione: – www.io.com/~guccione/HW_list.html • Homepage de fabricantes de sistemas de CAD: – www.synopsys.com, www.aldec.com • Homepage de links para sites relacionados a FPGAs: – http://www.mrc.uidaho.edu/fpga/ • Livros disponíveis na biblioteca sobre FPGAs, VHDL, Codesign Fernando Gehm Moraes e Ney Laert Vilar Calazans 4/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Sumário 1 - Introdução 2 - FPGAs 3 - Projeto de SDs usando CAD 4 - O Desafio de Sistemas Complexos Fernando Gehm Moraes e Ney Laert Vilar Calazans 5/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I 1 - Introdução Sistema Digital - Aparato dotado de conjuntos finitos de entradas e saídas e capaz de processar informação representada sob forma numérica. Em francês, systèmes numériques! Entradas Saídas E(1) C(1) S(1) C(K+1) E(2) C(2) S(2) C(K+2) E(K-2) C(K-2) E(K-1) C(K-1) Sistema Digital Processamento Numérico de Informação E(K) C(K) Fernando Gehm Moraes e Ney Laert Vilar Calazans S(3) C(K+3) S(L-1) C(K+L-1) S(L) C(K+L) 6/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Projeto e Fabricação de SDs VLSI • Projeto de SDs - método p/ desenvolver plano de um SD manufatura automática; • Estilo de Projeto - conjunto de métodos; • Base da tecnologia atual - processos planares de fabricação; • CI VLSI moderno - pastilha de 1cm2 de lado, espessura < 1mm, >107 dispositivos; • Parâmetro de base - “min-feature-size”: em 96 - 0,25µm/ em 98 - 0,18µm e 0,12µm/ hoje, abaixo de 0,1 µm!!! Fernando Gehm Moraes e Ney Laert Vilar Calazans 7/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Taxonomia de SDs • Fundamental - escolha de critérios de classificação adequados; • Ortogonalidade - meta da escolha de critérios; • Critérios - podem depender de diversas características físicas, de uso, de construção, de custo, etc. • Critérios: – personalizabilidade – programabilidade – retenção da personalização – complexidade – forma de produção – relação entradas/saídas – pressupostos de sincronismo, etc. Fernando Gehm Moraes e Ney Laert Vilar Calazans 8/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Uma classificação de CIs baseada em vários critérios NÃO PROGRAMÁ VEIS OU RÍGIDOS EX: FAMÍLIA TTL 74XX NÃO PERSONALIZÁVEIS OU FIXOS PROGRAMÁVEIS EX: FAMÍLIA INTEL MCS'86 RETENÇÃO EM FUNCIONAMENTO EX: FPGA BASEA DO EM RAM CIRCUITOS INTEGRADOS PÓS-FABRICAÇÃO RETENÇÃO ETERNA, EXCETO POR PROCEDIMENTOS ESPECIAIS EX: EPROM, EEPROM, FPGA BASEADO EM EPROM RETENÇÃO ETERNA, APÓS PRIMEIRA PERSONALIZAÇÃO EX: PROM, FPGA BASEADO EM ANTIFUSÍVEIS PERSONALIZÁVEIS PRÉ-DIFUNDIDOS EX: GATE ARR AY PARCIALMENTE PERSONALIZÁV EIS, OU SEMI-DEDICADOS, OU PRÉCARACTERIZADOS (SEMI-CUSTO M) PÓS-DIFUNDIDOS EX: STANDARD-CELL POR FABRICAÇÃO TOTALMENTE PERSONALIZÁVEIS, OU DEDICADOS (FULL-CUSTO M) Fernando Gehm Moraes e Ney Laert Vilar Calazans 9/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Modelo de Gajski-Kuhn ou Diagrama Y Domínio Estrutural Domínio Comportamental Sistêmico Arquitetural Processadores, Memórias, Barramentos Processos Comunicantes, Algoritmos Registradores, ULAs, Muxs, Decods Portas Lógicas, Biestáveis Transistores, Lineares Lógico HDLs, Transferência entre Registradores Elétrico Expressões Booleanas, Tabelas de Transição Funções de Transferência, Equações Diferenciais • Modelo bidimensional; • Critérios: nível de abstração e domínio de descrição; • Domínio de descrição = tipo de informação; "Layout" de Transistores e Lineares Planta Baixa de Células Lógicas Planta Baixa de Blocos de CIs Placas, Módulos Multi-chip Domínio Físico Círculo = nível de abstração, eixo = domínio de descrição; Intersecção círculo-eixo (vértices) = descrição; Transformação entre níveis (aresta no grafo) = ferramenta. Fernando Gehm Moraes e Ney Laert Vilar Calazans 10/36 Exemplo de representação do processo de projeto TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Domínio Estrutural Processo Clássico de Projeto de SDs Domínio Comportamental Português Estruturado Editor de Esquemáticos Diagrama de Blocos Diagrama de Tempos Diagrama de Esquemáticos Particionamento, Posicionamento, Traçado de Rotas • Ponto de Partida especificação informal; • Captura/Validação - Editor de esquemáticos e Simulador; Simulação, "Back Annot ation" Minimização Elétrico "Lay out" de Transistores Lógico Arquitetural Sistêmico Domínio Físico Síntese física - Posicionamento e Traçado de Rotas, seguido de “back-annotation” e ressimulação; Fernando Gehm Moraes e Ney Laert Vilar Calazans 11/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I 2 - FPGAs 2.1 - Introdução - PLDs 2.2 - Características Gerais de FPGAs 2.3 - Arquitetura da Família XC4000 da Xilinx 2.4 - Fluxo de Projeto p/ a Família XC4000 Fernando Gehm Moraes e Ney Laert Vilar Calazans 12/36 2.1 - Introdução - PLDs TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I • Dispositivo eletrônico configurável pelo usuário – Descrição do circuito - Esquemático: nível lógico de abstração; Linguagem de Descrição de Hardware: nível arquitetural de abstração; Máquinas de estados finitas (FSM) – Configuração permanente, semipermanente ou dinâmica – Reconfiguração parcial durante funcionamento ou não • CPLD: Complex Programmable Logic Device – Arquiteturas de circuitos configuráveis baseados numa estrutura do tipo PAL ( AND/OR gates) – Baixa complexidade – Aplicação: pequenos projetos lógicos • FPGA: Field Programmable Gate Array – Arquiteturas de circuitos configuráveis constituídos por um número elevado de pequenos elementos – Complexidade elevada, milhares de portas lógicas – Aplicação: sistemas digitais complexos Fernando Gehm Moraes e Ney Laert Vilar Calazans 13/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Tecnologias de Implementação e Fabricantes • Memória de Configuração: – EPROM – EEPROM – Flash – Antifusíveis – SRAM • Fabricantes – Xilinx - SRAM (XC4000, Spartan, Virtex) e Flash (XC9500) – Altera - SRAM (Flex8K/10K,Apex,Acex), EPROM/EEPROM (Max5K/7K,9K) – Actel - Antifusíveis (ACT e ACT2) – Vantis, Lattice, Lucent, QuickLogic, … Fernando Gehm Moraes e Ney Laert Vilar Calazans 14/36 $ Millions 700 600 500 400 300 200 100 c gi ck Lo Q ui At m el re ss Cy p ce nt Lu Ac te l La t ti ce Va nt is x Xi lin ra 0 Al te TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Mercado de FPGAs em 1997 Source: Company reports & In-Stat. Includes SPLD, CPLD, FPGA revenues. Fernando Gehm Moraes e Ney Laert Vilar Calazans 15/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I 2.2 - Características Gerais de FPGAs • Configuração das funções lógicas combinacionais • Configurabilidade e Reconfigurabilidade • Opções de Arquiteturas Internas • Tendência Atual • XILINX - Família 4000 • Número de portas lógicas equivalentes • Altera - Família 10k Fernando Gehm Moraes e Ney Laert Vilar Calazans 16/36 Configuração das funções lógicas combinacionais TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I • LUT (look-up table): Altera, Xilinx • LUT - armazena uma tabela verdade de n entradas • LUT de n entradas - todas as funções Booleanas de n entradas 1 0 0 4 0 2 1 (2 ) = 64K funções implementáveis 0 tabela verdade armazenada em bits de memória, um registrador!! 0 0 F( A, B, C, D) = A.B.C.D + A.C.D + A.D 1 F( A, B, C, D) = (0, 3, 7, 8,10,12,14) 1 0 1 0 • Altera: 1 0 – LUT com portas lógicas - PLD 1 variáveis das funções lógicas ativam seleção no mux 0 15 ABCD Fernando Gehm Moraes e Ney Laert Vilar Calazans – Plano E configurável, conectado a uma porta lógica OU 17/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Configuração das funções lógicas combinacionais • Multiplexador: Actel, QuickLogic, Algotronix – estrutura conhecida como “gerador universal de funções lógicas” - ULG (Universal Logic Function Generator) – Não implementa todas as funções lógicas de n entradas – Funções lógicas mais complexas exigem diversos ULGs A B 0 1 0 0 Saída D 0 1 C1 C D 0 1 F( A, B, C, D) = C.D + A.B.C 1 0 C3 1 0 A 0 1 C 1 C2 B Fernando Gehm Moraes e Ney Laert Vilar Calazans 18/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Configurabilidade e Reconfigurabilidade • Antifusível - Actel, QuickLogic, CrossPoint – todas os pontos de conexão entre blocos lógicos estão inicialmente abertos – no momento da configuração do dispositivo FPGA, estes pontos são conectados permanentemente • EPROM/EEPROM - Altera, AMD – o dispositivo pode ser reconfigurado, removendo-se os dados através de exposição a raios ultra-violeta • Memória SRAM/Flash - Xilinx, Altera, Algotronix – o dispositivo FPGA deve ser configurado a cada utilização (ao conectar à alimentação) Fernando Gehm Moraes e Ney Laert Vilar Calazans 19/36 • Linhas de Blocos Lógicos - Actel – arquitetura semelhante a ASICs baseados em bibliotecas de células Linha de blocos lógicos Recursos horizontais de roteamento Blocos de entrada / saída Blocos de entrada / saída Blocos de entrada / saída TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Opções de Arquiteturas Internas Blocos de entrada / saída • Mar de Blocos Lógicos - Algotronix – Os recursos de roteamento são alocados sobre os blocos lógicos – Não há região dedicada de roteamento Fernando Gehm Moraes e Ney Laert Vilar Calazans 20/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Opções de Arquiteturas Internas • Matriz simétrica - Xilinx 4000 – matriz de blocos lógicos com recursos horizontais e verticais de roteamento • Hierárquico - Xilinx 6200 Bloco 16x16 – permite a reconfiguração parcial do FPGA Fernando Gehm Moraes e Ney Laert Vilar Calazans Bloco 4x4 Bloco Lógico 21/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Tendência Atual • Os dispositivos configuráveis com maior penetração no mercado possuem as seguintes características: – bloco lógico implementado como LUT (3-4 entradas) – configuração via memória SRAM (SRAM based), reconfigurável – arquitetura do tipo matriz simétrica • Razão – LUTs simplificam as ferramentas de síntese lógica – SRAM based permitem inúmeras reconfigurações – Matriz simétrica contém um número maior de recursos de roteamento • Principais Fabricantes: Xilinx e Altera Fernando Gehm Moraes e Ney Laert Vilar Calazans 22/36 XILINX - Família 4000 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Device XC4005XL XC4010XL XC4013XLA XC4020XLA XC4028XLA 14 x 14 20 x 20 24 x 24 28 x 28 32 x 32 466 950 1.368 1.862 2.432 Max RAM Bits 6.272 12.800 18.432 25.088 32.768 System Gates 3.000 – 9.000 7.000 – 20.000 10.000 - 30.000 13.000 - 40.000 18.000 - 50.000 112 160 192 224 256 XC4036XL XC4044XL XC4052XL XC4062XL XC4085XL 36 x 36 40 x 40 44 x 44 48 x 48 56 x 56 41.472 51.200 61.952 73.728 100.352 3.078 3.800 4.598 5.472 7.448 CLB Array Logic Cells Max User I/O Device CLB Array Max RAM Bits Logic Cells System Gates 22.-000 - 65.000 27.000 - 80.000 33.000 - 100.000 40.000 - 130.000 55.000 - 180.000 288 320 352 384 448 XC40110XV XC40125XV XC40150XV XC40200XV XC40250XV 64 x 64 68 x 68 72 x 72 84 x 84 92 x 92 9.728 10.982 12.312 16.758 20.102 Max RAM Bits 123.645 147.968 165.888 225.792 270.848 System Gates 220.000 265.000 300.000 400.000 500.000 448 448 448 448 448 Max User I/O Device CLB Array Logic Cells Max User I/O • Família VIRTEX: 50K até 4M de portas lógicas equivalentes, (4Mportas ao final de 1999). Já lançou VirtexII (até 10Mportas) Fernando Gehm Moraes e Ney Laert Vilar Calazans 23/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Número de portas lógicas equivalentes Logic Cells A partir de 1999, estimativas 1,000,000 Logic Gates 12M 2 Million logic gates 1.2M 100,000 120K 10,000 1,000 1994 12K Year 1996 1998 2000 2002 4Mportas - de fato em Jul/1999 10Mportas - de fato em Mar/2001 Fernando Gehm Moraes e Ney Laert Vilar Calazans 24/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Altera - Família 10k Device EPF10K30E EPF10K50E EPF10K100B EPF10K100E 30.000 50.000 100.000 100.000 1728 2880 4992 4992 24.576 40.960 24.576 49,152 220 254 191 338 EPF10K130E EPF10K200E EPF10K250E 130.000 200.000 250.000 Blocos lógicos 6.656 9.984 12.160 Max RAM Bits 65.536 98.304 81.920 413 470 470 System Gates Blocos lógicos Max RAM Bits Max User I/O Device System Gates Max User I/O • Família Apex : 50K até ~1,7M portas lógicas equivalentes • Breve lançará Apex-II: até 6M portas lógicas equivalentes • Cuidado! 1 porta Altera ~= 2 portas Xilinx Fernando Gehm Moraes e Ney Laert Vilar Calazans 25/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I 2.3 - Arquitetura da Família XC4000 da Xilinx Blocos lógicos configuráveis (CLBs) C1 C2 C3 C4 H1 DIN S/R EC • Alta densidade: até 250K gates • LUTs • Tempo de reconfiguração inferior a 1 segundo S/R Control G4 G3 G2 G1 DIN G Func. Gen. SD F' H' EC RD 1 F4 F3 F2 F1 H Func. Gen. F Func. Gen. Q D G' Y G' H' S/R Control Slew Rate Control DIN Vcc SD F' D G' D Q Q Output Buffer Pad H' Input Buffer EC RD 1 Q F' CLB Interconexão Configurável D Delay X H' K Passive Pull-Up, Pull-Down CLB I/O Blocks (IOBs) Switch Matrix CLB CLB Fernando Gehm Moraes e Ney Laert Vilar Calazans 26/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Bloco Lógico - CLB • Unidade que implementa as funções lógicas. Contém: – 2 LUTs de 4 entradas (F e G) e uma LUT de 3 entradas (H) – 2 flip-flops – LUTs podem também ser utilizadas como ROM, RAM, RAM dupla-porta – Saídas podem ser conectadas ou não aos registradores – flip-flops podem ser também configurados como latches FFX G1 G2 G3 G4 H1 H2 H3 F1 F2 F3 F4 XQ G_LUT X H_LUT F_LUT Y FFY Fernando Gehm Moraes e Ney Laert Vilar Calazans YQ 27/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Bloco Lógico - CLB • Capacidade de cada CLB: – 2 funções de 4 variáveis e 1 de 3 variáveis, através de FF (qquer f) ou – 1 função de 5 variáveis (qquer f) ou – uma dentre um subconjunto das funções com 6 a 9 variáveis e • Propagação rápida de carry (vai-um) e • Dois FFs/latches para armazenar saídas de funções ou: • 1 memória 32x1 ou 16x2, porta simples ou 16x1, porta dupla Fernando Gehm Moraes e Ney Laert Vilar Calazans 28/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Bloco Lógico - CLB - família XC - 4000 Fernando Gehm Moraes e Ney Laert Vilar Calazans 29/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Arquitetura de FPGA IO bloco de E/S IO IO chaves programáves Bloco K Bloco K Bloco K IO IO caixa de conexão canal de roteamento Bloco K Bloco K Bloco K IO CLB Bloco K Bloco K Bloco K IO m trilhas IO IO Fernando Gehm Moraes e Ney Laert Vilar Calazans IO IO IO 30/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Switch box - caixa de conexão • Conecta as regiões de roteamento entre si • Flexibilidade limitada para reduzir custo de hardware (Fs = 3) Fernando Gehm Moraes e Ney Laert Vilar Calazans 31/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Switch box - roteamento • Exemplo de conexão entre duas redes Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Fernando Gehm Moraes e Ney Laert Vilar Calazans 32/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Recursos de Roteamento • Diversos comprimentos de fios para reduzir atrasos – Linhas simples: entre CLBs vizinhos – Linhas duplas: a cada dois CLBs – Linhas longas: sinais globais como clock (baixo skew) Fernando Gehm Moraes e Ney Laert Vilar Calazans 33/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Blocos de Entrada / Saída • Possuem recursos de memória configuráveis (registrador ou latch) • Pads configuráveis como entrada, saída ou bidirecionais • Entradas podem utilizar registrador ou latch • Saídas apenas registradores • Possibilidade de definir sinais tristate (alta impedância) • Slew rate de saída configurável. • Boundary Scan OUT IN Fernando Gehm Moraes e Ney Laert Vilar Calazans 34/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I Recursos Adicionais • Global clock buffers – Alta velocidade, baixo skew (escorregamento) – Podem ser utilizados para redes de alto fanout • Global reset net – Conecta todos os registradores e latches do circuito FPGA • Outros – Buffers tristate – Decodificadores para RAM – Oscilador com freqüências múltiplas – Propagação rápida de carry (vai-um) Fernando Gehm Moraes e Ney Laert Vilar Calazans 35/36 TÓPICOS ESPECIAIS EM SISTEMAS DIGITAIS I PRÓXIMA AULAS 1. FPGAS DA FAMÍLIA VIRTEX 2. PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes e Ney Laert Vilar Calazans 36/36