74
Dispositivos lógicos programáveis

Dispositivos lógicos programáveis - SEL

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dispositivos lógicos programáveis - SEL

Dispositivos

lógicos programáveis

Page 2: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Lógica discreta (LD) versus programável (LP)

LD LP

Ciclo de projecto

Flexibilidade a alterações

Área de PCB

Custo unitário (baixas séries)

Stock de CIs

Característica comparativa

Baixo

Elevada Baixa

Baixo

Menor

Baixo

Programmable Logic Devices (PLDs)

Dispositivos lógicos programáveis

Dispositivos programáveis pelo utilizador

Elevado

Elevado

Elevado

Page 3: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Classes de PLDs

PLDs simples

PLDs complexos

PLD

PLD simples

(SPLD)

PLD complexos

(HCPLD)

PLA PAL FPGA CPLD

Page 4: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Princípio de funcionamento dos SPLDs

Baseia-se em SOPs

Buffers de

entrada e

inversores

Plano

AND

Plano

OR

x1 x2 xN-1 xN

P1

Estrutura geral de um SPLD

x1 x1 xN xN

PK

Z1

ZM

Page 5: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

SPLDs

Funcionalidades

Plano OR Dispositivo

Fixo

Fixo

Programável

Plano AND

PROM

PAL

Não programável

Programável

Fixo

Programável

Fixo

Programável PLA

Page 6: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Logic Array (PLA) Esquema interno

x1 x2 x3 Conexões configuráveis (fusíveis)

Plano OR

Plano AND

P1

P2

P3

P4

f1 f2

Page 7: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Logic Array (PLA) Arquitectura interna

x1 x2 x3

P1

P2

P3

P4

f1 f2

P1 = x1x2

P2 = x1x3

P3 = x1x2x3

P4 = x1x3

Page 8: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Logic Array (PLA) Arquitectura interna

x1 x2 x3

P1

P2

P3

P4

f1 f2

f1 = P1+P2+P3

f2 = P1+P3+P4

Page 9: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Logic Array (PLA) Esquema alternativo

OR plane

P1

AND plane

x1 x2 x3

P2

P3

P4

f1 f2

x1 x2 x3

Plano OR

Plano AND

P1

P2

P3

P4

f1 f2

x1 x2 x3 Plano OR

(programável)

Plano AND

(programável)

Page 10: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Logic Array (PLA) Esquema alternativo

OR plane

P1

AND plane

x1 x2 x3

P2

P3

P4

f1 f2

x1 x2 x3

Plano OR

Plano AND

P1

P2

P3

P4

f1 f2

P1 = x1x2

P2 = x1x3

P3 = x1x2x3

P4 = x1x3

x1 x2 x3

Page 11: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Logic Array (PLA) Esquema alternativo

OR plane

P1

AND plane

x1 x2 x3

P2

P3

P4

f1 f2

x1 x2 x3

Plano OR

Plano AND

P1

P2

P3

P4

f1 f2

x1 x2 x3

f1 = P1+P2+P3 f2 = P1+P3+P4

Page 12: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Logic Array (PLA)

Vantagens

Eficiente em termos de área

Planos AND e OR programáveis

Desvantagens

Custo de fabricação elevado (2 níveis)

Baixo desempenho (atrasos significativos)

Adequado a funções lógicas na forma de SOPs

Page 13: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL) Arquitectura interna (simplificada)

f1

f2

x1 x2 x3

P1

P2

P3

P4

Plano AND

(programável)

Plano OR

(fixo)

P1

P2

P3

P4

f1

f2

Page 14: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL) Arquitectura interna (simplificada)

f1

f2

x1 x2 x3

P1

P2

P3

P4

P1

P2

P3

P4

f1

f2

P2 = x1x2x3

P3 = x2x3 P4 = x1x2x3

P1 = x1x2x3

Page 15: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Vantagens

Maior velocidade (comparativa/ com a PLA)

Desvantagens

Menor potencial de programação que a PLA

Maior desempenho (menores atrazos que PLA)

Fabrico mais simples (1 nível)

Fabrico mais barato

Plano AND programável e OR fixo

Page 16: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Macrocélulas: jusante dos ORs (por pino de saída)

registro e combinacional Modos de operação:

PAD do CI

(pino de saída)

macrocélula

Page 17: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Modo registro

S1S0

0 0

0 1

1 0

1 1

S1S0

Modo

Combinacional

Registro

SB

D Q

Q 01

00

10

11

S1

S0

Entradas seleccionadas

Page 18: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Modo combinacional

SB

S1S0

S1S0

0 0

0 1

1 0

1 1

Modo

Combinacional

Registro

D Q

Q 01

00

10

11

S1

S0

Entradas seleccionadas

Page 19: Dispositivos lógicos programáveis - SEL

D Q

Q 01

00

10

11

S1

S0

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Polaridade de saída (invertida)

SB

S1S0

S1S0

0 0

0 1

1 0

1 1

Polaridade

Activo a 0

Entradas seleccionadas

Activo a 0

Activo a 1

Activo a 1

Page 20: Dispositivos lógicos programáveis - SEL

D Q

Q 01

00

10

11

S1

S0

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Polaridade de saída (true)

SB

S1S0

S1S0

0 0

0 1

1 0

1 1

Polaridade

Activo a 0

Activo a 0

Activo a 1

Activo a 1

Entradas seleccionadas

Page 21: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Realimentação

SB

0

1

Reinjecção

Pino isolado

Do pino SB

S1S0

1

0

SB

Realimentação seleccionada

Page 22: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Realimentação

SB

0

1

Reinjecção

Pino isolado

Do pino SB

S1S0

1

0

SB

Realimentação seleccionada

Page 23: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Programmable Array Logic (PAL)

Driver tristate

SB

S1S0

1

0

SB

Driver

Page 24: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Exemplo Entradas

P, Q Estados

Y1, Y2 Saídas

Z

Page 25: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Exemplo Entradas

P, Q Estados

Y1, Y2 Saídas

Z

S2 = P.Q.Y1

Page 26: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Exemplo Entradas

P, Q Estados

Y1, Y2 Saídas

Z

S2 = P.Q.Y1

R2 = Y2

Page 27: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Exemplo Entradas

P, Q Estados

Y1, Y2 Saídas

Z

S2 = P.Q.Y1

R2 = Y2

S1 = P.Q

Page 28: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Exemplo Entradas

P, Q Estados

Y1, Y2 Saídas

Z

S2 = P.Q.Y1

R2 = Y2

S1 = P.Q

R1 = Q+P

Page 29: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Exemplo Entradas

P, Q Estados

Y1, Y2 Saídas

Z

S2 = P.Q.Y1

R2 = Y2

S1 = P.Q

R1 = Q+P

Z = Y2.Y1.P.Q

Page 30: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

SPLDs Composto por apenas 1 plano AND e OR

Configuração

Programação dos planos AND e/ou OR

Programação dos flip-flops e realimentações

Tipicamente, menos de 32 entradas/saídas

Disponível em caixas

DIP: PCB com socket: Remoção da PAL para reprogramação

Tipicamente, menos de 100 portas lógicas

PLCC: até 100 pinos

Page 31: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

CPLDs Composto por múltiplos planos AND e OR

Extensão do conceito SPLD

Contendo múltiplos blocos do tipo PAL

Contendo múltiplas interligações internas

Facilmente se atingem 103-104 portas lógicas

Caixas disponíveis

PLCC

QFP até 200 pinos

Page 32: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

CPLDs Múltiplos blocos tipo PAL no mesmo CI

Interligações internas configuráveis

Estrutura interna

Bloco

tipo PAL

Bloco

tipo PAL

Bloco

tipo PAL

Bloco

tipo PAL

Interligações internas

I/O

I/O

I/O

I/O

Page 33: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

CPLDs Detalhe interno

Bloco tipo PAL

Bloco tipo PAL

D Q

D Q

Interligações

Page 34: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

CPLDs Características diferenciadoras

Suporte da função ISP (In-System Prog.)

Internamente possui um circuito de JTAG Joint Test Action Group

JTAG: programação não volátil Retém a programação na falta de energia

Page 35: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

Field-Programmable Gate Array (FPGA)

Constituída por células lógicas em forma de matriz

Características Elevada densidade de portas

Elevado desempenho Elevado número de I/O Esquema de interligação flexível

Vantagens Menores custos de prototipagem

Menores tempos de projecto

Page 36: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs

Matriz de células lógicas Configuráveis

Barramentos de

interligação

Programação pode ser não permanente

Programáveis

Blocos lógicos

Células de I/O

Switch box

Page 37: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs

Exemplo de

programação

Ligações

efectuadas

Blocos lógicos

Segmento

de ligação

Células de I/O

clocks

switch box

Page 38: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs

Granularidade

Granularidade

Pequeno GrandeMédio

Grão: menor unidade configurável

Page 39: Dispositivos lógicos programáveis - SEL

Granularidade

Pequeno GrandeMédio

Dispositivos lógicos programáveis

FPGAs

Granularidade

Grão: menor unidade configurável

Unidades lógicas aritméticas Microprocesadores Memórias Núcleos FFT

Page 40: Dispositivos lógicos programáveis - SEL

Granularidade

Pequeno GrandeMédio

Dispositivos lógicos programáveis

FPGAs

Granularidade

Grão: menor unidade configurável

2 LUTs e 2 flip-flops

Maioria das FPGAs

Lógica em LUTs de 4 entradas

Page 41: Dispositivos lógicos programáveis - SEL

Granularidade

Pequeno GrandeMédio

Dispositivos lógicos programáveis

FPGAs

Granularidade

Grão: menor unidade configurável

Grande número de blocos lógicos simples

Tipos de blocos

Função lógica de 2 entradas (multiplexer 4:1) 1 flip-flop

Page 42: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Teorema da expansão de Shannon

Qualquer função F exprime-se por

F = A.F + A.F Se por hipótese

F = A.B + A.B.C + A.B.C Então,

F = A.(B) + A.(B.C+B.C) = A.(B) + A.(B.C+B.C)

F1 F2 Implementação de F

0

1F

F1

F2

A

select

Page 43: Dispositivos lógicos programáveis - SEL

F1

1F

F1

F2

A

= F1

0

Dispositivos lógicos programáveis

FPGAs Teorema da expansão de Shannon

Qualquer função F exprime-se por

F = A.F + A.F Se por hipótese

F = A.B + A.B.C + A.B.C Então,

Implementação de F

A = 0

F = A.(B) + A.(B.C+B.C) = A.(B) + A.(B.C+B.C)

Page 44: Dispositivos lógicos programáveis - SEL

F2

1

FF

1

F2

A

= F2

0

Dispositivos lógicos programáveis

FPGAs Teorema da expansão de Shannon

Qualquer função F exprime-se por

F = A.F + A.F Se por hipótese

F = A.B + A.B.C + A.B.C Então,

Implementação de F

A = 1

F = A.(B) + A.(B.C+B.C) = A.(B) + A.(B.C+B.C)

Page 45: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Implementação completa de F

F = A.F1 + A.F2

F1 = B.1 + B.0

F2 = (B.C+B.C) = B.(C) + B.(C)

0

1F

F2

F1

A0

1

F10

C

B

0

1

F2C

1

B

1

C

C

0

F2

F1

Page 46: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Implementação apenas com multiplexers

AND

0

1F = A.B

0

B

A

Page 47: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Implementação apenas com multiplexers

AND

0

1F = A.B

0

B

A

OR

0

1F = A+B

B

1

A

Page 48: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Implementação apenas com multiplexers

AND

0

1F = A.B

0

B

A

OR

0

1F = A+B

B

1

A

NOT

0

1F = A

1

0

A

Page 49: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Implementação apenas com multiplexers

AND

0

1F = A.B

0

B

A

OR

0

1F = A+B

B

1

A

NOT

0

1F = A

1

0

A

XOR

0

1F = A + B

B

B

A

(= A.B + A.B)

Page 50: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Conceito de lockup-table de N entradas

Memória: conteúdo dependente da programação

Ex.: F = A.B + A.B com LUT de duas entradas

Implementa qualquer função de N variáveis

Antes da

programação

A

0 1

0 1

0 1

0 1

0

1

0

10

1

B

F

Page 51: Dispositivos lógicos programáveis - SEL

A

0 1

0 1

0 1

0 1

0

1

0

10

1

B

F

1

0

0

1

Dispositivos lógicos programáveis

FPGAs Conceito de lockup-table de N entradas

Memória: conteúdo dependente da programação

Ex.: F = A.B + A.B com LUT de duas entradas

Implementa qualquer função de N variáveis

Depois da

programação

Page 52: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Blocos lógicos

Blocos lógicos configuráveis (CLBs)

Matriz de blocos lógicos (LABs)

Terminologia

Contém diversos elem. lógicos (LEs ou slices)

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

CLB LE 1

LE 2

LE 3

LE N-2

LE N-1

LE N

LAB

Page 53: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs Ilustração de um LE

Page 54: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs Ilustração de um LE

Tipicamente: Lockup table (LUT) de 4 entradas

2-4

Page 55: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs Ilustração de um LE

Tipicamente: Lockup table (LUT) de 4 entradas Somador completo (FA) de 1 bit

2-4

Page 56: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs Ilustração de um LE

Tipicamente: Lockup table (LUT) de 4 entradas Somador completo (FA) de 1 bit 1 flip-flop D

2-4

Page 57: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs Ilustração de um LE

Tipicamente: Lockup table (LUT) de 4 entradas Somador completo (FA) de 1 bit 1 flip-flop D Circuitos de multiplexagem

2-4

Page 58: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs

Lockup table (LUT) de 4 entradas?|

Page 59: Dispositivos lógicos programáveis - SEL

carry in clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs

Lockup table (LUT) de 4 entradas?|

Modo normal (normal mode)

Page 60: Dispositivos lógicos programáveis - SEL

carry in clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs

Lockup table (LUT) de 4 entradas?|

Modo aritmético (arithmetic mode)

Page 61: Dispositivos lógicos programáveis - SEL

carry in clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs

Independentemente do modo

Saída síncrona

Page 62: Dispositivos lógicos programáveis - SEL

carry in clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs

Independentemente do modo

Saída assíncrona

Page 63: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Elemento lógico de uma FPGA FLEX10K

Page 64: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Matriz de blocos lógicos (LABs) da FLEX10K

Page 65: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Q

out

carry out clock

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

Dispositivos lógicos programáveis

FPGAs

Ex. 1: F = A.B + A.B.C + A.B.C

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

0

1

1

0

0

1

1

Page 66: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

carry in clock

D Q

out

carry out clock

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

D = 0

Dispositivos lógicos programáveis

FPGAs

Ex. 1: F = A.B + A.B.C + A.B.C

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

0

1

1

0

0

1

1 D = 0

Page 67: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

carry in clock

D Q

out

carry out clock

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0 1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

D = 1

Dispositivos lógicos programáveis

FPGAs

Ex. 1: F = A.B + A.B.C + A.B.C

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

0

1

1

0

0

1

1 D = 1

Page 68: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Ex. 2: contador de 0 a 7 (qualquer sequência)

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

1

0

1

0

1

0

Nº actual Prox. nº X Y Exemplo específico:

0, 3, 2, 5, 1, 6, 4, 7 1

1

0

1

1

0

0

0

1

0

1

0

1

1

0

0

#

0

1

2

3

4

5

6

7

#

3

6

5

2

7

1

4

0

Page 69: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Ex. 2: contador de 0 a 7 (qualquer sequência)

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

1

0

1

0

1

0

Nº actual Prox. nº X Y Exemplo específico:

0, 3, 2, 5, 1, 6, 4, 7 1

1

0

1

1

0

0

0

1

0

1

0

1

1

0

0

#

0

1

2

3

4

5

6

7

#

3

6

5

2

7

1

4

0

Componentes

(solução não óptima):

3 LUTs Z, X, Y

3 flip-flops

Page 70: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Ex. 2:

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

1

0

1

0

1

0

Nº actual Prox. nº X Y

1

1

0

1

1

0

0

0

1

0

1

0

1

1

0

0

LUT 1

Z = F1(A,B,C)

Page 71: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Ex. 2:

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

1

0

1

0

1

0

Nº actual Prox. nº X Y

1

1

0

1

1

0

0

0

1

0

1

0

1

1

0

0

LUT 1

Z = F1(A,B,C)

LUT 2

X = F2(A,B,C)

Page 72: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Ex. 2:

Z A B C

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

1

0

1

0

1

0

Nº actual Prox. nº X Y

1

1

0

1

1

0

0

0

1

0

1

0

1

1

0

0

LUT 1

Z = F1(A,B,C)

LUT 2

X = F2(A,B,C)

LUT 3

Y = F3(A,B,C)

Page 73: Dispositivos lógicos programáveis - SEL

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

Dispositivos lógicos programáveis

FPGAs Ex. 2:

Implementação

na FPGA

Antes da

programação

Page 74: Dispositivos lógicos programáveis - SEL

Dispositivos lógicos programáveis

FPGAs Ex. 2:

Implementação

na FPGA

Depois da

programação

D = 0

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

3-LUT

3-LUT FA

0

1

0

1

0

1

A

B

C

D

carry in clock

D Qout

carry out clock

LUT 1

LUT 1

LUT 2

LUT 2

LUT 3

LUT 3

GND

PAD