360 likes | 698 Views
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Grupo de Apoio ao Projeto de Hardware - GAPH. FPGAs e Projeto de Sistemas Digitais Complexos. Tópicos Especiais em Sistemas Digitais I. Fernando Gehm Moraes e Ney Laert Vilar Calazans Agosto / 2001
E N D
Pontifícia Universidade Católica do Rio Grande do SulFaculdade de Informática Grupo de Apoio ao Projeto de Hardware - GAPH FPGAs e Projeto de Sistemas Digitais Complexos Tópicos Especiais em Sistemas Digitais I Fernando Gehm Moraes e Ney Laert Vilar CalazansAgosto / 2001 (última atualização em 22/08/2001)
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ê?
Por quê? • 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!
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
Sumário 1 - Introdução 2 - FPGAs 3 - Projeto de SDs usando CAD 4 - O Desafio de Sistemas Complexos
Entradas Saídas Î S(1) C(K+1) Î E(1) C(1) Î S(2) C(K+2) Î E(2) C(2) S(3) Î C(K+3) Sistema Digital Processamento Numérico de Informação E(K-2) Î C(K-2) Î E(K-1) C(K-1) S(L-1) Î C(K+L-1) Î E(K) C(K) Î S(L) C(K+L) 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!
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!!!
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.
Modelo de Gajski-Kuhn ou Diagrama Y • Modelo bidimensional; • Critérios: nível de abstração e domínio de descrição; • Domínio de descrição = tipo de informação; Domínio Estrutural Domínio Comportamental Sistêmico Arquitetural Processadores, Memórias, Barramentos Processos Comunicantes, Algoritmos Lógico Registradores, ULAs, Muxs, Decods HDLs, Transferência entre Registradores Portas Lógicas, Biestáveis Expressões Booleanas, Tabelas de Transição Elétrico Transistores, Lineares Funções de Transferência, Equações Diferenciais "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.
Exemplo de representação do processo de projeto Processo Clássico de Projeto de SDs • Ponto de Partida - especificação informal; • Captura/Validação - Editor de esquemáticos e Simulador; Síntese física - Posicionamento e Traçado de Rotas, seguido de “back-annotation” e ressimulação;
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
2.1 - Introdução - PLDs • 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
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, …
Mercado de FPGAs em 1997 $ Millions Source: Company reports & In-Stat. Includes SPLD, CPLD, FPGA revenues.
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
1 0 0 1 0 0 = + + F ( A , B , C , D ) A . B . C . D A . C . D A . D 0 å 1 = F ( A , B , C , D ) ( 0 , 3 , 7 , 8 , 10 , 12 , 14 ) 1 0 1 0 1 0 1 0 A B C D Configuração das funções lógicas combinacionais • 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 0 4 (2 ) 2 = 64K funções implementáveis tabela verdade armazenada em bits de memória, um registrador!! • Altera: • LUT com portas lógicas - PLD • Plano E configurável, conectado a uma porta lógica OU variáveis das funções lógicas ativam seleção no mux 15
= + F ( A , B , C , D ) C . D A . B . C 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 0 0 0 B 1 D 0 1 Saída 0 C1 1 1 C 0 1 0 0 C3 D 1 C A 1 C2 B
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)
Linhas de Blocos Lógicos - Actel • arquitetura semelhante a ASICs baseados em bibliotecas de células Blocos de entrada / saída Linha de blocos lógicos Blocos de entrada / saída Blocos de entrada / saída Recursos horizontais de roteamento Blocos de entrada / saída Opções de Arquiteturas Internas • 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
Matriz simétrica - Xilinx 4000 • matriz de blocos lógicoscom recursos horizontais e verticais de roteamento • Hierárquico - Xilinx 6200 • permite a reconfiguraçãoparcial do FPGA Bloco 4x4 Bloco 16x16 Bloco Lógico Opções de Arquiteturas Internas
Principais Fabricantes: Xilinx e Altera 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
XILINX - Família 4000 • Família VIRTEX: 50K até 4M de portas lógicas equivalentes, (4Mportas ao final de 1999). Já lançou VirtexII (até 10Mportas)
Logic Cells Logic Gates 1,000,000 12M 1.2M 120K 12K 2 Million logic gates 100,000 10,000 Year 1,000 1994 1996 1998 2000 2002 Número de portas lógicas equivalentes A partir de 1999, estimativas 4Mportas - de fato em Jul/1999 10Mportas - de fato em Mar/2001
Altera - Família 10k • 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
2.3 - Arquitetura da Família XC4000 da Xilinx • Alta densidade: até 250K gates • LUTs • Tempo de reconfiguração inferior a 1 segundo Blocos lógicosconfiguráveis (CLBs) I/O Blocks (IOBs) InterconexãoConfigurável
XQ G1 F1 H1 G_LUT FFX F2 G2 H2 G3 F3 H3 F4 G4 X H_LUT F_LUT Y FFY YQ 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
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
Arquitetura de FPGA IO IO IO bloco de E/S chavesprogramáves Bloco K Bloco K Bloco K IO IO caixa de conexão canal de roteamento Bloco K Bloco K Bloco K IO IO CLB Bloco K Bloco K Bloco K IO IO IO IO IO m trilhas
Switch box - caixa de conexão • Conecta as regiões de roteamento entre si • Flexibilidade limitada para reduzir custo de hardware(Fs = 3)
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
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)
OUT IN 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
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)
PRÓXIMA AULAS 1. FPGAS DA FAMÍLIA VIRTEX 2. PLATAFORMAS DE PROTOTIPAÇÃO