Dispositivos de Lógica
Programável
Março 2011
Evolução
• Válvula no início de 1940
• Transistor em 1947
– Não aquece como as válvulas
– Fisicamente menor
• 1961 primeiro integrado TTL 74LSXX
• Década de 1970
– surge SPLD – Simple PLD ( ROM, PLA, PAL, etc ) << 600 portas
– ASIC’s – applications specific integrated circuits
• Década de 1980 >> 600 portas
– Multiple PLD – CPLD
– FPGA – Field Programmable Gate Array
O que escolher ?
Projetista tem o desafio de encontrar o balanço
entre velocidade e generalidade do hardware
• Chip genérico
– Microcontroladores  Muitas funções  Sacrifício de
desempenho
• Chip dedicado
– ASICS  Aplicação específica  alta velocidade 
baixo consumo  só se justifica em grande
quantidade, pois alterações do projeto não são
possíveis
PLA – Soma de Produtos
3 Entradas – X1, X2, X3
2 Saídas – Z1, Z2
Um bloco AND configurável
com 6 entradas
Um Bloco OR Configurável
com 6 entradas
PLA – Soma de Produtos
PAL – Soma de Produtos
3 Entradas – X1, X2, X3
2 Saídas – Z1, Z2
Apenas bloco AND
configurável com 6 entradas
Bloco OR fixo
•Construção fácil e mais
barata
•Melhor desempenho que
PLA’s
PAL – Soma de Produtos
CPLD – Complex PLD ( Vários
PAL’s em um Chip )
CPLDs são grupos de
macrocélulas: geradores de
produtos (product terms) +
flip-flop
FPGA – Field Programmable Gate Array
Não contém bloco AND ou OR
3 Elementos básicos:
Tudo configurado por software
Principais fabricantes:
Xilinx Actel, Altera,
Plessey, Plus, AMD,
QuickLogic
CPLD X FPGA
CPLD
- Programação armazenada
em FLASH
- Célula lógica (Macrocell) com
muitas entradas (até 90)
- Número limitado de
registradores (até 512)
- Não possui arranjos de
memória
- Atrasos de roteamento
determinísticos
- Projetos simples
-FPGA
- Programação armazenada
em SRAM
- Célula lógica (Logic Element)
com poucas entradas (4 à 6)
- Grande número de
registradores (até 200K)
- Blocos de memória (até 9.9M
bits) e memória distribuída (até
1.3M bits)
- Atrasos de roteamento
variáveis
- Projetos complexos
FPGA – Elementos Básicos
- Blocos de entrada/saída configuráveis (I/O Blocks): são componentes de
entrada/saída formados por estruturas bidirecionais que incluem buffer, flip-flop
de entrada buffer tri-state e flip-flop de saída .
- Interconexões Programáveis (Programmable InterConnect): pode ser do
tipo SRAM, Antifusível ou EPROM. São como interruptores programáveis,
geram as pistas de ligação entre os blocos lógicos e blocos de entrada e saída .
- Blocos Lógicos Configuráveis (Logic Block): pode ser tão simples como
um transistor ou tão complexo quanto um microprossessador. Este bloco é
capaz de implementar várias funções combinacionais (através de look-up-table)
e seqüenciais (através de flip-flops).
FPGA – Field Programmable Gate Array
As famílias de FPGA’s diferem em :
-Formas de realizar a programação;
-Formas de organização dos condutores de interconexão
-Funcionalidades dos blocos lógicos
Porém, a diferença mais significativa é a forma de
disponibilizar os blocos lógicos e as conexões.
FPGA – Conexões
Baseada em fusível
-Não volátil
-Pequena dimensão
-Porém não reprogramável
FPGA – Conexões
Baseada em latch
-Volátil
-Relativamente grande
-Reprogramável
FPGA – CLB ou Bloco Lógico
Bloco Lógico Ideal de uma FPGA:
Lógica combinatória
Flip-flops
Saídas com registo ou apenas combinatórias
 reproduzem qualquer operação combinatória de até 4 entradas
FPGA – CLB Altera Flex8000/10000
FPGA – CLB Xilinx XC4000
C1
C2 C3
H1
•
•
•
•
•
•
13 "pinos" de entrada
4 "pinos" de saída
3 geradores de funções
2 flip-flops
Funções “C” permutáveis
Aritmética com lógica de
carry rápida (não visível)
DIN
S/R
C4
EC
S/R
Control
G4
G3
G2
DIN
G
Function
Generator
SD
F'
Q
D
G'
YQ
H'
G1
EC
H
Function
Generator
RD
1
G'
Y
H'
S/R
Control
F4
F3
F2
F1
F
Function
Generator
DIN
SD
F'
G'
Q
D
XQ
H'
EC
1
H'
F'
K
RD
X
FPGA – IOB’s
•
Periferia de IOBs idênticos
– Entrada, saída, ou bidireccional
– Com registo ou apenas
combinatório
– Saída tri-state
I
O
TS
Clocks
IOB
Pad
Ligado ao
Pino
FPGA – IOB’s Xilinx 4000
Slew
Rate
Control
Passive
Pull-Up,
Pull-Down
Vcc
IOB’s
OE
O
D
Q
Output
Buffer
Output
Clock
I1
Input
Buffer
I2
Input
Clock
Q
D
Delay
Pad
Interface entre
uma FPGA e o
resto do
sistema;
O FPGA XC
4000 Xilinx tem
80 IOB’s
Localizam na
periferia do chip;
FPGA – SB’s
SB’s - Switch Box
Finalidade: Permite a interconexão entre os
CLB’s através dos canais de roteamento;
FPGA – Exemplo de Função
FPGA – Módulo Básico MUX 4:1
Como obter um LATCH RS ????
FPGA – Módulo Básico MUX 4:1
trabalhando com LATCH RS
FPGA – Vantagens
• Rapidez de desenvolvimento
• Sem custos de obtenção de protótipos (NRE)
• Tecnologia de (re)programação SRAM
– Desenvolvimento com risco mínimo
– Reutilização
• Testado 100% na fábrica
– Dispensa testes de aceitação do componente
FPGA – Exemplo de Função
FPGA – Característica de Projeto
Download

Dispositivos de Lógica Programável