Buscar

digital_cap4

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 39 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 39 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 39 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

4
ò  ë¾| î�ê ⠀ ê ò ¿ ì«ä çÆå~ Ý ìŸê â ë Þ ò ÀÉë ìç
€ ê ò àæî°ÞdÁ ì«ë ç ë Þ
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
Em capítulos anteriores foram apresentadas as metodologias que permitem conceber
funções lógicas simples e projectar os respectivos circuitos combinatórios. Como é evi-
dente, a maioria dos circuitos necessários nas aplicações correntes exibe uma complexi-
dade que não é compatível com uma abordagem tão simples.
Neste capítulo é analisada, por um lado, a metodologia de concepção de circuitos com-
binatórios complexos a partir de módulos mais simples e, por outro, a estrutura dos
módulos simples mais típicos.
A questão da concepção modular é desenvolvida na Secção 4.1, sendo mostrado como
se pode conceber um circuito complexo a partir de circuitos de sucessivamente menor
complexidade. É também introduzido o conceito de níveis de abstracção para lidar com
problemas de concepção de sistemas complexos.
As três secções seguintes são dedicadas a três tipos de módulos de muito frequente
utilização. A Secção 4.2 analisa os descodificadores, a Secção 4.3 trata dos codificadores
e a Secção 4.4 apresenta os multiplexadores.
Dada a importância prática e formativa do tema, é descrita na Secção 4.5 a metodo-
logia de implementação de funções lógicas simples com base em alguns dos módu-
los anteriormente apresentados, nomeadamente descodificadores e multiplexadores,
complementando-se, deste modo, as técnicas apresentadas no Capítulo 3.
O capítulo termina com a Secção 4.6, onde é feita uma breve referência ao projecto de
circuitos iterativos, sendo o conceito ilustrado com a concepção de um circuito compa-
rador de dois números de n bits.
uffiöšõ
��Ü
û
ß
xPø
Õ.Û
û¿ø×û
Ö
A concepção de um circuito combinatório parte sempre de uma especificação que rela-
ciona um conjunto de saídas do circuito com um conjunto de entradas. Desse ponto de
vista, ao nível da especificação do circuito, este surge numa forma abstracta, em que a
estrutura interna ainda não é conhecida. O circuito é, portanto, uma caixa negra cujo
interior se desconhece e em que apenas são conhecidos os seus terminais de entrada e
de saída e a sua especificação comportamental. Um circuito com n entradas, I0 a In−1 e
m saídas, O0 a Om−1, pode ser descrito graficamente como se ilustra na Figura 4.1. Este
modelo de descrição do circuito tem o nome de modelo de terminais (em inglês, terminal
model).
Definido o modelo de terminais para um circuito, pode optar-se pela sua implemen-
tação baseada num projecto que assente na implementação directa de m funções de n
variáveis, usando os métodos apresentados nos Capítulos 2 e 3.
189
/ü�Ì%Ÿ}-+��ó�ó�S%-�ó%-�
. . .
. . .
I1 O0
I2
In-1
I0
O1
Om-1
?Ł,.qCY!�>�ÂE(����; Modelo de terminais de um circuito combinatório com n entradas e m
saídas.
A título de exemplo considere-se um circuito que converte palavras do código BCD em
palavras do código 2-em-5, que se caracteriza por possuir palavras de cinco bits com,
para cada configuração válida, dois bits a 1 e três bits a 0. Na Tabela 4.1 ilustra-se o
código 2-em-5 e, simultaneamente, a correspondência entre as palavras do código BCD
e as do referido código.
7
�!8+��9��Efi�
�	; Correspondência entre o código BCD e o código 2-em-5.
Codificação Codificação
Número BCD 2-em-5
A B C D P Q R S T
0 0 0 0 0 1 1 0 0 0
1 0 0 0 1 0 0 0 1 1
2 0 0 1 0 0 0 1 0 1
3 0 0 1 1 0 0 1 1 0
4 0 1 0 0 0 1 0 0 1
5 0 1 0 1 0 1 0 1 0
6 0 1 1 0 0 1 1 0 0
7 0 1 1 1 1 0 0 0 1
8 1 0 0 0 1 0 0 1 0
9 1 0 0 1 1 0 1 0 0
O modelo de terminais correspondente é ilustrado na Figura 4.2.
A Tabela 4.1, para além de representar a correspondência entre as palavras dos dois
códigos, pode ser encarada, de igual modo, como um conjunto de cinco tabelas de ver-
dade das funções lógicas P (A,B,C,D), Q(A,B,C,D), R(A,B,C,D), S(A,B,C,D)
e T (A,B,C,D). A implementação do circuito pode agora ser realizada através dos
métodos apresentados nos capítulos anteriores.
190
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
Conversor 
BCD - 2-em-5
A
B
C
D
P
Q
R
S
T
?Ł,„qtY!�(�«E(�^3+; Modelo de terminais de um circuito combinatório que converte código
BCD em código 2-em-5.
A título de curiosidade refere-se que há vários códigos 2-em-5 teoricamente possíveis.
O que é ilustrado é o código na variante de Dennison com pesos,
P = 7, Q = 4, R = 2, S = 1 e T = 0.
Como noutras variantes do código 2-em-5 com pesos associados às diversas colunas, a
codificação do 0 é uma combinação inválida (neste caso correspondente a 11).
É, porém, frequente que os circuitos assumam graus de complexidade que inviabili-
zem ou dificultem muito metodologias de implementação directa por envolverem um
grande número de entradas e saídas. Nessas circunstâncias é preferível adoptar abor-
dagens que assentam em estruturas modulares. Neste tipo de metodologia procuram
analisar-se as especificações de um circuito, tentando encontrar alguma estrutura in-
terna que permita conceber um conjunto de módulos que, interligados, realizem a es-
pecificação pretendida.
Considere-se, a título de exemplo, o seguinte problema. Existe um corredor longo com
uma série de portas de acesso a salas e com uma porta de acesso ao exterior, P1 como
se ilustra na Figura 4.3. Junto de cada porta há um interruptor. Sempre que alguém
entra no corredor e este está sem iluminação, inverte a posição desse interruptor, e a
luz é acesa. Se alguém sai do corredor e verifica que ele fica vazio, inverte a posição do
interruptor junto à porta por onde sai, e a luz é apagada.
Pode-se, então, apontar para um circuito com a estrutura ilustrada na Figura 4.4 que
exibe uma estrutura modular em que cada módulo é colocado junto de cada porta. Em
cada módulo existem duas entradas, uma, que provém do interruptor, e outra, que
provém do módulo anterior. No primeiro caso há naturalmente uma excepção: esta
segunda entrada provém do interruptor inicial. Se cada módulo alterar o valor da sua
saída, sempre que uma das entradas se alterar, consegue-se o comportamento preten-
dido, uma vez que a alteração de uma qualquer entrada provoca uma alteração da saída
do módulo respectivo e, em cascata, a alteração de todos os módulos sucessivos até ao
191
/ü�Ì%Ÿ}-+��ó�ó�S%-�ó%-�
Pn
Pn-2
Pn-1
P4
P3
P2
P1 Corredor
?Ł,„qtY!�(�‡Efi�^<fi; Representação esquemática do exemplo de iluminação do corredor.
último, cuja saída comanda a iluminação do corredor. O problema resume-se agora
a conceber um dos módulos, o que, como são todos iguais, corresponde à concepção
completa do circuito.
PnPn-1P3P2
P1 . . . LI2 I3 In-1In-2
?Ł,.qCY!�>�™Efi�4E(; Representação modular do circuito de controlo da iluminação do corre-
dor.
Para resolver este problema pode-se recordar que a função ou-exclusivo tem uma ca-
racterística importante: se uma das entradas inverter o seu valor, a saída também inverte
o seu valor, independentemente do valor, desde que constante, da outra entrada. A Ta-
bela 4.2, aqui repetida, permite verificar essa propriedade. É fácil ver que cada módulo
é simplesmente constituído por uma porta XOR, como se ilustra na Figura 4.5 para o
caso do módulo i.
7
�!8+��9K�E(�43fi; Função XOR.
x y x⊕ y
0 0 0
0 1 1
1 0 1
1 1 0
Nem sempre a concepção modular assenta no uso de módulos todos iguais. Uma al-
192
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
Pi
Ii-1 Ii
Pi
Ii
Ii-1
?Ł,„qtY!�(�‡Efi�^]+; Circuito correspondente a cada módulo do circuito de controlo de ilumi-
nação do corredor.
ternativa é a concepção de um circuito em módulos funcionalmente diferentes, mas
que correspondem, na sua interacção, ao circuito pretendido. A título de exemplo,
considere-se um circuito que soma ou multiplicanúmeros binários de 4 bits sob co-
mando de um sinal de controlo C.
Uma possível concepção deste circuito pode resultar da junção de um módulo que rea-
liza a soma de dois números, um segundo módulo que proceda ao produto desses nú-
meros e um terceiro módulo que permita escolher qual dos resultados obtidos pelos
módulos referidos deve ser utilizado como resultado final do circuito. Na Figura 4.6
ilustra-se essa solução. Neste exemplo repare-se que — e voltar-se-á a este assunto mais
Somador Multiplicador
Selector
Operando 1 Operando 2
C
?Ł,„qtY!�(�ÃE(�4efi; Circuito que permite somar ou multiplicar dois números binários de 4
bits.
tarde no Capítulo 5 — o resultado da soma de dois números binários de 4 (n) bits pode
ser um número binário de 5 (n + 1) bits e que o produto é um número de 8 (2n) bits.
193
/ü�Ì%Ÿ}-+��ó�ó�S%-�ó%-�
Claro que, agora, haverá que conceber cada um dos módulos. Estes poderão, por sua
vez, ser divididos em módulos de menor complexidade ou ser concebidos directamente.
A concepção de circuitos deste modo oferece várias vantagens:
— A concepção modular, como foi apresentada, permite partir da descrição funcional
do circuito, abstraindo completamente a sua estrutura, e iniciar um processo que,
refinando sucessivamente a visão abstracta, nos aproxima da visão estrutural do cir-
cuito e, portanto, da sua concepção física. Do modelo de terminais do circuito de
iluminação da escada, por exemplo, avançou-se para uma descrição que, embora
ainda exibindo alguma abstracção, uma vez que não tinham sido identificados os
componentes concretos a utilizar, já mostra claramente, a um nível inferior ao inicial,
a estrutura que se propõe para a concepção do circuito.
— De um modo geral, a concepção modular permite projectar circuitos de uma forma
mais rápida, elegante e testável. Isto acontece porque é possível dividir o problema
em problemas mais simples, concebendo o circuito como um conjunto de módulos
de menor complexidade, interligados. Seguidamente analisa-se cada um dos mó-
dulos e, se ele já é suficientemente simples para ser projectado com as ferramentas
disponíveis, projecta-se. Se isso não acontece, continua-se o processo de divisão em
módulos progressivamente mais simples.
— Introduz-se uma hierarquia na estrutura do circuito que permite proceder a altera-
ções locais sem interferir na hierarquia global nem nos restantes módulos. Se, por
exemplo, no circuito somador/multiplicador se pretender substituir a soma por uma
operação subtracção, apenas há que actuar ao nível do módulo que efectua essa ope-
ração. O mesmo acontece se for disponibilizado um algoritmo mais eficiente para
realizar a operação de multiplicação, alterando apenas o respectivo módulo.
— A concepção desta forma é propícia à fácil expansão da funcionalidade pretendida.
No circuito de iluminação do corredor, se for prolongado o corredor, haverá apenas
que adicionar mais módulos dos já concebidos. No circuito somador/multiplicador,
se se pretender adicionar novas operações, haverá apenas que conceber os novos
módulos e redimensionar o circuito selector ou, de forma ainda mais simples, usar
vários circuitos selectores em cascata.
— Outra vantagem desta forma de projectar é que os diversos módulos concebidos po-
dem ser sempre reutilizados noutros circuitos. Se, por exemplo, se pretender conce-
ber um circuito somador de números de 16 bits, é possível, como se verá no Capí-
tulo 5, partir do somador de 4 bits já existente e, num processo de justaposição de
módulos iguais, conceber o somador de 16 bits.
194
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
— Uma última vantagem de importância relevante é a de se tornar mais económica a
actividade de produzir os circuitos, uma vez que estes passam a ser estruturados
em torno de módulos de relativamente menor complexidade que, como são muitas
vezes reutilizáveis, permitem a sua fabricação em maiores quantidades, o que, neste
tipo de indústria, embaratece muito consideravelmente a produção.
Como é evidente, há também desvantagens neste tipo de abordagem. Mas são clara-
mente de menor importância e, na maior parte dos casos, a abordagem modular é, de
facto, a usada. Das desvantagens da abordagem modular, a mais significativa é a se-
guinte: quando se faz um projecto directo a partir da tabela de verdade dos circuitos,
é, em geral, praticável a construção de um circuito com duas camadas de portas entre
as entradas e as saídas (não contando com as eventualmente necessárias negações, que
podem representar uma terceira camada). O tempo de atraso do circuito é, portanto,
conhecido e limitado ao tempo de atraso de, no máximo, três portas. Na abordagem
modular, os atrasos são muito maiores, uma vez que cada módulo pode ter alguma
complexidade e a interligação dos módulos corresponde com muito elevada probabi-
lidade a um circuito mais lento do que seria possível com uma realização directa. Ao
projectista cabe pesar, em cada caso, os prós e os contras de cada uma das hipóteses de
solução. Este assunto será retomado em capítulos posteriores.
Idealmente, o projecto deveria ser feito segundo uma aproximação top-down, isto é, a
que se apresentou atrás, em que que se parte do nível de abstracção superior para ní-
veis sucessivamente mais abaixo na hierarquia, até chegar aos módulos mais simples e,
seguidamente, aos circuitos. No entanto, muitas vezes há condicionalismos em relação
aos módulos já disponíveis para utilizar em níveis inferiores, por exemplo, por efeito
da reutilização de módulos anteriormente projectados. Isso leva a que muitas vezes
se combine, ou até se substitua, a estratégia top-down por uma estratégia bottom-up, em
que se parte do conhecimento dos módulos disponíveis para a concepção de um circuito
mais complexo. Uma criança que usa um conjunto LEGOTM para realizar uma constru-
ção conhece, por experiência, esta realidade. Embora faça, em construções complexas,
um plano da construção a implementar, não ignora o formato e a funcionalidade das
peças de que realmente dispõe.
No projecto de circuitos digitais é recorrente a utilização de certo tipo de módulos que
representam funcionalidades relativamente comuns ou que permitem a implementação
de funções lógicas, de uma forma alternativa e, em alguns casos, vantajosa. Nas secções
seguintes serão estudados alguns desses módulos.
195
%Ÿ�”�#�«�Ì%-�S�~�ff�ž�ó%0�Ì�ó�”�
uffiöON û
Ö
ù
Ú Ü
û
ÛdØmÛ*Ú
ø.û
Ü Õ×Ö
ù
O descodificador (em inglês, decoder) é um circuito que permite obter, a partir de um
conjunto de bits que constituem uma palavra de código, a identificação dessa palavra.
Para isso, o descodificador tem tantas saídas quanto o número de palavras de código e
activa, em cada momento, apenas uma das muitas saídas correspondente à palavra de
código presente nas entradas.
E(�43fi��� Œ/����Afiffi>��,.kl,„A+�!��ffi>�����a06,„�CB��>,.ffi(�
Um descodificador binário de três entradas aceita nas entradas palavras de um código
binário de 3 bits, isto é, as configurações entre 000 e 111, e tem oito saídas numeradas
de 0 a 7. O modelo de terminais de um descodificador deste tipo está ilustrado na Fi-
gura 4.7. É importante referir que, no modelo de terminais, deve ser claro qual é o peso
I0
I1
I2
Descodi-
ficador
O0
O1
O2
O3
O4
O5
O6
O7
1
2
0
4
1
2
3
4
5
6
7
?Ł,.qCY!�>�E(��f�; Modelo de terminais de um descodificador binário de três entradas.
de cada uma das linhas em termos da palavra de código na entrada, o que é, em geral
indicado pelos índices das variáveis de entrada. Do mesmo modo, é necessário ter a
identificação clara de cada uma das saídas.
Em termos de funcionamento pretendido, como está exposto acima, este pode ser des-
crito pela Tabela 4.3, em que Oi é a saída correspondente à palavra i do código binário.
A estrutura interna possível para um descodificador é extremamentefácil de definir. De
facto, cada saída representa uma das possíveis configurações binárias das entradas. Por
exemplo, se as entradas I2 e I1 estiverem activas e a I0 não estiver activa, a saída O6
deve estar activa, isto é, a 1, e todas as restantes saídas a 0. É fácil concluir que a saída
O6 tem a Expressão 4.1.
O6 = I0 I1 I2 (4.1)
196
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
7
�!8+��9K�E(�^<+; Tabela de um descodificador binário de três entradas.
Codificação
binária
Saídas
I2 I1 I0 O7 O6 O5 O4 O3 O2 O1 O0
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0
Prolongando este raciocínio pode concluir-se que a Figura 4.8 representa a estrutura
interna de um descodificador binário de três entradas.
O exemplo apresentado de um descodificador binário de 3 bits pode, naturalmente, ser
estendido a descodificadores binários com qualquer número de bits de entrada.
Para além deste tipo de descodificadores (binários de n bits) existem descodificadores
específicos para certos códigos, como, por exemplo, o código BCD. Esse tipo, em par-
ticular, tem quatro entradas e dez saídas, que vão de O0 a O9. Como é evidente, as
configurações das entradas que não correspondem a palavras do código BCD deixam
todas as saídas inactivas.
O modelo de terminais de um descodificador deste tipo está ilustrado na Figura 4.9. Em
termos de funcionamento pretendido, como está descrito acima, este pode ser especifi-
cado pela Tabela 4.4.
É muito frequente que os descodificadores tenham as suas saídas activas a 0. Nessas
circunstâncias, as portas internas são NAND em vez de AND, e a saída activa passa a ser
a que está a 0, permanecendo as inactivas a 1. Há razões tecnológicas fortes para esta so-
lução. Por um lado, as portas NAND são mais rápidas que as portas AND, o que permite
construir descodificadores mais rápidos, utilizando portas NAND. Por outro lado, em
TTL o valor 0 presente numa linha é mais consumidor de energia que o valor 1, porque
a estrutura do circuito interno leva a que as correntes envolvidas na manutenção de um
0 sejam quase três ordens de grandeza superiores às que são necessárias para manter
um 1. O mesmo acontece com as entradas de activação. É útil muitas vezes recorrer
aos princípios da lógica de polaridade (Secção 3.2.2) para referir saídas e entrada de
197
%Ÿ�”�#�«�Ì%-�S�~�ff�ž�ó%0�Ì�ó�”�
I1
I0
I2
O0
O1
O2
O3
O4
O5
O6
O7
?Ł,.qCY!�>�E(�4mfi; Possível estrutura interna do descodificador binário de três entradas.
I0
I1
I2
Descodi-
ficador
BCD
O0
O1
O2
O3
O4
O5
O6
O7
I3
O8
O9
0
1
2
3
4
5
6
7
8
9
1
2
4
8
?Ł,.qCY!�>�E(�4nfi; Modelo de terminais de um descodificador BCD.
activação activas a L e raciocinar em conformidade.
Em termos de representação simbólica, os módulos, como o caso do descodificador bi-
nário, são muitas vezes representados pelo seu modelo de terminais, eventualmente
com algumas variantes, sendo referida essa representação, por vezes, como diagrama de
198
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
7
�!8+��9K�E(�FE(; Tabela de um descodificador BCD.
Codificação
binária
Saídas
I3 I2 I1 I0 O9 O8 O7 O6 O5 O4 O3 O2 O1 O0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 0 0 0 1 0 0
0 0 1 1 0 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 1 0 1 0 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 0 1 0 0 0 0 0 0
0 1 1 1 0 0 1 0 0 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0 0 0 0 0
1 0 0 1 1 0 0 0 0 0 0 0 0 0
blocos.
Efi�^3fi�43 )*���+���>9�,„qC�fifffifl(ffi �!�#ŒD����A(ffi(��,.kl,„A+�!�!ffi>�>���
Muitas vezes os módulos descodificadores disponíveis não têm o número de entradas
(e saídas) que são necessárias para descodificar um determinado código. É por isso
necessário proceder à expansão da capacidade de descodificação. Muitos descodificadores
têm uma entrada de activação (em inglês, Enable). Essa entrada permite, quando activa,
que o descodificador funcione normalmente. Quando não activa, inibe o seu funciona-
mento, fazendo com que que todas as saídas fiquem inactivas. O funcionamento de um
descodificador deste tipo é descrito pela Tabela 4.5.
Usando circuitos desse tipo, podem ser construídos descodificadores de n entradas com
descodificadores «menores». Exemplifica-se, na Figura 4.10, a construção de um desco-
dificador binário de 4 bits utilizando descodificadores binários de 2 bits.
No exemplo utilizado pode verificar-se que existe uma camada final de descodificadores
em número suficiente para totalizar o número de saídas necessárias ao descodificador
«global». Todos esses descodificadores partilham as mesmas linhas de entrada, pelo que
descodificam o mesmo subconjunto de linhas do código à entrada, neste caso, as linhas
I0 e I1. Existe um descodificador suplementar que, descodificando as restantes linhas
do código de entrada, decide, através das linhas de activação, qual dos descodificado-
199
%Ÿ�”�#�«�Ì%-�S�~�ff�ž�ó%0�Ì�ó�”�
7
�!8+��9��Efi�^]+; Tabela de um descodificador com linha de activação.
Codificação
binária
Activação Saídas
I1 I0 En S0 S1 S2 S3
0 0 0 0 0 0 0
0 0 1 1 0 0 0
0 1 0 0 0 0 0
0 1 1 0 1 0 0
1 0 0 0 0 0 0
1 0 1 0 0 1 0
1 1 0 0 0 0 0
1 1 1 0 0 0 1
O0
O1
O2
O3
O4
O5
O6
O7
O8
O9
O10
O11
O12
O13
O14
O15
Activação
I0
I1
I2
I3
0
1
2
3
En
1
2
0
1
2
3
En
1
2
0
1
2
3
En
1
2
0
1
2
3
En
1
2
0
1
2
3
En
1
2
?Ł,.qCY!�>�™Efi�
�lo(; Exemplo de construção de um descodificador binário de quatro entra-
das, utilizando descodificadores binários de duas entradas.
res da camada de saída está activo. Desse modo, continua a estar sempre apenas uma
linha activa na saída. No caso exemplificado, um descodificador é suficiente para essa
200
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
tarefa. Em situações mais gerais pode ser necessário utilizar várias camadas de descodi-
ficadores para obter o descodificador necessário. Uma outra observação relevante é que
a numeração final das saídas depende do modo como as linhas do código de entrada
são distribuídas pelos descodificadores. Se, por exemplo, as linhas I0 e I2 estivessem
trocadas entre si, tal como as linhas I1 e I3, então a ordem das linhas de saída viria com-
pletamente alterada. É um bom exercício para a compreensão do funcionamento deste
circuito, obter essa ordem.
Na Figura 4.10 há outro aspecto interessante: repare-se que existem linhas que têm um
significado interno em relação aos descodificadores, e um significado externo, que de-
pende do circuito total. Por exemplo, a linha O4, que é a linha que descodifica a palavra
4 do código tem esse significado na aplicação que está a ser analisada. Do ponto de vista
do descodificador de onde provém, porém, essa é a linha de saída 0, significando que,
para esse descodificador de 2 bits de entrada, essa é a linha activa quando as entradas
representam a palavra 0 do código binário de 2 bits.
Note-se que a entrada de activação, habitualmente existente nos descodificadores dispo-
níveis, tem outras formas de utilização, para além da simples expansão da capacidade
de descodificação. Uma possível estrutura interna de um descodificador com entrada
de activação está ilustrada na Figura 4.11, para o caso dos descodificadores usados no
exemplo anterior.
I1
I0
O0
O1
O2
O3
En
?Ł,„qtY!�(�›E(���	��; Estrutura interna de um descodificador binário de duas entradas com
entrada de activação.
201
��ó%Ÿ�f�~�f��ó%0�Ì�ó�”�
uffiöOg
ÚãÜ
û
Ûd؞Û*Ú
ø×û
Ü¿Õ.Ö
ù
O codificador (em inglês, encoder) é um circuito com umfuncionamento, de algum modo,
inverso do do descodificador. No codificador, as entradas são um conjunto de linhas
na mesma quantidade das palavras de um código, e as saídas são as necessárias para
expressar o número de bits da palavra do código. O modelo de terminais de um co-
dificador para um código binário de 3 bits está ilustrado na Figura 4.12. Nesta secção
O0O1O2
Codifi-
cador
I0
I1
I2
I3
I4
I5
I6
I7
0
1
2
3
4
5
6
7
1
2
4
?Ł,.qCY!�>�ÃE(���-3+; Modelo de terminais de um codificador para um código binário de 3
bits.
serão analisados apenas codificadores binários a título de exemplo, mas, como é óbvio,
podem ser implementados codificadores para qualquer código.
E(�4<fi��� j6ffi(��,.kl,.A+�!�!ffi(�����a06,.�!B!�>,„ffi>�
Na sua versão mais simples, um codificador binário de 3 bits, por exemplo, pode ser
concebido a partir da Tabela 4.6. Repare-se que a tabela não lista todas as configurações
de variáveis de entrada, mas apenas as correspondentes a casos de interesse, em pri-
meira análise. Obter as funções Oi a partir das variáveis Ij é impraticável, utilizando,
por exemplo, o método de Karnaugh. É, porém, relativamente fácil concluir, por obser-
vação da tabela, que cada função Oi pode obter-se por soma das variáveis de entrada,
que colocam a função a 1 numa das configurações de saída. Assim, obter-se-iam as
funções descritas pelas Expressões 4.2.
O0 = I1 + I3 + I5 + I7
O1 = I2 + I3 + I6 + I7 (4.2)
O2 = I4 + I5 + I6 + I7
Este circuito codificador poderia, portanto, ser construído facilmente a partir de três
portas OR de quatro entradas.
202
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
7
�!8+��9��Efi�^e+; Tabela muito simplificada do codificador binário de 3 bits.
Entrada activa Código
I7 I6 I5 I4 I3 I2 I1 I0 O2 O1 O0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
Acontece, porém, que este codificador teria um espectro de utilização muito limitado.
Há dois aspectos que colocariam problemas à utilização deste codificador.
Por um lado, o codificador não distingue a ocorrência da entrada activa I0 de uma outra
situação completamente diferente, que é a de nenhuma entrada estar activa. O circuito
com o comportamento descrito pela tabela acima, e com a implementação proposta,
coloca em ambos os casos todas as saídas inactivas, isto é, O2 = O1 = O0 = 0. Ora,
normalmente, interessa distinguir as duas situações. Uma forma de o fazer é acrescentar
uma saída suplementar que indique se o código presente nas outras saídas é válido.
Essa saída estará activa, sempre que haja uma entrada activa, e ficará inactiva quando
não estiver nenhuma entrada activa.
O segundo aspecto é de solução mais complexa. Trata-se da hipótese de mais de uma
entrada estar activa. Nesse caso, o circuito, que não está projectado para essa even-
tualidade, dará respostas que podem corresponder a ignorar uma das entradas ou a
fornecer como saída uma configuração que não corresponde a nenhuma das entradas
activas. Por exemplo, se estiverem activas as entradas I1 e I3, o circuito irá responder
com a configuração de saída 011 correspondente à entrada I3. No caso de as entradas
activas serem, por exemplo, I3 e I6, a resposta será 111, correspondendo à entrada I7,
que não está activa. A solução para este problema passa por esclarecer, ao nível do
comportamento pretendido, a reacção que o circuito deverá ter quando mais de uma
entrada estiver activa e projectar o circuito em conformidade. Há, basicamente, duas
soluções. Uma delas corresponde a só validar a saída quando estiver apenas uma en-
trada activa. Trata-se de uma extensão da solução para o problema anterior. A solução
mais interessante e com maior potencial em termos de aplicações é, porém, a de intro-
duzir uma ordem de prioridades nas entradas, de tal modo que a entrada efectivamente
203
��ó%Ÿ�f�~�f��ó%0�Ì�ó�”�
codificada na saída seja a que, de acordo com essa ordem, é a mais prioritária. A ordem
habitualmente escolhida é a ordem das entradas, sendo possível atribuir a maior prio-
ridade à entrada I0 e a menor à entrada I7, com prioridades sucessivamente inferiores
para as intermédias, ou o inverso.
Na Tabela 4.7 é ilustrada a especificação de um codificador já com saída de validação e
com prioridade nas entradas, sendo a entrada I7 a mais prioritária.
7
�!8+��9��Efi��f�; Tabela completa do codificador binário de 3 bits.
DadosEntrada activa Código
Válidos
I7 I6 I5 I4 I3 I2 I1 I0 O2 O1 O0 DVAL
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 1 X 0 0 1 1
0 0 0 0 0 1 X X 0 1 0 1
0 0 0 0 1 X X X 0 1 1 1
0 0 0 1 X X X X 1 0 0 1
0 0 1 X X X X X 1 0 1 1
0 1 X X X X X X 1 1 0 1
1 X X X X X X X 1 1 1 1
Repare-se que, mantendo uma formulação muito compacta, a tabela, graças à utilização
das indiferenças, é, agora, uma tabela completa com a representação implícita das 256
configurações possíveis das variáveis de entrada. A obtenção das funções de saída é
fácil se se prescindir dos métodos mais clássicos e se fizer uma abordagem mais heu-
rística. Por exemplo, a função referente a dados válidos, que se designará por DV , será
dada pela Equação 4.3.
DV = I0 + I1 + I2 + I3 + I4 + I5 + I6 + I7 (4.3)
Quanto às funções Oi não é difícil, por leitura directa da tabela, retirar as Equações 4.4.
O0 = I1 I2 I3 I4 I5 I6 I7 + I3 I4 I5 I6 I7 + I5 I6 I7 + I7
O1 = I2 I3 I4 I5 I6 I7 + I3 I4 I5 I6 I7 + I6 I7 + I7 (4.4)
O2 = I4 I5 I6 I7 + I5 I6 I7 + I6 I7 + I7
204
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
Se se utilizarem as técnicas algébricas de manipulação das expressões descritas no Ca-
pítulo 2 chega-se às Equações 4.5, bastante mais simples.
O0 = I1 I2 I4 I6 + I3 I4 I6 + I5 I6 + I7
O1 = I2 I4 I5 + I3 I4 I5 + I6 + I7 (4.5)
O2 = I4 + I5 + I6 + I7
uffiövu
��ß
x
R0ÛdÔ
x
Ö/z
ø×û
Ü¿Õ.Ö
ù
O multiplexador é um circuito muito comum em sistemas digitais. A funcionalidade bá-
sica de um multiplexador é a de um circuito que selecciona de entre várias entradas
uma cujo valor coloca na saída. O multiplexador tem, portanto, entradas de dados, das
quais selecciona uma, e entradas de controlo ou selecção, que permitem escolher qual
das entradas de dados é colocada na saída. Um multiplexador de quatro entradas de
dados, por exemplo, terá o modelo de terminais ilustrado na Figura 4.13. Por facili-
dade e clareza, muitas vezes a palavra «Multiplexador» é substituída pela abreviatura
«MUX» neste tipo de representação. As entradas Ii são as entradas de dados, e as Si
I1
I2
I0
I3
S1S0
O
Multiple-
xador
0
1
2
3
1 2
?Ł,„qtY��>�‡Efi�
�c<fi; Modelo de terminais de um multiplexador de quatro entradas.
as de selecção. O número binário colocado no par S1 S0 determina a entrada cujo va-
lor é colocado na saída. O comportamento descrito pode ser ilustrado, em termos de
descrição funcional, pela Tabela 4.8. Esta tabela não é uma tabela de verdade clássica
da função O de saída do multiplexador em função das variáveis de entrada. De facto,
trata-se de uma representação muito condensada dessa tabela. Tem, porém, a vantagem
de apresentar uma muito melhor legibilidade e clareza. A mesma descrição funcional
205
/·}-+,flm�S�@+,�a¯ó�Ÿ%-�ó�Ì�”�
7
�!8+��9��Efi�^mfi; Tabela condensada do funcionamento de um multiplexador.
S1 S0 O
0 0 I0
0 1 I1
1 0 I2
1 1 I3
em termos de uma tabela mais clássica, ainda que também com algum grau de conden-
sação pela utilização de indiferenças, é muito menos clara, como se pode observar na
Tabela 4.9.
7
�!8+��9K�E(�4nfi; Tabela expandida do funcionamento de um multiplexador.
EntradasEntradas de dados
de Selecção
Saída
I3 I2 I1 I0 S1 S0 O
X X X 0 0 0 0
X X X1 0 0 1
X X 0 X 0 1 0
X X 1 X 0 1 1
X 0 X X 1 0 0
X 1 X X 1 0 1
0 X X X 1 1 0
1 X X X 1 1 1
E(�FE(��� 
�����9�,.»��(ff+fl(ffi �!�#X‹Y!9s�[,„��9r�-”��!�!ffi(�����
A estrutura interna de um multiplexador é fácil de compreender, embora se possa im-
plementar de diversas formas. Talvez a mais evidente seja a apresentada na Figura 4.14.
Repare-se que o descodificador tem como entradas as linhas de selecção do multiplexa-
dor e, de acordo com o seu funcionamento, tem apenas uma linha de saída activa. Se,
por exemplo, tivermos a configuração S1S0 = 10, apenas a linha 2 de saída do desco-
dificador está activa. Isso significa que todas as portas AND com excepção da ligada à
linha activa do descodificador (2, no exemplo referido) têm uma entrada a 0 e, portanto,
206
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
0
1
2
3
S0
S1
I0
I1
I2
I3
O
1
2
?Ł,„qtY!�(�™Efi�
�cEfi; Possível implementação de um multiplexador com quatro entradas de
dados.
a saída a 0. A saída O do multiplexador será portanto igual à linha de entrada Ii selec-
cionada por este processo (no exemplo, I2), uma vez que a saída do AND ligado à saída
activa do descodificador vai ser igual à entrada Ii ligada a esse mesmo AND.
Uma realização alternativa do mesmo circuito, prescindindo do descodificador explí-
cito, com menos camadas de portas e, portanto, mais rápida, está ilustrada na Figu-
ra 4.15 e deve agora ser de fácil compreensão.
Uma terceira forma de implementação interna de um multiplexador assenta na utiliza-
ção de buffers de três estados. A Figura 4.16 ilustra essa estrutura. Já na Secção 3.1.6,
quando da apresentação dos buffers de três estados, este tipo de aplicação desses dispo-
sitivos tinha sido referido, sendo apresentada na Figura 3.14 aquilo que é, na prática,
um multiplexador de duas entradas de dados.
Finalmente existe uma forma de construir multiplexadores que não utiliza apenas cir-
cuitos digitais. Trata-se de uma implementação semelhante à baseada em buffers de três
estados, em que estes são substituídos por portas de passagem, que foram já referidas
na Secção 3.1.6. Na Figura 4.17 ilustra-se um multiplexador construído segundo essa
abordagem. É interessante verificar que este circuito não multiplexa apenas sinais di-
gitais. De facto, as propriedades das portas de passagem permitem que sejam também
multiplexados sinais analógicos, alargando as utilizações deste tipo de circuitos a um
espectro mais largo de aplicações.
207
/·}-+,flm�S�@+,�a¯ó�Ÿ%-�ó�Ì�”�
S0
S1
I0
I1
I2
I3
O
?Ł,.qCY!�>�¡E(���-]fi; Implementação alternativa de um multiplexador com quatro entradas
de dados.
S0
S1
I0
I1
I2
I3
O
0
1
2
3
1
2
?Ł,.qCY!�>�©E(�
�cefi; Implementação de um multiplexador com 4 entradas de dados utili-
zando buffers de três estados.
208
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
S0
S1
I0
I1
I2
I3
0
1
2
3
O
1
2
?Ł,„qtY!�(�ÄE(����f�; Implementação de um multiplexador com quatro entradas de dados
utilizando portas de passagem.
Por vezes, convém que o multiplexador seja dotado de um sinal de activação que per-
mita controlar melhor o seu funcionamento. O sinal de activação permite, quando acti-
vo, que o multiplexador tenha a funcionalidade descrita. Quando inactivo, provoca que
a saída do dispositivo esteja não activa, independentemente do que se passa com as
entradas. No caso dos dois primeiros exemplos dados, a saída ficará permanentemente
a 0, enquanto que, no caso das estruturas usando buffers de três estados ou portas de
passagem, a saída ficará no estado de alta impedância. Na Figura 4.18 ilustra-se a modi-
ficação necessária na terceira das estruturas apresentadas atrás, a título exemplificativo,
para incluir a linha de activação.
209
/·}-+,flm�S�@+,�a¯ó�Ÿ%-�ó�Ì�”�
0
1
2
3
S0
S1
I0
I1
I2
I3
S
Activação
1
2
En
?Ł,.qCY!�>�ªE(���-mfi; Implementação de um multiplexador com quatro entradas de dados
utilizando buffers de três estados, com entrada de activação.
E(�FE(�43
7
,.��ffi(�/�!�#X:Y!9Z�[,„��9r�-”��!�!ffi(�����
Os multiplexadores estudados até aqui são circuitos que permitem seleccionar um de
entre vários sinais binários. Nada impede que, por simples justaposição de multiplexa-
dores, se construam circuitos que permitem seleccionar, não sinais isolados e, portanto,
bits, mas palavras de uma determinada dimensão. É frequente a existência de multi-
plexadores de palavras de n bits com linhas de selecção que são comuns aos vários bits
das diversas palavras. Na Figura 4.19 ilustra-se o modelo de terminais de um multiple-
xador que escolhe uma das duas palavras, A0 B0 C0 D0 (se S0 = 0) e A1 B1 C1 D1 (se
S1 = 1), e a coloca nas saídas, OA OB OC OD.
E(�FE(�4< “–”��¤�!�C�Žfl(ffiŸ�!�#X:Y!9s��,.��9���”>�!�!ffi>�����
A expansão de multiplexadores para se obterem multiplexadores com um maior nú-
mero de entradas é um problema semelhante ao da expansão de descodificadores já
estudado atrás e pode ser feita de duas formas básicas. A primeira forma utiliza o pró-
prio conceito de multiplexador para multiplexar sucessivamente linhas de dados em
conjuntos menores até atingir a linha única de saída. A segunda forma utiliza o conhe-
210
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
B0
C0
A0
D0
S0
B1
C1
A1
D1
OB
OC
OA
OD
Multiple-
xador de
palavras 
de 4 bits
0
1
?Ł,.qCY!�>�E(���-nfi; Modelo de terminais de um multiplexador de duas palavras de 4 bits.
cimento da estrutura interna dos multiplexadores para reduzir o problema da expansão
de multiplexadores ao da expansão dos seus descodificadores internos.
Através de um exemplo, ilustrado na Figura 4.20, em que se realiza a construção de
um multiplexador de dezasseis entradas a partir de multiplexadores de quatro entra-
das, ilustra-se a primeira opção. Repare-se que, mais uma vez, para sistemas de maior
dimensão, a solução é a de utilização de camadas sucessivas de dispositivos até atin-
gir a profundidade necessária. Nesta solução, não são necessárias linhas de activação
nos multiplexadores. A ser necessário que o conjunto tenha uma linha de activação, ela
poderá existir simplesmente no multiplexador da última camada.
A variante do mesmo sistema usando agora a expansão através dos descodificadores
está ilustrada na Figura 4.21. Como é evidente, este tipo de solução exige que os mul-
tiplexadores tenham entrada de activação. Repare-se, ainda, que, se se trabalhar com
multiplexadores de saídas de três estados, a porta OR à saída é dispensável.
Efi�4E(�FE X:Y!9Z�[,.�	9r�-”��(qC��&Ä�#Œ/����&=Y!9Z�[,.�	9r�-”��(qC��&
A aplicação principal dos multiplexadores é a de realizar a multiplexagem e desmulti-
plexagem de um conjunto de sinais. O que se pretende é transferir um de vários sinais
através de uma única linha, colocando o sinal transmitido, já do lado da recepção, numa
de várias linhas possíveis. Este tipo de aplicação permite a transmissão à distância de
informação proveniente de várias origens através de uma única linha, desde que o con-
junto de todos os sinais a enviar não exceda a capacidade da linha. Também, num tipo
211
/·}-+,flm�S�@+,�a¯ó�Ÿ%-�ó�Ì�”�
S0
MUX
0
1
2
3
I0
I1
I2
I3
I4
I5
I6
I7
I8
I9
I10
I11
I12
I13
I14
I15
O
MUX
0
1
2
3
MUX
0
1
2
3
MUX
0
1
2
3
MUX
0
1
2
3
S2S3
S1
1 2
1 2
1 2
1 2
1 2
?Ł,.qCY!�>�LE(�^3�o(; Construção de um multiplexador de dezasseis entradas com multiple-
xadores de quatro entradas.
de aplicação mais local, é importante poder seleccionar, entre vários sinais, aquele que,
em cada momento, deve ser seleccionado para ser processado por um determinado cir-
cuito.
A desmultiplexagem será feita por um desmultiplexador.Este circuito deve ter uma en-
trada de dados e várias saídas, podendo ser seleccionada, através de um conjunto de
212
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
En
S2
S3
S0
0
1
2
3
I0
I1
I2
I3
I4
I5
I6
I7
I8
I9
I10
I11
I12
I13
I14
I15
Activação
O
MUX
0
1
2
3
En
MUX
0
1
2
3
En
MUX
0
1
2
3
En
MUX
0
1
2
3
En
1 2
1 2
1 2
1 2
1
2
S1
?Ł,„qtY!�(�°E(�^3[��; Variante de construção de um multiplexador de dezasseis entradas com
multiplexadores de quatro entradas.
linhas de selecção, qual a saída utilizada. A Figura 4.22 mostra o modelo de terminais
de um circuito desse tipo. Repare-se na designação abreviada «DEMUX», que pode
213
/·}-+,flm�S�@+,�a¯ó�Ÿ%-�ó�Ì�”�
DEMUX
D
O0
O1
O2
O3
S0 S1
1 2
0
1
2
3
?Ł,.qCY!�>�E(�43	3+; Modelo de terminais de um desmultiplexador.
substituir a designação «desmultiplexador», mais longa. O circuito desmultiplexador
terá o funcionamento especificado pela Tabela 4.10. Uma breve análise comparativa da
7
�!8+��9K�E(���co(; Tabela de um desmultiplexador.
Entradas Entrada Saídas
de selecção de dados
S1 S0 D O0 O1 O2 O3
0 0 0 0 0 0 0
0 0 1 1 0 0 0
0 1 0 0 0 0 0
0 1 1 0 1 0 0
1 0 0 0 0 0 0
1 0 1 0 0 1 0
1 1 0 0 0 0 0
1 1 1 0 0 0 1
Tabela 4.10 com a Tabela 4.5 permite concluir que, embora a aplicação de um desmul-
tiplexador seja conceptualmente diferente da de um descodificador, a funcionalidade
pretendida é a mesma, pelo que o mesmo circuito tem, de facto, as duas aplicações. A
interpretação do funcionamento é que é diferente.
A Figura 4.23 ilustra um circuito que permite multiplexar quatro linhas numa única
linha e recuperar posteriormente esses sinais. Repare-se que, se as variáveis de selecção
S0 e S1 tiverem uma configuração idêntica no multiplexador e no descodificador, a linha
seleccionada é «entregue» na linha correspondente à saída. Se as configurações forem
diferentes, é possível realizar uma comutação de sinais, acrescentando-se à função de
multiplexagem uma funcionalidade suplementar.
214
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
0
1
2
3
En
MUX
0
1
2
3
DadosI0I1
I2
I3
O0
O1
O2
O3
1 2
1
2
S0S1
S0S1
?Ł,„qtY!�(�›E(�^3�<fi; Utilização de um multiplexador e de um descodificador para a multi-
plexagem e desmultiplexagem de quatro linhas.
uffiöO½
Õ.Ö
ø�x
Û[ 
ø����
Ü
û
Ö Øžß ý
�QP
Ö
ù¼x
h�iúÛ*Ú
øúù
ÚãÜJ� �5h
û
ß
x
Ü
ù
û
Ö¼�ÄT
û
Û
ø
ÚãÜJ��Ô
x
Ö%z×Û
û¿ø×û
Ö
Os diversos módulos apresentados neste capítulo devem ser encarados pelos projectis-
tas como módulos disponíveis, com uma determinada funcionalidade, mas com po-
tencialidades para utilizações diversas das inicialmente apresentadas. Uma das possi-
bilidades mais utilizadas consiste na utilização desses módulos como blocos de lógica
utilizáveis para a implementação de funções lógicas, eventualmente em conjunto com
alguma porta adicional. Serão estudados adiante alguns casos.
Efi�^]fi��� 
��-�!9�,„»r�(fffi\>���aA(ffi(&5Œ/����Afiffi>��,.kl,„A+�!�!ffi(�����
Repare-se que um descodificador binário implementa, nas suas saídas, todos os minter-
mos das variáveis de entrada. De facto, qualquer saída é um produto de literais, que
são sempre todas as variáveis de entrada, negadas ou não. Por exemplo, a saída S3 do
descodificador da Figura 4.8 é dada pela Expressão 4.6.
O3 = I2 I1 I0 (4.6)
Ora, como é evidente, m3 = O3. Assim, deve ser possível usar o descodificador para
gerar todos os mintermos de um conjunto de variáveis.
Nessas circunstâncias, para implementar uma função na forma de soma de minter-
mos, pode-se partir de um descodificador que gera todos os possíveis mintermos e,
com auxílio de uma soma lógica, produzir a função pretendida. Seguidamente ilustra-
-se na Figura 4.24 um circuito, usando esse princípio, que implementa a função lógica
F (a, b, c) =
∑
m(0, 2, 3, 5).
215
�ó�a�ó+,�ff§,�-!ž"Ÿ�ñ%-�ô�~}-fiª!«Ì�”� +ffi‚ó'-�ff�ž�-�Ñ�«�Ì/ /ü‚Ì%Ÿ}-+ffi�ó� %-�
/ ­a%Ÿ�f�þ��Ì/·�@+,�a¯Ÿ�S%-�ó%-�
0
1
2
3
4
5
6
7
c
b
a
m0
m1
m2
m3
m4
m5
m6
m7
F(a,b,c)
1
2
3
?Ł,.qCY!�>�ŸE(�43�E(; Implementação da função F (a, b, c) =
∑
m(0, 2, 3, 5) usando um desco-
dificador.
E(�4]fi�43 
�����9�,.»��(fffi\>���aAfiffi>&1X:Y!9s��,.��9���”����!ffi>�����
Tal como acontece com os descodificadores, é possível utilizar multiplexadores para im-
plementar funções lógicas. Essa aplicação é possível pelo facto de ele ser internamente
uma soma de produtos de todas as variáveis de selecção, incluindo em cada um desses
produtos uma variável suplementar. Esta estrutura pode ser interpretada como uma
soma de mintermos das variáveis de selecção, que podem ou não ser seleccionados
pelas variáveis de dados para implementar uma determinada soma e, portanto, uma
determinada função.
7
�!8+��9��Efi�
�	�	; Tabela de uma função a ser implementada usando um multiplexador.
a b f(a, b)
0 0 0
0 1 1
1 0 1
1 1 0
Considere-se, por exemplo, a função descrita na Tabela 4.11. Utilizando um multiplexa-
dor de duas linhas de selecção e de quatro linhas de dados (tantas quantas as linhas da
tabela), comece-se por ligar as variáveis da função às linhas de selecção do multiplexa-
dor respeitando a ordem de pesos, como se ilustra na Figura 4.25. Quando a = 0 e b = 0,
o multiplexador selecciona para a sua saída o valor presente na entrada de dados 0. A
função, nessas circunstâncias, tem o valor 0 (primeira linha da tabela). Se se ligar o valor
lógico 0 à entrada 0 do multiplexador, este, quando a = b = 0, apresentará na sua saída
o valor da função para essa configuração. Se se fizer o mesmo para o resto das entradas
216
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
1
1
0
0
ab
f(a,b)
1 2
0
1
2
3
MUX
?Ł,.qCY!�>�E(�43	]+; Implementação da função f(a, b) usando um multiplexador.
do multiplexador e das linhas respectivas da tabela, o multiplexador representará toda
a função. Isso permite que, usando um multiplexador de n variáveis de selecção, se
construa qualquer função de n variáveis.
Mas pode-se ir um pouco mais longe. Usando o mesmo multiplexador de duas entra-
das de selecção, é possível implementar, com alguma facilidade, uma função de três
variáveis. Considere-se, como exemplo, a função descrita na Tabela 4.12.
7
�!8+��9��‡E(���-3fi; Tabela de uma segunda função a ser implementada usando um multi-
plexador.
a b c f(a, b, c)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
Comece-se por ligar duas das variáveis de entrada às entradas de selecção do multiple-
xador. Podem ser escolhidas quaisquer duas, mas será mais evidente a fundamentação
da técnica, se se escolherem as duas de maior peso, a e b. Ligam-se, tal como anterior-
mente, como se ilustra na Figura 4.26. Repare-se agora no que acontece quando a = 0
e b = 0. O multiplexador selecciona a entrada de dados 0. A função tem duas linhas,
na tabela em que a = 0 e b = 0, que só diferem no valor da variável c. Para ambas, o
valor da função é 0. Logo, como no caso anterior, a ligação dessa entrada ao valor lógico
217
�ó�a�ó+,�ff§,�-!ž"Ÿ�ñ%-�ô�~}-fiª!«Ì�”� +ffi‚ó'-�ff�ž�-�Ñ�«�Ì/ /ü‚Ì%Ÿ}-+ffi�ó� %-�
/ ­a%Ÿ�f�þ��Ì/·�@+,�a¯Ÿ�S%-�ó%-�
c
1
0
c
f(a,b,c)
ab
1 2
0
1
2
3
MUX
?Ł,„qCY!�>�‡Efi�^3�efi; Implementação da função f(a, b, c) usando um multiplexador.
0 permite que, para estas duas configurações, a saída do multiplexador corresponda ao
valor da função. Na situação seguinte, a = 0 e b = 1, já a tabela não tem o mesmo valor
para as duas linhas. De facto, nesse caso, a função vale 0 quando c = 0 e vale 1 quando
c = 1. Isto é, nessa «fatia»da tabela, a função vale c. Então, a entrada 1 de dados do
multiplexador deve ser ligada a c. Fazendo o mesmo tipo de análise para as restantes
linhas, pode reestruturar-se a tabela da função evidenciando o seu comportamento nas
diversas «fatias», como se ilustra na Tabela 4.13.
7
��8fi��9��ŸE(�
�c<fi; Tabela modificada da segunda função.
a b c f(a, b, c)
0 0 0 0
0 0 1 0
f = 0
0 1 0 0
0 1 1 1
f = c
1 0 0 1
1 0 1 1
f = 1
1 1 0 1
1 1 1 0
f = c
O circuito representado na Figura 4.26 representa, portanto, a implementação da função
apresentada. Repare-se que, na função escolhida para exemplo, existem todas as confi-
gurações possíveis para as «fatias» da tabela. Portanto, é sempre possível utilizar esta
técnica para representar uma função de n + 1 variáveis utilizando um multiplexador
com n variáveis de selecção e, eventualmente, uma negação. Nas entradas de dados
podem ser colocadas as quatro possíveis funções da variável n + 1: as constantes 0 e 1,
a função negação e a própria variável.
218
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
Esta ideia pode ser estendida para a implementação de funções de n + m variáveis com
multiplexadores de n variáveis de selecção e funções de m variáveis nas entradas de
dados do multiplexador.
uffiöOÅ
Ú0ÛdÕ.Ú0ß Û	RãÜ
ù
Û	R-ÖÌÕ
ø
R0Û�Æ×Ü
ù
Nos diversos tipos de módulos básicos anteriormente descritos neste capítulo foi sem-
pre assumido, de forma mais ou menos explícita, que a sua concepção se fazia global-
mente. No entanto, em certo tipo de circuitos, é preferível abordar o problema de ma-
neira diferente, procurando, como aconteceu no exemplo inicial referente à iluminação
de um corredor, encontrar uma estrutura baseada na justaposição de um conjunto de
módulos iguais. Os circuitos iterativos são circuitos compostos por uma sequência de cir-
cuitos iguais ou células, interligados de forma regular. Nesta secção, apresentar-se-á um
pouco mais pormenorizadamente o conceito e será projectado um circuito comparador
de dois números binários usando essa técnica.
Os circuitos iterativos são usados quando existe um número significativo de entradas e
é possível organizar o circuito numa sequência de módulos que consideram o valor de
algumas entradas, bem como informação resumida de um conjunto de entradas tratadas
pelos módulos anteriores na sequência, para calcular, eventualmente, saídas primárias
directas e, ainda, um conjunto de saídas que resume a informação pertinente a passar ao
módulo seguinte na sequência. A utilização deste tipo de circuitos permite simplificar
a concepção de módulos combinatórios que tenham alguma regularidade. Assim, em
vez de conceber um circuito com um grande número de entradas, é possível dividir o
circuito num certo número de células iguais com um número muito menor de entradas.
Um circuito iterativo terá, portanto, a estrutura ilustrada na Figura 4.27. A célula i
...
...
......
I00 I0n
O00 O0m
T00
T0p
T10
T1p
...
...
......
I10 I1n
O10 O1m
T20
T2p
...
...
......
Ik0 Ikn
Ok0 Okm
Tk0
Tkp
T(k+1)0
T(k+1)p
...
?Ł,.qCY!�>�E(�43[f�; Estrutura de um circuito iterativo.
recebe entradas primárias do circuito (Iij), e também entradas provenientes da célula
anterior (Til), e produz saídas primárias (Oip) e saídas destinadas à célula seguinte
219
��S�Ÿ�}Ÿ�fflž�ó� �fflm�<�ó�Ÿfl@�SÐ-�ó�
(T(i+1)l). Embora, em princípio, a circulação de informação entre células seja unidi-
reccional, nada impede a concepção de circuitos mais complexos com circulação bidi-
reccional de informação entre células.
Para ilustrar a forma de concepção deste tipo de circuitos, considere-se um exemplo
típico de um circuito comparador. O comparador tem como entradas dois números
binários A e B de n bits e indica se são iguais ou diferentes e, neste último caso, qual é o
maior. É possível conceber o circuito como um conjunto de funções de 2n variáveis de
entrada, mas, para um valor de n minimamente interessante, atingem-se rapidamente
dimensões de circuito que não viabilizam a utilização dos métodos clássicos para a sua
síntese.
Utilizando o paradigma dos circuitos iterativos, é possível dividir o circuito em células
que tratam apenas um bit de cada um dos números. A célula i tem, portanto, como
entradas primárias o bit i de cada um dos dois números. Da célula anterior recebe in-
formação sobre a análise do número até ao bit anterior e à célula seguinte fornece infor-
mação sobre a análise até ao bit i. Nesta organização há que definir a ordem pela qual
os bits são analisados. Na realidade é possível usar qualquer das duas ordens possí-
veis, isto é, com as células que analisam os bits mais significativos a passar informação
às células correspondentes aos bits menos significativos, ou pela ordem inversa. No
exemplo, assumir-se-á que a ordem de análise é do bit mais significativo para o menos
significativo. Como se verá, as saídas primárias das células não são necessárias neste
circuito.
Um ponto importante neste tipo de circuito, é a definição da informação necessária entre
células. No caso do comparador, a primeira célula irá comparar os bits mais significa-
tivos dos dois números. Se eles forem iguais, a informação a transmitir é a de que, até
àquele bit, os números não diferem. Se pelo contrário forem diferentes, terá de ser dada
a indicação que A > B ou A < B. Repare-se que, se o bit de maior peso de um dos
números for 1, e o outro for 0, o primeiro número é maior que o segundo. Se, pelo
contrário, forem iguais, não se pode concluir nada, tendo de ser considerados os bits
seguintes.
A arquitectura do circuito será, portanto, a ilustrada na Figura 4.28. As saídas da última
célula, vão ser as saídas finais do circuito. Repare-se que se podiam ter usado dois
bits entre as células, uma vez que só há que codificar três diferentes informações. No
entanto, a utilização de três linhas simplifica a interpretação do circuito e não o torna
mais complexo.
A estrutura interna de cada célula pode agora ser determinada. Isso pode ser feito de
dois modos possíveis: ou se determina a tabela das funções de saída, ou se determina
directamente a expressão das funções de saída, por análise do comportamento preten-
220
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
Bn-1
(A>B)n-1
An-1
(A=B)n-1
(A<B)n-1
Bn-2An-2 B0A0
(A>B)n-2
(A=B)n-2
(A<B)n-2
(A>B)n-3
(A=B)n-3
(A<B)n-3
...
(A>B)0
(A=B)0
(A<B)0
(A>B)
(A=B)
(A<B)
?Ł,„qCY!�>�‡Efi�^3�mfi; Estrutura de um comparador iterativo.
dido. Usando este último método, considere-se a célula i. Esta célula tem como entradas
as variáveis primárias Ai e Bi e como entradas provenientes da célula anterior, (A>Bi),
(A=Bi) e (A<Bi).
Considere-se a função (A>Bi−1). Esta célula considerará que A > B em duas condições:
a célula anterior ter já essa conclusão, ou, no caso da célula anterior indicar que, até
ela, se verifica A = B, se Ai = 1 e Bi = 0 nesta célula. É, então, fácil de definir a
Expressão 4.7.
(A>Bi−1) = (A>Bi) + (A=Bi) Ai Bi (4.7)
De igual modo podem definir-se as Expressões 4.8 e 4.9.
(A=Bi−1) = (A=Bi) Ai Bi + (A=Bi) Ai Bi (4.8)
(A<Bi−1) = (A<Bi) + (A=Bi) Ai Bi (4.9)
O circuito de uma célula será, portanto, o ilustrado na Figura 4.29.
A interligação de n células deste tipo, com a estrutura da Figura 4.28, permite construir
um comparador de números de n bits. Na Figura 4.30 ilustra-se um comparador para
números de quatro bits. As entradas da célula correspondente aos bits mais signifi-
cativos, devem ser colocadas em valores que permitam à primeira célula, decidir não
condicionada, isto é, deve ser (A>B3) = (A<B3) = 0 e (A=B3) = 1. Se se considerar
a comparação dos números A = 12 e B = 10, a sequência de sinais é a ilustrada na
referida figura, uma vez que 1210 = 11002 e 1010= 10102.
Um aspecto importante, que deve ser considerado quando se interligam módulos da
forma sistemática que é descrita nesta secção, é a velocidade possível de funcionamento
do circuito. Como foi visto anteriormente, a soma dos atrasos das portas lógicas ao
longo do caminho crítico define o tempo de reacção do circuito e, por consequência, a
velocidade máxima a que ele poderá ser operado, quando for incluído num sistema.
A título de exemplo, considere-se o comparador da Figura 4.28, realizado com as células
da Figura 4.29. Cada célula irá impôr, entre as entradas que recebe do módulo anterior,
221
��S�Ÿ�}Ÿ�fflž�ó� �fflm�<�ó�Ÿfl@�SÐ-�ó�
Ai Bi
(A>B)i
(A=B)i
(A<B)i
(A>B)i-1
(A=B)i-1
(A<B)i-1
?Ł,„qCY!�>�‡Efi�^3�nfi; Célula de um comparador iterativo.
B3
(A>B)3
A3
(A=B)3
(A<B)3
B2A2 B0A0
(A>B)2
(A=B)2
(A<B)2
(A>B)1
(A=B)1
(A<B)1
(A>B)0
(A=B)0
(A<B)0
A>B
A=B
A<B
B1A1
1 01 1 10 0 0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
?Ł,.qCY!�>�™E(�4<�o(; Ilustração do funcionamento de um comparador iterativo de números
de quatro bits.
e as saídas que envia para o módulo seguinte, um atraso de duas portas lógicas. A
composição de N células, para realizar um comparador de N bits, irá assim exibir um
atraso total equivalente ao de 2N portas lógicas.
Para um comparador de 32 bits, isto significa um atraso de 64 portas lógicas, que po-
derá ser demasiado para muitas aplicações. Com outras implementações do mesmo
comparador, será possível obter tempos de resposta significativamente menores.
Em muitos casos, circuitos que podem ser realizados de forma iterativa, tais como com-
paradores, somadores e multiplicadores são exactamente aqueles que limitam o desem-
penho dos circuitos digitais. Para evitar as severas limitações impostas pelo uso de cir-
cuitos iterativos simples, como os descritos nesta secção, foram desenvolvidas técnicas
222
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
que permitem construir circuitos mais rápidos, com base em esquemas de interligação
mais complexos. Algumas destas técnicas serão abordadas em capítulos posteriores.
ù
ß���Ù×Õ×Û*Ü
Neste capítulo, é estudado o projecto de sistemas digitais baseada em módulos de mé-
dia complexidade. Em primeiro lugar é introduzido o conceito de modularidade e a
abordagem de projecto utilizando a partição de circuitos em módulos mais simples. São
estudados vários tipos de módulos base, quer quanto às suas arquitecturas, quer no que
respeita a aplicações típicas e métodos de expansão. Neste contexto são estudados des-
codificadores, codificadores e multiplexadores. São ainda referidas metodologias para a
utilização de módulos deste tipo para a implementação de circuitos que implementam
funções lógicas. O capítulo termina com uma discussão da utilização de circuitos ite-
rativos para o projecto de módulos que têm como entrada palavras em vez de simples
configurações de bits.
Ö/z×ÖÌտڒ{*Ú0Û*Ü
ù
4.1 Desenhe o logigrama de um descodificador BCD/decimal.
4.2 Desenhe um transcodificador que aceita nas suas entradas um digito BCD, e for-
nece, nas suas saídas, o código requerido para acender um mostrador de sete seg-
mentos representativo do dígito de entrada. O código de sete segmentos é uma
forma de representar dígitos através de sete segmentos de recta com a arrumação
que se ilustra na figura seguinte:
a
b
c
d
e
f
g
4.3 Utilizando apenas descodificadores binários de duas entradas, construa um des-
codificador binário de seis entradas.
4.4 Utilizando apenas dois descodificadores binários de duas entradas e portas AND
de duas entradas, construa um descodificador binário de quatro entradas.
Sugestão: considere a hipótese de combinar as saídas dos dois descodificadores.
223
��S�Ÿ�}Ÿ�fflž�ó� �fflm�<�ó�Ÿfl@�SÐ-�ó�
4.5 Utilizando, como elemento de base, um descodificador BCD/decimal, implemente
a função f(A,B,C,D) =
∑
m(0, 1, 2, 4, 8). Com um descodificador deste tipo não
podem ser implementadas todas as funções de quatro variáveis. Porquê?
Pode-se considerar, assim, que a função f(A,B,C,D) =
∑
m(0, 8, 10, 11, 13) é
uma das não implementáveis. No entanto, é implementável. Como?
4.6 Utilizando como elemento base um descodificador binário de três variáveis de
entrada, e a lógica adicional que considere necessária, construa as quatro funções
descritas na seguinte tabela:
x y z f0(x, y, z) f1(x, y, z) f2(x, y, z) f3(x, y, z)
0 0 0 0 1 0 0
0 0 1 0 0 1 0
0 1 0 0 0 1 0
0 1 1 1 0 1 1
1 0 0 0 1 0 0
1 0 1 1 1 0 0
1 1 0 0 1 0 0
1 1 1 1 0 1 0
4.7 Considere o codificador com prioridade apresentado na Secção 4.3. Partindo do
projecto realizado, acrescente uma linha de habilitação. Utilizando esse codifica-
dor como bloco básico, construa um codificador com prioridade para 32 entradas.
4.8 Considere o circuito da figura. Qual é a função lógica implementada pelo circuito?
124
MUX0
1
2
3
4
5
6
7
0
1
D
A B C
F
4.9 Utilizando buffers de três estados e a lógica adicional mínima que considere neces-
sária, construa um multiplexador de oito entradas de dados.
224
/ ‚Ì%-}-+��ó� ��Ì/ ¬ž�Sfi0�Ÿflm‚ó�Ì�ff�ó�Ñ%Ÿ�á/·­a%Ÿ�f�þ��Ì/ �P+,�a¯Ÿ�S%-�ó%-�
4.10 Considere que dispõe de multiplexadores de três variáveis de selecção, com saída
de três estados, controlada por uma variável de habilitação. Construa um multi-
plexador de 64 entradas com uma arquitectura que aproveite o facto das saídas
serem de três estados.
4.11 Considere o circuito representado na figura seguinte que implementa uma função
lógica F . Implemente a mesma função usando um multiplexador de três variáveis
X
Y
Z
0
1
2
3
4
5
6
7
1
2
4
DEC
F
de selecção. Repita, tendo como base um multiplexador de duas variáveis de
selecção.
4.12 Como se viu na Secção 3.4.2 podem ocorrer transições espúrias num circuito com-
binatório se não forem tomadas medidas específicas. É possível realizar esse tipo
de medidas numa função implementada com base num multiplexador?
4.13 Considere a função lógica
f(A,B,C,D,E) = B C D + B D E + A B C + C E + A B C D E
Implemente-a usando um multiplexador de três variáveis de selecção e a lógica
que considerar necessária.
Pista: quando se usa um multiplexador de n variáveis de selecção para implemen-
tar funções de n+1 variáveis, utilizam-se nas entradas de dados do multiplexador,
funções de uma variável.
4.14 Tendo como base um circuito comparador, construa um circuito que, recebidos
dois números binários de 8 bits, coloca o maior deles na sua saída. Na solução que
adoptou, o que acontece quando os dois números são iguais?
4.15 Projecte um circuito iterativo que determina se uma sequência de bits tem pari-
dade par (um número par de uns) ou paridade ímpar.
225

Outros materiais

Outros materiais