Buscar

Algebra Booleana e Circuitos Lógicos - IFPB

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

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

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ê viu 3, do total de 40 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

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

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ê viu 6, do total de 40 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

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

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ê viu 9, do total de 40 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

Prévia do material em texto

Circuitos lógicos 
1 Introdução 
1.1 Circuito analógico vs circuito digital 
Hoje em dia, se encontram circuitos eletrônicos para realizar uma quantidade impressionante de 
funções. Para dar somente alguns exemplos: 
 Exibir uma imagem 
 Medir uma temperatura 
 Gravar ou reproduzir um som 
 Controlar o regime de um motor 
 Calcular 
 ... 
Nos tempos passados, as funções citadas antes eram realizadas por sistemas mecânicos ou 
químicos. Hoje em dia, os circuitos eletrônicos substituíram a grande maioria deles. De fato, eles 
são menores, mais baratos, mais rápidos e oferecem um melhor desempenho. Em um circuito 
eletrônico, a grandeza usada para realizar as operações é uma grandeza elétrica (tensão ou 
corrente). Então, precisa de interfaces (display, alto-falante, rotor, sensor, ...) para interagir com 
o meio ambiente (olho, orelha, motor, temperatura, ...). Essas interfaces vão transformar uma 
grandeza elétrica em estimulo acústico, mecânico, visual, ... e fazem o sentido inverso também. 
Existe duas formas de tratar as grandezas elétricas: 
 Diretamente realizando as operações no sinal adquirido ou gerado. É o caso de um 
circuito eletrônico analógico. 
 Ou transformando o sinal elétrico em uma série de números (quantização) para poder 
tratar em seguida esses números. É o caso de um circuito eletrônico digital. 
 
Aos poucos, os circuitos digitais vão substituindo os circuitos analógicos. Eles tem uma melhor 
imunidade ao ruído, uma flexibilidade maior, um menor custo e uma menor complexidade de 
concepção para uma função equivalente. Mas muitos circuitos analógicos ainda não podem 
ser substituídos por um equivalente digital, notadamente em alta frequência. 
O circuito lógico é o bloco elementar que está na base de todo sistema digital. 
1.2 O sistema de numeração 
Nós vimos na introdução que um circuito digital vai tratar uma série de números. Nosso sistema 
de contagem natural é chamado de sistema decimal, ou seja, a base do sistema decimal é a 
base 10 (a origem dessa escolha é simplesmente o número de dedos do ser humano). Ele usa 10 
algarismos para descrever os números: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Cada número é simbolizado por 
uma série de algarismos que indicam quantos pacotes de 10n precisam para representar ele. 
Exemplo: 274 = 2x102 + 7x101 + 4x100 
Em eletrônica digital, é impossível representar os números usando a base 10. De fato, um circuito 
digital é composto de chaves que podem ficar abertas ou fechadas, então, existem somente 2 
níveis (2 valores de tensão), chamados de níveis lógicos, que são representados pelos algarismos 
0 e 1. A base desse sistema de numeração é a base 2. Ele é chamado de sistema binário. 
Decimal Binário 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
0 
1 
10 
11 
100 
101 
110 
111 
1000 
1001 
 
No sistema binário, cada algarismo representa uma potência de 2. Então, para converter um 
número binário, em número decimal, tem que substituir o 10 do exemplo precedente por um 2. 
Exemplo: (100111)2 = 1x25 + 0x24 + 0x23 + 1x22 + 1x21 + 1x20 = (39)10 
Para realizar a conversão inversa, passar de binário a decimal, tem que realizar algumas divisões 
sucessivas. 
Exemplo: 
 
Para facilitar a leitura dos números binários (um grande número de 1 e 0 é dificilmente 
interpretável por nosso cérebro), são usados outras bases como a base octal (8) ou a base 
41 2
2 20 1 
10 
2
2 0
2 5 
2
2 0
2 2 
2
2 1
2 1 
2
2 0
2 0 
2
2 1
2 
indica o fim da conversão 
sentido da leitura 
(41)10 = (101001)2 
hexadecimal (16). Em relação ao sistema decimal, essas bases tem a vantagem de oferecer 
uma conversão direta com sistema binário. 
O sistema hexadecimal precisa de 16 algarismos (tem que acrescentar 6 a mais do sistema 
decimal) para poder representar todos os números: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 
Decimal Binário Octal Hexadecimal 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
0 
1 
10 
11 
100 
101 
110 
111 
1000 
1001 
1010 
1011 
1100 
1101 
1110 
1111 
10000 
10001 
0 
1 
2 
3 
4 
5 
6 
7 
10 
11 
12 
13 
14 
15 
16 
17 
20 
21 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
A 
B 
C 
D 
E 
F 
10 
11 
 
Se pode notar na tabela precedente que cada algarismo no sistema octal corresponde a 3 
algarismos no sistema binário e uma algarismo no sistema hexadecimal corresponde exatamente 
a 4 algarismos no sistema decimal. A conversão de um sistema para outro é então facilitada. O 
método é o seguinte: para a conversão do sistema binário para o sistema octal, agrupar os 0 e 
1 por pacotes de 3 e substituir pelo número correspondente no sistema octal. Para a conversão 
entre sistema binário e sistema hexadecimal, o método é o mesmo com uns pacotes de 4. 
Exemplo : (1100111011)2 = (001 100 111 011)2 = (1473)8 
 (1100111011)2 = (0011 0011 1011)2 = (33B)16 
 
1.3 O bit, o byte e a palavra 
O bit (b) é a menor unidade de informação que pode ser armazenada ou transmitida. Ele pode 
receber o valor 1 ou 0. Mas não é possível realizar muitas operações com um bit só. Então a 
informática junto várias bits para formar os caráteres. 
A codificação chamada ASCII (American Standard Code for Information Interchange) foi 
inventada para representar um caráter a partir de 8 bits. Ou seja, é possível representar 256 (28) 
caráteres usando esse código. Ele vai variar de acordo com a região do mundo em qual está 
utilizado. O conjunto de 8 bits é chamado de byte (B). 
O byte é geralmente usado para representar a quantidade de memória disponível em uma 
unidade de armazenamento, como um HD. Existe uma confusão em relação ao múltiplo usado 
com o byte. Geralmente, a unidade SI, com o prefixo decimal, é utilizada. Mas alguns sistemas 
como o Windows usam a unidade do IEC, com um prefixo binário e o mesmo símbolo que a 
unidade SI, criando uma confusão. A tabela seguinte mostra o bom uso dessas unidades. 
Unidade SI – Prefixo decimal Unidade IEC – Prefixo binário 
Nome Símb. Pot. Valor decimal Nome Símb. Pot. Valor decimal 
byte B 100 1 byte B 20 1 
quilobyte kB 103 1.000 kibibyte KiB 210 1.024 
megabyte MB 106 1.000.000 mebibyte MiB 220 1.048.576 
gigabyte GB 109 1.000.000.000 gibibyte GiB 230 1.073.741.824 
terabyte TB 1012 1.000.000.000.000 tebibyte TiB 240 1.099.511.627.776 
 
Enfim, a palavra, geralmente múltipla do byte é a unidade de informação elementar usada por 
um tipo de processador. É um grupo de bits de tamanho fixo, que é processado em conjunto. Os 
microprocessadores mais novos são de 64 bits. 
A palavra é usada pelo microprocessador, por exemplo, para designar um endereço na 
memória RAM. Um microprocessador de 32 bits é então limitado a 232 = 4.294.967.296 endereços 
diferentes, ou seja 4 GiB. Um processador de 32 bits não é capaz de usar mais que isso. Por isso 
que apareceram os processadores de 64 bits. 
2 As portas lógicas 
As portas lógicas consistem em um pequeno grupo de circuitos lógicos elementares e 
padronizados que foram criados em 1938 por Claude Elwood Shannon para resolver problemas 
técnicos de circuitos telefônicos com relé. Elas permitem realizar as funções lógicas que estão na 
base da álgebra pensada por George Boole no século XIX. 
Nas funções lógicas, como no circuito lógico, existem apenas dois estados distintos: 
 O estado 0: representa por exemplo o número 0, um portão fechado, um aparelho 
desligado, uma chave aberta, um não ... 
 O estado 1: representa por exemplo o número 1, um portão aberto, um aparelholigado, 
uma chave fechada, um sim ... 
 
2.1 Lista das portas lógicas 
O quadro abaixo mostra todas as funções e portas lógicas associadas, além da tabela da 
verdade, que dá o nível lógico de saída para todas as combinações possíveis de níveis de 
entrada. 
 
Porta Símbolo Usual Tabela da Verdade Função Lógica Expressão 
NOT 
NÃO A S 
 
A S 
0 1 
1 0 
 
Inverte a variável 
aplicada a sua 
entrada 
S = A̅ 
OR 
OU 
A
B
S
 
 
A B S 
0 0 0 
0 1 1 
1 0 1 
1 1 1 
 
Assume 0 quando 
todas variáveis de 
entrada forem 0 e 1 
nos outros casos 
S = A+B 
AND 
E 
A
B
S
 
 
A B S 
0 0 0 
0 1 0 
1 0 0 
1 1 1 
 
Assume 1 quando 
todas as variáveis de 
entrada forem 1 e 0 
nos outros casos 
S = A.B 
NOR 
NOU 
A
B
S
 
 
A B S 
0 0 1 
0 1 0 
1 0 0 
1 1 0 
 
Inverso da função 
OR 
S = 𝐴 + 𝐵̅̅ ̅̅ ̅̅ ̅̅ 
NAND 
NE 
A
B
S
 
 
A B S 
0 0 1 
0 1 1 
1 0 1 
1 1 0 
 
Inverso da função 
AND 
S = 𝐴. 𝐵̅̅ ̅̅ ̅ 
XOR 
OU EXCLUSIVO 
A
B
S
 
 
A B S 
0 0 0 
0 1 1 
1 0 1 
1 1 0 
 
Assume 1 quando as 
variáveis de entrada 
assumem valores 
diferentes entre si 
S =
A⊕B
 A.B + A. B
 
XNOR 
NOU EXCLUSIVO 
A
B
S
 
 
A B S 
0 0 1 
0 1 0 
1 0 0 
1 1 1 
 
Assume 1 quando 
houver coincidência 
entre os valores das 
variáveis de entrada 
S =
 𝐴 ⊕ 𝐵
A⊙B
𝐴. 𝐵 + 𝐴. 𝐵
 
 
2.2 As portas NAND e NOR: portas universais 
Para simplificar problemas de temporização ou obter um circuito mais versátil, usar uma mesma 
porta para realizar todas as funções lógicas pode se tornar mais vantajoso. Vamos ver como 
obter cada função lógica usando somente portas NAND. 
Para isso, nós vamos precisar de algumas equações lógicas vindo do álgebra booleano (regras 
usadas no domínio da lógica): 
 A complementação 
o A = A 
 Duas identidades: 
o A + A = A 
o A . A = A 
 Os dois teoremas de de Morgan para transformar as funções OR em funções AND e o 
inverso: 
o A . B = A + B 
o A + B = A . B 
2.2.1 Obtenção da porta NOT 
 
S = A 
S = A.A 
 
2.2.2 Obtenção da porta AND 
 
S = A.B 
S = A.B 
 
2.2.3 Obtenção da porta OR 
 
S = A+B 
S = A+B 
S= A . B 
 
2.2.4 Obtenção da porta NOR 
A porta NOR é o inverso da porta OR. Basta acrescentar um inversor à porta precedente. 
S = A+B 
S = A.B 
S= A . B 
 
 
2.2.5 Obtenção da porta XOR 
 
S =A.B + A. B 
S = 𝐴. 𝐵 + 𝐴. 𝐵 
S = 𝐴. 𝐵 . 𝐴. 𝐵 
 
 
 
 
SA
S=A.BA
B
A.B
A
B
A
B
S=A.B
A
B
A
B
A.B S=A.B
A
B
A
B
S=A.B . A.B
A.B
A.B
2.2.6 Obtenção da porta XNOR 
 
S =𝐴. 𝐵 + 𝐴. 𝐵 
S =𝐴. 𝐵 + 𝐴. 𝐵 
S =𝐴. 𝐵 . 𝐴. 𝐵 
 
 
A lógica de tipo NOR pode se deduzir da mesma forma. Pode realizar esse exercício em casa. 
2.3 Portas lógicas de três entradas 
Até agora, nós vimos somente portas lógicas de duas entradas. Às vezes, é preciso usar portas 
de múltiplas entradas. Essas portas de n entradas podem ser construídas usando n portas de duas 
entradas em série. Disso, vamos deduzir as tabelas da verdade de cada uma para 3 entradas. 
Símbolo Usual 
Decomposição 
Tabela da Verdade 
Equação lógica 
Função Lógica 
A
B
C
S
 
A
B
C
S
 
 
A B C A+B S 
0 0 0 0 0 
0 0 1 0 1 
0 1 0 1 1 
0 1 1 1 1 
1 0 0 1 1 
1 0 1 1 1 
1 1 0 1 1 
1 1 1 1 1 
 
S = A+B+C 
 
Assume 0 quando todas 
variáveis de entrada forem 
0 e 1 nos outros casos 
A
B
C
S
A
B
C
S
 
 
A B C A . B S 
0 0 0 0 0 
0 0 1 0 0 
0 1 0 0 0 
0 1 1 0 0 
1 0 0 0 0 
1 0 1 0 0 
1 1 0 1 0 
1 1 1 1 1 
 
S = A.B.C 
 
Assume 1 quando todas as 
variáveis de entrada forem 
1 e 0 nos outros casos 
A
B
C
S
 
A
B
C
S
 
 
A B C A+B S 
0 0 0 0 1 
0 0 1 0 0 
0 1 0 1 0 
0 1 1 1 0 
1 0 0 1 0 
1 0 1 1 0 
1 1 0 1 0 
1 1 1 1 0 
 
S = A+B+C̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 
 
Inverso da função OR 
A
B
A
B
S=A.B . A.B
A.B
A.B
A
B
C
S
 
A
B
C
S
 
 
A B C A . B S 
0 0 0 0 1 
0 0 1 0 1 
0 1 0 0 1 
0 1 1 0 1 
1 0 0 0 1 
1 0 1 0 1 
1 1 0 1 1 
1 1 1 1 0 
 
S = A.B.C̅̅ ̅̅ ̅̅ ̅ 
 
Inverso da função AND 
A
B
C
S
 
A
B
C
S
 
 
A B C A⊕B S 
0 0 0 0 0 
0 0 1 0 1 
0 1 0 1 1 
0 1 1 1 0 
1 0 0 1 1 
1 0 1 1 0 
1 1 0 0 0 
1 1 1 0 1 
 
S =A⊕B⊕C 
 
Assume 1 quando a soma 
das variáveis de entrada da 
um número impar 
A
B
C
S
 
A
B
C
S
 
 
A B C A⊕B S 
0 0 0 0 1 
0 0 1 0 0 
0 1 0 1 0 
0 1 1 1 1 
1 0 0 1 0 
1 0 1 1 1 
1 1 0 0 1 
1 1 1 0 0 
 
S =A⊕B⊕C 
 
Assume 1 quando a soma 
das variáveis de entrada da 
um número par 
3 Álgebra booleano 
O álgebra booleano é um ramo do álgebra que trata somente das relações lógicas entre 
variáveis binarias. Nós usamos já algumas regras desse álgebra no capítulo anterior para poder 
deduzir a construção de cada porta lógica usando somente portas NAND. Existem outras que 
serão apresentadas nesse capitulo. O conhecimento desse álgebra permite notadamente de 
simplificar as equações lógicas. 
Vamos pegar um exemplo para ilustrar o método que permite de realizar a concepção de um 
circuito lógico a partir de uma situação real. 
Queremos gerenciar a abertura ou o fechamento dos sinais das ruas A e B se cruzando. Essas 
duas ruas são equipadas de sensores detectando a presença ou não de veículo. As regras 
gerenciando a abertura ou o fechamento dos sinais são: 
 quando tem nenhum veículo nas ruas, abrir o sinal da rua A 
 quando tem uns veículos somente em uma rua, abrir o sinal daquela rua 
 quando tem veículos nas duas ruas, priorizar a rua A 
 
A primeira etapa é de determinar as entradas e as saídas do sistema. As entradas são as portas 
do sistema que vão influir sobre o comportamento daquele. As saídas são as portas usadas pelo 
sistema para controlar ou comunicar com o exterior. 
Em nosso exemplo, as entradas são os sensores de presença dos veículos SA e SB e as saídas os 
sinais de acionamento dos semáforos VA, VB, RA, RB. Nós vamos usar o formalismo seguinte: 
 SA = 1: tem um veículo na rua A 
 SA = 0: tem nenhum veículo na rua A 
 RA = 1: o sinal vermelho da rua A está ligado 
 RA = 0: o sinal vermelho da rua A está desligado 
 VA = 1: o sinal verde da rua A está ligado 
 VA = 0: o sinal verde da rua A está desligado 
O mesmo formalismo é usado para a rua B. São então 2 entradas e 4 saídas. 
A segunda etapa é de montar a tabela da verdade do sistema formalizado, respeitando as 
regras estabelecidas acima. 
SA SB RA VA RB VB 
0 0 0 1 1 0 
0 1 1 0 0 1 
1 0 0 1 1 0 
1 1 0 1 1 0 
A questão agora é como deduzir as equações lógicas correspondentes a cada uma das 
entradas? 
3.1 Maxtermos e Mintermos 
Existe duas formas de deduzir diretamente as equações lógicas a partir da tabela da verdade. 
São os métodos dos maxtermos e dos mintermos. O maxtermo permite de escrever a equação 
lógica como um produto de somas enquanto o mintermo permite de escrever a equação lógica 
como uma soma de produtos. 
A B C Mintermo Maxtermo 
0 0 0 A.B.C A+B+C 
0 0 1 A.B.C A+B+C 
0 1 0 A.B.C A+B+C 
0 1 1 A.B.C A+B+C 
1 0 0 A.B.C A+B+C 
1 0 1 A.B.C A+B+C 
1 1 0 A.B.C A+B+C 
1 1 1 A.B.C A+B+C 
Rua A 
Rua B 
SB 
SA 
Para encontrar a equação lógica correspondente a uma tabela da verdade qualquer, escreva 
a soma dosmintermos correspondentes às linhas onde o valor lógico da função seja 1 ou o 
produto dos maxtermos correspondentes às linhas onde o valor lógico da função seja 0. 
Vamos voltar a nosso exemplo e extrair as equações lógicas da tabela da verdade que nós 
montamos. 
 Usando os mintermos: VA=RB=SA.SB+SA.SB+SA.SB 
 VB=RA=SA. SB 
 Usando os maxtermos: VA=RB=SA+SB 
 𝑉𝐵 = 𝑅𝐴 = (𝑆𝐴 + 𝑆𝐵). (𝑆𝐴 + 𝑆𝐵). (𝑆𝐴 + 𝑆𝐵) 
Se pode constatar que dependente da função lógica, a escritura da equação lógica pode se 
tornar mais simples usando os mintermos ou os maxtermos. Uma regra simples é de usar os 
mintermos quando os 1 da função lógica são minoritários em relação aos 0 e de usar os 
maxtermos quando ocorre o contrário. 
As equações lógicas obtidas a partir dos maxtermos e mintermos não são sempre otimais em 
termo de simplicidade. Para simplificar uma função lógica, se pode usar o álgebra booleano. 
3.2 Regras do álgebra booleano 
IDENTIDADES 
Complementação OR AND 
A = A A + 0 = A 
A + 1 = 1 
A + A = A 
A + A = 1 
A . 0 = 0 
A . 1 = A 
A . A = A 
A . A = 0 
PROPRIEDADES 
Comutativa: A + B = B + A 
A . B = B . A 
Associativa: A + (B + C) = (A + B) + C = A + B + C 
A . (B . C) = (A . B) . C = A . B . C 
Distributiva: A . (B + C) = A . B + A . C 
 
TEOREMAS DE MORGAN 
A . B = A + B 
A + B = A . B 
IDENTIDADES AUXILIARES 
A + A . B = A 
A + A . B = A + B 
(A + B) . (A + C)= A + B . C 
Essas regras aplicadas de forma adequada podem ajudar a simplificar uma equação lógica. 
Vamos pegar nosso exemplo: 
VA=RB=SA.SB+SA.SB+SA.SB 
VA=RB=SA.SB+SA.(SB+SB) (fatoração) 
VA=RB=SA.SB+SA.1 (identidade OR) 
VA=RB=SA.SB+SA (identidade AND) 
VA=RB=SB+SA (identidade auxiliar) 
SA SB RA VA RB VB 
0 0 0 1 1 0 
0 1 1 0 0 1 
1 0 0 1 1 0 
1 1 0 1 1 0 
 
Nós conseguimos voltar à forma obtida com os maxtermos. Às vezes, a escritura da equação 
lógica usando os maxtermos ou os mintermos não conduz à equação lógica mais simples. Nesse 
caso, se deve usar o álgebra booleano para simplificar ela. 
3.3 Mapa de Karnaugh 
Em alguns casos, com equações mais complexas, o método anterior pode ser trabalhoso. Mas 
existe um método gráfico, baseado no álgebra booleano, para ajudar o projetista a encontrar 
a equação lógica mais simples. Esse método utiliza os mapas de Karnaugh. 
O mapa de Karnaugh contém o mesmo número de células que existem casos na tabela da 
verdade. Uma tabela da verdade de 2 entradas, como no exemplo precedente contem 4 casos. 
O mapa é construído da forma seguinte: 
 SA SA 
SB 
00 
SA. SB 
10 
SA.SB 
SB 
01 
SA.SB 
11 
SA. SB 
 
 SA SA 
SB 1 1 
SB 0 1 
 
Uma vez o mapa preenchido, as regras para obter a equação lógica simplificada são as 
seguintes: 
 agrupar os 1 dentro dos retângulos (um quadrado é um retângulo) maiores possível 
 esses retângulos devem conter 2n células (n, o maior inteiro possível) 
 usar o menor número de retângulos possíveis (o número de retângulos vai determinar a 
complexidade da equação lógica) 
 um 1 pode ser contido em vários retângulos 
Em nosso exemplo: 
 
 
Para realizar a leitura da equação final, tem que somar o valor de cada retângulo. Como ler o 
valor de um retângulo? 
 Ler de qual variável está dependendo o retângulo 
 Multiplicar essas variáveis para obter o valor do retângulo 
 No caso geral, um retângulo de 2m células dentro de um mapa de Karnaugh de 2n células 
vai depender de (m-n) variáveis. Ou seja, se um retângulo preenche a metade do mapa, 
 SA SA 
SB 1 1 
SB 0 1 
Correspondência entre caso da tabela da 
verdade (linha) e posição da célula no mapa 
Mapa de Karnaugh preenchido com o valor 
da saída correspondente a cada célula 
ele depende de uma variável só. Se ele preenche um quarto do mapa, ele depende de 
2 variáveis, e assim vai. 
 Se a tabela da verdade contém somente 1 em saída, a equação lógica é igual a 1 
 Um retângulo de tamanho 1 tem por valor o mintermo correspondente à celula 
 
 
A A 
B 1 1 
B 1 1 
S=1 
 
 
A A 
B 0 1 
B 0 1 
S=A 
 
 A A 
B 1 0 
B 1 0 
S=A 
 
 
A A 
B 1 1 
B 0 0 
S=B 
 
A A 
B 0 0 
B 1 1 
S=B 
 
 
A A 
B 1 0 
B 0 0 
S=A.B 
 
 
A A 
B 0 1 
B 0 0 
S=𝐀.B 
 
A A 
B 0 0 
B 1 0 
S=A.B 
 
A A 
B 0 0 
B 0 1 
S=A.B 
 
A equação lógica deduzida do mapa de Karnaugh de nosso exemplo é então: 
 
 
 VA=RB=SA+SB 
 
Nesse caso simples, usar a leitura direta dos maxtermos a partir da tabela da verdade é bem 
mais rápido. Mas, em alguns casos mais complexos, o mapa de Karnaugh simplifica muito o 
processo. 
Para ilustrar esse fato, vamos pegar uma tabela da verdade de 3 entradas (8 casos). 
 
 SA SA 
SB 1 1 
SB 0 1 SA 
SB 
 
 
 
 
 Pelos mintermos: S=A.B.C+A.B.C+A.B.C 
 Pelos maxtermos: S=(A+B+C).(A+B+C).(A+B+C).(A+B+C).(A+B+C) 
Nenhuma dessas duas soluções é simples. Para simplificar elas, se pode 
usar o álgebra booleano ou o mapa de Karnaugh. 
 
Diretamente pela álgebra booleano: 
S = A.B.C+A.B.C + A.B.C 
S = C.(A.B+ A.B + A.B) Fatoração 
S = C.[A.(B+B)+A.B] Fatoração 
S = C.(A.1+A.B) Identidades - OR 
S = C.(A+A.B) Identidades - AND 
S = C.(A+B) Identidades auxiliares 
S = A.C+B.C Distribuição 
O mapa de Karnaugh de 8 células é preenchido da mesma maneira que o mapa precedente 
de 4 células. 
 A A 
B 
000 
A. B.C 
001 
A. B. C 
101 
A. B. C 
100 
A. B. C 
B 
010 
A. B. C 
011 
A. B. C 
111 
A. B. C 
110 
A. B. C 
 C C C 
 
 A A 
B 1 0 0 1 
B 1 0 0 0 
 C C C 
 
Nós vamos identificar os retângulos usando as regras estabelecidas anteriormente. Mas existe 
agora uma subtilidade, a borda esquerda do mapa é igual à borda direita. Elas formam então 
uma única borda. Seria equivalente a dobrar o mapa em forma de cilindro. 
 
 
A B C S 
0 0 0 1 
0 0 1 0 
0 1 0 1 
0 1 1 0 
1 0 0 1 
1 0 1 0 
1 1 0 0 
1 1 1 0 
Correspondência entre caso da tabela da 
verdade (linha) e posição da célula no mapa 
Mapa de Karnaugh preenchido com o valor 
da saída correspondente a cada célula 
1
 1
 
0
 0
 
1
 
1
 
0
 
0
 
0
 
0
 0
 
1
 
 
Então, um retângulo que começa de um lado pode terminar do outro. Para visualizar isso melhor 
podemos desenhar duas mapas iguais uma do lado da outra. 
 
A A A A 
B 1 0 0 1 1 0 0 1 
B 1 0 0 0 1 0 0 0 
 
C C C C C 
 
Com um pouco de costume, não precisa desenhar 2 mapas para identificar os maiores 
retângulos. A representação pode então ser feita com um mapa só. 
 
 
Todos os 1 da tabela estão incluídos dentro de um retângulo. Podemos proceder à leitura da 
equação lógica. Existem dois retângulos de dois 1. Cada retângulo representa então o produto 
de (3-1)=2 variáveis de entrada. A leitura é feita como explicado anteriormente, mas é ilustrada 
nos casos seguintes: 
 A A 
B 
 
B 
 C C C 
 
 
A A 
B 
A.C A.C A.C A.C 
B 
 C C C 
 
 A A 
B B 
B B 
 C C C 
 
 
A A 
B A.B A.B 
B A.B A.B 
 C C C 
 
 A A 
B 1 0 0 1 
B 1 0 0 0 
 C C C 
B.C 
A.C 
 
A A 
 
 
 
A A 
B 
C C C 
B 
 C C C 
 
 A A 
B B.C B.C B.C 
B B.C B.C B.C 
 C C C 
 
Dessa ilustração, nós deduzimos que a equação lógica correspondente à tabela de verdade de 
3 entrada de nosso segundo exemplo é igual a: 
S=A.C+B.C 
Esse resultado está confirmado pela dedução feita usando o álgebra booleano. 
No caso de 4 variáveis de entrada, o principio fica o mesmo, mas o mapa é constituídode 4 
linhas e 4 colunas, então 16 células. A figura seguinte mostra a correspondência entre os 
mintermos da tabela da verdade e a posição da célula correspondente do mapa de Karnaugh. 
 A A 
 
B 
0000 
A. B.C. D 
0010 
A. B. C. D 
1010 
A. B. C. D 
1000 
A. B. C. D 
D 
0001 
A. B. C.D 
0011 
A. B. C.D 
1011 
A. B. C.D 
1001 
A. B. C.D 
D 
B 
0101 
A.B.C.D 
0111 
A.B.C.D 
1111 
A.B.C.D 
1101 
A.B.C.D 
0100 
A. B. C. D 
0110 
A. B. C. D 
1110 
A. B. C. D 
1100 
A. B. C. D 
D 
 C C C 
 
Nesse casa, a borda esquerda é igual à borda direita (como no caso precedente), assim que a 
borda superior é igual à borda inferior. 
3.4 Casos irrelevantes 
Em algumas situações, existe uns casos da tabela da verdade que não tem como acontecer 
para o sistema projetado. Esses casos são chamados de irrelevantes. Como esse caso irrelevante 
não pode acontecer, a saída do sistema pode ser igual a 1 ou 0 sem mudar a funcionalidade 
do sistema. Então é atribuído a essa saída a letra X para identificar ela. Na hora de realizar a 
simplificação com o mapa de Karnaugh, esse X pode ser escolhido igual a 1 ou a 0 para ajudar 
a simplificar a equação lógica final. 
Um exemplo seria um detector de paridade para um número de 0 a 5. Para representar um 
número de 0 a 5, é preciso de 3 entradas. Mas com 3 entradas, é possível contar de 0 a 7. Então, 
os casos 6 e 7 são irrelevantes, não tem utilidade. As duas últimas linhas da tabela da verdade 
poderão então pegar o valor X em saída. 
4 Códigos e decodificadores 
Existe uma infinidade de formas de representar os números. Por exemplo, nós vimos como 
representar um número usando o sistema decimal, binário ou hexadecimal. Nós somos 
acostumados a contar com o sistema decimal. O sistema binário é mais adequado ao 
funcionamento das maquinas digitais. Bem que usados na maioria dos casos, para algumas 
aplicações, usar diretamente o sistema binário pode gerar algumas dificuldades. Para esses 
casos foram criados códigos. O código permite de transformar a representação clássica dos 
números por uma forma diferente, mais vantajosa para uma aplicação especifica. 
Nesse capitulo, nós veremos alguns dos códigos usados em eletrônica digital assim que os 
circuitos decodificadores permitindo de transformar os números de um código para outro. 
4.1 O código BCD 8421 
O código BCD (binary-coded decimal) é principalmente usado para aplicações financeiras ou 
comerciais para qual o sistema decimal é usado para realizar as contas e a exatidão dos contas 
deve ser garantida. 
Usar diretamente o sistema binário geraria erros de arredondamento. Pois, um número no sistema 
decimal não tem obrigatoriamente um equivalente exato no sistema binário. Por exemplo (0,1)10 
= (0,0001100110011...)2. 
O código BCD permite de representar diretamente um número no sistema decimal (0,1,...,9) por 
4 bits. Os números 8421 representam o valor de cada um dos bits. 
Decimal BCD8421 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
0000 
0001 
0010 
0011 
0100 
0101 
0110 
0111 
1000 
1001 
Por exemplo: (24,1)10 = (0010 0100,0001)BCD8421 
Então cada número decimal possui uma representação exata com o código BCD. 
Existe outros tipos de códigos BCD, o código BCD 7421, 5211, 2421 com uns pesos diferentes mas 
o mais usado é o BCD8421. 
4.2 O código de Gray 
O código de Gray é principalmente usado para o monitoramento de sinais analógicos. Nesse 
tipo de aplicação, a variação do sinal é continua. Os números são então usados de forma 
sequencial, crescente ou decrescente, seguindo uma ordem. 
 
Exemplos: 
Velocidade do vento e tamanho das ondas em função do tempo 
 
 
Ângulo de rotação de um rotor 
 
Nesses casos, é vantajoso usar um código que vai mudar somente um bit de um número para o 
seguinte. Isso permite de evitar erros de leitura. Usar um código binário puro levaria a mudar vários 
bits de um número para o seguinte (3-4 → 11-100), todos esses bits não mudando no mesmo 
instante (é impossível garantir uma sincronia perfeita). Existiria, nesse caso, durante um certo 
tempo de transição, uns valores errados. O código de Gray permite de evitar esse problema. 
Decimal Gray Gray 
Excesso 3 
Johnson 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
0000 
0001 
0011 
0010 
0110 
0111 
0101 
0100 
1100 
1101 
1111 
1110 
1010 
1011 
1001 
1000 
0010 
0110 
0111 
0101 
0100 
1100 
1101 
1111 
1110 
1010 
00000 
00001 
00011 
00111 
01111 
11111 
11110 
11100 
11000 
10000 
 
O código Gray de 4 bits permite, como o binário, de contar de 0 até 15. O código Gray Excesso 
3 (deslocamento de 3 unidades) permite de realizar um código BCD com as vantagens do 
código Gray. O código de Johnson é também um código de tipo “Gray”. Ele é apreciado pela 
facilidade de realização de um contador (deslocando simplesmente os números para a 
esquerda e invertendo o bit de maior peso para realimentar no bit de menor peso. O maior 
problema do código de Johnson é sua densidade (eficiência): N bits permitem de codificar 2N 
números (N bits em binário permitem de representar 2N números). 
Outra vantagem vem do fato que um circuito digital consume energia e emite ruído elétrico 
durante as transições de estado. Reduzindo o número de mudanças reduz então o consumo e 
a emissão de ruído elétrico. 
4.3 Os decodificadores 
Os circuitos decodificadores permitem de transformar os números de um código para outro. A 
obtenção de tal circuito é simples e repetitiva, uma vez a técnica do mapa de Karnaugh 
entendida. 
Nós vamos dar o exemplo de um circuito decodificador para passar de um número binário de 4 
bits para o mesmo número no código de Gray. 
Binário Gray 
A B C D S3 S2 S1 S0 
0 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 1 
0 0 1 0 0 0 1 1 
0 0 1 1 0 0 1 0 
0 1 0 0 0 1 1 0 
0 1 0 1 0 1 1 1 
0 1 1 0 0 1 0 1 
0 1 1 1 0 1 0 0 
1 0 0 0 1 1 0 0 
1 0 0 1 1 1 0 1 
1 0 1 0 1 1 1 1 
1 0 1 1 1 1 1 0 
1 1 0 0 1 0 1 0 
1 1 0 1 1 0 1 1 
1 1 1 0 1 0 0 1 
1 1 1 1 1 0 0 0 
 
Pode ver claramente, sem realizar o mapa de Karnaugh que S3 = A. 
 
 
 
A A 
 
B 
0 0 1 1 D 
0 0 1 1 
D 
B 
1 1 0 0 
1 1 0 0 D 
 C C C 
 
 
 
A A 
 
B 
0 1 1 0 D 
0 1 1 0 
D 
B 
1 0 0 1 
1 0 0 1 D 
 C C C 
 
 
S2=A.B+A.B=A⨁B S1=B.C+B.C=B⨁C 
 
Com um pouco de costume, esses resultados poderiam ter sido obtido diretamente da tabela 
da verdade. É por exemplo evidente que S0=C⨁D porque S3 é igual a 1 somente quando as 
entradas C e D são diferentes. 
Decodificador binário para Gray de 4 bits 
A B C D
S0
S2
S1
S3
 
Os demais decodificadores podem ser obtidos da mesma forma. Pode considerar isso como um 
exercício. O software “Logic Friday” pode ajudar você a verificar o resultado obtido. 
Outro tipo de decodificador bastante comum é aquele usado para exibir um número decimal 
numa tela de 7 segmentos. Essa tela é constituída de 7 LEDs que podem acender o desligar para 
formar um número ou uma letra como mostrado na tabela em seguida. 
 
Cada segmento corresponde a uma saída. A tabela da verdade descrevendo esse 
decodificador é a seguinte: 
Binário 7-segmentos 
A B C D a b c d e f g 
0 0 0 0 1 1 1 1 1 1 0 
0 0 0 1 0 1 1 0 0 0 0 
0 0 1 0 1 1 0 1 1 0 1 
0 0 1 1 1 1 1 1 0 0 1 
0 1 0 0 0 1 1 0 0 1 1 
0 1 0 1 1 0 1 1 0 1 1 
0 1 1 0 1 0 1 1 1 1 1 
0 1 1 1 1 1 1 0 0 0 0 
1 0 0 0 1 1 1 1 1 1 1 
1 0 0 1 1 1 1 1 0 1 1 
1 0 1 0 1 1 1 0 1 1 1 
1 01 1 0 0 1 1 1 1 1 
1 1 0 0 1 0 0 1 1 1 0 
1 1 0 1 0 1 1 1 1 0 1 
1 1 1 0 1 0 0 1 1 1 1 
1 1 1 1 1 0 0 0 1 1 1 
 
Pode obter os circuitos lógicos correspondentes usando os mapas de Karnaugh ou o software 
“Logic Friday”. Como é um decodificador bastante comum, existe uns circuitos integrados 
realizando essa função, como o 4511B. O manual de uso (datasheet) desse circuito mostra todas 
as funcionalidades e conexões desse circuito. É interessante dar uma olhada. 
 
5 Circuitos lógicos: tecnologia 
Até agora, nós vimos a teoria associada à concepção de circuitos lógicos. Nós vamos agora 
focar sobre a parte tecnológica associada a esse tipo de circuitos. 
5.1 Circuito integrado 
Um circuito integrado é um circuito miniaturizado podendo conter vários componentes, como 
resistores, transistores, diodos, capacitores na mesma bolacha de silício, isolante e metal, 
chamada de chip. Uma vez o chip fabricado, é impossível de dessoldar um componente como 
para uma placa impressa por exemplo, ele faz parte da estrutura. O conjunto se torna um 
estrutura indissociável. A complexidade pode variar de um componente só a bilhões de 
componentes e o tamanho de alguns dízimos de milímetros até dezenas de milímetros. 
 
Para poder utilizar o chip, é necessário encapsula-o. O tipo mais comum de encapsulamento é 
chamado de DIP (dual in line package). Ele pode ser de plástico ou de cerâmica. Mas existe 
uma variedade muito grande de encapsulamentos como mostrado na figura seguinte. 
 
Aos poucos, os componentes de tipo SMD (dispositivo de montagem superficial) estão 
substituindo os encapsulamentos clássicos de tipo montagem through-hole nos quais os terminais 
são enfiados em buracos da placa do circuito. As vantagens são umas melhores performances 
devido aos terminais mais curtos e um aproveitamento maior da placa impressa que se pode 
usar dos dois lados. 
Não é sempre o caso, mas geralmente os componentes são denominados como mostrado na 
figura seguinte. 
 
 
 
Dependendo do fabricante, o sufixo pode ser o tipo de encapsulamento ou a temperatura de 
funcionamento. O “Part #” indica a família e a função do componente. 
Dentro dos circuitos lógicos, existe várias famílias. As principais são os circuitos TTL (transistor 
transistor logic) e CMOS. Dentro dessas duas grandes famílias existe subfamílias caracterizadas 
que foram criadas ao longo do tempo para melhorar as performances. 
 Família Ano Descrição rápida 
TTL 1968 bipolar transistor transistor logic 
S 1974 TTL com transistor de Schottky 
LS 1976 TTL Schottky de baixo consumo 
ALS 1979 TTL Schottky de baixo consumo melhorado 
F 1983 TTL rápido 
HC 1975 CMOS de alta velocidade 
HCT 1975 CMOS de alta velocidade (compatível com TTL) 
AC 1985 CMOS avançado 
ACT 1985 CMOS avançado (compatível com TTL) 
LVC 1993 CMOS de baixa tensão 
AHC 1996 CMOS avançado de alta velocidade 
5.2 Caraterísticas dos circuitos lógicos 
As performances dos circuitos lógicos são definidas por vários parâmetros. 
5.2.1 Tensões de entrada e saída aceitáveis pela tecnologia 
Na teoria, se o circuito lógico é alimentado por uma fonte de tensão de 5V, um nível lógico alto 
seria representado por uma tensão de 5V e um nível lógico baixo por uma tensão de 0V. Na 
prática, existem tensões de limiar intermediarias para representar os níveis lógicos tanto na 
entrada como na saída: 
 VIH (input high): limite inferior para definir um nível lógico alto na entrada 
 VIL (input low): limite superior para definir um nível lógico baixo na entrada 
 VOH (output high): limite inferior para definir um nível lógico alto na saída 
 VOL (output low): limite superior para definir um nível lógico baixo na saída 
A diferença entre VIL e VOL, assim que a diferença entre VIH e VOH, correspondem às margens de 
ruído da tecnologia. Se o ruído que se acrescenta ao sinal permanece inferior a essa margem, a 
informação não é corrompida. Segue o exemplo para uma porta de tipo TTL e outra de tipo 
CMOS: 
 
Se pode notar com esse exemplo, que as portas lógicas de tipo TTL LS são incompatíveis com as 
portas lógicas de tipo CMOS HC. Por exemplo, uma saída alta com uma tensão de 2,7V da porta 
TTL não é reconhecida como alta na entrada da porta CMOS (seria preciso de uma tensão maior 
que 3,5V). 
5.2.2 Níveis de corrente, fanout, fanin 
As entradas e saídas dos circuitos lógicos tem valores limites para as correntes que elas podem 
fornecer ou absorver: 
 IIL: valor máximo de corrente na entrada para um nível de entrada baixo 
 IIH: valor máximo de corrente na entrada para um nível de entrada alto 
 IOL: valor máximo de corrente na saída para um nível de saída baixo 
 IOH: valor máximo de corrente na saída para um nível de saída alto 
Uma corrente positiva significa uma corrente entrando na porta e uma corrente negativa 
significa uma corrente saindo da porta. Segue o exemplo abaixo para uma porta de tipo TTL: 
 
Esses valores limites determinam o número máximo de portas podendo ser ligadas à mesma saída. 
Esse número é chamado de fanout. No exemplo acima, o fanout é igual a 10 (400μA / 40 μA ou 
16mA / 1,6mA). Além desse número, a porta lógica não é capaz de fornecer ou absorver a 
corrente suficiente para controlar a entrada das portas lógicas seguindo ela. O exemplo seguinte 
mostra uma porta TTL com o número máximo de portas lógicas conectadas a ela. 
 
O fanin é simplesmente o número de entradas que possui uma porta lógica. 
5.2.3 Tempos de propagação, potência dissipada 
Outras especificações importantes de uma porta lógica são os tempos de propagação. Os 
transistores realizando a função de chaves tem uma velocidade de comutação limitada. Essa 
velocidade limitada vai introduzir uns atrasos entre o sinal de comando (entrada) e a resposta 
da porta (saída): 
 tpLH: tempo máximo de propagação quando a saída transita do nível baixo(L) para o 
nível alto(H) 
 tpHL: tempo máximo de propagação quando a saída transita do nível alto(H) para o nível 
baixo(L) 
 
Os tempos de propagação estão diretamente relacionados com a potência dissipada. Dentro 
dos limites da tecnologia disponível num dado momento, é possível construir circuitos mais 
rápidos, mas que apresentam maior potência dissipada, ou circuitos mais lentos, mas que 
apresentam menor potência dissipada. 
5.3 A família TTL 
Os circuitos TTL, para transistor-transistor logic, usam transistores bipolares para realizar as chaves. 
O transistor bipolar foi o primeiro a ser realizado. Basicamente, o funcionamento é ilustrador na 
figura seguinte. 
 
Quando a tensão entre base e emissor é suficiente, uma corrente IB é criada. Se existe uma 
tensão adequada entre coletor e emissor, o transistor conduz e pode ser considerado como uma 
chave fechada entre coletor e emissor. Caso a tensão entre base e emissor não é suficiente, o 
transistor se opõe a toda condução, ele pode ser considerado como uma chave aberta entre 
coletor e emissor. O maior desvantagem desse transistor em relação ao MOSFET, usado na 
tecnologia de tipo CMOS é que existe uma corrente entrando pelo terminal de comando (base) 
do transistor e então um consumo de potência de forma continua. 
A família TTL é a família mais diversificada. As caraterísticas das subfamílias são mostradas na 
figura seguinte: 
 
 
5.4 A família CMOS 
Os transistores de tipo MOSFET apareceram no mercado depois dos transistores bipolares usados 
na lógica TTL. Eles são à origem da família lógica CMOS (complementary MOS: associação de 
transistores de tipo PMOS e NMOS) que está, aos poucos, substituindo a família TTL, devido a um 
consumo menor e uma maior integração. O transistor bipolar ainda tem vantagens em 
aplicações de alta velocidade.O funcionamento do transistor MOS é ilustrado na figura seguinte: 
 
O transistor MOS funciona da forma seguinte: quando o potencial do terminal da porta (gate) é 
suficientemente alto em relação ao potencial da fonte (source), um canal de condução se cria 
entre dreno (drain) e fonte. O transistor se comporta então como uma chave fechada. Senão, o 
dreno é isolado da fonte, o transistor se comporta como a uma chave aberta. No transistor MOS, 
o circuito de comando é totalmente isolado da chave. Nenhuma corrente circula pelo terminal 
chamado porta (gate). É uma grande vantagem em relação ao transistor bipolar, isso permite 
de reduzir o consumo da porta lógica e facilita também o comando dela. 
As caraterísticas das subfamílias são mostradas na figura seguinte: 
 
 
 
N.B.: Hoje, não é tão verdade, mas antigamente, as portas de tipo CMOS eram muito sensível às 
descargas eletroestáticas. Para evitar de queimar os circuitos, sempre guardar os CIs dentro de 
uma embalagem condutiva. 
5.5 Saída de três estados (tri-state) 
Algumas portas lógicas oferecem a possibilidade de botar a saída em um estado alta 
impedância (high-Z). A saída em high-Z nem está num estado baixo, nem num estado alto. É um 
terceiro estado. Isso equivale a desligar a porta lógica do restante do circuito. 
Este tipo de saída tem particular aplicabilidade quando se pretende, através de um linha comum, 
enviar dados de diferentes dispositivos de origem para um único dispositivo de destino. 
 
5.6 Misturando as famílias logicas 
Geralmente, é melhor evitar de misturar as famílias lógicas. As principais razões são as diferenças 
entre os níveis lógicos de entrada e saída, as tensões de alimentação ou a capacidade de 
acionamento. Um outro problema vem da velocidade diferente entre as famílias. Essa diferença 
pode causar problemas de temporização. 
Em alguns casos, é impossível ou até desejável de misturar tecnologias diferentes. Por exemplo, 
algumas funções lógicas (memoria, contador, etc.) existem somente em CMOS mas o restante 
de seu sistema está funcionando com TTL. Misturar as famílias lógicas é também bastante comum 
para acionar cargas. Por exemplo, uma lógica de tipo TTL (com coletor aberto) é 
frequentemente usada para servir de interface entre uma lógica de tipo CMOS e uma carga 
externa, como um rele ou uma luz. Uma saída CMOS, frequentemente não fornece uma corrente 
suficiente para acionar tal carga. 
Vamos ver alguns exemplos de interface. 
 
a. TTL pode diretamente estar conectado a HCT, ACT ou ele mesmo. 
b. CMOS 74C/4000(B) com VDD=5V pode acionar TTL, HC, HCT, AC, ACT ou ele mesmo. 
c. HC, HCT, AC e ACT podem diretamente acionar TTL, HC, HCT, AC, ACT ou 74C/4000(B). 
d. Quando 74C/4000(B) usa VDD>5V, um circuito buffer, tipo 4050B pode ser usado. O 4050B 
é alimentado por 5 V, aceita uma lógica 0V / 15V na entrada e fornece uma lógica 0V / 
5V na saída. O buffer oferece também uma corrente de acionamento maior 
(74C/4000(B) tem um poder de acionamento menor que o TTL). 
e. Lembra-te que a tensão de saída do TTL pode ser de 2,7V ao lugar de 5V para um nível 
lógico alto. Mas uma porta CMOS precisa de 3,3V (HC) ou 3,5V (4000B) para o mesmo 
nível. Para fornecer uma tensão suficiente na entrada do 74C/4000(B), um resistor de pull-
up pode ser usado. Esse resistor tem por efeito de subir a tensão de entrada para o nível 
do VDD. 
f. Uma outra possibilidade para conectar CMOS e TTL é de usar a lógica CMOS compatível 
com TTL, como 74HCT ou 74ACT. 
g. h. Essas duas figuras mostram como conectar uma porta TTL com uma porta CMOS 
alimentada por uma tensão maior. No primeiro caso, um buffer 4504B é usado. Ele é 
alimentado com duas tensões de 5V e 15V. No segundo caso, um buffer de tipo coletor 
aberto é usado com uma resistência de pull-up para realizar a interface entre o nível TTL 
de 5V e o nível CMOS de 15V. 
5.7 Desacoplamento da tensão de alimentação 
Durante a transição do nível lógico, ocorre um aumento brusco do consumo de corrente pela 
porta TTL. Isso vai ter por efeito de criar variações abruptas da tensão de alimentação. Essas 
variações podem causar comutações indesejadas para as demais portas lógicas alimentadas 
pela mesma fonte. Para evitar esse problema, uma solução é de usar capacitores de 
desacoplamento conectadas entre a fonte de tensão e a terra, o mais próximo possível das 
portas lógicas. Uma regra é de usar um capacitor para cada 5 ou 10 portas lógicas. Os 
capacitores geralmente usados são capacitores de 0,01 a 1 μF, tipicamente de tântalo. Esses 
capacitores vão ter por efeito de filtrar as variações abruptas de tensão para deixar ela mais lisa. 
5.8 Conexão das entradas e saídas não utilizadas 
As entradas inutilizadas mas que poderiam afetar o nível de saída do circuito nunca devem ficar 
desconectadas. Elas devem ser conectadas a um nível alto ou um nível baixo, para evitar de 
captar um ruído externo que poderia causar um comportamento errado. 
Se todas as portas lógicas conteúdas em um CI não são usadas, elas podem ficar desconectadas 
para um circuito de tipo TTL mas as entradas tem que ser aterradas para um circuito de tipo 
CMOS. De fato, se as entradas não são aterradas, o nível de entrada da porta CMOS pode flutuar 
e provocar uma condução elevada de corrente que pode destruir o CI. No caso de uma porta 
cuja todas as entradas não são utilizadas, é necessário conecta-as ao nível baixo para uma porta 
OR ou NOR, ou a um nível alto para uma porta AND ou NAND. 
Exemplos: 
 
 
6 Multiplexador / Demultiplexador 
O multiplexador (também chamado de mux) e o demultiplexador (também chamado de 
demux) são chaves controladas digitalmente. No caso do multiplexador, a chave permite 
conectar uma das n entradas possíveis, à saída. O demultiplexador realiza a função inversa. Ele 
permite conectar a única entrada a uma das n saídas possíveis. No caso de 2 entradas, o 
multiplexador é também chamado de seletor de dados (data selector). 
 
Como explicado precedentemente, a seleção é realizada por um sinal digital. Então, n bits de 
seleção permitem de endereçar 2n entradas (multiplexador) ou saídas (demultiplexador). 
Uns símbolos frequentemente usados para representar o multiplexador e o demultiplexador são 
os seguintes: 
Seleção 
E1 
E2 
E3 
E4 
En 
S 
Seleção 
S1 
S2 
S3 
S4 
Sn 
E 
Multiplexador Demultiplexador 
Mux 2 n:1
E1
E2
E3
E4
E
S
De
mu
x 2
n :1
S1
S2
S3
S4
S
E
2n 2n
A1 An A1 An
 
Os multiplexadores são usados para juntar num mesmo canal de transmissão diversas fontes de 
dados sem misturar elas. Nesse caso, cada fonte de dado ocupa um intervalo de tempo definido. 
O demultiplexador efeitua o trabalho inversa, atribuindo às diversas fontes (presentes no mesmo 
canal de transmissão) um canal distinto. 
 
6.1 Caso do multiplexador 2:1 (2 entradas, 1 saída) 
Para começar, vamos estudar o caso simples de um multiplexador de 2 entradas (E1 e E2). Para 
endereçar essas duas entradas, um bit de seleção (A) é suficiente. Vamos escrever a tabela da 
verdade da função logica associada ao multiplexador. 
 
 
 
S=E1.A+E2.A 
A
E1
E2
S
 
E1 E2 A S 
0 0 0 0 
0 0 1 0 
0 1 0 0 
0 1 1 1 
1 0 0 1 
1 0 1 0 
1 1 0 1 
1 1 1 1 
 A A 
E1 0 0 1 0 
E1 1 1 1 0 
 E2 E2 E2 
Não era preciso desse formalismo todo para chegar ao circuito final. De fato, a porta AND (a 
porta OR também) pode ser usada como chave controlada digitalmente. Se uma das entradas 
esta com um nível alto, ela deixa passar o sinal da outra entrada. Se uma das entradas esta com 
um nível baixo, ela impo um nível baixo em saída. Então, quando a entrada de seleção A esta 
comum nível alto, E2 passa para a saída S e E1 fica bloqueado pela porta AND. Quando A esta 
com um nível baixo, acontece o inverso. Isso é exatamente o comportamento de um 
multiplexador 2:1. 
Existem vários CI realizando funções de multiplexagem. Veja, em seguida, o exemplo do CI 
74LS157. Ele contém 4 multiplexadores 2:1, assim que uma entrada de ativação ou desativação 
do CI. 
 
6.2 Generalização a um multiplexador 2n:1 
O conceito precedente pode ser generalizado a um multiplexador de n entradas. Tal 
multiplexador é então constituído de n portas AND conectadas a cada uma das n entradas. 
Dependente do endereço selecionado, uma porta AND vai deixar a entrada correspondente 
passar enquanto as outras vão cortar as outras entradas. 
E1
E2
E3
E2n
Gerador de 
endereço
A1 A2 An
P1 P2 P3 P2n
P1 = A1.A2.A3 ... .An
P2 = A1.A2.A3 ... .An
P3 = A1.A2.A3 ... .An
P4 = A1.A2.A3 ... .An
P5 = A1.A2.A3 ... .An
P2
n = A1.A2.A3 ... .An
S
 
Exemplo: quando todas as entradas de seleção estão iguais a 0, a única saída do gerador de 
endereço igual a 1 é a saída P1. Então, a saída esta conectada à entrada E1. Esse gerador de 
endereço é também chamado de gerador de produto canônico. 
O cirtuito demultiplexador é realizado da mesma maneira. Mas, cada porta AND é conectada 
a mesma e única entrada. E as saídas dessas portas AND são as saídas do demultiplexador. 
 Na pratica, existem CI de várias capacidades de entradas: 4, 8, 16 entradas. 
 
Para realizar um mux 16:1, se pode usar dois mux 8:1 da maneira seguinte: 
 
A entrada de ativação (E) permite de selecionar qual dos dois mux esta ativado e então 
conectado em saída. Então, nesse caso, ela pode ser considerada como entrada de seleção. 
Ou se pode usar o CI 74HC150, um mux 16:1. 
Existem também CI para demultiplexadores. Veja o exemplo de um demux 1:4 (são dois na 
mesma pastilha): 
 
7 Circuitos aritméticos 
Com poucas portas logicas, nós vamos ver como é possível realizar soma ou subtração de 
números lógicos. 
7.1 O somador 
Veja na figura abaixo como é realizada a soma de dois números de 2 bits. 
 
Para os bits de menor peso (LSB, coluna da direita), é necessário realizar a soma de 2 bits. Para 
os bits de maior peso (MSB), é necessário incluir o bit de transporte (Cout) da coluna anterior, ou 
seja realizar uma soma de 3 bits. O somador de 2 bits é chamado de meio somador. O somador 
de 3 bits (incluindo o bit de transporte da coluna anterior) é chamado de somador completo. 
As tabelas da verdade associadas a esses dois tipos de somadores são as seguintes: 
A0 B0 Σ0 Cout 
0 0 0 0 
0 1 1 0 
1 0 1 0 
1 1 0 1 
 
 
 
Deduzindo as equações logicas das saídas Σ0 e Cout a partir da primeira tabela da verdade, nós 
dá o circuito meio somador (half adder): 
 
Da segunda tabela, nos deduzimos o circuito somador completo (full adder): 
 
A operação mais complexa que esses dois circuitos são capazes de realizar é soma de números 
de 1 bit só. 
Para realizar somas mais complexas, de números de n bits, é preciso utilizar n somadores em 
cascata. Veja o exemplo de um somador de 4 bits abaixo. A soma dos dois primeiro bits (A0 e B0) 
é realizada a través de um meio somador porque não tem bit de transporte para a primeira 
coluna. As somas dos bits de peso mais fortes necessitam o uso de somadores completos para 
incluir o bit de transporte da coluna anterior na soma. 
 
Existe vários CIs somadores de 4 bits, como 74LS283 ou o 4008. Esses CIs são somadores completos, 
ou seja oferecem uma entrada e uma saída de transporte. E possível conectar eles em cascata 
para realizar soma de 8 bits, 12 bits, 16 bits, etc. 
A1 B1 Cin Σ1 Cout 
0 0 0 0 0 
0 0 1 1 0 
0 1 0 1 0 
0 1 1 0 1 
1 0 0 1 0 
1 0 1 0 1 
1 1 0 0 1 
1 1 1 1 1 
 
7.2 O subtrator 
Veja abaixo como é realizada a subtração de dois números de 2 bits. 
A1 A0
B1 B0
Cin Cin
Σ1 Σ0
Cout Cout
 
O mecanismo é análogo ao da soma. A primeira subtração é realizada entre os dois bits de 
menor peso. Ela gera um bit de resultado (Σ) e um bit de transporte (Cout). Essa operação é 
chamada de meia subtração. 
A subtração envolvendo 3 bits, An – Bn – Cin, é chamada de subtração completa. 
A0 B0 Σ0 Cout 
0 0 0 0 
0 1 1 1 
1 0 1 0 
1 1 0 0 
 
 
 
Deduzindo as equações logicas das saídas Σ0 e Cout a partir da primeira tabela da verdade, nós 
dá o circuito meio subtrator: 
A0
B0
D0
Cout
A
B D
Cout
HS
 
Da segunda tabela, nos deduzimos o circuito subtrator completo: 
A1 B1 Cin Σ1 Cout 
0 0 0 0 0 
0 0 1 1 1 
0 1 0 1 1 
0 1 1 0 1 
1 0 0 1 0 
1 0 1 0 0 
1 1 0 0 0 
1 1 1 1 1 
A
B D
Cout
HS
A
B D
Cout
HS
A1
B1
Cin D1
Cout
A
B
D
Cout
FS
Cin
 
Colocando em cascata n subtratores, é possível realizar a subtração de n bits, de forma 
equivalente ao somador. 
7.3 O complemento para dois e a subtração 
Outro método pode também ser usado para realizar uma subtração. Até agora, consideramos 
somente números de n bits sem sinal. Mas, na pratica, é frequente utilizar uma representação 
sinalizada. Nesse caso, é o bit de maior peso que indica o sinal do número. Um MSB=0 indica um 
número positivo. Um MSB=1 indica um número negativo. 
Ex: (5)10 = 0101 
 (-5)10 = 1101 
O problema da representação acima, é que ela impossibilita operações aritméticas de forma 
simples e direta (tente somar diretamente 5 e -5 por exemplo, você não encontrara 0). Para 
resolver esse problema, foi adotado uma representação chamada de complemento para 2. 
Para formar um número negativo em complemento para 2, basta inverter todos os bits de um 
número positivo e acrescentar 1. 
Ex: (5)10 = (0101)2 
 0 1 0 1 = 1010 ; 1010 + 1 = 1011 
 (-5)10 = (1011)comp p/2 
Decimal Complemento 
para 2 
-8 
-7 
-6 
-5 
-4 
-3 
-2 
-1 
0 
1 
2 
3 
4 
5 
6 
7 
1000 
1001 
1010 
1011 
1100 
1101 
1110 
1111 
0000 
0001 
0010 
0011 
0100 
0101 
0110 
0111 
 
Usando a representação em complemento para 2, se pode realizar subtração ou adição usando 
somente um somador. Nesse caso, a subtração é feita somando a representação negativa do 
número a subtrair. 
Ex: 5 – 3 = 5 + (-3) 
Para realizar o circuito somador / subtrator, se deve usar um circuito capaz de transformar um 
número para seu complemento para dois no caso de uma subtração ou deixando passar aquele 
número no caso de uma adição. Umas portas XOR e um somador permitem de realizar esse 
trabalho. Veja o exemplo seguinte: 
 
Quando a chave esta conectada no modo de adição, a primeira entrada de cada porta XOR 
é igual a 0. Ou seja, a porta XOR deixa passar o sinal vindo da outra entrada sem alterar ele. 
Quando a chave esta conectada no modo de subtração, a primeira entrada de cada porta 
XOR é igual a 1. Ou seja, a porta XOR inverte o sinal vindo da outra entrada. Isso é o primeiro 
passo para transformar o número para seu complemento para 2. O segundo passo é a adição 
do número 1. Essa adição é feita pelo bit Cin do CI 74LS283, que no caso da subtração é igual a 
1. 
Importante: Quando usa uma representação em complemento para dois, se deve respeitar o 
número de bits escolhido para os números. Ou seja, o bit de transporte resultando da soma dos 
dois bits de maior peso (MSB) deve ser descartado. E claro, o resultado não pode ultrapassar a 
capacidade devida ao número de bits. 
Ex: Se nós trabalhamos com 4 bits, podemos representar números incluídos entre -8 e 7. E o 
resultado de qualquer operação deve ser incluído dentro dessa faixa. 
7.4 As unidades aritméticas e logicasUma unidade aritmética e logica (UAL – ALU), é um CI capaz de realizar várias funções 
aritméticas ou logicas. Existe uma entrada de seleção para escolher a operação a realizar. O CI 
74181 mostrado na figura seguinte é uma UAL de 4 bits que oferece 16 funções aritméticas 
(entrada M = 0) e 16 funções logicas (entrada M = 1). 
 
Uma vez a função desejada selecionada com as entradas S0, S1, S2, S3, o CI realiza a operação 
entre as entradas A e B. Para não confundir operações logicas com operações aritméticas, a 
adição e a subtração são notados com “plus” e “minus” respetivamente. 
Todos os resultados aritméticos gerados por essa UAL são escritos em complemento para 2.

Outros materiais