Introdução ás FPGAs
Leitura Complementar
Aula 5: FPGA e Fluxo de Projeto
2º Semestre/2007
Fabbryccio A. C. M. Cardoso
Marcelo Augusto Costa Fernandes
Prof. Responsável: Dalton S. Arantes
DECOM-FEEC-UNICAMP
Introdução a FPGA
Antes do advento da lógica programável, circuitos lógicos eram construídos em placas de circuitos utilizando componentes padrões, ou pela integração de portas lógicas em circuitos integrados para aplicações específicas.
FPGA é um circuito integrado que contém um grande número (na ordem de milhares) de unidades lógicas idênticas. Neste aspecto estas unidades lógicas podem ser vistas como componentes padrões que podem ser configurados independentemente e interconectados a partir de uma matriz de trilhas condutoras e switches programáveis. Um arquivo binário é gerado para configuração da FPGA a partir de ferramentas de software seguindo um determinado fluxo de projeto. Esse arquivo binário contém as informações necessárias para especificar a função de cada unidade lógica e para seletivamente fechar os swiches da matriz de interconexão. Resumindo, o array de unidades lógicas e a matriz de interconexão, que podem ser programados pelo usuário, formam a estrutura básica da
FPGA para especificação de circuitos integrados complexos.
Na família Virtex da Xilinx a menor unidade lógica configurável é denominada slice de lógica e é mostrada na Figura 1. O slice é bastante versátil e pode ser configurado para operar como LookUp
Tables (LUT) com quatro entradas e uma saída, RAMs distribuídas de 16 bits e registradores de deslocamento de 16 bits. Na operação como LUT, os recursos adicionais como D-flip flops, multiplexadores, lógica de transporte (carry) dedicado, e portas lógicas, podem ser utilizados em conjunto com as LUTs para implementar funções booleanas, multiplicadores e somadores com palavras de comprimento bastante flexível. Na operação como SRL (Shift Register LUT), estes recursos adicionais podem ser