dispositivos programáveis 1 - dcc.ufrj.brgabriel/circlog/displogpro.pdf · 3 gabriel p. silva...

58
Gabriel P. Silva 1 Dispositivos Dispositivos Lógicos Lógicos Programáveis Programáveis Circuitos Lógicos Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva ©2009

Upload: vuminh

Post on 30-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva1

DispositivosDispositivosLógicos Lógicos

ProgramáveisProgramáveisCircuitos LógicosCircuitos Lógicos

DCC-IM/UFRJ Prof. Gabriel P. Silva

©2009

Page 2: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva2

Família de Sistemas Digitais

Page 3: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva3

Comparação: Velocidade e Consumo

LógicaDiscreta

CPLDFPGA

ASIC Estruturado

ASICCélula-Padrão

VLSIPersonalizado

Alta VelocidadeBaixo Consumo

Page 4: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva4

Dispositivos Lógicos Programáveis (PLD)

• Tipos:– PLA– PAL– CPLD– FPGA– ASICs– Gate Array

• Aplicações de CPLDs, FPGAs e Gate Arrays

Page 5: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva5

Dispositivos Lógicos Programáveis (PLD)

• O que é um PLD ?– R: Sigla de “Programmable Logic Device”– R: É um circuito integrado que pode conter

grande quantidade de circuitos lógicos, com uma estrutura que não é fixa.

– R: É um tipo de integrado que contém circuitos lógicos e chaves programáveis cujas funções são definidas pelo usuário.

Page 6: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva6

Dispositivos Lógicos Programáveis (PLD)

Page 7: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva7

Dispositivos Lógicos Programáveis (PLD)

Page 8: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva8

PLA• “Programmable Logic Array”• O primeiro dispositivo programável.• Composto por uma matriz programável de

“ANDs” e outra de “Ors”.• Normalmente são dispositivos de capacidade

muito reduzida, com apenas algumas dezenas de portas.

• Utiliza lógica de fusíveis para a sua programação.

• Uma vez programados não podem ser reprogramados.

Page 9: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva9

PLA

Page 10: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva10

PLA

Page 11: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva11

PLA• Diagrama esquemático da PLA

Conexão Realizada

Page 12: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva12

PLA• Como são usados as PLAs ?

– R: São incluídos como parte de chips maiores, como na unidade de controle de um microprocessador, para decodificar as instruções. Nesse caso a configuração é fixa

• Podem ser encontradas com integrados disponíveis no mercado, quando, tipicamente, possuem:– 16 entradas,– 32 termos de produto e– 8 saídas

Page 13: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva13

PAL• “Programmable Array Logic”• Dispositivo programável com o “array” de OR

fixo.

Page 14: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva14

Page 15: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva15

Page 16: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva16

PAL• Qual a diferença em relação a um PLA ?

– R: A PAL possui plano AND programável, mas o plano OR é fixo

– R: A PLA possui ambos os planos programáveis

• Significa dizer que a PAL é:– + simples de fabricar– + barata– + desempenho

Page 17: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva17

PAL16H8

Page 18: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva18

PAL

Page 19: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva19

PAL Comercial

Page 20: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva20

Exemplo de Aplicação

Page 21: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva21

Exemplo de Aplicação

Page 22: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva22

Progamação de PALs e PLAs

Page 23: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva23

Progamação de PALs e PLAs

Page 24: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva24

Encapsulamentos

• Dual in Line Package (DIP)

Page 25: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva25

Encapsulamentos

• Plastic-Leaded Chip Carrier (PLCC)

Page 26: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva26

Fabricantes

• Altera• Xilinx• Atmel• Cypress• Lattice• Data-io• ...

Page 27: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva27

CPLD

• O que são CPLDs?– R: Sigla para – Complex Programmable Logic

Device– R: É um circuito que pode conter múltiplos

BLOCOS de circuitos, com recursos de CONEXÃO (wiring) interna para conectar esses blocos

– R: Quando no projeto muitas entradas e saídas são necessárias, as PALs e PLAs não as possuem em número suficiente, usa-se então um CPLD.

Page 28: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva28

CPLD

• Os elementos programáveis são células do tipo EEPROM (Eletrical Erasable PROM) , ou seja, são reprogramáveis mediante apagamento prévio do conteúdo anterior.

• A informação de programação é armazenada em caráter não volátil, isto é, enquanto não houver uma operação explícita de apagamento elas são mantidas indefinidamente.

Page 29: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva29

CPLD

Page 30: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva30

CPLD

Page 31: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva31

Encapsulamentos para CPLD

Page 32: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva32

Programação de CPLD

Page 33: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva33

Exemplo de CPLD

Page 34: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva34

Exemplo de CPLD

Page 35: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva35

Exemplo de CPLD

Page 36: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva36

Exemplo de CPLD

Page 37: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva37

Exemplo de CPLD

Page 38: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva38

Page 39: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva39

FPGA

• O que é um FPGA ?– R: Sigla para – Field-Programmable Gate

Array– R: É um circuito integrado que possui

capacidade lógica superior a dos CPLDs– R: É um chip que não possui planos AND e

OR, mas BLOCOS LÓGICOS CONFIGURÀVEIS.

Page 40: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva40

FPGA

• São dispositivos programáveis que possuem uma arquitetura baseada em blocos lógicos configuráveis, chamados de CLB (Configuration Logical Blocks).

• Os CLBs são formados por portas lógicas e flip-flops que implementam funções lógicas.

• A FPGA também é formada por estruturas chamadas de blocos de entrada e saída (IOB – In/Out Blocks), os quais são responsáveis pela interface das saídas provenientes das combinações de CLBs.

Page 41: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva41

FPGA

Page 42: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva42

FPGA

Blocos Lógicos Configuráveis

Blocos de Entrada e Saída

Linhas de Roteamento

Matriz de Roteamento

Blocos Lógicos Configuráveis

Blocos de Entrada e Saída

Linhas de Roteamento

Matriz de Roteamento

Blocos Lógicos Configuráveis

Blocos de Entrada e Saída

Linhas de Roteamento

Matriz de Roteamento

Page 43: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva43

FPGA

Page 44: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva44

FPGA• Uma FPGA usa Blocos Lógicos reconfiguráveis• Os bits de configuração são selecionados de acordo

com a função lógica desejada.• A configuração é uma tabela da verdade (lookup

table) da funcionalidade

OutIn1

In2

config

config Out000 NOT(In1)001 NOT(In2)010 OR011 NOR100 AND101 NAND110 XOR111 XNOR

Page 45: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva45

FPGA• A FPGA pode implementar lógica puramente

combinacional ou sequencial, ou seja, que faz uso de flip-flops.

Page 46: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva46

FPGA• LUTs = Look Up Tables

- As LUTs podem ser programadas para qualquer tipo de porta necessária ao projeto- Há um número finito de LUTs em uma FPGA.

OutIn1

In2

config

OutIn1

In2

config

OutIn1

In2

config

OutIn1

In2

config

OutIn1

In2

config

OutIn1

In2

config

OutIn1

In2

config

OutIn1

In2

config

OutIn1

In2

config

Page 47: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva47

FPGA• As interconexões entre as LUts são programáveis.

LUT LUT LUT

LUT LUT LUT

LUT LUT LUT

X

X

X

X

X

X

X

X

X

X

X

X

X X X

XX

Page 48: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva48

FPGA

LUT LUT LUT

LUT LUT LUT

LUT LUT LUT

X

X

X

X

X

X

X

X

X

X

X

X

X X X

XX

Page 49: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva49

FPGA

LUT LUT LUT

INV OR LUT

INV AND LUT

X

X

X

X

X

X

X

X

X

X

X

X

X X X

XX

A

B

C

Out

Page 50: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva50

FPGA• Os fabricantes de FPGAs rapidamente percebeam

que o uso de flip-flops poderia ser muito útil.• Eles conectaram um flip-flop do tipo D a uma LUT

de quatro entradas para formar um “Bloco Lógico Configurável” (CLB)

CLB CLB

CLB CLB

X

X

X

X X

Page 51: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva51

FPGA – Bloco Lógico Configurável

Page 52: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva52

FPGA – Bloco Lógico Configurável

Page 53: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva53

FPGA

• A configuração da LUT e da interconexão é volátil, isto é, se perde quando a alimentação é removida.

• Existe uma memória não-volátil associada à FPGA de onde a sua configuração é carregada quando o sistema é ligado.

• Já que a programação é feita pelo usuário depois da fabricação ela é chamada de programável no campo – field programmable.

Page 54: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva54

FPGA

• Outros aspectos:– Ferramentas CAD translacionam uma função

lógica para o interior de um único bloco lógico– Células de LUTs são voláteis, então são

necessárias PROMS ao lado de FPGAs (conteúdo atualizado ao serem alimentadas)

– São voláteis pois as células de armazenamento são implementadas com memórias SRAMs (memórias RAM estáticas)

– FPGAs são indicados para circuitos com mais de 1 milhão de transistores

Page 55: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva55

Encapsulamentos de FPGA

Page 56: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva56

ASICs e Gate Arrays

Page 57: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva57

Encapsulamentos ASICs

Page 58: Dispositivos Programáveis 1 - dcc.ufrj.brgabriel/circlog/DispLogPro.pdf · 3 Gabriel P. Silva Comparação: Velocidade e Consumo Lógica Discreta CPLD FPGA ASIC Estruturado ASIC

Gabriel P. Silva58

Conclusões