Dispositivos de Lógica Programável Março 2011 Evolução • Válvula no início de 1940 • Transistor em 1947 – Não aquece como as válvulas – Fisicamente menor • 1961 primeiro integrado TTL 74LSXX • Década de 1970 – surge SPLD – Simple PLD ( ROM, PLA, PAL, etc ) << 600 portas – ASIC’s – applications specific integrated circuits • Década de 1980 >> 600 portas – Multiple PLD – CPLD – FPGA – Field Programmable Gate Array O que escolher ? Projetista tem o desafio de encontrar o balanço entre velocidade e generalidade do hardware • Chip genérico – Microcontroladores Muitas funções Sacrifício de desempenho • Chip dedicado – ASICS Aplicação específica alta velocidade baixo consumo só se justifica em grande quantidade, pois alterações do projeto não são possíveis PLA – Soma de Produtos 3 Entradas – X1, X2, X3 2 Saídas – Z1, Z2 Um bloco AND configurável com 6 entradas Um Bloco OR Configurável com 6 entradas PLA – Soma de Produtos PAL – Soma de Produtos 3 Entradas – X1, X2, X3 2 Saídas – Z1, Z2 Apenas bloco AND configurável com 6 entradas Bloco OR fixo •Construção fácil e mais barata •Melhor desempenho que PLA’s PAL – Soma de Produtos CPLD – Complex PLD ( Vários PAL’s em um Chip ) CPLDs são grupos de macrocélulas: geradores de produtos (product terms) + flip-flop FPGA – Field Programmable Gate Array Não contém bloco AND ou OR 3 Elementos básicos: Tudo configurado por software Principais fabricantes: Xilinx Actel, Altera, Plessey, Plus, AMD, QuickLogic CPLD X FPGA CPLD - Programação armazenada em FLASH - Célula lógica (Macrocell) com muitas entradas (até 90) - Número limitado de registradores (até 512) - Não possui arranjos de memória - Atrasos de roteamento determinísticos - Projetos simples -FPGA - Programação armazenada em SRAM - Célula lógica (Logic Element) com poucas entradas (4 à 6) - Grande número de registradores (até 200K) - Blocos de memória (até 9.9M bits) e memória distribuída (até 1.3M bits) - Atrasos de roteamento variáveis - Projetos complexos FPGA – Elementos Básicos - Blocos de entrada/saída configuráveis (I/O Blocks): são componentes de entrada/saída formados por estruturas bidirecionais que incluem buffer, flip-flop de entrada buffer tri-state e flip-flop de saída . - Interconexões Programáveis (Programmable InterConnect): pode ser do tipo SRAM, Antifusível ou EPROM. São como interruptores programáveis, geram as pistas de ligação entre os blocos lógicos e blocos de entrada e saída . - Blocos Lógicos Configuráveis (Logic Block): pode ser tão simples como um transistor ou tão complexo quanto um microprossessador. Este bloco é capaz de implementar várias funções combinacionais (através de look-up-table) e seqüenciais (através de flip-flops). FPGA – Field Programmable Gate Array As famílias de FPGA’s diferem em : -Formas de realizar a programação; -Formas de organização dos condutores de interconexão -Funcionalidades dos blocos lógicos Porém, a diferença mais significativa é a forma de disponibilizar os blocos lógicos e as conexões. FPGA – Conexões Baseada em fusível -Não volátil -Pequena dimensão -Porém não reprogramável FPGA – Conexões Baseada em latch -Volátil -Relativamente grande -Reprogramável FPGA – CLB ou Bloco Lógico Bloco Lógico Ideal de uma FPGA: Lógica combinatória Flip-flops Saídas com registo ou apenas combinatórias reproduzem qualquer operação combinatória de até 4 entradas FPGA – CLB Altera Flex8000/10000 FPGA – CLB Xilinx XC4000 C1 C2 C3 H1 • • • • • • 13 "pinos" de entrada 4 "pinos" de saída 3 geradores de funções 2 flip-flops Funções “C” permutáveis Aritmética com lógica de carry rápida (não visível) DIN S/R C4 EC S/R Control G4 G3 G2 DIN G Function Generator SD F' Q D G' YQ H' G1 EC H Function Generator RD 1 G' Y H' S/R Control F4 F3 F2 F1 F Function Generator DIN SD F' G' Q D XQ H' EC 1 H' F' K RD X FPGA – IOB’s • Periferia de IOBs idênticos – Entrada, saída, ou bidireccional – Com registo ou apenas combinatório – Saída tri-state I O TS Clocks IOB Pad Ligado ao Pino FPGA – IOB’s Xilinx 4000 Slew Rate Control Passive Pull-Up, Pull-Down Vcc IOB’s OE O D Q Output Buffer Output Clock I1 Input Buffer I2 Input Clock Q D Delay Pad Interface entre uma FPGA e o resto do sistema; O FPGA XC 4000 Xilinx tem 80 IOB’s Localizam na periferia do chip; FPGA – SB’s SB’s - Switch Box Finalidade: Permite a interconexão entre os CLB’s através dos canais de roteamento; FPGA – Exemplo de Função FPGA – Módulo Básico MUX 4:1 Como obter um LATCH RS ???? FPGA – Módulo Básico MUX 4:1 trabalhando com LATCH RS FPGA – Vantagens • Rapidez de desenvolvimento • Sem custos de obtenção de protótipos (NRE) • Tecnologia de (re)programação SRAM – Desenvolvimento com risco mínimo – Reutilização • Testado 100% na fábrica – Dispensa testes de aceitação do componente FPGA – Exemplo de Função FPGA – Característica de Projeto