Você está na página 1de 24

FPGA & VHDL

Tutorial
2009-2

FPGA Field Programmable Gate Array




Dispositivo lgico contendo uma matriz de:




Clulas lgicas genricas




Chaves programveis


Interconectam as clulas segundo uma configurao

Implementao de um projeto:



Configurveis (programadas) para desempenhar uma


funo simples

Especificao da funo de cada clula


Configurao da conexo de cada chave

Configurao de uma FPGA:






Sntese do projeto
Arquivo de configurao enviado para FPGA por cabo
Processo feito em campo (Field), invs de em fbrica

Estrutura Conceitual

Clula Lgica Conceitual




Exemplo: clula baseada em look-up table (LUT) de 3 entradas


Exemplo:

Diagrama conceitual

LUT = a b c

Exemplos de Arquiteturas Reais

Podem
Podem possuir
possuir mdulos
mdulos
dedicados
dedicados ee mais
mais avanados
avanados
(macro
(macro clulas)
clulas)

Algumas Aplicaes



Processamento de sinais digitais (DSP)


Sistemas embarcados (embedded)


Prototipagem de ASICs


Ex.: Aeroespaciais, de defesa, reconhecimento de voz


Application Specific Integrated Circuit

Computao de alto desempenho acelerao




Alto paralelismo das FPGAs vs. CPUs




Ex.: clock = 500MHz, 100 instrues de FPU por ciclo

Configurao flexvel da preciso dos clculos de FPU vs.


preciso fixa das CPUs
Nova rea: Computao Reconfigurvel



Tarefas custosas realocadas do software (CPUs) p/ FPGAs


Ex: clculos de FFT, convoluo etc.

Projeto e Programao


Independem do CI:


(1) Projeto do sistema:


arquivos VHDL
(2) Desenvolvimento do
teste

Dependem do CI:


(3) Sntese


(3) Implementao


Gera componentes
genricos (portas e flipflops)
Conexes de E/S do CI
com os perifricos

(4) Gerao e
transferncia do arquivo
de configurao

Projeto e Programao
1) Definio do comportamento da FPGA



Projeto esquemtico (grfico)


Linguagens de descrio de hardware (HDL
Hardware Description Language)


Descrio formal de circuitos digitais





Operao, design e organizao


Teste de funcionamento por simulao (circuitos
testbench)

Pricipais:



VHDL (Very-high-speed integrated circuit HDL)


Verilog

Projeto e Programao


Linguagens HDL


Exemplo de cdigo VHDL


--- import
import std_logic
std_logic from
from the
the IEEE
IEEE library
library
library
library IEEE;
IEEE;
use
use IEEE.std_logic_1164.all;
IEEE.std_logic_1164.all;
--- this
this is
is the
the
entity
entity ANDGATE
ANDGATE
port
port ((
IN1
IN1 ::
IN2
IN2 ::
OUT1:
OUT1:
end
end ANDGATE;
ANDGATE;

entity
entity
is
is
in
in std_logic;
std_logic;
in
in std_logic;
std_logic;
out
out std_logic);
std_logic);

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 Programao


2) Gerao de uma netlist por uma


ferramenta de EDA (Electronic Design
Automation)


Netlist: Descreve a conectividade de um circuito







Componentes
Portas
Pinos
Etc.

Projeto e Programao


3) Processo de Place-and-Route





Ajuste da netlist arquitetura verdadeira da


FPGA
Normalmente feito por um software proprietrio
do fabricante da FPGA

4) Validao do mapeamento por anlise


temporal, simulao etc.
5) Gerao do arquivo binrio
6) Configurao da FPGA pela transferncia
do arquivo binrio


Interface serial protocolo JTAG

Famlias de FPGAs Xilinx




Baixo custo
 Spartan/XL
 Spartan-II
 Spartan-IIE
 Spartan-3
 Spartan-6
Alto desempenho
 Virtex
 Virtex-II
 Virtex-4
 Virtex-5
 Virtex-6




LX: lgica de alto desempenho; LXT: conectividade serial de baixa


potncia
SXT: DSP e uso intenso de memria
Etc.

Placas Didticas Spartan-3E Starter Kit

FPGA:
FPGA:
Spartan
Spartan 3E
3E

Placas Didticas Diligent Nexys 2

Diagrama em blocos da placa


Programao da FPGA
Dispositivos de E/S

Placas Didticas Diligent Nexys 2


Dispositivos de E/S e circuitos

VHDL:
CKTs combinacionais
Comparador de 1 bit
i0 i1 eq
0

eq = i 0 i1 + i 0 i1

Nvel
Nvel do
do projeto:
projeto: portas
portas (gate-level
(gate-level design)
design)

VHDL: CKTs combinacionais

Descrio
Descrio estrutural
estrutural

Testbench
Operaes
Operaes
executadas
executadas
sequencialmente
sequencialmente

VHDL


Conexes do circuito


Atribuies concorrentes de sinal

Condicional
Condicional

Selecionada
Selecionada

VHDL


Conexes do circuito


Atribuies concorrentes de sinal

case
case
if
if

VHDL: CKTs sequenciais


Flip-Flop
Flip-Flop D
D

VHDL: CKTs sequenciais


Registrador
Registrador de
de
deslocamento
deslocamento

Testbench
Testbench

VHDL: CKTs sequenciais


Contador
Contador binrio
binrio

Testbench
Testbench

VHDL: CKTs sequenciais


Contador
Contador mdulo-m
mdulo-m

Testbench
Testbench

Clock
Clock da
da placa:
placa:
FF == 50
MHz;
50 MHz; TT == 20
20 xx 10
10-9-9ss
Para
Para TT == 0,5
0,5 s:
s:
m
m == 25.000.000
25.000.000
25 =
nn == 25,
25, pois
pois 2225
= 33.554.432
33.554.432

Você também pode gostar