Você está na página 1de 26

Eletrônica Digital

Os circuitos eletrônicos podem ser classificados em dois grupos básicos: Circuitos Analógicos e
Circuitos Digitais.
Os circuitos analógicos processam informações na forma analógica. Entende-se como
informação analógica àquela que nos é apresentada na forma de uma variação contínua no tempo como
no caso da Tensão Alternada.
Os circuitos digitais processam informação na forma digital. A informação digital é aquela que
nos chega como uma variação que se dá através de acréscimos discretos em função do tempo, ou seja,
de Pulsos. Uma onda quadrada na freqüência de 1 Hz pode ser tomada como informação digital. Neste
capítulo pretende-se fazer uma introdução básica aos circuitos e sistemas digitais.
Os circuitos digitais são alternadamente denominados de circuitos lógicos devido ao fato de que
a álgebra utilizada para seu estudo (álgebra de Boole conforme será apresentado mais à frente) tem
seus fundamentos na lógica formal, uma área da filosofia. Este capítulo será apresentado em três partes:
Sistemas de Numeração, Álgebra de Boole e Circuitos Combinacionais.

XI.1 Sistemas de Numeração


Os sistemas de numeração classificam-se em dois grupos básicos que são os (i) Sistemas de
Numeração Posicional e os (ii) Sistemas de Numeração não Posicional.
No sistema posicional o valor do dígito depende da posição que o mesmo ocupa no número.
Quando se toma o número 1987 como exemplo, pode-se afirmar que se o número estiver escrito em
decimal, pela ordenação dos quatro dígitos, “1”, “2”, “3” e “4” o número 1 não representa uma unidade
mas mil unidades; o número um representaria uma unidade somente se estivesse na posição mais à
direita (no lugar do sete). O número 1987 pode ser decomposto como a soma de 1000 (1x103) com
900 (9x102) com 80 (8x101) com 7 (7x100), ou seja, há um peso para cada posição do número, com o
peso crescendo da direita para a esquerda em potências de 10, a partir de 100. Caso o número tenha
parte fracionária os pesos decrescem com potências de 10 da esquerda para a direita a partir da
vírgula.
Na representação posicional obtém-se uma forma simplificada de escrita para os números. Ao
invés de um símbolo para cada número, pode-se representar qualquer número com um “alfabeto”
restrito de dígitos (símbolos). O sistema decimal tem um alfabeto de 10 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8
e 9, sendo que qualquer número pode ser representado com estes dígitos. Pode-se então definir um
sistema binário, ou sistema de base dois, como aquele que tem um alfabeto de dois dígitos: 0 e 1.
Analogamente a base 10, na qual o peso das posições é potências de 10, na base 2 os pesos são
potências de 2. O mesmo raciocínio pode ser utilizado para outras bases.
Exemplo 1: Sistema Posicional Decimal – R = 10 (R: Base)
Alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Exemplo 2: Sistema Posicional Binário – R = 2
Alfabeto = {0, 1}
Exemplo 3: Sistema Posicional Octal – R = 8
Alfabeto = {0, 1, 2, 4, 5, 6, 7}
Exemplo 4: Sistema Posicional Hexadecimal – R = 16
Alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
Como sistemas de numeração não posicional pode-se citar o sistema de numeração romano,
onde o valor dos símbolos não guarda nenhuma relação com a posição destes em um número.

XI.1.1 Processo de Geração dos Inteiros em um Sistema Posicional


A geração dos inteiros em um sistema posicional baseia-se na aplicação dos dois algoritmos
apresentados a seguir.
1º Algoritmo – Avanço de Dígitos: “Avançar um dígito de um alfabeto ordenado consiste em
substitui-lo pelo próximo dígito na hierarquia. O maior dígito é sempre avançado
para o menor dígito na hierarquia”.
2º Algoritmo – Geração de Inteiros: “Os inteiros de um sistema numérico posicional são gerados pelo
algoritmo abaixo que supõe ser o zero o menor dígito de qualquer alfabeto
ordenado”:
1-) O primeiro inteiro é o zero;
2-) O próximo inteiro da lista é obtido do inteiro precedente da lista avançando-se
seu dígito mais à direita. No caso deste dígito avançar para zero, avança-se
então o digito.

XI.1.2 Transformação de Base


A seguir são apresentados os procedimentos para se obter uma transformação da base 10 para
outra base R qualquer ou de uma base R qualquer para a base 10. Uma transformação entre duas
bases R1 e R2 pode ser feita passando-se intermediariamente pela base 10.

1
XI.1.2.1 Passagem de uma Base R para a Base 10
Regras: a-) converta a base e cada dígito do número no equivalente decimal
b-) expresse o número de acordo com a estrutura posicional e usando aritmética
decimal efetue as operações de produtos e somas.
Exemplos 5: Transformar (1101)2 para a base 10.
(1101)2 = 1x2 3 + 1x2 2+0x2 1+1x2 0 = 8 + 4 + 1 = 13 ð (1101)2 = (13)10.
Exemplo 6: Transformar (23,2)8 para a base 10.
(23,2)8 = 2x8 1 + 3x8 0 + 2x8 -1 = 16 + 3 + 2/8 = 19,25 ð (23,2)8 = (19,25)10.
Exemplo 7: Transformar (10B5)16 para a base 10.
(10B5)16 = 1x163 + 0x162 + 11x161 + 5x160 = 4277 ð (10B5)16 = (4277)10.

XI.1.2.2 Passagem da Base 10 para uma Base R


Regras: a-) Transformação da Parte Inteira: Deve-se dividir o inteiro decimal repetidamente pela
base R, para a qual se deseja a transformação. A cada divisão deve-se guardar o
resto, que será o dígito correspondente do alfabeto da base R. A divisão repetida

1
( )R ð lê-se como o número entre parênteses expresso na base R.
deve ser interrompida quando o quociente inteiro for reduzido a zero. Os restos de
cada divisão tomados no sentido do último para o primeiro expressarão o número
transformado para a base R;
b-) Transformação da Parte Fracionária: Deve-se multiplicar o número fracionário pela
base R para a qual se deseja a transformação. A cada produto deve-se guardar a
parte inteira e transportar apenas a parte fracionária para a próxima multiplicação por
R. As partes inteiras de cada produto correspondem aos dígitos correspondentes no
alfabeto da base R. Os produtos devem ser feitos até que a parte fracionária se anule
(quando se tem uma transformação exata) ou até que se considere a aproximação
suficiente. As partes inteiras lidas da primeira para a última correspondem aos dígitos
do número transformado.
Exemplos 8: Transformar (342)10 para a base 5.
342 5
2 68 5
3 13 5
3 2 5
2 0
Pode-se observar que cada divisão é interrompida no instante em que se obtém o quociente
inteiro. Na última divisão (2÷5) não há quociente inteiro a não ser o zero. Neste instante todo o
processo é interrompido. Lendo no sentido do último quociente para o primeiro tem-se 2332 e
então ð (342)10 = (2332)5.

Exemplos 9: Transformar (2798)10 para a base 16.


2798 16
14 174 16
14 10 16
10 0
Para a base 16, 14 equivale a E e 10 equivale a A Assim tem-se ð (2798)10 = (AEE)16.

Exemplos 10: Transformar (0,4375)10 para a base 2.


0,4372 x 2 = 0,8750
0,8750 x 2 = 1,7500 (para o próximo produto transportar só a parte fracionária)
0,7500 x 2 = 1,5000
0,5000 x 2 = 1,000 (transformação exata).

A leitura deve ser feita do primeiro produto para o último. Assim tem-se ð
(0,4375)10 = (0,0111)2.

Exemplos 11: Transformar (20,3)10 para a base 2.


Para a parte inteira deve-se fazer a divisão conforme apresentado a seguir
20 2
0 10 2
0 5 2
1 2 2
0 1 2
1 0
Para a parte fracionária deve-se fazer a multiplicação repetida apresentada a seguir.
0,3 x 2 = 0,6
0,6 x 2 = 1,2
0,2 x 2 = 0,4
0,4 x 2 = 0,8

0,8 x 2 = 1,6

0,6 x 2 = 1,2 (a transformação não é exata)

A parte inteira do número equivale a “10100” e a parte fracionária a “010011...”. Assim tem-se
ð (20,3)10 = (10100,010011...)2.

XI.1.3 Operações Aritméticas nos Sistemas Posicionais


As operações são essencialmente as mesmas feitas com aritmética decimal. A seguir serão
detalhados os processos de adição e subtração. A multiplicação pode ser tomada como uma seqüência
de adições e a divisão como uma seqüência de subtrações.

XI.1.3.1 Adição
Regra: “A adição em um sistema posicional de base R é feita alinhando-se inicialmente os dígitos de
igual valor posicional de ambos os números. Feito isso deve-se começar a somar os dígitos de
valor posicional correspondentes, a partir dos dois dígitos mais à direita. Quando a adição de
dois dígitos não ultrapassar o valor do maior dígito do alfabeto não há problema e o resultado
pode ser expresso pelo dígito correspondente a soma. Se a adição dos dígitos for maior que
o maior dígito da base deve-se verificar em quantas vezes a base é ultrapassada. Este valor
deve ser propagado para a próxima coluna (à esquerda) onde será adicionado ao resultado
da adição correspondente. Na coluna anterior deve ficar apenas o resto da operação”.
Exemplo 12: Adicionar (1382)10 e (2496)10.
1 3 8 2
2 4 9 6 Os dígitos de mesmo valor posicional estão alinhados. O peso do 2 de 1382 é
100 e o do 6 de 2496 também é 100.
1 3 8 2
2 4 9 6
8 A soma dos dígitos de mesmo valor posicional pode ser expressa com um
dígito da base 10 que é o dígito oito. Deve-se então passar a próxima coluna à
esquerda.
1
1 3 8 2
2 4 9 6
7 8 A soma de 8 e 9 ultrapassa o valor do maior dígito da base que é 9. Deve-se
então ver de quantas vezes a base foi ultrapassada: 8 + 9 = 17 = 10 + 7, ou
seja, 17 contém uma vez a base mais sete unidades (o resto). Na coluna deve
ficar apenas o resto (7) e o número de vezes que a base está contida em 17
(uma vez) deve ser transportada para ser adicionada na próxima coluna. Assim,
8 + 9 = 17, fica 7 e vai 1, e assim por diante.
Desta maneira tem-se que o resultado da adição de 1382 e 2496 é 3878. Um procedimento
análogo deve ser utilizado para qualquer base.
Exemplo 13: Adicionar (1011)2 e (1001)2.
1 0 1 1
1 0 0 1
? A soma 1 + 1 é igual a dois, ou seja, 1 + 1 = 2 = 2 + 0. A base está contida
uma vez em 2 e assim fica 0 e vai 1. A seguir é apresentada a finalização da
operação.
1 1 1
1 0 1 1
1 0 0 1
1 0 1 0 0 Assim tem-se que (1011)2 + (1001)2 = (10100)2.

XI.1.3.2 Subtração
Embora a subtração em uma base R genérica possa ser efetuada da mesma maneira utilizada
para a base 10, neste texto este processo não será utilizado, pois na prática, em sistemas digitais, as
operações de subtração são feitas eletronicamente por processos aditivos. Ao invés de realizar, por
exemplo, a subtração 8 – 5, uma máquina digital irá procurar a quantidade que deve ser adicionada ao
subtraendo (5) para obter o minuendo (8). Esta quantidade logicamente é 3.
Este processo é denominado de Subtração por Complementos. No sistema binário, objeto de
estudo deste capítulo, pode-se definir dois tipos de complementos e conseqüentemente dois processos
de subtração por complemento. Os dois tipos de complementos são o Complemento de 1 e o
Complemento de 2. A seguir cada um destes procedimentos é especificado.
Complemento de 1: o complemento de 1 de um número binário é obtido trocando-se cada dígito 1
por zero e vice-versa.
Exemplo 14: Obter o complemento de 1 de (10111)2.
C1(10111)2 = (01000)2 (notação para complemento de 1)
Complemento de 2: o complemento de 2 de um número binário é obtido trocando-se inicialmente
todos os zeros por uns e vice-versa. A seguir, deve-se adicionar 1 ao número
obtido. O resultado desta soma será o complemento de 2 do número dado.
Exemplo 15: Obter o complemento de 2 de (10110)2.
C2(10110)2 = (01001)2 + 1 = (01010)2 (notação para complemento de 2)

XI.1.3.2.1 Subtração Utilizando a Técnica do Complemento de 1


Regra: “O minuendo é somado ao complemento de 1 do subtraendo. O bit que se propaga após a
última coluna da adição é adicionado ao bit menos significativo do resultado da adição”.
Exemplo 16: Efetuar a seguinte operação (11011)2 - (10100)2.
Passo 1: obter o complemento de 1
C1(10100) = 01011
Passo 2: somar o minuendo com C1(subtraendo)
1 1 1
1 1 0 1 1+
0 1 0 1 1
1 0 0 1 1 0
bit que se propaga após a última coluna de adição e que deve ser adicionado ao bit
menos significativo do resultado da adição, ou seja, 00110 + 1 = 00111. Assim, o
resultado de (11011)2 - (10100)2. é igual a (00111)2, ou seja, 27 – 20 = 7.

XI.1.3.2.2 Subtração Utilizando a Técnica do Complemento de 2


Regra: “O minuendo é somado ao complemento de 2 do subtraendo. O bit que se propaga após a
última coluna da adição é desprezado”.
Exemplo 17: Efetuar a seguinte operação (11011)2 - (10100)2.
Passo 1: obter o complemento de 2
C2(10100) = 01011 + 1 = 01100
Passo 2: somar o minuendo com C2(subtraendo)
1
1 1 0 1 1+
0 1 1 0 0
1 0 0 1 1 1
bit que se propaga após a última coluna de adição e que é desprezado. Assim,
o resultado de (11011)2 - (10100)2. é igual a (00111)2, ou seja,
27 – 20 = 7.

XI.2 Álgebra de Boole


A álgebra de Boole ou álgebra booleana é a álgebra dos circuitos lógicos e recebe esta
denominação em homenagem a George Simon Boole (1815 - 1864) que estabeleceu suas bases por
volta de 1854.
A álgebra booleana fundamenta-se nos princípios da lógica formal, uma área de estudo da
filosofia. Os primeiros trabalhos de que se tem notícia sobre a lógica formal foram apresentados por
Aristóteles (384 - 322 AC) em seu tratado “De Interpretatione”.
Ao estudar os trabalhos de Aristóteles, Boole percebeu que poderia estabelecer um conjunto
de símbolos matemáticos para substituir certas afirmações da lógica formal criando desta maneira uma
álgebra aplicável ao raciocínio lógico sobre o relacionamento entre sentenças isoladas. As conclusões
de Boole foram comunicadas no texto “Uma Análise Matemática da Lógica” em 1854.
O trabalho de Boole permaneceu no esquecimento até 1938 quando o matemático Claude B.
Shannon mostrou que o mesmo poderia ser utilizado para descrever a operação de equipamentos de
comutação telefônica. As observações de Shannon foram divulgadas no trabalho “Uma Análise
Simbólica de Relés e Circuitos de Comutação”.
Atualmente a álgebra booleana é um sistema matemático aplicável ao projeto de circuitos
lógicos. Ela permite que o objetivo de um circuito digital seja estabelecido em termos lógicos.

XI.2.1 Definição da Álgebra de Boole


A álgebra booleana é um sistema matemático composto por um conjunto de operadores,
regras, postulados e teoremas como qualquer álgebra. A álgebra booleana trabalha também com
variáveis e funções. A diferença em relação à álgebra comum está no fato de que tanto uma variável
como uma função booleana só pode assumir dois únicos valores, zero (0) ou um (1). As variáveis
booleanas serão representados por letras maiúsculas, A, B, C, D, ... e as funções pela notação
f ( A, B, C , D, K) .
Os operadores da álgebra booleana são dois: o operador “E” ou “AND” simbolizado por (.) e
o operador “ou” ou “OR” simbolizado por (+). A operação “AND” é também conhecida por produto
lógico e a operação “OR” por soma lógica, muito embora sejam conceitualmente diferentes das
operações de soma e produto da álgebra comum. Na álgebra de Boole as operações (.) e (+)
correspondem, respectivamente, à intercessão e união da teoria de conjuntos.

XI.2.2 Operações Fundamentais com Variáveis Booleanas

XI.2.2.1 Operação “E” (AND)


“A operação lógica “E” (and) é aquela na qual o resultado somente é 1 se todas as variáveis de
entrada também estiverem no estado lógico 1”. A função lógica “E” (and) para duas variáveis de
entrada é representada como:

f ( A, B ) = A . B

Abaixo se apresenta a tabela verdade da função E para duas variáveis de entrada. A tabela
verdade é uma tabela que mostra a resposta da função a todas as possíveis combinações das variáveis
de entrada.

A B f ( A, B ) = A . B
0 0 0
0 1 0
1 0 0
1 1 1

Normalmente quando se representa a operação E entre duas ou mais variáveis elimina-se o


ponto da representação simbólica:

A. B . C ≡ ABC

XI.2.2.2 Operação “OU” (OR)


A operação “OU” (OR) se divide em duas outras operações que são “OU INCLUSIVO” ou
simplesmente “OU” e “OU EXCLUSIVO” algumas vezes denominada “OU-EX”.
Operação OU Inclusivo: “a operação lógica OU Inclusivo ou apenas OU (OR) é aquela na qual o
resultado é 1 se pelo menos uma das variáveis estiver no estado lógico 1”.
A função lógica e a tabela verdade para a operação lógica OU para duas
variáveis de entrada são representadas abaixo.
f ( A, B) = A + B
A B f ( A, B) = A + B
0 0 0
0 1 1
1 0 1
1 1 1

Operação OU Exclusivo: “a operação lógica OU Exclusivo entre duas variáveis A e B é aquela na


qual o resultado é 1 se uma e somente uma das duas variáveis estiver no
estado lógico “1”. A função lógica e a tabela verdade para a operação
lógica OU Exclusivo são representadas abaixo. Deve-se ressaltar que a
operação OU-EX deve possuir sempre duas variáveis de entrada.

f ( A, B) = A ⊕ B

A B f ( A, B) = A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

XI.2.2.3 Operação Complemento (Negação)


“A operação de complementação de uma variável consiste simplesmente na troca do valor
lógico da referida variável”. A função lógica e a tabela verdade para a operação lógica Complemento
são representadas abaixo.

f ( A) = A

A f ( A) = A
0 1
1 0
XI.2.3 Postulados da Álgebra de Boole
Ao se considerar as relações entre as variáveis booleanas pode-se estabelecer para a álgebra
de Boole os nove postulados apresentados abaixo. O significado dos postulados pode ser entendido
facilmente ao se fazer uma associação com a Teoria dos Conjuntos.
Variável ð conjunto
Operador (.) ð intercessão
Operador (+) ð união
Complementação ð complementação do conjunto
1 ð conjunto universo
0 ð conjunto vazio

P.1 ð A = 1 ou A = 0 P.5 ð 0+0=0


P.2 ð 1.1=1 P.6 ð 0+1=1=1+0
P.3 ð 1.0=0 P.7 ð 1+1=1
P.4 ð 0.0=0 P.8 ð 1= 0
P.9 ð 0= 1
Exemplo 18: No postulado P.3 tem-se 1.0 = 0, ou seja, o conjunto universo interceptado com o vazio
dá o vazio.
Exemplo 19: No postulado P.7 tem-se 1 + 1 = 1, ou seja, o conjunto universo unido com ele mesmo
dá o próprio conjunto universo.

XI.2.4 Teoremas da Álgebra de Boole


Tomando por base os postulados introduzidos acima se apresenta a seguir uma seqüência de
teoremas. Os teoremas da álgebra de Boole listados a seguir são utilizados para simplificar expressões
lógicas e para obter expressões equivalentes. Duas expressões são equivalentes quando elas têm o
mesmo valor lógico para as mesmas combinações de variáveis.
T.1-) Propriedade de Intercessão

A . 1 = A A + 0 = A
T. 1.a -  T. 1.b - 
A.0 = 0 A + 1 = 1
T . 2 - Propriedade da Tautologia
T . 2 . a - {A . A = A T . 2 . b - {A + A = A
T . 3 - Propriedade dos Complementos

T . 3 . a - {A . A = 0 T . 3 . b - {A + A = 1
T . 4 - Propriedade da Dupla Negação

T.4 - A = A
T . 5 - Propriedade Comutativa
T . 5 . a - {A . B = B . A T . 5 . b - {A + B = B + A
T . 6 - Propriedade associativa
T . 6 . a - { A B C = A (BC) = (A B )C
T . 6 . b - { A + B + C = A + (B + C) = (A + B ) + C
T . 7 - Propriedade Distributiva
T . 7 . a - { AB + AC = A(B + C) , como na álgebra clássica
T . 7 . b - {(A + B) (A + C) = A + BC atenção: diferente da álgebra clássica. É válido
ao se raciocinar pela Teoria dos Conjuntos.
T . 8 - Propriedade da Absorção

 A + AB = A  A (A + B) = A
 A + AB = A + B  A(A + B) = AB
 
T. 8.a -  T. 8.b - 
 (A + B) (B) = AB  AB + B = A + B
(A + B) (B) = AB AB + B = A + B

T . 9 - Lei de DE MORGAN (Complementação de Expressões)

{
T . 9 . a - AB = A + B {
T. 9. b - A+B=A B
Os Teoremas da álgebra de Boole são facilmente compreendidos ao se fazer uma associação
com a Teoria dos Conjuntos utilizada quando da apresentação dos postulados.
A principal utilização dos teoremas da álgebra de Boole é dada pela simplificação de
expressões Booleanas. Entretanto como serão apresentados posteriormente métodos mais simples de
minimizar (simplificar) expressões booleanas este texto não abordará em detalhes os teoremas.
Exemplo 20: Demonstrar usando o método da tabela verdade os seguintes teoremas, a) T.5.a e
b) T.7.b.

a) A B AB BA Como já foi dito duas ou mais expressões são equivalentes


0 0 0 0 quando tem as mesmas respostas para as mesmas
0 1 0 0 combinações de variáveis. As respostas do produto AB são
1 0 0 0 as mesmas do produto BA, para as mesmas combinações de
1 1 1 1 estados lógicos das variáveis A e B.

b) (A + B) (A + C) = A + BC ð deve-se lembrar que com 3 variáveis são possíveis 8 combinações.


A B C A+B A+C BC (A+B) (A + C) A + BC
0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0
0 1 0 1 0 0 0 0
0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1
1 0 1 1 1 0 1 1
1 1 0 1 1 0 1 1
1 1 1 1 1 1 1 1

Exemplo 21: Obter o complemento da seguinte expressão, (A + B + C + 1) (B + AC)


A complementação de uma expressão é obtida através de uma extensão da lei de DE MORGAN.
Regras: a) Trocam-se todos os “.” por “+” e vice-versa
b) Trocam-se todos os 0 por 1 e vice-versa
c) Complementa-se cada literal
d) Deve-se respeitar a ordem das operações da expressão original.

( A + B + C + 1))( B + AC) = ( A + B + C + 1) + ( B + AC) =


( ) [ ( )]
= A. B.C . 1 + B. A + C = A . B. C. 0 + B . (A + C )
Pode-se simplificar esta expressão lembrando o teorema T.1.a (A . 0 = 0) e assim o resultado é:
B . (A + C)

XI.3 Circuitos Combinacionais


Os circuitos digitais básicos podem ser agrupados em duas classes bem definidas que são:
Circuitos Combinacionais e Circuitos Seqüenciais. Os circuitos digitais mais complexos apresentam
por sua vez, uma parte que se refere à lógica combinacional e outra à lógica seqüencial sendo que nem
sempre esta divisão fica claramente definida. Tanto os circuitos combinacionais como os circuitos
seqüenciais aceitam entradas binárias e tem saídas binárias.
Os Circuitos Combinacionais são aqueles nos quais o estado de uma saída depende única e
exclusivamente do estado lógico das entradas naquele instante.
Os Circuitos Seqüenciais são aqueles nos quais o estado lógico de uma saída é função não
somente do estado lógico das entradas naquele instante mas também dos estados lógicos anteriores.
Isto quer dizer que os circuitos seqüenciais apresentam a capacidade de memória já que armazenam
eventos anteriores que influirão nas respostas presentes. A diferença entre os dois tipos de circuitos
está justamente neste detalhe: os circuitos combinacionais não armazenam informação, apenas tomam
decisões enquanto que os circuitos seqüenciais são estruturas capacitadas a memorizar eventos e usá-
los para influir nas respostas a excitações de entradas. Neste texto apenas os circuitos combinacionais
serão abordados.
Em termos de blocos pode-se representar cada um dos circuitos da seguinte maneira:

Entradas Circuito Saídas


Binárias Combinacional Binárias

Entradas Saídas
Binárias Circuito Binárias
Sequencial

Realimentação Binária

Um circuito lógico de um modo geral pode ser representado através de uma função booleana
na qual as variáveis estão associadas às entradas binárias. Esta função por outro lado descreve a saída
deste circuito. Foi apresentado anteriormente que é possível, através do uso dos Postulados e
Teoremas da Álgebra de Boole, simplificar uma expressão lógica. Isto implica em dizer também que
quando se tem um circuito lógico é possível a obter-se outros mais simples que realizam a mesma
função. Em suma: a simplificação de uma expressão booleana está relacionada com a simplificação do
circuito lógico associado.
Os circuitos lógicos são construídos pela interconexão de cinco blocos lógicos básicos que
efetuam as funções: AND, OR, NOT (complemento), NAND (a ser definida) e NOR (a ser definida).
Estes blocos lógicos (também chamados de portas lógicas) são obtidos através da integração de
circuitos eletrônicos analógicos.

XI.3.1 Definição dos Blocos Lógicos Básicos


A seguir é dada a definição de cada bloco lógico básico incluindo-se também a função, o
símbolo e a tabela verdade.

XI.3.1.1 Bloco AND


O bloco lógico AND é aquele que realiza a função E, ou seja, tem saída no estado lógico 1
apenas quando todas as entradas também estiverem neste nível lógico.
Símbolo:
A
B
Função:
.
.

f ( A, B, C ,K, Z ) = ABC K Z
.
Z
Tabela Verdade (Para Duas Variáveis):

A B f ( A, B ) = AB
0 0 0
0 1 0
1 0 0
1 1 1

XI.3.1.2 Bloco OR
O bloco lógico OR é aquele que realiza a função OU ou seja tem saída no nível lógico 0 apenas
quando alguma das entradas também estiver neste nível lógico (lembrar que se trata da função OU-
Inclusivo).
Símbolo: Função:

f ( A, B, C ,K, Z ) = A + B + C + K + Z
A
B .
.
.
Z

Tabela Verdade (Para Duas Variáveis):

A B f ( A, B) = A + B
0 0 0
0 1 1
1 0 1
1 1 1

XI.3.1.3 Bloco NOT (mais conhecido como inversor)


O bloco lógico inversor é aquele que realiza a função de complementação de uma variável ou
função. O mesmo tem apenas uma entrada (a variável da função a ser complementada) e uma saída
onde se obtêm o complemento (negação) da entrada.
Símbolo: Função:
A f ( A) = A

Tabela Verdade:

A f ( A) = A
0 1
1 0

XI.3.1.4 Bloco NAND


O bloco lógico NAND é simplesmente um bloco AND cuja saída passa por um inversor. Desta
maneira a saída de um bloco NAND estará no nível lógico 0 somente quando todas as entradas
estiverem no nível lógico 1.
Símbolo: Função:
A

f ( A, B, C ,K, Z ) = ABC K Z = A + B + C + K + Z
B .
.
.
Z

Tabela Verdade (Para Duas Variáveis):

A B f ( A, B ) = AB
0 0 1
0 1 1
1 0 1
1 1 0

XI.3.1.5 Bloco NOR


O bloco lógico NOR é simplesmente um bloco OU cuja saída passa por um inversor. Desta
maneira a saída de um bloco NOR está no nível lógico 1 somente quando todas as entradas estiverem
no nível lógico 0.
Símbolo: Função:
A

f ( A, B, C ,K , Z ) = A + B + C + K + Z = A B C K Z
B .
.
.
Z

Tabela Verdade (Para Duas Variáveis):

A B f ( A, B) = A + B
0 0 1
0 1 0
1 0 0
1 1 0

XI.3.1.6 Bloco OU-EX (ou exclusivo)


O bloco OU-EX realiza a função OU-Exclusivo. Rigorosamente falando, o mesmo não pode
ser tomado como um bloco básico já que a função OU-EX pode ser implementada pela combinação
de dois blocos AND e um bloco OR. No entanto são disponíveis circuitos integrados em um único
bloco com esta função. A saída de um bloco OU-EX está no estado lógico 1 apenas quando uma e
apenas uma de suas duas entradas estiver no nível lógico 1.
Símbolo: Função:
A
f ( A, B) = A ⊕ B
B
Tabela Verdade:

A B f ( A, B ) = A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

XI.3.2 Implementação de Circuitos Combinacionais


A seqüência básica para o desenvolvimento de um projeto usando lógica combinacional deve
seguir os seguintes passos:
a) Obtenção de uma tabela verdade que sintetize a operação que se quer do circuito;
b) Obtenção da tabela verdade da função booleana que o circuito realiza;
c) Simplificação da função booleana;
d) Montagem do circuito lógico a partir da função booleana simplificada do circuito.
O que deve ser feito para a realização do passo (a) já foi apresentado. O mesmo pode ser dito
para o passo (c), já que as minimizações (simplificações) podem ser feitas através do trabalhoso
processo de utilização dos postulados e teoremas da álgebra de Boole. Neste item será apresentado
como se obter uma função lógica de uma tabela verdade e também como implementar o circuito
associado à função lógica obtida.
Para a obtenção da função lógica será utilizada a Fórmula de Interpolação de Lagrange. Esta
fórmula pode ser apresentada em duas versões que permitem que a função seja dada ou como uma
soma de produtos ou como um produto de somas. Para a versão soma de produtos a fórmula de
Lagrange é dada por:

f ( A, B, C ,K , Y , Z ) = f (0,0,0, K ,0,0)( A B C KY Z ) + f (0,0,0, K ,0,1)( A B C KY Z ) +


f (0,0,0,K ,1,0)( A B C KYZ ) + K + f (1,1,1, K,1,0)( ABC KYZ ) +
f (1,1,1, K ,1,1)( ABC KYZ )

A versão produto de somas é dada por:

f ( A, B, C, K, Y , Z ) = [ f ( 0,0,0, K,0,0)( A + B + C + KY + Z )].


[ f ( 0,0,0, K,0,1) ( A + B + C + K + Y + Z )]. K.
f (1,1,1, K,1,0) ( A + B + C + K + Y + Z ).
f (1,1,1, K,1,1)( A + B + C + K + Y + Z )

Exemplo 22: Um sistema eletrônico deve controlar a operação de três máquinas em uma indústria de
acordo com condições pré-estabelecidas. Se as condições falharem um alarme deve
soar em uma sala de controle. As condições são:
1. As três máquinas não podem operar ao mesmo tempo sob risco de sobrecarga do
sistema;
2. As três máquinas não podem parar ao mesmo tempo;
3. A máquina A não pode operar ao mesmo tempo em que a máquina B;
4. A máquina B não pode operar ao mesmo tempo em que a máquina C.
Pede-se obter a função lógica que descreva o controle de alarme.
Solução: do enunciado do problema pode-se verificar que são três máquinas e uma saída de controle
de alarme F. Logo se deve fazer uma tabela verdade de três variáveis
(23=8 estados).
A B C F Na apresentação desta tabela foi suposto o seguinte:
0 0 0 1 • Máquina funcionando ð 1.
0 0 1 0
0 1 0 0 • Máquina parada ð 0.
0 1 1 1 • Alarme funcionando ð 1.
1 0 0 0 • Alarme parado ð 0.
1 0 1 0
1 1 0 1
1 1 1 1

Na descrição da tabela verdade pode-se observar tanto as respostas de combinações que


acionam o alarme, isto é, aquelas que levam a F = 1, como as respostas de combinações que não
acionam o alarme, ou seja, aquelas que levam a F = 0.
Para a primeira opção (F=1 – f ) trabalha-se com a primeira versão da fórmula de Lagrange
enquanto que com a segunda opção (F=0 – f ) tem-se a segunda versão da fórmula de Lagrange. A
seguir apresenta-se o desenvolvimento para cada uma das versões.
1ª Versão da Fórmula de Lagrange: Como se tem 3 variáveis existirão 23 = 8 possíveis combinações
das mesmas. Logo a fórmula de Lagrange neste caso tem 8 termos (aqueles da tabela):

f(0,0,0) = 1 ð ABC
f(0,0,1) = 0 ð ABC
f(0,1,0) = 0 ð A BC
f(0,1,1) = 1 ð A BC
f(1,0,0) = 0 ð AB C
f(1,0,1) = 0 ð AB C
f(1,1,0) = 1 ð ABC
f(1,1,1) = 1 ð ABC

Respostas de cada uma das 8 Produtos lógicos formados pelas


possíveis combinações das variáveis de entrada, associados
variáveis de entrada a cada uma das 8 combinações
de estados lógicos e montados
de tal modo que levem a um
valor 1. Por exemplo, para a
combinação 000, o produto
associado é A B C , ou seja,
0 . 0 . 0 = 1 . Para a combinação
010 o produto é A BC pois
0 .1. 0 = 1 e assim por diante.
A fórmula de Lagrange é a soma dos produtos de cada termo produto com sua resposta
correspondente, ou seja:

f ( A, B, C ) = 1. ( A B C ) + 0 . ( A B C ) + 0 . ( A B C ) + 1 . ( A BC ) + 0 . ( AB C ) +
0 . ( AB C ) + 1 . ( ABC ) + 1 . ( ABC )
∴ f ( A, B, C ) = A B C + A BC + ABC + ABC

Na prática basta fazer o seguinte: identificar os “1´s” da tabela verdade e montar para esta linha
um produto das variáveis de entrada de tal modo que o resultado seja 1. Depois basta somar estes
termos produto para montar a função.

2ª Versão da Fórmula de Lagrange: deve-se localizar os “0´s” da tabela verdade e montar nesta linha
uma soma das variáveis de entrada de tal modo que o resultado seja 0. Depois basta
multiplicar estes termos soma para obter a função.
Neste exercício, a segunda linha da tabela verdade apresenta uma resposta f=0. O estado
lógico das variáveis nesta linha é 001. Logo a soma das variáveis que leva ao estado 0 nesta
linha é A + B + C pois ao se substituir A=0, B=0 e C=1, tem-se
A + B + C = 0 + 0 + 1 = 0 . Adotando o mesmo procedimento nas outras linhas com saída 0
tem-se:

f ( A, B, C ) = ( A + B + C ) . ( A + B + C) . ( A + B + C ) . ( A + B + C )

Esta fórmula é equivalente a soma dos produtos obtida anteriormente.

Para a implementação do circuito lógico associado à função, basta seguir a hierarquia lógica da
própria função, usando os símbolos correspondentes. Assim para a primeira função,
f ( A, B, C ) = A B C + A BC + ABC + ABC o circuito equivalente é dado por:

A B C

f (A,B,C)

Tem-se para a figura acima uma soma de quatro termos (Bloco OR de quatro entradas), sendo
que cada termo é o produto de três variáveis (4 blocos AND de três entradas) com alguns blocos
AND tendo entradas negadas (Blocos Inversor).
A segunda função f ( A, B, C ) = ( A + B + C ) . ( A + B + C ) . ( A + B + C ) . ( A + B + C ) é
implementada da seguinte maneira:
A B C

f (A,B,C)

Tem-se para a figura acima um produto de quatro termos (Bloco AND de quatro entradas),
sendo que cada termo é dado por uma soma de três variáveis (Bloco OR de três entradas) com alguns
blocos OR tendo algumas entradas negadas (Blocos Inversor).

Exemplo 23: Dada a função lógica abaixo, implemente um circuito lógico que a realize.
f ( A, B ) = A B + AB
Esta função é composta de um bloco OR de duas entradas. Cada uma destas entradas
é a saída de um bloco AND que tem também duas entradas (algumas negadas). A
implementação, portanto é dada por:
A B

f (A,B)

XI.3.3 Formas Canônicas das Funções Booleanas


Uma função é expressa em uma Forma Canônica quando cada termo produto ou cada termo
soma daqueles que a formam é um produto ou uma soma, respectivamente, que envolve todas as
variáveis do problema. As funções dadas abaixo são formas canônicas:
F (A, B, C) = ABC + AB C + ABC
e
F (A, B, C) = (A + B + C) (A + B + C) ( A + B + C) ( A + B + C)
A primeira é uma função de três variáveis. A, B, C e cada termo produto contém todas as três
variáveis. Ela é uma Forma Canônica de Soma de Produtos.
A segunda função também é de três variáveis e cada termo soma contém as mesmas três
variáveis. Ela é uma Forma Canônica de Produto de Somas.
É claro que a extração da função da tabela verdade é sempre feita em sua forma canônica (veja
fórmulas de Lagrange). Logo as formas canônicas são uma expressão direta da tabela verdade. Tendo
uma função na forma canônica é sempre possível escrever a tabela verdade correspondente.
Os termos produtos de uma função na forma canônica de soma de produtos são também
denominadas mintermos. Esta denominação se deve ao fato de o produto lógico ser análogo à
intercessão e a intercessão de vários conjuntos é um conjunto menor (min) ou igual ao menor dos
conjuntos envolvidos na operação.
Os termos soma de uma função na forma canônica de produto de somas são denominados
maxitermos. A soma lógica é análoga a união da teoria dos conjuntos e a união de vários conjuntos é
um conjunto maior (maxi) ou igual ao maior dos conjuntos envolvidos na operação.
Em termos gerais pode-se dizer que:
• “Minitermo é produto lógico de variáveis feito de tal modo que a combinação de estados
correspondente leve ao estado lógico 1”.
• “Maxitermo é uma soma lógica de variáveis feita de tal modo que a combinação de
estados correspondentes leve ao estado lógico 0”.
Uma combinação de estados lógicos de um determinado universo de variáveis tem sempre um
mintermo ou um maxitermo associado. Como existem 2n possíveis combinações de estados para “n”
variáveis existem 2n mintermos e também 2n maxitermos. Para 3 variáveis existem 23 = 8 combinações
de estados lógicos e pode-se portanto escrever 8 mintermos e 8 maxitermos.
Como exemplo pode-se analisar o problema para três variáveis. Este caso apresenta 8
possíveis combinações de estados e portanto 8 possíveis mintermos e maxitermos. A tabela abaixo
apresenta estes mintermos e maxitermos.

A B C mintermos (m) maxitermos (M)


0 0 0 m0 = A B C M0 = A + B + C
0 0 1 m1 = A B C M1 = A + B + C
0 1 0 m2 = A B C M2 = A + B + C
0 1 1 m3 = A B C M3 = A + B + C
1 0 0 m4 = A B C M4 = A + B + C
1 0 1 m5 = A B C M5 = A + B + C
1 1 0 m 6 = A BC M 6
= A + B+C
1 1 1 m7 = A B C M7 = A + B + C

Pode-se notar que:


a) é utilizado “m” para mintermo e “M” para maxitermo.
b) os índice (0, 1.....7) indicam o número decimal associado à combinação binária que o
mintermo ou o maxitermo representa.
c) o mintermo m4 é um produto lógico que, com as variáveis A=1, B=0 e C=0 (4 em binário)
sendo substituídas fornece como resultado 1: A B C ≡ 1 . (0) . (0) = 1
d) maxitermo M4 é uma soma lógica que, com as variáveis A=1, B=0 e C=0 (4 em binário)
sendo substituídas fornece como resultado 0: A + B + C ≡ ( 1 ) + (0) + (0) = 0
Deve-se observar também o fato de que o complemento de um mintermo gera o maxitermo
correspondente e vice-versa:
m4 = A B C = A + B + C = M4
logo: m i = M i e M i = m i
De posse das definições de mintermo e maxitermo pode-se estabelecer uma notação concisa
para as funções booleanas. Basta indicá-las como um somatório (Σ) de mintermos ou um produtório
(Π) de maxitermos. Deve-se lembrar que a função é extraída da tabela verdade fazendo-se ou a soma
dos mintermos correspondentes a cada resposta de saída igual a 1 ou o produto dos maxitermos
correspondentes a cada resposta de saída igual a 0.

Exemplo 24: Obter as funções booleanas nas duas formas canônicas que representam a tabela
verdade abaixo. Utilize a notação concisa.

A B C D
0 0 0 0 0
1 0 0 1 0
2 0 1 0 1
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 0
7 1 1 1 0

f ( A, B, C ) = m2 + m3 + m5 = ∑ 2,3,5

ou
f ( A, B, C ) = M 0 . M 1 .M 4 .M 6 .M 7 = ∏ 0,1,4,6,7

As funções lógicas que não se apresentam na forma canônica são ditas estar em uma Forma
Reduzida.

Exemplo 25: f ( A, B, C ) = ( A) + ( B C ) é uma forma reduzida porque no primeiro termo da soma


faltam as variáveis B e C e no segundo termo falta a variável A.

Exemplo 26: f ( A, B, C ) = ( A + B) . ( C ) é uma forma reduzida porque no primeiro termo soma falta
a variável C e no segundo termo faltam as variáveis A e B.

Uma função pode ser levada da forma reduzida à forma canônica através de dois artifícios que
são apresentados nos dois exemplos que seguem.

Exemplo 27 – Artifício 1: Dada a função abaixo se pede que se encontre sua forma canônica e que se
recomponha a partir desta forma canônica sua tabela verdade.
f ( A, B, C ) = ( A) + ( B C )
Sabe-se que o produto de qualquer variável ou função por 1 não a altera. Então:
A.1 = A e
( B C). 1 = ( B C )
Sabe-se também que a soma de qualquer variável com seu complemento é igual a 1.
Então:
f ( A, B, C ) = A.1.1 + 1.B C = A.( B + B ).( C + C ) + ( A + A) B C
Aplicando a distributividade da soma em relação ao produto (T.7.a) tem-se:
f ( A, B, C ) = ABC + ABC + AB C + AB C + AB C + A B C que é uma forma
canônica. Esta forma canônica pode ser expressa também em função de seus
mintermos, ou seja:
f ( A, B, C ) = m7 + m6 + m5 + m4 + m1 = ∑ 7,6,5,4,1

Estes mintermos levam a função a 1, e assim pode-se construir a tabela verdade:

A B C f
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

De uma forma análoga poder-se-ia ter obtido a tabela verdade através dos maxitermos,
pois f ( A, B, C) = M 3 .M 2 .M 0 = ∏ 3, 2,0 .

Exemplo 28 – Artifício 2: Dada a função abaixo se pede que se encontre sua forma canônica e que se
recomponha a partir desta forma canônica sua tabela verdade.

f ( A, B, C ) = ( A + B ).C
Sabe-se que a soma de qualquer variável ou função com zero não a altera. Então:
A+ B + 0 = A+ B
C+0=C
Sabe-se também que a intercessão de qualquer variável ou função com o seu
complemento dá zero. Então:
A. A = 0 B .B = 0 C .C = 0
Assim tem-se que:
f ( A, B, C ) = ( A + B ).C = ( A + B + 0).( 0 + 0 + C ) = ( A + B + C.C ).( A. A + B.B + C )
Aplicando a distributividade do produto em relação à soma (teorema T.7.b) obtém-se:
f ( A, B, C ) = ( A + B + C ).( A + B + C ).( A. A + B + C ).( A. A + B + C )
f ( A, B, C ) = ( A + B + C ).( A + B + C ).( A + B + C ).( A + B + C ).( A + B + C ).( A + B + C )
Eliminando-se agora os termos redundantes ( A. A = 1 ) tem-se:
f ( A, B, C ) = ( A + B + C ).( A + B + C ).( A + B + C ).( A + B + C ).( A + B + C )
que está representado na forma canônica. Esta forma canônica pode ser expressa
também em função de seus maxitermos (levam a função a zero), ou seja:
f ( A, B, C ) = M 7 .M 5 .M 3 .M 1 .M 0 = ∏ 7,5,3,1,0

Assim a tabela verdade é dada por:

A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0

De uma forma análoga poder-se-ia ter obtido a tabela verdade através dos mintermos,
pois f ( A, B, C ) = m6 + m4 + m2 = ∑ 6,4,2 .

PROJETO: Deseja-se construir um circuito lógico para controlar os movimentos de uma ponte
rolante, que se restringem em movimento para a esquerda e movimento para a direita.

Os movimentos são controlados através de um painel que contém dois botões


normalmente abertos. Um deles serve para movimentar o carro da ponte para a
esquerda e o outro para a direita. Como medida de segurança, nas extremidades
devem ser instalados sensores de fim de curso. A seguir são apresentadas as variáveis
que devem ser controladas.
Variáveis de entrada:
E ð Botão que determina movimento para a esquerda
D ð Botão que determina o movimento para a direita
S e ð Sensor de fim de curso da extremidade da esquerda

S d ð Sensor de fim de curso da extremidade da direita


Variáveis de saída:
M e ð Motor ligado para a esquerda

M d ð Motor ligado para a direita


Determinação da lógica utilizada:
E = 1 ð Botão do movimento para a esquerda acionado
E = 0 ð Botão do movimento para a esquerda não acionado
D = 1 ð Botão do movimento para a direita acionado
D = 0 ð Botão do movimento para a direita não acionado
S e = 1 ð Sensor de fim de curso da esquerda acionado

S e = 0 ð Sensor de fim de curso da esquerda não acionado


S d = 1 ð Sensor de fim de curso da direita acionado

S d = 0 ð Sensor de fim de curso da direita não acionado


M e = 1 ð Motor ligado, tracionando para a esquerda

M e = 0 ð Motor desligado
M d = 1 ð Motor ligado, tracionando para a direita

M d = 0 ð Motor desligado
Pede-se determinar a tabela verdade e as expressões lógicas das duas saídas,
M d e M e assim como o circuito equivalente que deve ser montado com os
seguintes dispositivos 7404 (6 inversores) e 7411 (3 portas AND de 3
entradas).

7404 7411
1 1A VCC 14 1 1A VCC 14
2 1Y 6A 13 2 1B 1C 13
3 2A 6Y 12 3 2A 1Y 12
4 2Y 5A 11 4 2B 3C 11
5 3A 5Y 10 5 2C 3B 10
6 3Y 4A 9 6 2Y 3A 9
7 GND 4Y 8 7 GND 3Y 8
Entradas Saídas
E D Se Sd Me Md
0 0 0 0 0 0 0
1 0 0 0 1 0 0
2 0 0 1 0 0 0
3 0 0 1 1 0 0
4 0 1 0 0 0 1
5 0 1 0 1 0 0
6 0 1 1 0 0 1
7 0 1 1 1 0 0
8 1 0 0 0 1 0
9 1 0 0 1 1 0
10 1 0 1 0 0 0
11 1 0 1 1 0 0
12 1 1 0 0 0 0
13 1 1 0 1 0 0
14 1 1 1 0 0 0
15 1 1 1 1 0 0

Analisando os mintermos (função leva a 1) para a saída Me, tem-se:


M e = m8 + m9 = E . D . S e . S d + E . D . S e . S d
M e = E . D . S e . ( Sd + S d )
M e = E. D . Se

Analisando os mintermos (função leva a 1) para a saída Md, tem-se:


M d = m4 + m6 = E . D . S e . S d + E . D . S e . Sd
M d = E . D . Sd . ( S e + S e )
M d = E . D . Sd