Buscar

unidade VI

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Circuitos Lógicos
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Fábio Peppe Beraldo
Revisão Textual:
Profa. Esp. Márcia Ota
Linguagem de Descrição de Hardware
• Projeto de Circuitos Sequenciais
• Dispositivos Lógicos Programáveis
 · O objetivo desta unidade é demonstrar, ao aluno, formas diferentes 
de projetos de circuitos.
OBJETIVO DE APRENDIZADO
Nesta Unidade, vamos aprender um pouco mais sobre como funcionam 
os projetos de circuitos lógicos, alguns exemplos de dispositivos lógicos 
programáveis, fechando com os microprocessadores.
Leia o material com atenção e, se sentir necessidade, releia para que sua 
absorção seja adequada. Fique atento (a) nessa etapa, pois é o momento 
oportuno para registrar suas dúvidas; por isso, não deixe de registrá-las e 
transmiti-las ao professor-tutor.
Além disso, para que a sua aprendizagem ocorra num ambiente mais 
interativo possível, na pasta de atividades, você também encontrará as 
atividades de avaliação, uma atividade reflexiva e a videoaula. Cada material 
disponibilizado é mais um elemento para seu aprendizado, por favor, estude 
todos com atenção!
Bom Estudo!!!
ORIENTAÇÕES
Linguagem de Descrição de Hardware
UNIDADE Linguagem de Descrição de Hardware
Contextualização
O projeto de um circuito sequencial, normalmente, inicia pela definição de seu 
comportamento de maneira textual e com a transcrição desse comportamento 
para um diagrama de estados, de modo a detalhar os estados existentes, as 
condições para trocas de estados e os valores das saídas. Pela análise do diagrama 
de estados, é possível identificar o modelo de máquina de estados a ser seguido 
(Moore ou Mealy).
Nesta unidade da disciplina, aprenderemos como que a CPU realiza sua função 
e como as instruções se comportam quando migram entre as memórias.
Bom estudo!
6
7
Projeto de Circuitos Sequenciais
Quando estamos trabalhando com projetos de circuitos sequenciais, aprendemos 
como descrever o comportamento do circuito desejado por meio de um formalismo 
matemático, conhecido como equações booleanas e essas, por sua vez, são 
convertidas no próprio circuito lógico.
Mas somente a equação booleana não é suficiente para descrever como é o 
comportamento de um circuito sequencial. Para tanto, é preciso de um formalismo 
que incorpore a variável TEMPO.
A Máquina de Estados Finitos (FSM – Finite State Machine) é exatamente o 
formalismo necessário que consiste, basicamente, em um conjunto de estados que 
representam todos os estados ou modos possíveis de um sistema. Podemos dizer, 
de forma sistemática, que o FSM é o projeto de redes sequenciais.
O conceito de redes sequenciais as dividem em duas partes: uma delas são 
os flip-flops, que já estudamos, os quais são responsáveis pelo armazenamento 
de dados em unidades de memória, e a outra são as redes combinacionais que 
implementam as funções de entrada dos flip-flops e também da rede. Dois dos 
mais importantes elementos que temos que ter sempre em mente sao as maquinas 
de estado sólido do tipo: Máquina de Estados de Moore e Máquina de Estados de 
Mealy. Se lembramos o que já aprendemos em nossa disciplina, a FSM de Moore 
possui uma metodologia de projeto de rede sequencial que é função somente dos 
estados atuais da rede. O modelo geral dessa FSM pode ser visto na figura 1:
Re
de
 Co
m
bi
na
cio
na
l
de
 En
tra
da
I1
clk
I2
...
In
Ele
m
en
to
s d
e M
em
ór
ia
(F
lip
s-F
lo
ps
)
Y1
Y2
...
Yn
Re
de
 Co
m
bi
na
cio
na
l
de
 Sa
íd
a
Q1
Q2
... ...
Qn
O1
O2
On
Figura 1: Modelo geral de uma máquina de estados tipo Moore
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Na FSM de Moore, o sinal de saída somente é válido após o sinal do relógio 
(clock) ser aplicado à rede.
Já em uma FSM de Mealy, a metodologia de projeto é baseada em uma saída 
que é função dos estados atuais da rede e das entradas do sistema ao mesmo 
tempo. O FSM de Mealy pode ser visto na figura 2:
7
UNIDADE Linguagem de Descrição de Hardware
Re
de
 Co
m
bi
na
cio
na
l
de
 En
tra
da
I1
clk
I2
...
In
Ele
m
en
to
s d
e M
em
ór
ia
(F
lip
s-F
lo
ps
)
Y1
Y2
...
Yn
Q1
Q2
...
Qn
...
O1
O2
On
Figura 2: Modelo geral de uma máquina de estados tipo Mealy
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Vamos reavivar alguns elementos de máxima importância para trabalharmos 
com redes sequenciais.
Para executarmos projetos de redes sequenciais, necessitamos seguir algumas 
etapas básicas:
1. Determinação do diagrama de estados;
2. Determinação da tabela de estados;
3. Codificação dos estados;
4. Montagem do mapa de transição;
5. Montagem e simplificação do mapa de entrada dos elementos de memória 
(flip-flops);
6. Montagem e simplificação do mapa de saída; e
7. Circuito esquemático.
Determinação do Diagrama de Estados
Os diagramas de estados dos nossos projetos não são mais que os diagramas 
de transição com uma diferença, a cada estado recebe um nome e um valor 
correspondente às saídas.
Como exemplo, vamos projetar um detector de paridade ímpar de um sinal serial 
utilizando a metodologia FSM de Moore e os flip-flops JK. Para determinarmos o 
diagrama de estados, vamos precisar estabelecer qual o requisito do projeto.
Um circuito detector de paridade ímpar de um sinal serial deve possuir apenas 
uma entrada de sinal e uma saída, a qual deve indicar se o número de valores “1” 
presentes no sinal de entrada é ímpar.
8
9
Esse diagrama deve conter a quantidade de estados necessários para a operação 
e seu comportamento de acordo com cada valor possível de entrada. Na figura 3, 
você pode observar a tabela de estados do detector serial de paridade ímpar.
S0
0
S1
1X=1
Entrada
Estado “Flip-Flop”
Saída
X=1
X=0X=0
Figura 3: Diagrama de estados do detector serial de paridade ímpar
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Determinação das Tabelas de Estados
A tabela de estados é uma representação tabulada do comportamento do obtido 
do diagrama de estados, com a inserção do valor da saída do sistema.
Estado Futuro
Estado Atual X = 0 X = 1 Saída (Z)
S0 S0 S1 0
S1 S1 S0 1
Figura 4: Tabela de estados
Codificação dos Estados
Na implementação do mapa de designação dos estados, as seguintes orientações 
de projeto devem ser seguidas:
a) Estados, cujos estados futuros são iguais, devem ficar próximos;
b) Estados, seguintes a um mesmo estado, devem ficar próximos;
c) Estados, que possuem a mesma saída, devem ficar próximos.
Para o exemplo, tem-se que:
Estados
S0=0
S1=1S0 S1
10
Qa
Montagem do Mapa de Transição
O mapa de transição nada mais é que uma representação em formato de mapa 
do diagrama de estados e da tabela de estados, com a codificação proposta na 
codificação de estados. Para o exemplo proposto, temos:
9
UNIDADE Linguagem de Descrição de Hardware
S0 S1
10
0
1
QaX
S1 S0
0 1
10
0
1
QaX
1 0
Entrada
Estado Atual
Estado Futuro
Montagem dos Mapas de Entrada dos Flip-flops
Para realizar esta tarefa, devem-se utilizar as tabelas de transição dos flip-flops, 
apresentadas no capítulo anterior, visualizando os estados atuais de Q e seus estados 
futuros, posicionando no mapa as entradas necessárias para causar tal transição. 
Para esse caso, temos:
0 -
10
0
1
Qa
p/Ja
Ja=X
X
1 -
0 -
10
0
1
Qa
p/Ka
Ka=X
X
1 -
Montagem do Mapa de Saída
Obtido a partir da codificação dos estados:
0 1
10
Qa
Za=X
Apresentação do Esquemático do Circuito Desenvolvido
Basta implementar as equações lógicas obtidas com os elementos de memória 
utilizados. Para o exemplo, temos:
IMPAR
CLK
K7RST
PRN
KFF
INPUT
VCC
INPUT
VCC
INPUT
VCC
CURN
OUTPUT
VCC
4
J Q
K
1
5
6
3
2
10
11
Dispositivos Lógicos Programáveis
Como já estudo no curso, a evolução dos circuitos digitais deu-se dos transistores 
na sua forma unitária para a versão coletiva conhecida como circuitos integrados 
ou VLSI (Very Large Scale Integration). Assim, a criação do microprocessador 
possibilitou um novo passo na evolução da microeletrônica com o desenvolvimento 
de chips de memória de ala densidade e o avanço na tecnologia de produtos lógicos 
como os Dispositivos Lógicos Programáveis (PLD).
Antigas gerações, de tecnologia de hardware, para projetos digitais apresen-
tavam um grande número de chips contendo portas básicas (AND e OR). Com o 
avanço tecnológico, os projetos mais complexos passaram a usar circuitos de alta 
densidade que, em geral, incluem dispositivos como controladores, contadores, 
registradores e decodificadores, proporcionando o desenvolvimento de alternati-
vas para obter flexibilidade em uma implementação.
Com o uso de módulos programáveis (portas básicas que permitem a 
implementação de sistemas digitais), estes módulos têm uma estrutura padrão e 
são personalizados para uma função particular.
Exemplos de tipos e classes de dispositivos programáveis (configuráveis) com 
capacidade de implementar funções lógicas são:
• PLA (Programmable Logic Array);
• PAL (Programmable Array Logic);
• CPLD’s (Complex Programmable Logic Devices);
• MPGA (Mask Programmable Gate Array);
• FPGA (Field Programmable Gate Array).
A grande capacidade e a versatilidade dos novos dispositivos programáveis 
fizeram desses elementos uma alternativa mais que considerável no projeto de 
sistemas digitais. A utilização de algumas ferramentas de desenvolvimento como 
o EDA (Eletronic Design Automation) ou, então, o ECAD (Eletronic Computer 
Aided Design) possuem ciclos rápidos de projeto.
Hoje em dia, já não é mais necessário o desenho de portas lógicas individuais 
e planejar todas as interconexões, as linguagens de descrição de hardware 
(HDL) estão tão consolidadas no meio acadêmico quanto no meio industrial 
como a forma padrão na elaboração de projetos. Há também ferramentas de 
síntese lógica automática disponíveis que possibilitam mapear os circuitos em 
diversas tecnologias.
Com essa grande variedade, torna-se necessário uma prototipação mais rápida, 
pois o ciclo de vida dos produtos é cada vez mais curto em relação ao tempo 
necessário para o projeto e desenvolvimento em diversas categorias:
• CCl’s customizados ou ASICs (application specífic integrated circuits): 
Esses dispositivos precisam de um método de fabricação especial devido 
a necessidade de se utilizar diversas máscaras específicas para cada etapa 
de projeto.
11
UNIDADE Linguagem de Descrição de Hardware
O longo tempo de desenvolvimento desses dispositivos aliados aos altos custos 
são alguns exemplos de problemas desses elementos, logo em aplicações de 
grande volume de produção esse custo é amortizado.
• MPGAs (mask-progratnmable gate arrays): Esse dispositivo já possui uma 
fabricação mais rápida pois usa máscaras genéricas com módulos préprojetados, 
mas quando se trabalha com interconexoes de móduos ele volta a necessitar 
máscaras especialiadas. Como usa biblioteca de células seu tempo de projeto é 
mais rápido, bem como os custos menores.
• Standard CelIs: Sua construção se dá de forma semelhante ao MPGA. 
Os módulos ou standard cells são salvos em módulos de banco de dados e 
os projetistas selecionam as células desejadas nesses bancos. Comparado 
aos anteriores, são menos eficientes em tamanho e desempenho mas de 
baixíssimo custo.
• PLDs (programmable logic devices): O diferencial aqui é a capacidade 
de programação por parte do usuário, dessa forma elimina-se o processo de 
fabricação e aceleramos as mudanças quando necessário. Comparado com os 
demais, os PLDs tem um ciclo de projeto bem menor e seus custos são mais 
baixos também.
Com a grande quantidade de dispositivos CIs existentes hoje no mercado, os 
desenvolvedores e projetistas de sistemas lógicos passaram a implementar diversas 
novas funções em projetos de computadores e eletrônicos. Porém, houve um 
problema a se resolver, com o uso de uma quantidade grande de CIs, o espaço 
exigido também acabou por aumentar a placa do circuito impresso.
A redução no número de CI’s em um projeto acarreta em inúmeras vantagens 
além de menor espaço ocupado na placa de circuito impresso, também um menor 
consumo de energia, levando a utilização de fontes menores e mais baratas e maior 
confiabilidade no projeto, uma vez que possui um número menor de interligações, 
e velocidades mais altas.
O desenvolvimento de Dispositivos Lógicos Programáveis (PLD - Programmable 
Logic Devices) tem proporcionado a substituição de diversos chips por um único CI, 
além de poder ser programado pelo usuário, eliminando o processo de fabricação e 
facilitando eventuais mudanças no projeto, diminuindo o tempo e custo do projeto.
A estrutura interna de um PLD é baseada em um array que conecta os barra-
mentos aos blocos lógicos, aos pinos de entrada e saída, e aos blocos de memó-
ria. Os PLD’s, a princípio, possuíam apenas um único bloco lógico (que realizava 
globalmente as operações), conectado aos pinos de entrada e saída do dispositivo.
Com o aperfeiçoamento da tecnologia de fabricação, esses dispositivos rece-
beram uma estrutura de interconexões programáveis, que viriam flexibilizar mais 
ainda a programação.
Na verdade, o grande desafio de Eletrônica Digital é o desenvolvimento 
do componente “universal” que alie versatilidade com elevada capacidade, alta 
12
13
velocidade, baixo custo e fácil manuseio. A evolução trouxe uma otimização do 
aproveitamento de espaço, aumentando ainda mais as interconexões do array de 
blocos lógicos. A Figura 5 mostra a evolução dos PLD’s.
Global
Interconnect
Programmable
Interconnect
Array
Enhanced
Programmable
Interconnect
Array
Fast Track
Interconnect
Flex 10K
Flex 8000
Flex 6000
Max 9000
Max 7000Max 5000Classic
Figura 5: Evolução da arquitetura dos PLD’s da ALTERA
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Tipos de PLDs
Existem duas classificações de PLDs:
• Dispositivo de Lógica Programável Simples (“SPLD - Simple Programmable 
Logic Device”);
• Dispositivo de Lógica Programável de Alta Capacidade (“HCPLD - High 
Capacity Programmable Logic Device”).
Simple
PLDs
Programmable
Logic
High-Capacity
PLDsSegmented
Interconnect
≤ 600 Gates > 600 Gates
Continuous
Interconnect
EPROM EEPROM FLASH SRAM Antifuse
FPGAs CPLDs
EPROM EEPROM FLASH SRAM
Figura 6: Tipos de Dispositivo de Lógica programável
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Os PLD’s simples usam tecnologia CMOS, oferecem elementos de memória do 
tipo EPROM, EEPROM e memória FLASH, bem como possuem uma quantidade 
de portas abaixo de 600 e englobam os dispositivos PALs, GALs e outros 
componentes. Os HCPLDs (dispositivos lógicos programáveis de alta capacidade) 
oferecem mais de 600 portas disponíveis. Também utilizam tecnologia CMOS com 
memória EPROM, EEPROM, FLASH, SRAM e opções anti-fusível. Por HCPLD’s, 
entendem-se os dispositivos FPGA e CPLD.
13
UNIDADE Linguagem de Descrição de Hardware
Os SPLDs (Simple Programmable Logic Devices)
Os SPLDs possuem estrutura interna baseada em conjuntos de portas AND e 
OR que são chamados de arranjos lógicos e podem possuir flip-flops ou não em 
sua saída. Esses PLDs são utilizados quando há necessidade de baixo custo e alto 
desempenho.
Tipos de SPLDs
• Matriz Programáveis Logicamente (PLA) ou Matriz programável logica-
mente em campo (FPLA)
Quando avaliamos uma PROM, percebemos a existências de duas matrizes de 
interconexões AND e OR, sendo a matriz ANDfixa e a matriz OR é programável. 
Essa arquitetura é adequada àquelas onde cada combinação possível de entrada 
se faz necessária para a geração de uma função de saída, como, por exemplo, os 
conversores de código e tabelas de dados.
Na figura 7, você tem uma estrutura de PLA que é semelhante a da PROM, 
diferenciando-se apenas por:
• Dispor de menor quantidade de portas AND (não é decodificador completo);
• Ter duas matrizes de conexão das portas (AND e OR) programáveis (para 
compensar o número menor de portas AND).
Um PLA, embora seja o mais versátil de todos os Dispositivos Lógicos 
Programáveis por possuir dois conjuntos de fusíveis, é mais difícil de fabricar, 
projetar que a PROM; consequentemente, tem um custo mais alto.
Conexão �xa
Conexão programável pelo usuário
S0 S1
E0 E1
E0
E1
S0
S1
PLA
Figura 7: PLA ainda não programada, com todos os fusíveis intactos
Fonte: TOCCI, Ronald J.; Sistemas Digitais
14
15
• Matriz Lógica Programável (PAL)
O diferencial do PAL é que ele não necessita que todas as combinações de entrada 
sejam programáveis. Logo, pode-se dizer que os PAL são uma simplificação dos 
PLA, sendo apenas a matriz de conexão das portas AND programável, a matriz 
OR é fixa, vide figura 8.
Cada porta AND pode ser programada para gerar qualquer dos produtos AND 
das duas variáveis de entrada e de seus complementos. Cada porta OR está ligada 
somente a duas das saídas ANDs. Isso limita a função a ser implementada a ter, 
no máximo, dois produtos AND. Se a função precisar de mais de dois produtos, 
não pode ser implementada nesta PAL, devendo ser escolhido outro modelo 
que tenha mais entradas para as portas OR. Caso seja necessário menos de 
dois termos para a implementação da função, as saídas não utilizadas devem ser 
colocadas no nível lógico “0”.
Conexão �xa
Conexão programável pelo usuário
S0 S1
E0 E1
E0
E1
S0
S1
PLA
Figura 8: PAL ainda não programada, com todos os fusíveis intactos
Fonte: TOCCI, Ronald J.; Sistemas Digitais
• Arranjo Lógico Genérico (GAL)
As GAL’s (“Generic Array Logic”) são estruturas como a PAL, mas possuem 
macrocélulas de saídas, as quais podem ser configuradas como lógica combinacional 
ou sequencial (registradores), como mostrada na Figura 9.
15
UNIDADE Linguagem de Descrição de Hardware
Entrada habilitadora
Registradores
Combinacional
CLK
En
tra
da
s GAL
16v8
I/O
Figura 9: Circuito típico de uma GAL
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Uma única GAL pode substituir 24 tipos diferentes de PAL. A GAL é construída 
com a tecnologia CMOS; isso reduz o consumo de potência comparado a dispositivos 
bipolares, mas possui alta taxa de ruído. A Gal possui a mesma quantidade de pinos 
do que uma PAL, em torno de 20 e 24 pinos.
• Dispositivos Lógicos Programáveis Apagáveis (EPLD)
Os EPLD’s (“Ereaseable Programmable Logic Device”) são dispositivos que têm 
quantidades de pinos entre 20 a 66, bem como um consumo mais baixo de potência 
do que as GALs, em torno de metade da potência, mas não são rápidos, embora 
possuem um custo baixo e são fáceis de usar em desenvolvimento de sistemas.
Além disso, são detentores dos registradores programáveis como tipo D, T, JK 
ou Flip-flop RS com quatro entradas para clocks independentes.
No entanto, o problema dos EPLDs é que têm posse do arranjo de portas OR 
fixas e AND programáveis, as quais apresentam baixa utilização de portas.
São utilizados em telecomunicações e aplicação industrial. A figura 10 mostra uma 
macrocélula como decodificador de endereços, a qual tem oito termos de produtos, 
mas apenas um deles é usado. Entretanto, quando uma aplicação necessita de mais 
de oito termos de produtos deve ser feito um “loop” de realimentação o qual torna 
o projeto muito mais lento.
16
17
A0 ... An
7 t
er
m
os
 de
 pr
od
ut
os
nã
o u
til
iza
do
s
1 termo de produtos
é utilizado
FF dedicado
A0&A1&
Figura 10: Macrocélula como decodifi cador de endereços
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Os Dispositivos de lógica Programável de Alta Capacidade (HCPLD)
Tendo em vista a necessidade cada vez maior de implementar circuitos muito 
complexos, conexões entre vários SPLDs foram criadas. Além disso, para contornar 
o problema de interconexão entre os vários chips, foi desenvolvido um chip único 
de grande complexidade.
Os HCPLD nada mais é que um dispositivo lógico programável que possui cen-
tenas de portas, quanto maior o número de portas do PLD, maior será sua com-
plexidade e em se tratando de estrutura de conexão, os HCPLD são divididos em:
• CPLD (Complex Programable Logic Devices)
• FPGA (Field Programable Gate Array)
Normalmente, um HCPLD é constituído por várias estruturas que e repetem, 
conhecidas como células e cada célula é constituída de elementos que implementam 
a lógica combinacional, acompanhados dos já estudados Latches (através de 
memórias e flip-flops) que são destinados à lógica sequencial.
Interligando estas duas estruturas, existem multiplexadores programáveis que 
realizam a interligação destes blocos entre si e destes com o exterior da célula (para 
outra célula ou para barramentos).
Um barramento é uma estrutura que se destina a promover a interligação entre 
as células. É uma conexão física (trilha metalizada) disponíveis no interior do chip. 
Dependendo do tipo de PLD envolvido (FPGA ou CPLD), de sua complexidade e 
de seu fabricante, há diferentes recursos e modos de conexão. Basicamente, esses 
blocos de conexão são estruturas de conexão segmentadas (FPGA) e estruturas 
contínuas (CPLD).
17
UNIDADE Linguagem de Descrição de Hardware
A interface com o mundo exterior é feita através de unidades conhecidas como 
blocos de entrada e saída. Sua função é conectar as células aos pinos do integrado 
que, normalmente, pode ser realizada diretamente (Célula → Bloco I/O) ou 
indiretamente (Célula → Barramento → Bloco I/O). A seguir, serão descritas mais 
detalhadamente cada uma dessas estruturas.
Tipos de HCPLD
• Dispositivos Lógicos Programáveis Complexos (CPLDs - Complex 
Programmable Logic Devices)
Esse dispositivo é um conjunto de múltiplos PLDs em um único chip, onde os 
blocos lógicos se comunicam um com o outro através de interconexões programáveis. 
Essa arquitetura de dispositivo permite tornar muito mais aproveitável a integração 
do silício do dispositivo, permitindo a redução no custo. Um único CPLD pode 
substituir centenas de componentes.
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Switch
Matrix
Figura 11: Estrutura interna de um CPLD.
Fonte: TOCCI, Ronald J.; Sistemas Digitais
As interconexões programáveis formam um barramento que interliga os sinais 
das entradas ou saídas para as entradas de um bloco lógico, ou das saídas de 
um bloco lógico para as entradas do mesmo ou outro bloco. Além disso, cada 
bloco lógico é equivalente a um SPLD, contendo suas macrocélulas com suas 
interconexões. Diferente das interconexões configuráveis da SPLD, as interconexões 
entre os blocos lógicos da CPLD podem não ser totalmente conectáveis, ou seja, 
algumas conexões entre um bloco e outro, teoricamente, pode ser possível, mas, 
na prática, não podem ser executadas. Com isso, torna-se difícil utilizar 100% 
das macrocéculas.
• Arranjos Lógicos Programáveis em Campo (FPGA - Field-Programmable 
Gate Array)
Esses arranjos são circuitos programáveis que não possuem planos AND e OR, 
mas sim milhares de unidades de blocos lógicos iguais e configuráveis. Essas unidades 
lógicas são tratadas como componentes padrões que podem ser configurados 
independentemente e interconectados a partir de uma matriz de trilhas condutoras 
e chaves programáveis.
18
19
Bloco
Lógico
clk
Bloco
Lógico
clk
Bloco
Lógico
clk
Bloco
Lógico
clk
BlocoLógico
clk
Bloco
Lógico
clk
Bloco
Lógico
clk
Bloco
Lógico
clk
Bloco
Lógico
clk
I/O
I/O
I/O
I/O
I/O
I/O
I/O I/O I/O
Interconexão programável
Segmento de conexão
Caminho de interconexão
Figura 12: Estrutura de um FPGA
Fonte: TOCCI, Ronald J.; Sistemas Digitais
Os dispositivos FPGA são divididos em duas unidades lógicas configuráveis, 
sendo uma delas (a menor) uma matriz AND/OR que é configurável. A outra 
unidade (maior) é um arranjo bidimensional que possui recursos mais complexos 
como multiplexadores, blocos de memória e contadores. Essa unidade, como visto 
na próxima figura, é um arranjo de elementos de circuitos não conectados que 
chamamos de blocos lógicos e recursos de interconexão, cuja configuração é obtida 
através de programação pelo usuário.
Os blocos lógicos, mostrados nas figuras 12 e 13, são interconectados através 
de segmentos de trilha e comutadores programáveis. Chama-se de roteamento 
a maneira pela qual esses comutadores programáveis e segmentos de trilha são 
posicionados para permitir a interconexão das células lógicas.
Figura 13: Arquitetura de uma FPGA.
Fonte: TOCCI, Ronald J.; Sistemas Digitais
19
UNIDADE Linguagem de Descrição de Hardware
• Diferenças básicas entre CPLD e FPGA
Ambos são dispositivos lógicos programáveis e ambos, muitas vezes, são 
produzidos pelas mesmas companhias. Existem, porém, muitas diferenças entre as 
tecnologias associadas:
• FPGAs contém muitos pequenos blocos lógicos com flip-flops (até da ordem 
de 1000000). CPLDs são compostos por um pequeno número (algumas 
centenas) de grandes blocos lógicos.
• FPGAs, tipicamente, são baseados em RAM, isto significa que perdem sua 
programação após desligar a alimentação. Portanto, precisam ser reconfigurados 
(reprogramados) após cada corte de energia. CPLDs são baseados em EEPROM 
mantendo sua programação após desligar a alimentação.
• CPLDs têm um tempo de resposta melhor, por ser composto de alguns 
poucos grande blocos lógicos. Em contrapartida, essa característica lhe dá 
menos flexibilidade.
• FPGAs têm recursos de roteamento especiais para implementar de maneira 
eficiente funções aritméticas e RAM. CPLDs não têm.
• FPGAs podem ser usados em projetos grandes e complexos, enquanto CPLDs 
estão restritos a projetos bem menores.
20
21
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Sites
Arquiteturas de Computadores
https://goo.gl/RZKgpz
Tópicos de Informática Aplicados à Administração
https://goo.gl/F92pAx
 Livros
Eletrônica Digital - Teoria e Laboratório
Garcia, P. A., Eletrônica Digital - Teoria e Laboratório, Ed. Érica, 2006.
Fundamentals of Digital Logic with VHDL Design
Stephen Brown, Zvonko Vranesic; Fundamentals of Digital Logic with VHDL 
Design; 3a Edição; McGraw-Hill; 2008.
21
UNIDADE Linguagem de Descrição de Hardware
Referências
MONTEIRO, Mario A.; A Organização de Computadores; 5ª Ed.; Editora: 
LTC; 2012.
TANENBAUM, Andrew S.; Organização Estruturada de Computadores; 5ª 
Ed.; Editora: Pearson Education; 2006.
22

Continue navegando