Você está na página 1de 46

Dispositivos Lgicos

Programveis (PLD)

A. Mariano - 2012

Agenda
Introduo
Viso Geral PLD
Evoluo
Arquiteturas

Chaves de Programao
FPGA vs ASIC
Fundamentos FPGA
Fluxo de projeto

A. Mariano - 2012

PLD x Componentes Discretos


X

Reduo do tamanho das placas de circuito impresso;


Diminuio do consumo de energia;
Processos de fabricao e projetos mais rpidos e baratos
Aumento da confiabilidade dos sistemas
menos conexes sujeitas a falhas;

Facilidade de manuteno
A. Mariano - 2012

PLD (Programmable Logic Devices)

CI com grande nmero de unidades lgicas


Portas lgicas, Flip-flops, registradores (processadores em verses
sofisticadas)

Pode ser gravado inmeras vezes


Associados a memrias EEPROM/SRAM

Utilizados em projetos de mdia e grande complexidade


Viabilidade econmica
A. Mariano - 2012

Definies (1/2)
FPD (Field Programmable Device) o termo geral para qualquer tipo de circuito digital
que pode ser configurado. Tambm conhecido como PLD.
PLA (Programmable Logic Array) um pequeno PLD que contm dois nveis de portas
lgicas, um plano E e um plano OU, onde ambos so programveis.
PAL (Programmable Array Logic) um pequeno PLD que tem um plano de portas lgicas
E programvel seguido por um plano OU fixo.
SPLD (Simple PLD) refere-se a qualquer tipo simples de PLD, PLA ou PAL.
CPLD (Complex PLD) PLD mais complexo que consiste no arranjo de mltiplos blocos SPLD em
um nico chip. Outras nomes empregados so Enhaced PLD EPLD, Super PAL e Mega PAL.
FPGA (Field Programmable Gate Array) um PLD com uma estrutura que permite uma
capacidade lgica muito grande. Enquanto CPLDs possuem um grande nmero de entradas
(planos E), FPGAs oferecem muito mais estruturas lgicas, flip-flops e outros elementos
digitais.
HCPLDs (High-Capacity PLD) PLDs de alta capacidade, termo empregado para CPLDs e/ou
FPGAs.

A. Mariano - 2012

Definies (2/2)
Interconnect a conexo que realizada nas vias internas do PLD.
Programmable Switch pode conectar/desconectar elementos lgicos a uma via de conexo,
ou uma via a outra dentro do PLD.
Logic Block um bloco de circuito relativamente pequeno que replicado em conjuntos no
PLD. Quando um circuito implementado num PLD, ele primeiro decomposto em subcircuitos menores que podem ser mapeados em blocos lgicos. O termo bloco lgico muito
utilizado para descrever FPGAs, mas tambm pode referir blocos de circuitos em CPLDs.
Logic Capacity quantidade de lgica digital que pode ser colocada dentro de um PLD.
Geralmente medida em nmero equivalente de portas lgicas. a capacidade do PLD medida
pelo tamanho do seu conjunto de portas. De forma simples, por exemplo, pode ser
entendida como o nmero de portas NO-E de duas entradas que o PLD possui.
Logic Density A quantidade de lgica por unidade de rea no PLD.
Speed Performance mede a mxima velocidade de operao de um circuito quando
implementado num PLD. Para circuitos combinacionais o maior atraso na propagao de
um sinal ao longo do circuito, e para circuitos seqenciais, a mxima freqncia de relgio
para a qual o circuito pode operar adequadamente.

A. Mariano - 2012

Evoluo dos PLDs


PROM precursora dos PLDs
barramento de endereo poderia ser utilizado como entrada de
circuitos lgicos e o barramento de dados como sada
funes lgicas requerem poucos termos de produtos e as PROMS possuem um
decodificador completo para sua entrada de endereo.

PLA dois nveis de portas lgicas


um plano E programvel seguido por um plano OU programvel
Plano E (produto de termos) / Plano OU (soma de termos)
realizar funes na forma de soma de produtos
versteis, pois, ambos termos E e OU podem ter muitas entradas

Alto custo de fabricao e baixo desempenho de velocidade

A. Mariano - 2012

Evoluo dos PLDs


PLA dois nveis de portas lgicas
Diagrama de blocos da PLA

Estrutura simplificada de uma PLA


A. Mariano - 2012

Evoluo dos PLDs


PAL plano nico de programao
um plano E programvel para interconexes seguido por um plano OU
fixo (no-programvel)
Para compensar a falta de generalidade (fixao do plano de portas OU):
Diferentes tipos de PAL, com diferentes nmeros de entradas e sadas, e vrios tamanhos de portas OU

Flip-flops conectados s sadas das portas OU para que circuitos seqenciais possam
ser implementados
Diversos PLDs so baseados na arquitetura da PAL e so muitas vezes denominados
de SPLDs

Baixo custo e alto desempenho de velocidade de pino a pino

A. Mariano - 2012

Evoluo dos PLDs


PAL plano nico de programao

A dificuldade para o aumento da capacidade de um SPLD que sua estrutura


cresce rapidamente com o aumento no nmero de entradas
A. Mariano - 2012

10

Evoluo dos PLDs


CPLD Complex PLD
Integrao de vrios SPLDs em um nico chip
prover interconexes dos blocos por programao
ALTERA: pioneira em CPLDs (EPLDs)
MAX 5000, MAX 7000 e MAX 9000

Dificuldade em se aumentar as estruturas dos CPLDs para maiores densidades lgicas

Macroclula
programabilidade interna
seletividade de sinais
A. Mariano - 2012

11

Evoluo dos PLDs


MPGAs Mask-Programmable Gate Arrays
Conjunto de transistores pr-fabricados que podem configurados de acordo com
o circuito lgico desenvolvido pelo usurio

gravado pela interconexo dos transistores durante a fabricao do chip

Alto custo e tempo de fabricao


Motivaram o desenvolvimento das FPGAs

A. Mariano - 2012

12

Evoluo dos PLDs


FPGA
-

conjuntos de circuitos lgicos,


chamados blocos lgicos, e
fontes de interconexo
configurao feita pelo usurio
final

Alta capacidade lgica


Responsveis por um grande
progresso na forma como os
circuitos digitais so projetados

A. Mariano - 2012

13

Categoria PLD vs Capacidade Lgica


O tipo de PLD a ser
empregado depender da
aplicao e complexidade do
circuito a ser projetado

O nmero de portas lgicas nas


FPGAs atuais est muito alm do
apresentado na Figura

Portas equivalentes
referem-se
grosseiramente ao
nmero de pontas NO-E
de duas entradas

A. Mariano - 2012

14

Chaves de Programao
Fusveis: usados nas PLAs
Uma nica gravao possvel

CMOS Domnio na industria de Cis


transistores de porta flutuante
CPLDs (EPROM e EEPROM)
FPGAs (SRAM e anti-fusveis)

A. Mariano - 2012

15

Resumo das tecnologias de chaves


de programao

A. Mariano - 2012

16

FPGA vs ASIC - Geral


Mercado crescente de FPGAs
Atualmente, capaz de implementar funes que um
ASIC fazia
Maior consumo de energia e menor desempenho
Menor Time-to-Market
Riscos de projeto menores (reconfigurvel)
Prototipagem rpida (System Generator - Xilinx)

A. Mariano - 2012

17

FPGA vs ASIC Fluxo de Projeto

A. Mariano - 2012

18

FPGAs

A. Mariano - 2012

19

Definio FPGA
FPGA: Field Programmable Gate Array
Conceito criado pela Xilinx em 1985
um conjunto de circuitos integrados conectados por
uma matriz de clulas lgicas programveis
Tentava preencher o espao entre CPLDs (Complex
Programmable Logic Devices) e ASICs (Application
Specific Integrated Circuit)
O que se programa?
Blocos lgicos, interconexes e entradas/sadas

A. Mariano - 2012

20

Caractersticas (1/2)

Arquitetura massivamente paralela


Frequncia de elevada de operao
Grande quantidade de I/Os (Input/Output)
Reprogramvel
2,5 bilhes de transistores (8-core Intel 2,3 bi)
Aplicaes computacionalmente intensivas,
paralelas e de tempo-real

A. Mariano - 2012

21

Caractersticas (2/2)
Ferramentas de desenvolvimento alto-nvel
IP Cores (Ncleos de Propriedade Intelectual)
Grande variedade de tamanhos e funes

DSPs (MACs Multiply and Accumulate)


Ethernet MAC (Medium Access Controller), PCI Express
Processores embarcados PowerPC 440
Memrias
Digital Clock Managers
High-Speed I/O - at 6GB/s

A. Mariano - 2012

22

Estrutura de uma FPGA


Possuem unidades funcionais chamadas de CLBs
(Configurable Logic Blocks) que implementam a lgica
do circuito
Unidades de interface, chamadas de IOBs (I/O
Blocks), estabelecem a interface com o hardware
Estrutura (matriz) de interconexes, ligando uma
unidade (IOB/CLB) a outra
Memria de configurao determina o chaveamento
das conexes fsicas
A. Mariano - 2012

23

Estrutura de uma FPGA

Amarelo = IOBs
Vermelho = CLBs
Verde = Memrias
Rosa = Clocks
Azul C. = Mux
Azul E. = PLLs
A. Mariano - 2012

24

Estrutura de uma FPGA


DCM Digital Clock Manager
CLB - Configurable Logic Blocks
IOB - I/O Blocks

Fonte: Data Sheet Spartan-3 Family


A. Mariano - 2012

25

Estrutura de uma FPGA Blocos de Lgica Configurvel (CLB)


Usualmente cada bloco funcional composto por:
LUT-4 / RAM / Shift Register
Mux
Flip-Flop

Sadas so de apenas 1 bit


A composio de diversos blocos funcionais
implementa circuitos complexos
Podem ser do tipo fine-grained ou coarse

A. Mariano - 2012

26

Estrutura de uma FPGA - Blocos de I/O (IOB)


Grande quantidade de padres eltricos (LVDS,
LVPECL, LVCMOS, LVTTL, etc)
L = Low, V = Voltage, P = Positive

FPGAs Xilinx variam de 1.2V at 3.3V para sinais


absolutos (single-ended)
Sinais diferenciais operam at 2.5V
Possuem de 100 at 1000 pinos de I/O
Rocket I/O: de 100MB/s a 6.75GB/s

A. Mariano - 2012

27

Estrutura de uma FPGA - Blocos de I/O (IOB)

Fonte: Data Sheet Spartan-3 Family


A. Mariano - 2012

28

Estrutura de uma FPGA Matriz de Interconexes


As chaves esto dispostas horizontalmente e verticalmente
entre os blocos lgicos
Conectam os IOBs aos CLBs, definindo o roteamento dos sinais
SRAM: memria de boot, rpida configurao com gravao
no chip e grande rea de silcio
EPROMs: sem memria de boot, configurao lenta com
gravao fora do chip

A. Mariano - 2012

29

Fluxo de Projeto Viso Geral


Design Entry (VHDL)
Synthesis
Constraints

Implementation
Constraints

Synthesis (RTL)

Behavioral Simulation

Implementation

Translate
Map
Place & Route

Floor-Planning

Timing Simulation
Timing Analysis
FPGA (.bit)

A. Mariano - 2012

30

Fluxo de Projeto Viso Geral


O fluxo de projeto independente do fabricante
Podem existir passos adicionais especficos a cada
plataforma
Normalmente foca-se na primeira etapa, a
especificao (design entry), mas outras etapas
tambm so importantes
Cada fabricante fornece um ambiente integrado de
desenvolvimento capaz de dar suporte a cada uma
dessas etapas (Altera Quartus, Xilinx ISE, etc)

A. Mariano - 2012

31

Fluxo de Projeto Viso Geral


Possibilidade de utilizao de softwares
especializados em determinada etapa do projeto
(ModelSim - simulao, Synplify sntese, etc)
So capazes de gerar o cdigo executvel FPGA,
chamado de bitstream (.bit) e descarreg-lo (JTAG)
Fornecem diversas diretivas de sntese (mtricas,
estilos de implementao, restries de projeto, entre
outros)

A. Mariano - 2012

32

Fluxo de Projeto Viso Geral


Design Entry
Synthesis

VHDL

RTL

Implementation
Translate
Map
Place & Route

Floor-Planning

Esquemtico

Cada etapa do fluxo


de projeto gera um
sub-produto, que
utilizado com entrada
da etapa seguinte

Configurao

FPGA (.bit)

A. Mariano - 2012

33

Fluxo de Projeto Design Entry


Onde o projetista define a
especificao do projeto de hardware
O resultado dessa etapa um modelo
de circuito descrito em VHDL ou
Verilog
A verificao dessa etapa feita por
meio de simulaes
Pode ser do tipo estrutural,
comportamental ou RTL
A. Mariano - 2012

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

34

Fluxo de Projeto - Sntese


Etapa que converte um modelo VHDL
em um modelo de circuito
Lista todos os elementos lgicos que
compem o modelo projeto (ANDs, ORs,
MUXs, Adders, etc)
a etapa de compilao do cdigo
Converte HDL (Hardware Description
Language) em RTL (Register-Transfer
Level)
A anlise sinttica e hierrquica feita
nessa etapa, buscando mtricas de
otimizao
A. Mariano - 2012

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

35

Fluxo de Projeto - Sntese


VHDL no foi concebida inicialmente
para sntese de circuitos

Design Entry
Synthesis

Seu foco era especificao


Permite construes abstratas, nem
sempre sintetizveis
Tambm possvel simular o resultado
gerado nessa etapa

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

A. Mariano - 2012

36

Fluxo de Projeto - Implementao


A etapa de implementao composta
por 3 partes
Traduo
Mapeamento
Posicionamento e Roteamento

Essa etapa dependente da plataforma


Transforma um modelo conceitual em um
circuito digital pronto para ser
descarregado em FPGA (bitstream
download)

A. Mariano - 2012

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

37

Fluxo de Projeto - Implementao


Traduo
Combina as restries de projeto com os
esquemas gerados anteriormente em um
nico arquivo de design lgico
Todos os elementos lgicos so reduzidos
a primitivas de implementao
Essa etapa algumas vezes omitida (
apenas um agregador de informaes)

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

A. Mariano - 2012

38

Fluxo de Projeto - Implementao


Mapeamento:
Divide e distribui os elementos lgicos
definidos na traduo em recursos da
FPGA (technology-specific)
Circuitos complexos so divididos em
unidades funcionais menores
Cada circuito mapeado em um CLB ou
IOB, etc
Nessa fase j existe informao precisa
sobre atrasos de comutao (atraso de
cada unidade funcional)
A. Mariano - 2012

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

39

Fluxo de Projeto - Implementao


Posicionamento e Roteamento:
Arranjo espacial das unidades lgicas
alocadas para implementar o projeto
Posicionamento tenta manter a lgica
relacionada prxima (performance)
Roteamento conecta os blocos lgicos
mapeados
Essa etapa impacta significativamente
no desempenho do circuito (atrasos de
propagao)
A. Mariano - 2012

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

40

Fluxo de Projeto Viso Geral


Design Entry (VHDL)
Synthesis
Constraints

Implementation
Constraints

Synthesis (RTL)

Behavioral Simulation

Implementation

Translate
Map
Place & Route

Floor-Planning

Timing Simulation
Timing Analysis
FPGA (.bit)

A. Mariano - 2012

41

Fluxo de Projeto Anlise de Tempo


Faz-se a anlise de tempo do circuito e de
dissipao de energia
a anlise mais precisa do processo (todos os
elementos do circuito e suas conexes j so
conhecidos)
Determina-se a frequncia mxima de operao,
caminho crtico, etc
O resultado obtido pode conduzir a uma reviso
das etapas anteriores

A. Mariano - 2012

42

Fluxo de Projeto Viso Geral


Design Entry (VHDL)
Synthesis
Constraints

Implementation
Constraints

Synthesis (RTL)

Behavioral Simulation

Implementation

Translate
Map
Place & Route

Floor-Planning

Timing Simulation
Timing Analysis
FPGA (.bit)

A. Mariano - 2012

43

Fluxo de Projeto Restries de Usurio


possvel criar restries de projeto
A ferramenta, durante cada etapa, tenta atingir essas
restries
Restries fsicas do sinal: frequncia de operao,
offset, slew-rate, etc
Restries gerais: posio de I/Os, rea/desempenho,
estilo de FSM (Finite State Machine), etc
Caso uma dessas caractersticas no seja atendida, o
projeto falha
A. Mariano - 2012

44

Fluxo de Projeto - FloorPlanning


Quando os resultados obtidos pela
anlise de tempo no forem
satisfatrios, necessrio intervir no
processo de implementao
Problemas de frequncia podem ser
superados utilizando-se tcnicas de
pipeline
Fan-outs elevados podem ser eliminados
pela replicao de sinais
Pode ser necessrio posicionamento
manual para superar problemas de
atraso
A. Mariano - 2012

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

45

Fluxo de Projeto Programao da FPGA


Uma vez completado com sucesso as
etapas anteriores, um arquivo .bit
(bitstream) gerado
Esse arquivo pode ser transferido a uma
placa FPGA via JTAG (ou via USB-port)
Em caso de produto final, esse
bitstream gravado em uma memria
PROM
Durante a inicializao do dispositivo, a
FPGA busca sua configurao nessa
memria
Bitstream pode ser criptografado
A. Mariano - 2012

Design Entry
Synthesis

Implementation
Translate
Map
Place & Route

Floor-Planning
FPGA (.bit)

46

Você também pode gostar