Trabalho em vhdl
Tutorial
2009-2
FPGA – Field Programmable Gate Array
Dispositivo lógico contendo uma matriz de:
Células lógicas genéricas
Configuráveis (“programadas”) para desempenhar uma função simples
Chaves programáveis
Interconectam as células segundo uma configuração
Implementação de um projeto:
Especificação da função de cada célula Configuração da conexão de cada chave
Configuração de uma FPGA:
Síntese do projeto Arquivo de configuração enviado para FPGA por cabo Processo feito “em campo” (Field), invés de “em fábrica”
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 Podem possuir módulos dedicados e mais avançados dedicados e mais avançados (macro células) (macro células)
Algumas Aplicações
Processamento de sinais digitais (DSP) Sistemas embarcados (embedded)
Ex.: Aeroespaciais, de defesa, reconhecimento de voz
Prototipagem de ASICs
Application Specific Integrated Circuit
Computação de alto desempenho – aceleração
Alto paralelismo das FPGAs vs. CPUs
Ex.: clock = 500MHz, 100 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
Dependem do CI:
(3) Síntese
Gera componentes genéricos (portas e flipflops)
(3) Implementação
Conexões de E/S do CI com os periféricos
(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 descrição de hardware (HDL – Hardware Description Language)
Descrição formal de circuitos digitais
Operação, design