You are on page 1of 20

Faculdade de Engenharia de Ilha Solteira - Departamento de Engenharia Eltrica

Circuitos Digitais II - Profa. Suely C. A. Mantovani - 1o.sem/2011

Dispositivos Logicos Programveis


Devices)

- (PLDs-Programmable Logic

1-Introduo
Existe uma grande variedade de CIs (por ex. famlia TTL 74XX) com diversas
funes lgicas e arranjos de circuitos lgicos em chips de diversos fabricantes. Porm,
h algumas desvantagens em empregar estes CIs em determinados circuitos:

Necessidade de empregar centenas ou milhares de CIs no circuito ou sistema


Demanda por maior espao nas placas de circuitos impressos
Maior tempo para montar, interligar e testar os CIs
Estoque de CIs diferentes e de fabricantes diversos
Maior consumo de potncia
Menor confiabilidade
Dificuldade na Manuteno
Placa maiores, ocupa mais espao e equipamento maiores.

Para reduzir o nmero de CIs a ser usado em um projeto, preciso alocar mais
funes lgicas dentro do chip. Isto feito com aplicaes das tecnologias LSI e VLSI
para funes padres da microeletrnica. Porm, h situaes de projeto que no
existem CIs LSI e VLSI que atendam os requisitos de projeto. A soluo apresentada
pelas indstrias de dispositivos foram os PLDs.
Um PLD- Programmable Logic Device (Dispositivo Lgico Programvel),
um circuito integrado com um grande nmero de portas lgicas, flip-flops, e
registradores que so interconectados no chip.
Vrias conexes de um PLD so elos fusveis, semelhantes aos encontrados em
PROMs, que podem ser queimados. Mostra-se na figura 1 a estrutura bsica usada
pelos PLDs: um arranjo de portas AND e um arranjo de portas OR, cujas entradas
podem ser interconectadas para produzir funes nas sadas das variveis de entrada.
O arranjo de portas AND de entrada seria o decodificador e o arranjo de portas
OR de sada o codificador. Os arranjos AND de entrada podem ser conectados s
variveis de entrada para formar os termos produtos necessrios. As funes de sada do
circuito so obtidas interligando os termos produtos de sada do arranjo AND s
entradas das portas do arranjo OR.

Fig.1-Estrutura bsica para um PLD


Para melhorar a representao dos dispositivos PLDs, adota-se uma simbologia
simplificada onde as vrias entradas de uma porta so representadas por uma nica linha
e as conexes das variveis de entrada s portas so indicadas por um ponto ou um X:
um X indica um fusvel intacto;
um ponto representa uma conexo fixa (no pode ser programada).
A falta de quaisquer desses sinais no cruzamento de duas linhas indica que
no h conexo, conforme figura 2

Fig.2-Simbologia simplificada

Fig.3Os PLDs so chamados programveis porque a funo do CI para uma


aplicao estabelecida pela queima seletiva de alguns fusveis, enquanto outros se
mantm intactos (fig.3). A este processo chama-se programao porque produz o
padro desejado de interconexes entre portas, ffs, registradores, contadores, etc.,
conforme as instrues do usurio. O processo de queima dos fusveis pode ser feito
pelo fabricante ou pelo usurio, empregando um programador de EPROMs.
Exemplos de PLDs programados com algumas funes lgicas so mostrados na
figura 4 e 5.

Fig. 4- PLDs programados

Fig.5 (a) Exemplo de funes programadas


Na figura 5 (a), um X representa um fusvel intacto conectando uma linha
produto para uma entrada da porta OR. A ausncia de um X (ou um ponto) para
qualquer interseo representa um fusvel queimado.
Para as entradas das portas OR, fusveis queimados (entradas desconectadas )
assume-se nvel baixo e para as entradas das portas ANDs, fusveis queimados
assume-se nvel alto.
No exemplo da fig.5 : O1= AB AB , O2 = AB , O3=0, O4=1

2-Arquiteturas dos PLDs


O conceito de PLDs tem gerado vrios projetos para CIs PLDs. Nesta seo
mostra-se algumas das diferenas bsicas na arquitetura.
PROMs
Mostra-se na figura 5 (b) uma arquitetura simples de uma PROM, considerada
como um tipo de PLD. Neste exemplo o arranjo (array) AND pr-definido em fbrica
e o arranjo OR programvel. PROMs so utilizadas quando as equaes precisam de
um grande nmero de termos produtos.

Fig.5 (b)-Arquitetura de uma PROM.

A Figura 6 mostra uma PROM de quatro entradas que so decodificadas pelo arranjo
AND, onde cada porta gera um dos dezesseis minternos das variveis de entrada. As
conexes das variveis de entrada ao arranjo AND so fixas, ou seja, no-programveis,
enquanto que as conexes das linhas de sada dos mintermos s portas OR so todas
programveis.

Fig.6 Arquitetura de uma PROM. -Fusveis so queimados para programar as funes de sada.

Tabela 1

Para programar a PROM a fim de gerar a


funo O3 indicada, o primeiro passo
escrever a funo como um soma padro
de produtos, conforme mostra a tabela
verdade - tabela1.
Observe que a programao consiste em
manter intactos os fusveis dos mintermos
cujas linhas tem 1 na tabela verdade e
queimar os fusveis nas linhas que so 0.

PROGRAMMABLE LOGIC ARRAYS PLAS (


PROGRAMVEIS

ARRANJOS LGICOS

Os CIs PLAs tm os arranjos AND e OR programveis (fig.7). A possibilidade


de programar os arranjos AND e OR conferem grande flexibilidade s PLAs. Os
modelos de PLAs oferecidos pelos fabricantes podem ser programados pelo usurio,
chamados FPLA-Field Programmable Logic Array, ou seja Arranjo Lgico
Programvel em Campo.

Fig.7- Arquitetura de um dispositivo PLA

O nmero de termos produtos disponvel para cada sada da PLA programvel


pelo usurio. Portanto, os mintermos podem ser compartilhados pelas sadas do PLA.
Os dispositivos PLAs em geral, so mais lentos que os PALs ( Programmable Arrays
Logics e PROMs.
PLAs so especificados pelo nmero mximo de entradas (I), o nmero mximo de
termos produtos (P) e o nmero mximo de sinais de sada (O). Contudo, a
complexidade desses dispositivos reduziram o interesse na aplicao em circuitos
digitais.

PROGRAMMABLE ARRAYS LOGICS- PALS


Os dispositivos PALs tm somente os arranjos AND programveis enquanto os
arranjos OR so fixados em fbrica. Todas as portas AND podem ser programadas para
gerar o termo produto das variveis de entrada e seus complementos. Na figura 8a
mostra-se uma configurao tpica para uma PAL com quatro entradas e quatro sadas,
onde cada porta OR tem suas entradas ligadas a quatro linhas de termos produtos,
limitando a gerao de funes a no mximo quatro mintermos.
A Figura 8b mostra uma configurao tpica para uma PAL programada. As
funes da sada so limitadas ao nmero de mintermos ligados nas entradas das portas
OR. Caso seja necessrio mais mintermos para gerar uma funo, no ser possvel
programar. Embora, sejam menos flexveis que PLAs, as PALs so mais rpidas porque
as conexes pr-configuradas levam menos tempo para chavear que as conexes
programadas.

(a)

(b)

Fig 8- (a) Arquitetura tpica de um dispositivo PAL; (b) A mesma PAL programada.

Um exemplo de um CI PAL o circuito integrado TIBPAL16L8-5C, da Texas


Instruments, Inc., que tem 10 entradas lgicas e 8 funes de sada. Cada porta OR tem
7 entradas fixas que so sadas de 7 portas AND, desta forma, pode gerar funes com
at 7 termos produtos.
Os PLDS em geral, apresentam duas grandes limitaes que so, a
impossibilidade de realizar funes multinveis e de compartilhar produtos em
diferentes funes. Em ambos os casos, isto devido s caractersticas fixas das
interconexes, onde possvel programar funes, mas no as interconexes entre
funes. Tentando superar estas limitaes foram projetados os dispositivos
denominados CPLDs e FPGAs.

DISPOSITIVOS CPLDS -COMPLEX PLDS


Nos CPLDS uma clula programvel realiza funes lgicas universais de n
variveis, tais como multiplex, memria, conjunto AND-OR, etc. Uma rede de
interconexes seleciona as entradas das clulas programveis sob o controle de
variveis externas e as prprias sadas das clulas programveis. Embora apresentem
diferenas conforme o fabricante, as caractersticas bsicas so:

Funo lgica no LAB (Logic Array Block) so programveis;


Um LAB composto de 16 clulas e 32 expansores portas ANDs;
Clulas constitudas de flip-flops tendo como entrada a soma de trs produtos ;
A sada de uma clula pode ser enviada para o pino de sada ou roteadas pela
PIA (Programmable Interconect Array) para outra clula.

Os dispositivos programveis do fabricante Altera apresentam diversas famlias


com arquitetura CPLD, por exemplo a famlia MAX (Multiple Array Matrix) fig.9.
Nos dispositivos CPLDs a programabilidade das interconexes limitada. Na
verdade algumas interconexes so roteadas durante a fabricao. Contudo, esta
limitao apresenta-se como uma vantagem, pois a temporizao completamente
previsvel. Por outro lado, a limitao da programabilidade um dos aspectos de
restrio no seu uso.

Fig. 9 - Diagrama bloco para a famlia de dispositivos CPLD MAX7000S [Altera


Corporation]
CPLD EPM7128S da Altera- este dispositivo encontrado na placa educacional de
desenvolvimento da Altera-placa UP2, e pertence a famlia MAX7000S cujo o diagrama
de blocos mostrado na figura 9 .
Esta famlia possui os LABs e a PIA. Um LAB contm um conjunto de 16
macroclulas. Cada macroclula consiste de um circuito programvel AND/OR e um
registrador programvel (flip-flop). So mostradas na tabela 2 a seguir, algumas
caractersticas dos dispositivos da famlia MAX7000S:
Tabela2-Caractersticas para dois dispositivos da famlia MAX700S
Caractersticas

EPM 7128S

EPM7064S

Portas disponveis

2500

1250

Macroclulas

128

64

LABs

Nmero mximo de pinos

68

100

84

...

de I/O disponveis
Total de pinos no chip

Figura 10- Pinagem para o EPM 7128SLC84

Figura 11-Macroclula da famlia MAX7000S-Altera

FIELD PROGRAMMABLE GATE ARRAY FPGAS ( ARRANJO DE PORTAS


PROGRAMVEIS EM CAMPO)
Field Programmable Gate Arrays - FPGAs, uma tecnologia introduzida pelo
fabricante Xilinx em 1984, que permite aos projetistas implementar circuitos e
arquiteturas mais complexas. So dispositivos VLSI com uma alta capacidade lgica.
Este dispositivos so os mais importantes dispositivos lgicos programveis,
atualmente. Os dispositivos FPGAs, um pouco mais sofisticados do que os PLDs
simples, foram projetados para programao em campo, ou pelo usurio. Permitem a
implementao de portas lgicas bsicas e a interconexo entre essas portas para
circuitos multinveis. O aprimoramento desta tecnologia, disponibilizou uma grande
quantidade de dispositivos que so reprogramveis pelo usurio.
Os FPGAs apresentam internamente circuitos multinveis, possibilitando
projetar circuitos complexos em um nico dispositivo e ao contrrio dos simples PLDs,
dificultando a previso de atrasos no processamento. So circuitos programveis
compostos por um conjunto de clulas lgicas alocadas em forma de uma matriz.
Algumas arquiteturas apresentam flip-flops e/ou registradores para gerar trabalhos em
lgica seqencial. Em geral, a funcionalidade dos blocos assim como seu roteamento
configurvel via software. Os FPGAs alm de proporcionarem um ambiente de trabalho
simplificado e de baixo custo, tornam possveis operar com um nmero ilimitado de
circuitos atravs da configurao do prprio dispositivo.
Como so reprogramveis so aplicveis em projeto de prottipos, economizando
tempo e custo, isto devido agilidade e fcil processo de desenvolvimento, simulao,
teste, depurao e alterao do projeto.
Existe um conjunto de blocos de entrada/sada que pode ser configurado como
entrada, sada e bidirecional. As sadas so tri-states e os registradores podem armazenar
dados de entrada ou de sada.
Todos os blocos lgicos podem ser conectados para implementar qualquer
funo lgica desejada. Cada bloco lgico est conectado a um nmero determinado de
matrizes de conexes programveis, que por sua vez, esto ligadas a um nmero de
matrizes de chaveamento programveis.
Programando as conexes apropriadas, cada bloco pode fornecer uma variedade
de funes lgicas combinacionais e/ou seqenciais. As matrizes de conexes
programveis so usadas para estabelecer ligaes entre entradas e sadas dos blocos
lgicos, enquanto as matrizes de chaveamento programveis so empregadas para
rotear os sinais entre as vrias matrizes de conexes (figura 12).
Devido variedade de arquiteturas, os dispositivos FPGAs precisam de
ferramentas de programao especficas do fabricante para a sua programao.

Fig.12-Arquitetura interna de um FPGA


A estrutura bsica de um FPGA (fig.13) pode variar conforme o fabricante, a
famlia ou at na mesma famlia pode existir variaes, mas trs elementos
fundamentais so mantidos:
1. CLB (Configurable Logic Block)l;
2. IOB (IN/OUT Block): Bloco de entrada/sada, localizado na periferia dos
FPGAs e responsveis pela interface com o ambiente; conectam os blocos
lgicos para os pinos do dispositivo (fazem a conexo externa);
3. SB (Switch Box) : Caixa de conexo, responsvel pela interconexo entre os
CLBs atravs dos canais de roteamento ou linhas de interconexo que conectam
os blocos lgicos e as clulas de I/O.
Observe na figura 14 o esquema de bloco lgico de um FPGA do fabricante
Xilinx. Cada clula lgica consiste de uma funo universal (multiplexers,
demultiplexers ), que pode ser usada para rotear os sinais; SRAM ou look-up table,
usada para programar a tabela verdade de um circuito combinacional; portas lgicas e
dois flip-flops de sada. As interconexes so controladas pelo contedo da RAM e
portanto, podem ser reprogramadas. Portanto, cada clula lgica pode implementar uma
variedade de funes lgicas combinacionais e sequenciais .

Fig. 13 - Representao dos elementos bsicos de um FPGA

Fig. 14- Bloco Lgico Configurvel (CLB) de um FPGA do fabricante Xilinx

3-Caractersticas dos PLDs


Vrios dispositivos PLDs tm sadas com buffers tri-states (fig.15) comandados
por uma nica linha de habilitao, requerendo apenas um pino de entrada no
dispositivo.

Fig.15- PLDs com sadas tri-states

Uma caracterstica que vrios PLDs apresentam sada com polaridade


programvel que possibilita a inverso dos nveis lgicos de sada do dispositivo
(fig.16).

Fig.16- Porta EX_OR possibilita programar a polaridade atravs de um fusvel.

Alguns dispositivos PLDs so construdos de modo que as sadas tri-states so


realimentadas para as entradas do arranjo AND, conforme observa-se na figura 17.
Neste exemplo, o PLA tem trs entradas a, b e c e trs sadas w, x e y, porm foi
programado como quatro entradas e somente duas sadas. Observe que o buffer da
sada y foi desconectado do sinal de controle de habilitao e ligado ao nvel lgico

alto, permanecendo sempre habilitado (como entrada). A sada y est agora configurada
como a quarta entrada do PLA. Como as sadas w e x continuam a funcionar como
funes de sada, ento os elos fusveis de realimentao so queimados para assegurar
que no tero efeito nas entradas.

Fig.17- Sadas realimentadas em PLAs


Certos tipos de PLDs so equipados com registradores nas sadas e outros com
latches. Dependendo do dispositivo, os registradores (ou latches) podem ser fornecidos
em todas as sadas ou em grupo de sadas. Em geral, possvel no utilizar os
registradores de sadas atravs do uso de multiplexadores construdos no PLD. Este tipo
de PLD denominado sequenciador lgico programvel (fig.18).

Fig.18- PLDs equipados com registradores e MUX


4- Tecnologia de Programao
A tecnologia de programao caracteriza os PLDs em termos de
programabilidade e volatibilidade. A programabilidade de um PLD se refere
capacidade de alterao do contedo funcional do dispositivo aps sua primeira
programao. medida de acordo com a tecnologia utilizada para implementar o
conjunto de chaves usadas na configurao do PLD. De acordo com esta tecnologia de
chaves, os dispositivos podem ser reprogramveis ou no. Adicionalmente, um circuito
pode permanecer configurado ou no, conforme a propriedade de volatibilidade das
chaves. Na tabela 3 apresentam-se as tecnologias usadas para implementar as chaves.
Tabela 3- Principais tipos de chaves e tecnologia de fabricao.
Tipo de chave

Reprogramveis

Volteis

Dispositivo

Tecnologia

Fusvel

No

No

PLAs

Bipolar

EPROM

Sim

No

FPGAs

UVCMOS

EEPROM

Sim

No

FPGAs

EECMOS

SRAM

Sim

Sim

FPGAs

CMOS

Anti-fusvel

No

No

FPGAs (Actel)

CMOS+

Os FPGAs podem ser encontrados em trs diferentes estruturas de configurao


ou chaves programveis:

clulas RAM estticas, SRAM;

transistores EPROM;

transistores EEPROM;

antifusveis (antifuses), chamados tambm PLICE (Programmable Low


Impedance Circuit Element).

A interconexo antifusvel como um metal puro interconectado, diferente da


interconexo SRAM que tem chave baseada em transistores. A estrutura do antifusvel
extremamente pequena comparada com as chaves da estrutura da SRAM,
possibilitando a reduo em silcio e consumo de potncia. So chamados desta forma
porque quando queimados criam uma conexo, enquanto no so queimados
nenhuma corrente pode fluir entre seus terminais, assim chamado anti- fusvel, pois o
comportamento oposto ao fusvel padro. Por ser permanente, a configurao dos
FPGAs com antifusveis so ditos programveis uma nica vez ( no reconfigurveis).
Os FPGAs baseados em SRAM so reprogramveis atravs do uso de uma ROM
includa no circuito que retm o arquivo de configurao atravs de um circuito interno
de controle, que carrega a configurao de dado automaticamente sempre que retirada
a alimentao. Os FPGAs mais modernos usam Flash/EEPROM/EPROM ao invs de
SRAM, evitando a necessidade de reprogramao do dispositivo, enquanto sua
configurao pode ser mudada eletricamente.
Nos ltimos anos, a quantidade de portas lgicas disponveis num FPGA tem
crescido num ritmo acelerado, possibilitando a implementao de arquiteturas cada vez
mais complexas, com isso vm dominando o mercado de componentes. Devido a
complexidade dos blocos lgicos, ferramentas de software so necessrias para
programar estes dispositivos.

5-Programao de PLDs
Os PLDs so programados e testados utilizando equipamentos que programam
atravs de programas especficos desenvolvidos para esta finalidade. Usando um
microcomputador, o usurio informa ao programador, as equaes lgicas que deseja
programar no PLD. O programa gera o mapa de queima dos fusveis e os dados de
testes e envia ao programador que realiza a programao. Mostra-se na figura 19, o
fluxograma tpico de programao e teste de um PLD.

Fig.19- Fluxograma tpico de programao e teste de um PLD.

Bibliografia
[1] TOCCI, R.J., Sistemas Digitiais, Princpios e Aplicaes.10 edio, Editora Pearson Prentice
Hall, 2007, 940p.