Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula FPGA-VHDL 2009-2
Aula FPGA-VHDL 2009-2
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:
Podem
Podem possuir
possuir módulos
módulos
dedicados
dedicados ee mais
mais avançados
avançados
(macro
(macro células)
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 flip-
flops)
(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
--
-- this
this is
is the
the entity
entity
entity
entity ANDGATE
ANDGATE is
is
port
port ((
IN1
IN1 :: in
in std_logic;
std_logic;
IN2
IN2 :: in
in std_logic;
std_logic;
OUT1:
OUT1: out std_logic);
out std_logic);
end
end ANDGATE;
ANDGATE;
architecture
architecture RTL
RTL of
of ANDGATE
ANDGATE is
is
begin
begin
OUT1
OUT1 <=
<= IN1
IN1 and
and IN2;
IN2;
end
end RTL;
RTL;
Projeto e Programação
Spartan-II
Spartan-IIE
Spartan-3
Spartan-6
Alto desempenho
Virtex
Virtex-II
Virtex-4
Virtex-5
Virtex-6
LX: lógica de alto desempenho; LXT: conectividade serial de baixa
potência
SXT: DSP e uso intenso de memória
Etc.
Placas Didáticas – Spartan-3E Starter Kit
FPGA:
FPGA:
Spartan
Spartan 3E
3E
Placas Didáticas – Diligent Nexys 2
Dispositivos de E/S
Placas Didáticas – Diligent Nexys 2
Dispositivos de E/S e circuitos
Nível
Nível do
do projeto:
projeto: portas
portas (gate-level
(gate-level design)
design)
VHDL:
CKTs combinacionais
Comparador de 1 bit
i0 i1 eq
0 0 1
0 1 0
1 0 0
1 1 1
eq = i 0 ⋅ i1 + i 0 ⋅ i1
VHDL: CKTs combinacionais
Descrição
Descrição estrutural
estrutural
Testbench
Operações
Operações
executadas
executadas
sequencialmente
sequencialmente
VHDL
Conexões do circuito
Atribuições concorrentes de sinal
Condicional
Condicional Selecionada
Selecionada
VHDL
Conexões do circuito
Atribuições concorrentes de sinal
case
case
if
if
VHDL: CKTs sequenciais
Flip-Flop D
Flip-Flop D
Testbench
Testbench
VHDL: CKTs sequenciais
Registrador
Registrador de
de
deslocamento
deslocamento
VHDL: CKTs sequenciais
Contador
Contador binário
binário Testbench
Testbench
VHDL: CKTs sequenciais
Contador
Contador módulo-m
módulo-m Testbench
Testbench
Clock
Clock da da placa:
placa:
FF == 50
50 MHz; TT == 20
MHz; 10-9-9ss
20 xx 10
Para
Para TT == 0,5
0,5 s:
s:
mm == 25.000.000
25.000.000
25, pois
nn == 25, pois 2225
25 =
= 33.554.432
33.554.432