Fpga
Tutorial – Aula 1
Técnicas Digitais
FPGA – Field Programmable Gate Array
Dispositivo lógico contendo uma matriz de:
Células lógicas genéricas
Configuráveis (“programáveis”) para desempenhar uma função simples
Interconectam as células segundo uma configuração
Chaves programáveis
Implementação de um projeto (em baixo nível):
Especificação da função de cada célula Configuração da conexão de cada chave Síntese do projeto Arquivo de configuração enviado para FPGA por cabo Processo feito “em campo” (Field), invés de “em fábrica”
Configuração de uma FPGA:
Estrutura Conceitual
Célula Lógica Conceitual
Exemplo: célula baseada em look-up table (LUT) de 3 entradas
Exemplo:
Diagrama conceitual
LUT a b c
Exemplos de Arquiteturas Reais
Podem possuir módulos dedicados e mais avançados (macro células)
Algumas Aplicações
Processamento de sinais digitais (DSP) Sistemas embarcados (embedded)
Ex.: Aeroespaciais, de defesa, reconhecimento de voz Application Specific Integrated Circuit Alto paralelismo das FPGAs vs. CPUs
Prototipagem de ASICs
Computação de alto desempenho – aceleração
Ex.: clock = 500MHz, 10 instruções de FPU por ciclo
Configuração flexível da precisão dos cálculos de FPU vs. precisão fixa das CPUs Nova área: “Computação Reconfigurável”
Tarefas custosas realocadas do software (CPUs) p/ FPGAs Ex: cálculos de FFT, convolução etc.
Projeto e Programação
Independem do CI:
(1) Projeto do sistema: arquivos VHDL (2) Desenvolvimento do teste (3) Síntese
Dependem do CI:
Gera componentes genéricos (portas e flipflops) Conexões de E/S do CI com os periféricos
(3) Implementação
(4) Geração e transferência do arquivo de configuração
Projeto e Programação
1º) Definição do comportamento da FPGA
Projeto esquemático (gráfico) Linguagens de