Você está na página 1de 29

1

SISTEMAS DIGITAIS
Curso de Engenharia Eléctrica

Capítulo 4

Tema:

Lógica programável
Aula 1
2
1.0:Introdução

Lógica
programável

SPLD CPLD FPGA

PAL GAL PLA


1.1 SPLD: O Dispositivo PAL 3
 Um dispositivo PAL (programmable array logic) consiste em
um arranjo programável de portas AND que se conecta a um
arranjo fixo de portas OR. tecnologia de conexão a fusível e,
portanto, são programáveis uma vez (OTP).
4
Figura 4-1:Implementação de uma expressão na forma de
soma-de-produtos usando um dispositivo PAL
1.2. SPLD: O Dispositivo GAL 5
 O dispositivo GAL é essencialmente um dispositivo PAL que pode ser
reprogramado. Ele tem o mesmo tipo de organização AND/OR que o
dispositivo PAL. A diferença básica é que um dispositivo GAL usa uma
tecnologia de processo reprogramável, como uma EEPROM (E2CMOS), em
vez de fusíveis).
1.3.Notação Simplificada para Diagramas PAL/GAL
6

 Os actuais dispositivos PAL e GAL têm muitas portas AND e OR além de


outros elementos e são capazes de manipular muitas variáveis e seus
complementos. A maioria dos diagramas de PAL e GAL que podemos ver
nos datasheets usam uma notação simplificada, para fazer com que o
diagrama esquemático fique menos complicado.
 As variáveis de entrada para um dispositivo PAL ou GAL têm geralmente
buffers para evitar carregamento por um grande número de entradas de
portas AND nas quais elas são conectadas.
 O símbolo do triângulo no diagrama representa um buffer que gera a
variável e o seu complemento. As conexões fixas das variáveis de
entrada e buffers são mostrados usando notação de ponto padrão.
 As conexões programáveis num arranjo são indicadas no diagrama por um X no ponto
de cruzamento para um fusível intacto ou outro tipo de conexão e a ausência de um 7
X
para um fusível aberto ou outro tipo de conexão. A Figura mostra a função lógica
AB + A + programada.
8
1.4.Diagrama em Bloco Geral de Dispositivos PAL/GAL

 Macrocélula consiste geralmente em uma porta OR e alguma lógica de


saída associada. As macrocélulas variam em complexidade dependendo
do tipo particular de PAL ou GAL. Uma macrocélula pode ser configurada
para lógica combinacional, lógica registrada ou uma combinação de
ambos. A lógica registrada significa que existe um flip-flop na macrocélula
para prover uma função lógica sequencial.
Diagrama em bloco geral de um dispositivo PAL ou 9
GAL
Figura 4-5: Tipos básicos de macrocélulas PAL/GAL para lógica
combinacional. 10
Figura 4-6:Diagrama em bloco lógico de um dispositivo PAL 16V8 e um
encapsulamento SPLD típico
11
CPLD (Complex programmable logic device) 12
 CPLD (complex programmable logic device) –consiste basicamente em múltiplos arranjos
SPLDs com interconexões programáveis, Embora a forma com que as CPLDs são
organizadas internamente varie com o fabricante, a Figura a seguir representa um CPLD
genérico.
 Referimo-nos a cada arranjo SPLD num CPLD como um LAB (logic array block – bloco de
arranjo lógico). Algumas vezes são usadas outras designações, como bloco funcional,
bloco lógico ou bloco genérico.
 As interconexões programáveis são geralmente denominadas PIA (programmable
interconnect array – arranjo de interconexões programáveis) embora alguns fabricantes,
tal como Xilinx, usem o termo AIM (advanced interconnect matrix – matriz de
interconexões avançadas) ou uma designação similar.
 Os LABs e as interconexões entre LABs são programados por software. Um CPLD pode
ser programado para funções lógicas complexas baseadas em estruturas de soma-de-
produtos de LABs individuais (na realidade SPLDs). Entradas podem ser conectadas a
qualquer um dos LABs, sendo que suas saídas podem ser interconectadas a quaisquer
outros LABs via PIA.
13
 A maioria dos fabricantes de dispositivos lógicos programáveis produz
uma série de CPLDs que variam em densidade, tecnologia de processo,
consumo de potência, tensão de alimentação e velocidade. Os
fabricantes geralmente especificam a densidade de um CPLD em
termos de macrocélulas ou blocos de arranjo lógico. As densidades
podem variar de dezenas de macrocélulas a valores além de 2000
macrocélulas em encapsulamentos com até algumas centenas de
pinos. À medida que as PLDs se tornam mais complexas, as
densidades máximas aumentam. A maioria das CPLDs são
reprogramáveis e usam tecnologia de processo de EEPROM ou SRAM
para as conexões programáveis.
Diagrama em bloco básico de um CPLD genérico
14

Arranjo de
interconexões
programáveis
15

SISTEMAS DIGITAIS
Curso de Engenharia Eléctrica

Capítulo 4

Tema:

Lógica programável
Aula 2
16
1.6.PLA (arranjo lógico programável)
 A arquitetura de um CPLD é a forma na qual os elementos internos são
organizados e combinados. A arquitetura da família CoolRunner II da
Xilinx é baseada na estrutura de um PLA (programmable logic array –
arranjo lógico programável) em vez de um PAL (lógica de arranjo
programável).
17
Figura 4-8:Comparação entre dispositivos PLA e PAL básicos
1.7.LÓGICA PROGRAMÁVEL: FPGAs 18
 Basicamente, o dispositivo FPGA (field programmable gate array – arranjo de portas programáveis por
acção de campo) possui uma arquitectura diferente (não faz uso de arranjos do tipo PAL/PLA) e possui
densidades muito maiores que os dispositivos CPLDs.
 Os três elementos básicos de um FPGA são:
• o bloco lógico configurável (CLB),
• as interconexões e
• os blocos de entrada/saída (I/O).

 Os blocos lógicos configuráveis (CLBs) em um FPGA não são tão complexos quanto os LABs em um
CPLD, porém geralmente a quantidade de CLBs é bem maior.
 Nos casos em que os CLBs são relativamente simples, a arquitetura do FPGA é denominada fine graned
(granulação fina).
 Nos casos em que os CLBs são maiores e mais complexos, a arquitetura é denominada coarse grained
(granulação grossa). Os blocos de I/O em torno do perímetro da estrutura provê entradas, saídas ou
acesso bidirecionais ao mundo externo, selecionáveis individualmente. A matriz distribuída de
interconexões programáveis provê a interconexão entre CLBs e a conexão à entradas e saídas.
Figura 4-9.Estrutura básica de um FPGA. O bloco lógico configurável é o CLB.
19
1.7.1.Blocos Lógicos Configuráveis (CLB) 20

 Tipicamente, um bloco lógico de um FPGA consiste em vários módulos lógicos menores,


os quais são as unidades construtivas básicas, que por sua vez são análogas às
macrocélulas de um dispositivo CPLD. A Figura 4–10 mostra os blocos lógicos
configuráveis (CLBs) fundamentais dentro das interconexões programáveis globais em
linha/coluna que são usadas para interconectar blocos lógicos. Cada CLB é formado de
múltiplos módulos lógicos menores e uma interconexão programável local que é usada
para interconectar módulos dentro de uma CLB.
Figura 4-10. Blocos lógicos configuráveis básicos(CLBs) dentro de 21
interconexões programáveis globais em linha/coluna.
1.7.2.Módulos Lógicos 22
 Um módulo lógico em um bloco lógico de FPGA pode ser configurado como lógica
combinacional, lógica registrada ou uma combinação de ambas. Um flip-flop é parte
da lógica associada e é usado na lógica registrada.. A Figura (abaixo) mostra o
diagrama em bloco de um típico módulo lógico baseados em LUT. Conforme sabemos,
uma LUT (tabela de busca) é um tipo de memória programável usada para gerar
funções lógicas combinacionais de soma-de-produtos. A LUT faz essencialmente o
mesmo trabalho que um PAL ou PLA.
Continuação: 23
 Geralmente, a organização de uma LUT consiste em um número de células
de memória igual a , onde n é o número de variáveis de entrada. Por
exemplo, três entradas podem selecionar até 8 células de memória. Assim,
uma LUT com três variáveis de entrada pode produzir uma expressão de
soma-de-produtos com até oito termos-produto.
 Pode ser programado um padrão de 1s e 0s nas células de memória de uma
LUT, conforme ilustra a Figura a seguir para uma função de soma-de-
produtos específica.
 Cada nível 1 significa o termo-produto associado que aparece na saída de
soma-de-produtos, e cada 0 significa que o termo-produto associado não
aparece na saída de soma-de-produtos. A expressão resultante da saída de
soma-de-produtos é:
O conceito básico de uma LUT programada como uma determinada 24
saída de soma de produtos.
FPGAs Baseadas em SRAM 25
 As FPGAs são dispositivos não-voláteis nos casos em que são baseados em tecnologia
antifusível ou são voláteis quando são baseados em tecnologia SRAM. O termo volátil
significa que todos os dados programados nos blocos lógicos configuráveis são perdidos
quando a alimentação é desligada.
Portanto, FPGAs baseadas em SRAM incluem uma memória não-volátil embutida no chip,
para armazenar os dados e reconfigurar o dispositivo cada vez que ele for energizado, ou
eles usam uma memória externa com transferência de dados controlada por um processador
host (hospedeiro).
• As FPGAs, conforme temos discutido, são essencialmente como “quadros em branco” em
que o usuário final pode programar qualquer projeto lógico.
• Um núcleo rígido corresponde a uma parte da lógica de uma FPGA que é inserida pelo
fabricante para prover uma função específica a qual não pode ser reprogramada.
• Se a função embutida tiver algumas características programáveis, ela é conhecida como
função de núcleo flexível.
Figura 4-13.Conceitos básicos de configurações de FPGA volátil. 26
Cont.

27
 Uma vantagem da abordagem de núcleo rígido é que o mesmo projeto pode ser implementado
usando bem menos da capacidade disponível do FPGA do que se o usuário programasse a função
no chip, resultando em menos espaço (“bens imóveis”) e menos tempo de desenvolvimento para o
usuário. Além disso, as funções de núcleo rígido são completamente testadas. A desvantagem do
núcleo rígido é que as especificações são estabelecidas durante a fabricação, sendo que o cliente
tem que usar a lógica de núcleo rígido “como ela é”. Ela não pode ser alterada posteriormente. Os
núcleos rígidos são geralmente comercializados com funções que normalmente são usadas em
sistemas digitais, tal como um microprocessador, interfaces padrão de entrada/saída e
processadores de sinais digitais.
 Mais do que uma função de núcleo rígido pode ser programada em um FPGA. A Figura 4–14 ilustra
o conceito de um núcleo rígido envolto por uma lógica configurável programada pelo usuário. Trata-
se de um sistema básico embutido porque a função de núcleo rígido é embutida na lógica
programada pelo usuário. Os projetos desenvolvidos por um fabricante são denominados de
propriedade intelectual (IP). Os FPGAs que contêm processadores embutidos implementados com
núcleo rígido ou núcleo flexível, ou ainda ambos, são conhecidos como FPGAs de plataforma
porque eles podem ser usados para implementar um sistema completo sem a necessidade de
dispositivos de suporte externo.
Função de núcleo rígido embutida em uma FPGA.
28
29

O temor do Senhor é o princípio da sabedoria.


Provérbios 9:10a

Você também pode gostar