Você está na página 1de 58

Universidade Federal de Pelotas

Instituto de Fsica e Matemtica Departamento de Informtica


Bacharelado em Cincia da Computao

Tcnicas Digitais
Aula 17
3. Implementao de circuitos digitais: componentes programveis (configurveis) pelo projetista (ROM, PLA, PAL, CPLD, FPGA) Prof. Jos Lus Gntzel
{guntzel,agostini}@ufpel.edu.br www.ufpel.edu.br/~guntzel/TD/TD.html

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
QCL, LPGAs pr-difundidos (gate array/sea-of-gates)

ASIC
(full custom)

processador controlador

FPGA
Faltam algumas ou todas etapas de fabricao Programao=definio das mscaras

CPLD PLA, PAL ROM, PROM, EPROM, EEPROM SSI/MSI


slide 17.2

Chip fabricado e encapsulado Programao por fusveis, transistores especiais ou SRAM

Chip fabricado e encapsulado ou projeto validado que pode ser embarcado Programao por linguagem de montagem

Chip fabricado e encapsulado Programao=ligao entre os chips Prof. Jos Lus Gntzel

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
QCL, LPGAs pr-difundidos (gate array/sea-of-gates)

ASIC
(full custom)

processador controlador

FPGA

Componentes (ou dispositivos) programveis

CPLD PLA, PAL ROM, PROM, EPROM, EEPROM SSI/MSI

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.3

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
1960-1970: circuitos integrados TTL SSI e MSI da Texas Inst.
VDD

Gnd

DIP: dual-inline package

Estrutura do CI 7404 da famlia TTL (Texas Instruments)

Diversos fabricantes surgiram: National, AMD, Cypress


ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.4

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
Problema: baixa
capacidade de integrao
7404

VDD

f = x1x2 + x2x3
7408 7432

x1 x2 x3

f slide 17.5
Prof. Jos Lus Gntzel

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
Sejam as funes F1 e F2:
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 0 1 0 0 0 0 1 1 F2 0 1 0 0 0 1 1 1

F1= (1,6,7) F1= ABC + ABC + ABC

F2= (1,5,6,7) F2= ABC + ABC + ABC + ABC

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.6

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
A B C

8 linhas

Uma estrutura padro para circuitos em soma de produtos

8 mintermos

256 sadas, no mximo


ComputaoUFPel F1 Tcnicas Digitais - semestre 2006/2

Decodificador 3:8

F2

F3

slide 17.7

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
Conveno:

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.8

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
conexo programvel

Supondo 8x4:
possvel implementar at 4 funes de 3 variveis de entrada

0 1 A B C 2 3 4 5 6 7

DEC 3:8
F1 F2 F3 F4

.
Prof. Jos Lus Gntzel

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.9

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
conexo programada
0 1 A B C

A 0 0 0 0 1 1 1 1
F1 F2 F3 F4

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

F1 0 1 0 0 0 0 1 1

F2 0 1 0 0 0 1 1 1

0 0 1

2 3 4 5 6 7

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.10

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Como implementar um sistema digital?
Este tipo de componente existe e se chama ROM: Read-Only Memory
0 1 A 2 3 4 C 5 6 7

endereo

Armazena a tabela-verdade das funes de sada

O endereo seleciona uma linha na qual est armazenado o valor de sada para cada uma das funes implementadas
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

F1

F2

F3

F4

.
Prof. Jos Lus Gntzel

slide 17.11

Componentes Configurveis pelo Projetista


Configurabilidade (Programabilidade)
fusvel
0 1 A B C 2 3 4 5 6 7

F1

F2

F3

F4

.
Prof. Jos Lus Gntzel

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.12

Componentes Configurveis pelo Projetista


Configurabilidade

0 1 A B C 2 3 4 5 6 7

Transistor (MOS)

F1

F2

F3

F4

.
Prof. Jos Lus Gntzel

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.13

Componentes Configurveis pelo Projetista


Configurabilidade
Funcionamento Simplificado do transistor NMOS: uma chave eletrnica
S G=0 S

chave aberta
(sem corrente eltrica)
D S D S DS

chave fechada
G=1 D
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

com corrente eltrica at que


D=S D
slide 17.14
Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Configurabilidade
Possibilidades Tecnolgicas: Transistor MOS fixo ou diodo (mscaras) Fusvel (PROM) Transistor MOS com gate flutuante - FAMOS (EPROM) Transistor MOS FLOTOX (EEPROM) Transistor MOS ETOX (FLASH) Armazenamento da programao em bits SRAM

componentes programveis e FPGAs

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.15

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Configurabilidade
Floating gate Source tox tox n
+ p

FAMOS
D Drain

Gate

Substrate

(a) Device cross-section


ComputaoUFPel Tcnicas Digitais - semestre 2006/2

(b) Schematic symbol


Prof. Jos Lus Gntzel

slide 17.16

Componentes Configurveis pelo Projetista


Configurabilidade
20 V 0V

FAMOS
5V

10 V 5 V S

20 V

5 V S

0V

2.5 V S

5V

Avalanche injection.

Removing programming voltage leaves charge trapped.

Programming results in higher V T.

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.17

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Configurabilidade
Floating gate Source 20-30 nm n+ n+ 10 nm Gate Drain 10 V 10 V Substrate p VGD I

FLOTOX

(a) Flotox transistor

(b) Fowler-Nordheim I-V characteristic


BL

WL

VDD

(c) EEPROM cell slide 17.18read operation during a ComputaoUFPel Tcnicas Digitais - semestre 2006/2

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Configurabilidade
Control gate Floating gate

ETOX

erasure n+ source

Thin tunneling oxide

programming p-substrate

n+ drain

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.19

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Configurabilidade
Programao pelas mscaras (mask-programmable) feita pela empresa que fabrica CIs (foundry) Programao em campo (field-programmable) O CI j foi fabricado e encapsulado A programao feita pelo usurio/projetista Pode ser feita com um equipamento especial ou pode ser feita na prpria placa em que ir o componente

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.20

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PLDs: Programmable Logic Devices
TTLs e PROMs oferecem quase nenhuma flexibilidade e baixssima integrao A partir de 1970 surgiram alternativas com maior capacidade de integrao, os PLDs Um PLD um circuito lgico programvel de propsito geral Tipos: PLAs, PALs
marca registrada da Advanced Micro Devices - AMD

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.21

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PLA: Programmable Logic Array
Introduzida no mercado pela Philips, (incio da dcada de 1970).

Plano E

Plano OU

Um PLA tpico possui: 16 entradas 48 produtos 8 sadas


Inversores e buffers

sadas

entradas
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.22

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PLA: Programmable Logic Array
Conexes programveis

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.23

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PLA: Programmable Logic Array
Implementao em Tecnologia CMOS: soma de produtos

Tomando as variveis de entrada negadas e aplicando De Morgan

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.24

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PLA: Programmable Logic Array
Implementao em Tecnologia CMOS: portas NOR com muitas entradas
(depleo)

Transistor de pr-carga

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.25

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PLA: Programmable Logic Array
Programando um PLA Por questes de desempenho, prefervel implementar produtos simplificados.
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 0 1 0 0 0 0 1 1 F2 0 1 0 0 0 1 1 1

F1= ABC + ABC + ABC F2= ABC + ABC + ABC + ABC Geralmente, nmero de produtos limitado: Tentar compartilhar produtos entre as equaes das sadas
slide 17.26
Prof. Jos Lus Gntzel

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

Componentes Configurveis pelo Projetista


PLA: Programmable Logic Array
F1
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 0 1 0 0 0 0 1 1 F2 0 1 0 0 0 1 1 1

BC BC BC BC 0 0 ABC 1 0 0 1 0 1 AB

A A

F1= ABC + AB

F2 A A

BC BC BC BC 0 0 AC 1 1 0 1 0 1

F2= ABC + AB + AC
AB

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.27

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PLA: Programmable Logic Array
A B C

F1= ABC + AB F2= ABC + AB + AC

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

F1 slide 17.28

F2
Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PAL: Programmable Array Logic
PLAs possuem muitas conexes possveis, o que encarece o componente PALs possuem menos flexibilidade, mas so bem mais baratas O plano OU fixo
marca registrada da Advanced Micro Devices - AMD

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.29

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PAL: Programmable Array Logic
entradas

Um PAL comercial (pequeno) possui: 8 entradas 8 sadas 8 sees, cada uma com uma soma de produtos com 8 entradas

sadas

Plano E
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.30

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PAL: Programmable Array Logic
Em funo da falta de flexibixibilidade do plano OU, as funes devem ser minimizadas separadamente
ABC
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 0 1 0 0 0 0 1 1 F2 0 1 0 0 0 1 1 1

F1 A A

BC BC BC BC 0 0 1 0 0 1 BC 0 1 AB

F1= ABC + AB

F2 A A

BC BC BC BC 0 0 1 1
slide 17.31

F2= BC + AB
AB
Prof. Jos Lus Gntzel

0 1

0 1

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

Componentes Configurveis pelo Projetista


PAL: Programmable Array Logic
A B C

F1= ABC + AB F2= BC + AB


F1

F2

Plano E
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.32

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PAL: Programmable Array Logic
Circuito com uma sada especial permite lgica multinvel

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.33

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


PAL: Programmable Array Logic
Circuito extra na sada para aumentar a flexibilidade
Select Enable sada Flip-flop D Q Clock

Para o plano E

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.34

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Equipamento para Programao de PLDs

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.35

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


SPLDs (PLAs e PALs)
Fabricantes de SPDLs/modelos:
empresa Altera Atmel Cypress Lattice Philips Vantis produtos Classic, FLASHlogic PAL PAL GAL PLA, PAL PAL Web page www.altera.com www.atmel.com www.cypress.com www.latticesemi.com www.philips.com www.vantis.com

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.36

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


CPLDs: Complex Programmable Logic Devices
PLAs e PALs disponveis com poucos pinos (mximo, 32) Circuitos complexos precisariam de muitos componentes, conectados via placa Restries de desempenho (velocidade, consumo) e tamanho CPLDs: Lanados no final da dcada dos 80 (+/- 1989, El Gamal), pela Altera.
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.37

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


CPLDs: Complex Programmable Logic Devices
Bloco de E/S

Bloco tipo PAL

Bloco tipo PAL

Estrutura de um CPLD

Bloco de E/S

Rede de interconexo

CPLDs existentes no mercado: Possuem entre 2 a 100 blocos tipo PAL Variedade de encapsulamentos, com at 200 pinos (QFP)
Prof. Jos Lus Gntzel

Bloco de E/S

Bloco de E/S

Bloco tipo PAL

Bloco tipo PAL

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.38

Componentes Configurveis pelo Projetista


PAL-like block (details not shown)

CPLDs reais: Cada bloco possui em torno de 16 macrocells Cada porta OR possui entre 5 a 20 entradas

PAL-like block

macrocell
D Q

Tri-state buffers: Permitem configurar os pinos (E/S)

D Q

D Q

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.39

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


CPLDs: Complex Programmable Logic Devices
Fabricantes de CPDLs/modelos:
empresa Altera Atmel Cypress Lattice Philips Vantis Xilinx produtos MAX 5000, 7000, 9000 ATE, ATV FLASH370, Ultra37000 ispLSI 1000-8000 XPLA MACH 1-5 XC9500 Web page www.altera.com www.atmel.com www.cypress.com www.latticesemi.com www.philips.com www.vantis.com www.xilinx.com

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.40

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


CPLDs: Complex Programmable Logic Devices
Exemplo comercial: Altera MAX 7000
Diagrama de blocos da arquitetura MAX 7000

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.41

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


CPLDs: Complex Programmable Logic Devices
Exemplo comercial: Altera MAX 7000

MAX 7000A macrocell


ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.42

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


CPLDs: Complex Programmable Logic Devices
Exemplo comercial: Altera MAX 7000
Expansores paralelos

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.43

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
PLAs e PALs so muito simples (<200 gates equivalentes) CPLDs tm capacidade moderada (at 100.000 gates equivalentes) Atualmente, FPGAs apresentam capacidade de mais de 1M de gates equivalentes Os blocos programveis dos FPGAs no contm planos E/OU Os blocos lgicos (logic blocks) so baseados na implementao direta da tabela-verdade (lookup tables)
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.44

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


I/O block

Estrutura de um FPGA
chaves programveis (ligaes do bloco com as linhas de interconexo)

I/O block

I/O block

chaves programveis (ligaes entre linhas verticais e horizontais) Bloco lgico

I/O block
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.45

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
A B
0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1

LUTs so mais compactas que arranjos E/OU, pois so implementadas como MUXes (com trans. de passagem) LUTs necessitam de elementos de memria, que normalmente so SRAM As LUTs dos FPGAs disponveis no mercado possuem 4 ou 5 entradas (16 ou 32 elementos)

C
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.46

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Programando LUTs
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 0 1 0 0 0 0 1 1 F2 0 1 0 0 0 1 1 1

A B
0 1 0 0 0 0 1 1

F1

C
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.47

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Circuito de Sada
Select

Out In 1 In 2 In 3 Clock LUT Flip-flop D Q

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.48

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


x3 f

x1 x1 0 0 0 x2 1 x2 0 1 0 x3 0

f1

f2

x2

f1 0 1 1 f2 1

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.49

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Xilinx Virtex
Fatia do CLB

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.50

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Xilinx Spartan-II Fatia do CLB (2 fatias em cada CLB)

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.51

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Altera FLEX10K Diagrama de blocos

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.52

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Altera FLEX10K Logic array block

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.53

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Altera FLEX10K: elemento lgico

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.54

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
Fabricantes de FPGAs/modelos:
empresa Actel Altera Atmel Lucent Quicklogic Vantis Xilinx produtos Act 1, 2 e 3, MX, SX FLEX 6000, 8000, 10 K, APEX 20k, ACEX, Stratix, Cyclone AT6000, AT40K ORCA 1, 2 e 3 pASIC 1, 2 e 3 VF1 XC3000, XC4000, XC5200, Virtex, Spartan
slide 17.55

Web page www.actel.com www.altera.com www.atmel.com www.lucent.com www.quicklogic.com www.vantis.com www.xilinx.com

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
As funes devem caber dentro das LUTs O mapeamento feito automaticamente por ferramentas de CAD que os fabricantes fornecem:
Altera: MaxPlusII e Quartus II Xilinx: Foundation 1.5 e ISE

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.56

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


FPGAs: Field Programmable Gate Arrays
O contedo de um FPGA perdido quando a alimentao interrompida A placa onde est o FPGA deve ter tambm uma PROM, a qual contm a programao da FPGA Os elementos de armazenamento do FPGA so carregados automatizamente quando a alimentao ligada FPGAs permitem a reconfigurao (dinmica ou esttica) de um sistema
ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.57

Prof. Jos Lus Gntzel

Componentes Configurveis pelo Projetista


Resumo
SSIs e MSIs (TTL) obsoletos h muito tempo PROMs, EPROMs, EEPROMs: alternativa aos TTL, com maior capacidade (1970) PLAs, PALs: pequena integrao. Planos E/OU. CPLDs: muitos blocos tipo PAL/PLA + blocos interconexo FPGAs: blocos lgicos so LUTs (mais compactas). Atualmente, mais de 1M de gates equivalentes. Possibilidade
de reconfigurao

ComputaoUFPel Tcnicas Digitais - semestre 2006/2

slide 17.58

Prof. Jos Lus Gntzel