Dispositivos de Lógica Programável 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) << 600 portas ASIC’s – Applications Specific Integrated Circuits Década de 1980 >> 600 portas Multiple PLD – CPLD FPGA – Field Programmable Gate Array Introdução Basicamente, o projeto de um sistema digital consiste em determinar a função lógica que traduz o funcionamento do mesmo de acordo com estímulos recebidos. A partir disso podemos implementar um circuito lógico complexo que execute essa função a partir de circuitos lógicos simples. 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 Lógica Programável Os componentes da lógica programável são dispositivos que possuem em sua lógica interna centenas (ou milhares) de portas lógicas, flip-flops e registradores; que são interligados internamente. Essas interconexões são os pontos programáveis da lógica. Podemos então programar essas conexões para permanecerem fechadas ou abertas, de acordo com a necessidade do projeto. Essas interconexões podem ser entendidas como fusíveis, que de acordo com a necessidade do projeto podem ou não ser queimados (desfazendo ou não a conexão entre portas lógicas). Essa queima é realizada pelo projetista, utilizando um software de programação do dispositivo. Dispositivos de Lógica Programável 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 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 FPGA FPGA (Field Programmable Gate Array ou Arranjo de portas programável em campos) Composto por um conjunto de células lógicas configuráveis e contidos em um único integrado. Cada célula contém capacidade de implementar funções lógicas (combinacionais ou sequenciais) e roteamento para comunicação entre elas. A função a ser implementada é definida pelo usuário usando alguma ferramenta que permita a entrada de projeto para especificar o estado dos pontos de programação internos. 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 – Estrutura Básica Linhas de Roteamento Blocos de Entrada e Saída Blocos Lógicos Configuráveis Matriz de Roteamento FPGA – Bloco lógico FPGA - Conexões Ferramenta de Desenvolvimento EDA ( Eletronic Design Automation ) Especificação do comportamento do FPGA, utilizando Linguagem de Descrição de Hardware ( HDL ) ou diagramas esquemáticos. Sintetizar o circuito obedecendo restrições impostas pelo projetista ( espaço / velocidade ). Verificar o funcionamento do circuito através de simulação. Gera relatórios estatísticos com dados do comportamento e desempenho do circuito. Ferramenta de Desenvolvimento Fabricante – Xilinx Xilinx Foundation Series Xilinx Foundation ISE Fabricante – Altera MAX-PLUS MAX_PLUS II Quartus Quartus II HDL – Linguagem de descrição de Hardware VHDL ( Very High Speed Integrated Circuit Hardware Description Language) é uma linguagem padronizada de HDL ratificada em 1987 pelo IEEE Serve para modelar a estrutura ou comportamento do Hardware Comportamento : • Descreve-se o circuito pensando no seu funcionamento. • Ex. Descrição algorítmica de uma porta AND Estrutural : • Descreve-se o circuito pensando na arquitetura • Ex. Descrição da porta lógica AND Programação VHDL Ex.: Flip-Flop D Vantagens do FPGA Alto desempenho. Facilidade de projeto. Tempo de projeto reduzido. Confiabilidade e flexibilidade. Redução de custos.