Você está na página 1de 16

Lógica Programável

Os circuitos integrados digitais implementados em pastilha de silício podem ser classificados


como circuitos digitais padrão ou circuitos digitais de aplicações específicas ASICs (Aplication
Specific Integrated Circuits).

Os circuitos padrões são constituídos por portas lógicas (AND, OR, NOT e FLiP – Flops) e
necessitam de vários componentes externos para a realização de uma função específica. Os
circuitos integrados ASICs são aqueles que precisam de um processo de fabricação especial, que
requer máscaras específicas para cada projecto. Outra característica dos circuitos integrados
ASICs é o tempo de desenvolvimento longo e os custos extremamente altos. Geralmente não
necessitam de muitos componentes externos para a realização de uma função específica, pois sua
alta densidade os torna aptos para a implementação de vários tipos de aplicação. Em ambos os
casos, os circuitos integrados digitais possuem suas funções internas predefinidas,
implementadas na sua construção no processo de fabricação. O desenvolvimento de projecto de
circuitos digitais tem evoluído rapidamente nas últimas décadas. A utilização da ferramenta de
software denominada EDA (Eletronic Design Automation) e o aperfeiçoamento dos PLDs
(Programmable Logic Devices) têm simplificado e acelerado todo o ciclo de projecto.

Muitos dispositivos programáveis PAL,aceitam na entrada um formato de ficheiro comum,


normalmente conhecido por "ficheiro JEDEC". Para assistir na criação desde ficheiros,foram
criados programas de computador, especiais, chamados compiladores lógicos, Estes são análogos
aos computadores de Software. as linguagens utilizadas como código fonte para compiladores
lógicos, são chamados linguagens de descrição de hardware ou HDLs.
PALASM e ABEL são muito usados para componentes pouco complexos enquanto verilog
e VHDL são linguagens populares para PLDs mais complexos.
Sendo mais limitado o ABEL é ainda usado por razões históricas, mas para novos projetos,
mesmo de baixa complexidade, a VHDL é mais popular.

Dispositivos de Lógica Programável Página 1


Programmable Logic Dispositivos (Dispositivos Lógicos Programáveis)

É um componente electrónico utilizado para construir circuitos digitais Ou seja é um circuito


integrado com um grande número de portas lógicas, flip-flops, e registadores que são
interconectados no chip. Ao contrário de uma porta lógica, que tem uma função fixa, um PLD
tem uma função indefinida quando do seu fabrico. Antes de se utilizar um PLD num circuito,
este deve ser programado.

Várias conexões de um PLD são elos fusíveis, semelhantes aos encontrados em PROMs e
EPROMs, que podem ser queimados. A Figura abaixo mostra a estrutura básica usada pelos
PLDs: um arranjo de portas AND e um arranjo de portas OR, cujas entradas podem ser
interconectadas para produzir funções nas saídas das variáveis de entrada.

O arranjo de portas AND de entrada seria o descodificador e o arranjo de portas OR de saída o


codificador. Os arranjos AND de entrada podem ser conectados às variáveis de entrada para
formar os termos produtos necessários. As funções de saída do circuito são obtidas
interligando os termos produtos de saída do arranjo AND às entradas das portas do arranjo
OR.

Dispositivos de Lógica Programável Página 2


ARQUITETURA E TIPOS DE PLD

Programmable Logic Arrays - (PLAs) ou Arranjos Lógicos Programáveis


Foram os primeiros Dispositivos Lógicos Programáveis Simples (SPLDS) criados
especificamente para a implementação de circuitos lógicos. Introduzidos pela empresa Philips no
início de 1970, esses dispositivos consistem em dois níveis de portas lógicas: um plano de portas
AND seguido por um plano de portas OR, ambos programáveis, como mostra a figura 1.

Um PLA é estruturado de forma que cada saída do plano AND pode corresponder a qualquer
produto das entradas. Da mesma forma, cada saída do plano OR pode ser configurada para
produzir a soma lógica de quaisquer saídas do plano AND.

Os dispositivos PALs têm somente os arranjos AND programáveis enquanto os


arranjos OR são fixados em fábrica. Todas as portas AND podem ser programadas para
gerar o termo produto das variáveis de entrada e seus complementos. A Figura abaixo A
mostra uma configuração típica para uma PAL com quatro entradas e quatro saídas, onde
cada porta OR tem suas entradas ligadas a quatro linhas de termos produtos, limitando a
geração de funções a no máximo quatro mintermos.

A Figura abaixo B mostra uma configuração típica para uma PAL programada. As
funções da saída são limitadas ao número de mintermos ligados nas entradas das portas OR.
Caso seja necessário mais mintermos para gerar uma função, não será possível programar.
Embora, sejam menos flexíveis que PLAs, as PALs são mais rápidas porque as conexões
pré-configuradas levam menos tempo para chavear que as conexões programadas.

Dispositivos de Lógica Programável Página 3


Em virtude da estrutura montada, os PLA são adequados para as implementações de funções
lógicas na forma de produtos de soma, e eles se apresentam muito versáteis, pois tanto os termos
AND como os termos OR podem possuir muitas entradas. Entretanto, essa tecnologia também
apresenta problemas como alto custo de fabricação e baixo desempenho em termos de
velocidade. Essas desvantagens existem devido aos dois níveis de lógica configurável. Os planos
lógicos programáveis são difíceis de serem fabricados e introduzem atrasos significativos de
propagação dos sinais eléctricos.

A tecnologia PAL ( Programmable Array Logic ) foi então desenvolvida para superar
deficiências apresentadas pela tecnologia PLA. Os PALs apresentam um único plano AND
configurável, custo menor e melhor desempenho.

Dispositivos de Lógica Programável Página 4


Dispositivos CPLDS (Complex PLDs)
Os Dispositivos Lógicos Programáveis Complexos (CPLDs) foram introduzidos no mercado
internacional pela empresa Altera Corp. em 1983, inicialmente como Dispositivos Lógicos
Programáveis Apagáveis (EPLDs) e, posteriormente, como CPLDs. Os CPLDs são dispositivos
programáveis e reprogramáveis pelo usuário, com alto desempenho, baixo custo por função e
alta capacidade de integração. Um CPLD pode ser aplicado, por exemplo, como uma máquina de
estado ou descodificador de sinais, substituindo centenas de circuitos discretos que
implementariam a mesma função. Este contém o equivalente a muitas PALs ligadas por
interconexão programadas, tudo num circuito integrado. Os CPLDs podem substituir milhares ou
até centenas de milhares portas lógicas. Algumas CPLDs são programadas usando o
programador PAL, mas este método torna-se inconveniente para dispositivos com centenas de
pinos. O segundo método de programação é soldar o componente à sua placa de circuito
impresso, e depois ligar um cabo de série de dados ao PC. O CPLD contém um circuito que
descodifica os dados e configura-o para realizar a função lógica específica. Cada fabricante tem
um nome proprietário para este sistema de programação. Por exemplo, a Lattice Semicondutor
chama-lhe "programação in-system". No entanto este sistema proprietário começa a abrir
caminho para uma normalização através da Joint Test Action Group (JTAG).

Nos dispositivos CPLDs a programabilidade das interconexões é limitada. Na verdade


algumas interconexões são roteadas durante a fabricação. Contudo, esta limitação
apresenta-se como uma vantagem, pois a temporização é completamente previsível. Por
outro lado, a limitação da programabilidade é um dos aspectos de restrição no seu uso.

Dispositivos de Lógica Programável Página 5


Os CPLDs implementam capacidade lógica de até 50 dispositivos PLDs típicos. Suas principais
vantagens em relação aos circuitos discretos ASICs tradicionais são:

(a) Programabilidade e Reprogramabilidade: Permite que funções lógicas possam ser


alteradas, simplificando o desenvolvimento de protótipos.

(b) Tecnologia CMOS: Menor Consumo de energia eléctrica.

(c) Integração em larga escala: Redução de tamanho da placa de circuito impresso, pois
possibilita a eliminação de diversos componentes discretos.

(d) Simplificação e redução do tempo de desenvolvimento: Simplifica e reduz o Tempo de


desenvolvimento da placa de circuito impresso, pois permite que o Dispositivos de Lógica
Programável projetista defina os sinais eléctricos conforme desejado: entradas ou saídas podem
ocupar o mesmo terminal do dispositivo.

(e) Teste e depuração: As linguagens utilizadas na programação do dispositivo permitem a


simulação, teste e depuração rápida do protótipo.

Field Programmable Gate Array –( FPGAs) ou Arranjos de Portas Programáveis em


Campo

Field Programmable Gate Arrays - FPGAs, é uma tecnologia introduzida pelo fabricante
Xilinx em 1984, que permite aos projetistas implementar circuitos e arquitecturas mais
complexas. São dispositivos VLSI com uma alta capacidade lógica.

Este dispositivos é os mais importantes dispositivos lógicos programáveis, actualmente. Os


dispositivos FPGAs, um pouco mais sofisticados do que os PLDs simples, foram
projectados para programação em campo, ou pelo usuário. Permitem a implementação de
portas lógicas básicas e a interconexão entre essas portas para circuitos multiníveis. O
aprimoramento desta tecnologia, disponibilizou uma grande quantidade de dispositivos que
são reprogramáveis pelo usuário.

Os FPGA’s apresentam internamente circuitos multiníveis, possibilitando projectar


circuitos complexos em um único dispositivo e ao contrário dos simples PLDs, dificultando
a previsão de atrasos no processamento. São circuitos programáveis compostos por um
conjunto de células lógicas alocadas em forma de uma matriz. Algumas arquitecturas
apresentam flip-flops e/ou registadores para gerar trabalhos em lógica sequencial. Em geral,

Dispositivos de Lógica Programável Página 6


a funcionalidade dos blocos assim como seu rateamento são configuráveis via software. Os
FPGAs além de proporcionarem um ambiente de trabalho simplificado e de baixo custo,
tornam possíveis operar com um número ilimitado de circuitos através da configuração do
próprio dispositivo.

Como são reprogramáveis são aplicáveis em projecto de protótipos, economizando tempo e


custo, isto devido à agilidade e fácil processo de desenvolvimento, simulação, teste,
depuração e alteração do projecto.

Existe um conjunto de blocos de entrada/saída que pode ser configurado como entrada,
saída e bidireccional. As saídas são tri-states e os registadores podem armazenar dados de
entrada ou de saída.

Todos os blocos lógicos podem ser conectados para implementar qualquer função lógica
desejada. Cada bloco lógico está conectado a um número determinado de matrizes de
conexões programáveis, que por sua vez, estão ligadas a um número de matrizes de
chapeamento programáveis.

Programando as conexões apropriadas, cada bloco pode fornecer uma variedade de


funções lógicas comunicacionais e/ou sequenciais. As matrizes de conexões programáveis
são usadas para estabelecer ligações entre entradas e saídas dos blocos lógicos, enquanto as
matrizes de chaveamento programáveis são empregadas para rotear os sinais entre as várias
matrizes de conexões (figura abaixo).

Devido à variedade de arquitecturas, os dispositivos FPGAs precisam de


ferramentas de programação específicas do fabricante para a sua programação.

Dispositivos de Lógica Programável Página 7


A estrutura básica de um FPGA (fig.13) pode variar conforme o fabricante, a família ou até
na mesma família pode existir variações, mas três elementos fundamentais são mantidos :

1. CLB (Configurable Logic Block) l;

2. IOB (IN/OUT Block): Bloco de entrada/saída , localizado na periferia dos FPGAs e


responsáveis pela interface com o ambiente; conectam os blocos lógicos para os
pinos do dispositivo (fazem a conexão externa);

3. SB (Switch Box) : Caixa de conexão, responsável pela interconexão entre os CLBs


através dos canais de roteamento ou linhas de interconexão que conectam os blocos
lógicos e as células de I/O [Scott 94].

Observe na figura abaixo o esquema de bloco lógico de um FPGA do fabricante Xilinx.


Cada célula lógica consiste de uma função 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 lógicas e dois flip-flops de saída. As
interconexões são controladas pelo conteúdo da RAM e portanto, podem ser
reprogramadas. Portanto, cada célula lógica pode implementar uma variedade de funções
lógicas combinacionais e sequenciais.

Representação dos elementos básicos de um FPGA

Dispositivos de Lógica Programável Página 8


Bloco Lógico Configurável (CLB) de um FPGA do fabricante Xilinx

FPGA's são normalmente programadas depois de terem sido soldadas a placa de circuito, de
forma semelhante aos CPLD's maiores. Nos FPGA's grandes a configuração é volátil, e tem que
ser recarregada no componente quando lhe é aplicada energia eléctrica ou diferentes
funcionalidades são requeridas. A configuração é normalmente guardada numa configuração
PROM EEPROM é programáveis embutidamente (tipicamente por JTAG).
FPGA's e CPLD's oferecem boas escolhas para tarefas particulares. Algumas vezes a decisão é
mais económica do que técnica, ou pode depender da experiência ou preferência pessoal do
engenheiro.

Dispositivos de Lógica Programável Página 9


Características dos PLDs
Vários dispositivos PLDs têm saídas com buffers tri-states (fig.abaixo) comandados por uma
única linha de habilitação, requerendo apenas um pino de entrada no dispositivo.

PLDs com saídas tri-states

Uma característica que vários PLDs apresentam é saída com polaridade


programável que possibilita a inversão dos níveis lógicos de saída do dispositivo
(fig.abaixo).

Dispositivos de Lógica Programável Página 10


Alguns dispositivos PLDs são construídos de modo que as saídas tri-states são
realimentadas para as entradas do arranjo AND, conforme observa-se na figura a seguir.
Neste exemplo, o PLA tem três entradas a, b e c e três saídas w, x e y, porém foi
programado como quatro entradas e somente duas saídas. Observe que o buffer da saída y
foi desconectado do sinal de controlo de habilitação e ligado ao nível lógico alto,
permanecendo sempre habilitado (como entrada). A saída y está agora configurada como a
quarta entrada do PLA. Como as saídas w e x continuam a funcionar como funções de
saída, então os elos fusíveis de realimentação são queimados para assegurar que não terão
efeito nas entradas.

Saídas realimentadas em PLAs

Certos tipos de PLDs são equipados com registadores nas saídas e outros com latches.
Dependendo do dispositivo, os registadores (ou latches) podem ser fornecidos em todas as saídas
ou em grupo de saídas. Em geral, é possível não utilizar os registadores de saídas através do uso
de multiplexadores construídos no PLD. Este tipo de PLD é denominado sequenciador lógico
programável

Dispositivos de Lógica Programável Página 11


PLDs equipados com registadores e MUX

Tecnologia de Programação
A tecnologia de programação caracteriza os PLDs em termos de programabilidade e
volatibilidade. A programabilidade de um PLD se refere à capacidade de alteração do
conteúdo funcional do dispositivo após sua primeira programação. É medida de acordo com a
tecnologia utilizada para implementar o conjunto de chaves usadas na configuração do PLD.
De acordo com esta tecnologia de chaves, os dispositivos podem ser reprogramáveis ou não.
Adicionalmente, um circuito pode permanecer configurado ou não, conforme a propriedade
de volatibilidade das chaves. Na tabela 3 apresentam-se as tecnologias usadas para
implementar as chaves.

Dispositivos de Lógica Programável Página 12


Principais tipos de chaves e tecnologia de fabricação.

Tipo de chave Reprogramáveis Voláteis Dispositivo Tecnologia

Fusível Não Não PLAs Bipolar

EPROM Sim Não FPGAs UVCMOS

EEPROM Sim Não FPGAs EECMOS

SRAM Sim Sim FPGAs CMOS

Anti-fusível Não Não FPGAs (Actel) CMOS+

Os FPGAs podem ser encontrados em três diferentes estruturas de configuração ou


chaves programáveis:

  Células RAM estáticas, SRAM;

  Transístores EPROM;

 Transístores EEPROM;
 antifusíveis (antifuses), chamados também PLICE (Programmable Low
Impedance Circuit Element).

A interconexão antifusível é como um metal puro interconectado, diferente da interconexão


SRAM que tem chave baseada em transístores. A estrutura do antifusível e extremamente
pequena comparada com as chaves da estrutura da SRAM, possibilitando a redução em
silício e consumo de potência. São chamados desta forma porque quando “queimados”
criam uma conexão, enquanto não são “queimados” nenhuma corrente pode fluir entre seus
terminais, assim é chamado anti- fusível, pois o comportamento é oposto ao fusível padrão.
Por ser permanente, a configuração dos FPGAs com antifusíveis são ditos programável uma
única vez ( não reconfiguráveis).

Dispositivos de Lógica Programável Página 13


Os FPGAs baseados em SRAM são reprogramáveis através do uso de uma ROM
incluída no circuito que retém o arquivo de configuração através de um circuito interno de
controle, que carrega a configuração de dado automaticamente sempre que é retirada a
alimentação. Os FPGA’s mais modernos usam EEPROM/EPROM ao invés de SRAM,
evitando a necessidade de reprogramação do dispositivo, enquanto sua configuração pode
ser mudada electricamente.

Nos últimos anos, a quantidade de portas lógicas disponíveis num FPGA tem crescido
num ritmo acelerado, possibilitando a implementação de arquitecturas cada vez mais
complexas, com isso vêm dominando o mercado de componentes. Devido a complexidade
dos blocos lógicos, ferramentas de software são necessárias para programar este dispositivo.

5-Programação de PLDs

Os PLDs são programados e testados utilizando equipamentos que programam


através de programas específicos desenvolvidos para esta finalidade. Usando um
microcomputador, o usuário informa ao programador, as equações lógicas que deseja
programar no PLD. O programa gera o mapa de queima dos fusíveis e os dados de testes e
envia ao programador que realiza a programação. Mostra-se na figura abaixo, o fluxograma
típico de programação e teste de um PLD.

Dispositivos de Lógica Programável Página 14


Antifusíveis de Silicio são elementos de armazenamento na PAL, o 1º tipo de PLD. Estas
conexões são criadas aplicando uma tensão eléctricas ao longo da área de silício
modificada,dentro do chip. São Chamados antifusíveis porque trabalha de forma contrária aos
fusíveis normais que começam a funcionar até serem quebrados pela corrente eléctrica.
SRAM ou Static RAM é um tipo de memória volátil ou seja o seu conteúdo perde-se quando se
desliga a energia eléctrica. PLDs baseadas em SRAM tem que ser programadas cada vez que a
energia é ligada isto normalmente é feito por outra parte do circuito. Uma célula EPROM é um
transístor MOS (semicondutor de óxido metálico) que pode ser comutada por uma carga eléctrica
permanente aplicada no seu eléctrodo 'gate'. Isto é feito por um programador PAL expondo o
chip a fortes doses de raios ultravioleta por um dispositivo chamado apagador EPROM. Uma
memória FLASH é não-volátil, retendo a informação mesmo que a energia eléctrica seja
desligada. Pode ser apagada e reprogramada sempre que quisermos. Isto torna-se útil para
memória PLD. Em 2005, as memórias das CPLD’S eram electricamente programáveis e
apagáveis e não voláteis. Pelo fato de serem muito pequenas não justificam a configuração
interna das células SRAM. Cada vez que arrancam, as células EPROM são mais caras devido ao
seu invólucro de cerâmica com uma janela de quartzo.

Dispositivos de Lógica Programável Página 15


Conclusão

Portanto durante o desenvolvimento do trabalho Actualmente há muito interesse nos sistemas


reconfiguráveis. Há circuitos microprocessadores que contêm algumas funções predefinidas e
outras e outras funções que podem ser alteradas pelo código que corre no processador. Projectar
sistemas auto configuráveis exige uma aprendizagem por parte dos engenheiros de novos
métodos, e provavelmente requererá o desenvolvimento de novas ferramentas de software. As
PLDs vendidas actualmente contêm um microprocessador com uma função fixa, (chamada core)
envolvida por lógica programável. Estes componentes permitem ao projectista concentrar-se em
novas funcionalidades do seu projecto, sem se preocupar como funciona o microprocessador.

Dispositivos de Lógica Programável Página 16