Вы находитесь на странице: 1из 298

Fundamentos da Computação

Digital

Sistemas Numéricos
A representação de qualquer número na
base 10 é posicional, isto é, cada dígito
que o compõe assume um “peso”
dependendo da posição que ocupa na
representação.

2 1 0
794 = 7 x 10 + 9 x 10 + 4 x 10
Propriedade dos sistemas numéricos:
O número de dígitos usados no sistema é
sempre igual a base.
O maior digito é igual ao valor da base –1.
O valor que cada dígito assume na
notação de um número é ponderado e é
igual ao seu valor absoluto multiplicado pela
base elevada à posição relativa do dígito
menos 1.
Exemplos:

2 1 0
a) 4267 = (4 x 7 )+(2 x 7 )+(6 x 7 ) = 21610
3 2 1
b) 77778 = (7 x 8 ) + (7 x 8 ) + (7 x 8 )
0
+ (7 x 8 ) = 409510
3 2 1
c) 11012 = (1 x 2 ) + (1 x 2 ) + (0 x 2 )
0
+(1 x2 ) = 1310
CONVERSÃO ENTRE BASES:

Dado um numero N expresso em uma


base s achar sua representação na
base r .
Dois métodos :
divisões sucessivas
desenvolvimento posicional
a) Divisões sucessivas:
N r
B0 N1 r
B1 N2

Nm-1 r
Bm-1 Nm r
Bm 0
Bm = Nm
Se s>r os restos B obtidos já são os dígitos
procurados, ou Nr = Bm Bm-1 Bm-2 ..... B0

Se s < r os restos B devem ser primeiramente


convertidos para a base r
Demonstração:
Ns = N1 . r + B0
N1 = N2 . r + B1

Nm = 0 . r + B m
2
Ns = (N2. r + B1) r + B0 = N2. r + B1. r + B0
2
Ns = (N3. r + B2 ) r + B1. r + B0
m m-1
Ns = Bm. r + Bm-1. r .....+ B1. r + B0 = Nr
Exemplos:

a) s = 10 , Ns = 69 , r = 2 Nr = ?
69 2
1 34 2 Nr = 10001012
0 17 2
1 8 2
0 4 2
0 2 2
0
1 2
1 0
b) s = 2 , N2 = 1000101 , r = 10, Nr = ?
r = 1010 = 10102

‟ ‟ ‟ 1010
1000101
-1010 1 1 0 1010
111 0 0
-1010
Nr=(110)2(1001)2 = 6910
1001
110
b)Desenvolvimento posicional:

Dado Ns = Am.....A1 A0 , Nr é obtido avaliando


m
a expressão Nr = Am S +.....+A1 s + A0 no
sistema de base r.
Se s <r a expressão é avaliada
diretamente
Se s>r é necessário primeiramente
converter a base s e os dígitos A para a
base r
Exemplos:

a) s = 2 , Ns = 1110101 , r = 10 , Nr = ?
6 5 4 2
Nr = 1 x 2 + 1 x 2 +1 x 2 + 1 x 2 + 1 = 117
b) s = 10 , Ns = 117 , r = 2 , Nr = ?
2 1
Nr = 1 x (102) + 1 x (102) + 72
2
Nr = 1010 + 1010 + 111
Nr = 1100100 + 10001 = 1110101
Mudança de base de números reais:

Nr = NI + NF , onde
NI = An rn + ..... + A1 r1 + A0
-1 -2 -3
NF = A-1 r + A-2 r + A-3 r + ....

A parte fracionária de um número em


uma dada base corresponde sempre à
parte fracionária de sua representação
em uma outra base.
Cálculo dos dígitos A-1, A-2, A-3,...

Multiplicando NF por r temos:


-1 -2
r.NF = A-1 + A-2 r + A-3 r +.... , onde

A-1 é a parte inteira de r.NF


Subtraindo A-1 de r.NF e multiplicando
novamente por r a expressão resultante
-1
temos: r (r NF - A-1) = A-2 + A-3 r + ...
O processo continua até alcançar o
número de dígitos desejado na parte
fracionária.
Exemplo:
Converter 69,7110 para a base 2
NI=1000101 de um exemplo anterior
2 x (0,71) = 1,42 -> A-1 =1
2 x (0,42) = 0,84 -> A-2 =0
Resultado:
2 x (0,84) = 1,68 -> A-3 =1
2 x (0,68) = 1,36 -> A-4 =1 69,71 =
2 x (0,36) = 0,72 -> A-5 =0 1000101,1011012...
2 x (0,72) = 1,44 -> A-6 =1
Conferindo:
6 2 0 -1 -3 -4
1000101,101101 = 2 + 2 + 2 + 2 + 2 + 2 +
-6
+ 2 ... =

= 64 + 4 + 1 + 0,5 + 0,125 + 0,0625 +


+ 0,015625 = 69,703125
Relação entre as bases 2 , 8 e 16:

Além da base 2, as bases 8 e


principalmente a 16, são muito
importantes em computação pois, por
serem múltiplas da base 2, permitem
uma notação compacta de valores
binários.
A conversão de um numero binário
para o sistema octal ou hexadecimal
é imediata bastando para tal
partilhar convenientemente o
número binário já que:
3 4
8=2 16 = 2
Exemplo:

62,71 = 111110,1011012

(7 6 , 5 5)8
62,71 = 00111110,101101002
(3 E , B 4)16
Sistema Decimal
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 2 3 4 5 6 7 8 9 A B C D E F
Sistema Hexadecimal
Fundamentos da Computação
Digital

Adição e Subtração em
diversas bases
Adição:

Base 10:
Ex: (1)
6 7
+8 4
1 5 1
Base 10 : (1) (1)

Ex: (1)
6 7
6 7 + 8 4
+8 4 1 (15) (11)
1 5 1 - 10 10
1 5 1
Base 7 :
Ex: (1) (1)
2 57
+ 5 47
1 (8) (9)
- 7 7
(1 1 2)7
Base 8 :
Ex: (1) (1)
7 78
+ 7 78
1 (15) (14)
- 8 8
(1 7 6)8
Base 16 :

Ex: (1) (1)


6 B E16
+ 5 6 916
12 (18)(23)
- 16 16
(C 2 7)16
Base 16 :

Ex: (1) (1)


F 1 A16
+ E 0 916
1 (29) 2 (19)
- 16 16
(1 D 2 3)16
Base 2 (binário) :
Ex:
(1) (1) (1) (1) (1)
1 0 1 1 12
+ 1 1 0 1 12
1 (11) (10) (10) (11) (10)
- 10 10 10 10 10
(1 1 0 0 1 0)2
Base 2 (binário) :
Ex:

(1) (1) (1)


1 0 1 0 02
+ 1 1 1 0 12
(1 1 0 0 0 1)2
Subtração:
Base 10 :
Ex:
3 1
-2 4
Base 10 :
Ex: 2 (10)
3 +1
-2 4
Base 10 :
Ex: 2 (10)
3 +1
-2 4
0 7
Base 10 :
Ex:
5 +1 2
-3 7
1 5
Base 8 :
Ex:
7 58
- 3 48
(4 1)8
Base 8 :
Ex:
5 38
- 3 68
Base 8 :
Ex: 4 (10)8
(= 8+3 =11)
5 38
- 3 68
Base 8 :
Ex: 4 (10)8
(= 8+3 =11)
5 38
- 3 68
(1 5)8
Base 8 :
Ex:
6 0 18
- 4 2 58
(1 5 4)8
Base 8 :
Ex:
5 0 28
- 3 6 78
(1 1 3)8
Base 16 :
Ex:
6 3 A16
- 2 D 516
Base 16 :
Ex: 5 16+3=19
6 3 A16
- 2 D 516
Base 16 :
Ex: 5 16+3=19
6 3 A16
- 2 D 516
(3 6 5)16
Base 16 :
Ex:
2 0 016
+1 +1
- 1 E A16
(0 1 6)16
Base 16 :
Ex:
3 D C16
+1 +1
- 1 F E16
1 (13)(14)
(1 D E)16
Base 16 :
Ex:
B 0 A16
+1 +1
- 2 C C16
8 3 (14)
(8 3 E)16
Base 2 :
Ex:
1 1 0 0 1+1 02
+1 +1
- 1 0 1 1 0 12
0 0 0 1 0 12
Base 2 :
Ex:
1 1+1 0+1 0 +1 0+1 0 02
- 1 0 1 1 1 1 02
0 0 0 0 0 1 02
Representação em
“Complemento à Base”
 O Complemento de um número N em
uma dada base B é igual à diferença entre
o número e a próxima potência da base.
Ex: Base 10 Complemento a 10.
3
Número 734 Próxima potência 10 =1000

1000
-734
2 6 6 é o complemento a 10 de 734
Ex: Base 2 Complemento a 2.
4
Número 1011 Próxima Potência 2 =16=10000

10000
-1011
1 0 1 é o complemento a 2 de 1011
Ex:Base 2:Complemento a 2 de 101101

 Cálculo do complemento à base em


qualquer base é tedioso por causa dos
“vem-um”.
 Um alternativa mais confortável é
calcular o “complemento à base menos 1” e
depois somar 1 no resultado para obter o
complemento à base.
Ex: Base 10 “Complemento a 9” de 734

999
-734
2 6 5 (complemento a 9 de 734)
+1
2 6 6 (complemento a 10 de 734)
Ex:Base 2 “Complemento a 1” de 1011

1111
-1011
1 0 0 (complemento a 1 de 1011)
Ex: Base 2: Complemento a 1 de 1101011

 Observação importante:
Para obter o complemento a 1 de um
número basta inverter o número bit a bit.
Operações de subtração em qualquer base
podem ser feitas usando complemento à
base.
Ex: Base 10 913 - 734

91 3
-734
179
Ex: Base 10 913 - 734

91 3 999
-734 -734
179 265
+1
266
Ex: Base 10 913 - 734

91 3 999
-734 -734 91 3
+ 266
179 265
+1 1) 1 7 9
266
Ex: Base 2 11001–10011
Complemento a 2 do subtraendo 1 0 0 1 1

0 1 1 0 0 ( complemento a 1)
+1
0 1 1 0 1 (Complemento a 2)
Ex: Base 2 11001–10011
Complemento a 2 do subtraendo 1 0 0 1 1

0 1 1 0 0 ( complemento a 1)
+1 11001
0 1 1 0 1 (Complemento a 2) +01101
1)0 0 1 1 0
(Resultado)
Ex: Base 2 110110–101101

 Regra prática para obtenção do


complemento a 2:
Para se obter diretamente o complemento a
2 de um número basta percorrer o número
da direita para a esquerda repetindo-se os
dígitos zeros até encontrar o primeiro dígito
1(um), o qual deve ser mantido. Daí para a
frente todos os dígitos devem ser invertidos.
Ex: 1 0 1 0 0110
1001100 0110100
1100110 0011010

A vantagem de se representar números


negativos em notação complemento à 2
internamente ao computador é que todas
as operações de subtração ficam
transformadas em simples somas.
Representação de números com sinais

Supondo que os números tenham uma


largura interna de 8 bits (1 byte), ou seja,
eles são operados e armazenados em 8 bits.

7 0
MSB LSB

Bit de sinal
{ 0 - n º positivo
1 - n º negativo(em
comp. à 2)
 Em 8 bits é possível representar
256 diferentes números: de 00000000 a
8
11111111, já que 2 = 256.
 Com o bit mais significativo
representando o sinal, a gama de
números possíveis de serem
representados permanece a mesma
(256), só que agora metade negativa e
metade positiva.
(maior no positivo em 8 bits)
+127 0 1 1 1 1 1 1 1

-128 1 0 0 0 0 0 0 0
(menor no negativo em 8 bits)
Operações aritméticas com números com sinal

 Números positivos são submetidos na


forma “real” (natural).
Ex:
7 0
0 0 0 1 0 1 1 0 + 22
 Números negativos na forma
complemento a 2.
Ex:
7 0
1 1 1 0 1 0 1 0 - 22
 A partir daí todas as operações de
soma e subtração envolvendo números
com bits de sinal produzem diretamente
resultados consistentes ou seja, positivo
em forma “real”, e negativo em
complemento a 2.
Regras para adição e subtração de
números binários com sinal:
 A soma de dois números com mesmo
sinal produz um resultado com sinal comum.
 O resultado da soma de dois números de
sinais diferentes é a diferença entre seus
módulos e recebe sinal do maior.
 Para subtrair, mudar o sinal do
subtraendo e somá-lo ao minuendo verificadas
as regras acima.
Exemplos: Números 4 e 9:

Ex:
+ 4
(+) + 9
+13
Exemplos: Números 4 e 9:

Ex:
+ 4 00000100
(+) + 9 00001001
+13 0 0 0 0 1 1 0 1 (positivo)
Exemplos: Números 4 e 9:

Ex:
- 4
(+) - 9
-13
Exemplos: Números 4 e 9:

Ex:
- 4 11111100
(+) - 9 11110111
-13 1) 1 1 1 1 0 0 1 1 (negativo)
Exemplos: Números 4 e 9:

Ex:
- 4
(+) + 9
+ 5
Exemplos: Números 4 e 9:

Ex:
- 4 11111100
(+) + 9 00001001

+ 5 1) 0 0 0 0 0 1 0 1 (positivo)
Exemplos: Números 4 e 9:

Ex:
+ 4
(+) - 9
- 5
Exemplos: Números 4 e 9:

Ex:
+ 4 00000100
(+) - 9 11110111
- 5 1 1 1 1 1 0 1 1 (negativo)
Exemplos: Números 4 e 9:
Ex:

+ 9
(-) + 4
+ 5
Exemplos: Números 4 e 9:
Ex:

+ 9 00001001
(-) + 4 00000100

+ 5
Exemplos: Números 4 e 9:
Ex:

+ 9 00001001 00001001
(-) + 4 00000100 11111100
+ 5
1) 0 0 0 0 0 1 0 1
Exemplos: Números 4 e 9:
Ex:

+ 4
(-) + 9
- 5
Exemplos: Números 4 e 9:
Ex:

+ 4 00000100
(-) + 9 00001001
- 5
Exemplos: Números 4 e 9:
Ex:

+ 4 00000100 00000100
(-) + 9 00001001 11110111
- 5
11111011
Exemplos: Números 4 e 9:
Ex:

+ 4
(-) - 9
+13
Exemplos: Números 4 e 9:
Ex:

+ 4 00000100
(-) - 9 11110111
+13
Exemplos: Números 4 e 9:
Ex:

+ 4 00000100 00000100
(-) - 9 11110111 00001001
+13
00001101
Exemplos: Números 4 e 9:
Ex:

- 4
(-) + 9
- 13
Exemplos: Números 4 e 9:
Ex:

- 4 11111100
(-) + 9 00001001
- 13
Exemplos: Números 4 e 9:
Ex:

- 4 11111100 11111100
(-) + 9 00001001 11110111
- 13
1) 1 1 1 1 0 0 1 1
Overflow em operações aritméticas:
 O maior número positivo que se pode ser
armazenado em um registro de 8 bits é
+ 127 ( 0 1 1 1 1 1 1 1 ).
 Nas mesmas condições o menor
negativo é –128 (1 0 0 0 0 0 0 0).
 Se o resultado de alguma operação
aritmética exceder um dos números acima é
dito que uma condição de overflow ocorreu.
Esta se não detectada, acarreta erro.
A detecção de overflow
é simples e consiste em:

1) Há um “vai-um” propagado para o


bit de sinal sem “vai-um” saindo do
bit de sinal.
2) Há um “vai-um” propagado pelo bit
de sinal sem este ter recebido “vai-
um”.
Fundamentos da Computação
Digital

Álgebra de Boole
Álgebra de Boole

 Apresentada em 1854 por George


Boole com intuito de formalizar
matematicamente o pensamento lógico. É
a álgebra do sistema binário.
 Uma variável lógica só pode assumir
dois estados: verdadeiro ou falso; ligado ou
desligado; aceso ou apagado; sim ou não;
fechado ou aberto; “1” ou “0”.
Operações lógicas:

Existem somente 3 operações lógicas básicas:


1. Produto Lógico Função AND (.)
2. Soma Lógica Função OR (+)
__
3. Negação Função NOT ( ) ou ( ‟ )
Todas as operações internas a um computador
podem ser descritas como combinações
destas 3 operações básicas.
Função AND

F(A, B, C,... , N) = A . B . C . .... N


F(A, B,... , N) = 1 se e somente se
A = B = C = .... = N = 1
0 0
1 1
A B
+ F(A,B) = A . B
I
V
-
Símbolo Lógico: A
7408 F
B
(3 variáveis)
Tabela Verdade: A B C F
A B F 0 0 0 0
0 0 1 0
0 0 0
0 1 0 0
0 1 0 0 1 1 0
1 0 0 1 0 0 0
1 1 1 1 0 1 0
1 1 0 0
1 1 1 1
Função OR

F(A, B, C ,..., N) = A + B + C + .... + N


F(A, B,..., N) = 1 se e somente se
A = 1 ou B = 1 ou .... ou N = 1
A

+ B F(A,B) = A + B
I
V
-
Símbolo Lógico: A
7432 F
B
(3 variáveis)
Tabela Verdade: A B C F
A B F 0 0 0 0
0 0 1 1
0 0 0 0 1 0 1
0 1 1 0 1 1 1
1 0 1 1 0 0 1
1 1 1 1 0 1 1
1 1 0 1
1 1 1 1
Função NOT (inversor)

F(A) = A
{ F(A) = 0 se A = 1
F(A) = 1 se A = 0
7404
Símbolo Lógico:

Tabela Verdade: A F(A)


0 1
1 0
Outras Funções Lógicas:
Função NAND

F(A, B, C, ..., N) = A . B . C . .... . N


F(A , B , ..., N) = 0 se e somente se
A = B = C = .... = N = 1
A
Símbolo Lógico: 7400 F=A.B
B
Tabela Verdade NAND:

A B F
0 0 1
0 1 1
1 0 1
1 1 0
Função NOR

F(A, B, C, ..., N) = A + B + C + .... + N


F(A, B,..., N) = 1 se e somente se
A = B = .... = N = 0

Símbolo Lógico: A
7402 F
B
Tabela Verdade NOR:

A B F
0 0 1
0 1 0
1 0 0
1 1 0
Função Ou-Exclusivo

F(A, B) = A + B
{ F(A, B) = 1 se A = B
F(A, B) = 0 se A = B

Símbolo Lógico: A 7486 F= A + B


B
Tabela Verdade Ou -Exclusivo:

A B F
0 0 0
0 1 1
1 0 1
1 1 0
Por inspeção na tabela verdade:

F = 1 se A = 0 e B = 1 ou se A = 1 e B = 0

A.B + A .B

F = AB + AB
Relações da Álgebra Booleana:

Postulados:
1a. A = 1 (se A = 0) 1b. A = 0 (se A = 1)
2a. 0 . 0 = 0 2b. 0 + 0 = 0
3a. 1 . 1 = 1 3b. 1 + 1 = 1
4a. 1 . 0 = 0 4b. 1 + 0 = 1
5a. 1 = 0 5b. 0 = 1
Teoremas:

6a. A . 0 = 0 6b. A + 0 = A
7a. A . 1 = A 7a. A + 1 = 1
8a. A . A = A 8a. A + A = A
9a. A . A = 0 9a. A + A = 1
10a. A = A 10a. A = A
Propriedades Algébricas:

Comutativa:
11a. AB = BA 11b. A + B = B + A
Associativa:
12a. A(BC) = AB(C) 12b. A+(B+C) = (A+B)+C
Distributiva:
13a. A(B+C) = AB + AC 13b. A + BC = (A + B) (A + C)
Teorema da Absorção:

14a. A (A + B) = A 14b. A + AB = A
15a. A (A + B) = AB 15a. A + AB = A + B

Teorema de DeMorgan:

16a. A . B . C = A + B + C
16b. A + B + C = A . B . C
Consequências imediatas das Leis de DeMorgan:
1. A + B = A . B

A A
B B

2. A . B = A + B

A A
B B
Consequências imediatas da Lei de Morgan:

1. A + B = A . B A+B= A.B A+B= A.B

A A
B B

2. A . B = A + B A.B= A+ B A.B= A+ B

A A
B B
Simplificação de expressões booleanas:

Métodos:
 Por manipulações algébricas

 Por mapas de Karnaugh

 Pelo método de Quine-McCluskey


a) Manipulações algébricas - Exercícios:
a.1) Simplificar a função votador majoritário

F(A,B,C) = ∑ (3,5,6,7)
F = ABC + ABC+ ABC+ ABC
F = ABC + ABC+ ABC+ ABC
1
F = ABC+ ABC+ AB(C + C)

F = B(A + AC) + ABC


Continuação:

F = B(A + C) + ABC
F = AB + BC +ABC

F = AB + C(B + BA)

F = AB + C(B + A)

F = AB + AC + BC
a.2) Simplificar F = ABC + ABC + ABC + ABC

1 1
F = AB(C + C) + AB(C + C) =
AB + AB =
A(B +1 B) = A
a.3) Simplificar F(A,B,C) = ∑ (3, 7)

F = ABC + ABC = BC(A + A) = BC

a.4) Simplificar F(A,B,C) = ∑ (0, 1, 7)

F = ABC + ABC + ABC


F = AB( C + C) + ABC = AB + ABC
a.5) Simplificar F(A,B,C) = ∑ (0, 2, 4, 6)

F = ABC + ABC + ABC + ABC

F= AC(B + B) + AC( B + B)
F= AC + AC = C(A + A)
F= C
Minitermos e Maxtermos:

Considere a A B C F F
tabela verdade 0 0 0 0 1
ao lado que 0 0 1 0 1
expressa a
0 1 0 0 1
função votador
majoritário: 0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 0
Por inspeção na tabela verdade pode-se
escrever :

F(A,B,C) = ABC + ABC + ABC + ABC

F é constituída de uma soma de


produtos cada um envolvendo as 3
variáveis de que F depende.
Cada um destes produtos é denominado
mintermo.

F = ABC + ABC + ABC + ABC

F = m3 + m5 + m6 + m7 = ∑ (3, 5, 6,7)
(notação compacta)

A descrição de uma função por meio de


soma de produtos (mintermos)
representa a função implementada nos
pontos em que ela é “ 1 ”.
“Barrando” os dois lados da equação
anterior e aplicando DeMorgan temos:

F = ABC + ABC + ABC + ABC =

= (ABC) . (ABC) . (ABC) . (ABC)

F = (A + B + C) . (A + B + C) . (A + B + C) .
. (A + B + C)
F acha-se representada por um
produto de somas onde cada soma
contém as 3 variáveis a que F se refere.
Cada uma destas somas é denominada
maxtermo.
A descrição de uma função
booleana por meio de uma expressão
produto de somas (maxtermos)
corresponde à implementação da função
nos pontos onde ela é “0”.
F = (A + B + C) . (A + B + C) . (A + B + C) . ( A + B + C)
F= M3 . M5 . M6 . M7
F = ¶ (3, 5, 6, 7)
Para achar F representada por maxtermos aplicamos
DeMorgan à expressão de F descrita por mintermos.

F = ABC + ABC + ABC + ABC = m0 + m1 + m2 + m4

F = ABC + ABC + ABC + ABC =

F = (ABC) . (ABC) . (ABC) . (ABC)


F = (A + B + C) . ( A + B + C) . (A + B + C) . (A + B + C)
F = M0 . M1 . M2 . M4
F = ¶ (0,1 ,2 ,4)
Exercícios envolvendo notação compacta:
a) Represente a função F(A,B,C) = ∑ (1, 3, 5, 7)
por meio de produtos de maxtermos.
F = ¶ (0, 2, 4, 6) = M0 . M2 . M4 . M6

F = (A + B + C) (A + B + C) (A + B + C) (A + B + C)
b)Represente a função F por meio de somas de
mintermos e produtos de maxtermos:

A B C F
F = ABC + ABC + ABC
0 0 0 0
0 0 1 1 F= (A + B + C) . (A + B + C).
0 1 0 1 (A + B + C) . (A + B + C).
0 1 1 0 (A + B + C)
1 0 0 1
1 0 1 0 F = ∑(1,2,4) = m1 + m2 + m4
1 1 0 0 F = ¶ (0,3,5,6,7) =
1 1 1 0
= M0.M3.M5.M6.M7
Mintermos e Maxtermos para uma função de 3 variáveis:
Linha x y z Mintermo Maxtermo
0 0 0 0 m0 = x y z M0 = x + y + z
1 0 0 1 m1 = x y z M1 = x + y + z
2 0 1 0 m2 = x y z M2 = x + y + z
3 0 1 1 m3 = x y z M3 = x + y + z
4 1 0 0 m4 = x y z M4 = x + y + z
5 1 0 1 m5 = x y z M5 = x + y + z
6 1 1 0 m6 = x y z M6 = x + y + z
7 1 1 1 m7 = x y z M7 = x + y + z
Fundamentos da Computação
Digital

Mapas de Karnaugh
Mapas de Karnaugh:
1) Mapa de duas variáveis:

B 0 1
A B F A
0 0 0 0 0 0 1
B 0 1
1 0 1 1 1 0 A
1
0 m0 m1
2 1 0 1
3 1 1 0 1 m2 m3
2) Mapa de 3 variáveis:

B
A BC 00 01 11 10

0 m0 m1 m3 m2
A 1 m4 m5 m7 m6
C
inversão na
sequência
3) Mapa de 4 variáveis:
“Sentidos” de mapas:

CD AB
AB CD
0 1 3 2 0 4 12 8

4 5 7 6 1 5 13 9

12 13 15 14 3 7 15 11

8 9 11 10 2 6 14 10
CD AB
AB 00 01 11 10 CD 00 01 11 10
m0 m1 m3 m2 m0 m4 m12 m8
00 00

m4 m5 m7 m6 01 m1 m5 m13 m9
01
m3 m7 m15 m11
11 m12 m13 m15 m14 11

10 m8 m9 m11 m10 10 m2 m6 m14 m10


Mapas de Karnaugh:
A B C F
Considere a 0 0 0 0
função abaixo 0 0 1 0
descrita pela 0 1 0 1
tabela verdade: 0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0
Da tabela verdade acima podemos tirar que:
F = ∑ (2, 3 , 4, 5)

Repare que os mintermos 2 e 3, 4 e 5 são


tais que permitem obter um termo com uma
variável a menos através da simplificação do
tipo ( A + A ). Tais mintermos são
denominados adjacentes
Um mapa de Karnaugh é uma
representação gráfica da tabela verdade
onde cada quadrado representa um
mintermo de tal maneira que quadrados
adjacentes contém mintermos adjacentes.
Para a função anterior de 3 variáveis o
mapa de karnaugh fica:
A BC00
B AB
01 11 10
AB
0 0 0 1 1
A 1 1 1 0 0
C
F = AB + AB = A + B
Mapas de Karnaugh:

Considere a função votador majoritário


de 4 votantes descrita pela tabela
verdade abaixo:
A B C D F A B C D F
0 0 0 0 0 1 0 0 0 0
0 0 0 1 0 1 0 0 1 x
0 0 1 0 0 1 0 1 0 x
0 0 1 1 x 1 0 1 1 1
0 1 0 0 0 1 1 0 0 x
0 1 0 1 x 1 1 0 1 1
0 1 1 0 x 1 1 1 0 1
0 1 1 1 1 1 1 1 1 1
Os valores de x representam onde a
função F não é definida. São denominados
estados opcionais(don´t care).Os estados don´t
care podem ser utilizados em simplificações de
funções como será visto mais adiante.
Da tabela verdade anterior podemos tirar que:
F = ∑ (7 , 11 , 13 ,14 , 15)
F= ABCD + ABCD + ABCD + ABCD + ABCD
Repare que os minitermos 7 e 15 ,11 e 15 ,
13 e 15 , 14 e 15 são tais que permitem
obter um termo com uma variável a menos
por meio de simplificações do tipo ( x + x ).
Tais mintermos são denominados
adjacentes.Desta forma a combinação de
dois estados adjacentes resulta sempre na
eliminação da variável que os difere.
Um mapa de karnaugh é uma
representação gráfica da tabela verdade
onde cada quadrado representa um mintermo
de tal maneira que quadrados adjacentes
contém mintermos adjacentes.
Para a função votador majoritário de 4
votantes o mapa de Karnaugh fica:

CD
AB A
0 4 12 8 Simplificando pelo
0 0 x 0 mapa tem-se que:
1 5 13 9
0 x 1 x F = ABD + ACD +
3 7 15 11 D ABC + BCD
x 1 1 1
C 2 6 14 10
0 x 1 x F = AB + CD

B
A
B

C
D
Simplifique a função booleana abaixo:
F(A,B,C,D) = ∑ (0,1,2,3,4,5,6,7,9,11,13,15)

CD C
AB 0 1 3 2
1 1 1 1
4 5 7 6
1 1 1 1 F= A + D
12 13 15 14 B
0 1 1 0
A 8 9 11 10
0 1 1 0
D
A
F
D
Regras para simplificação com o
mapa de Karnaugh:
1) Começar pelos quadrados isolados , isto é que
não tenham adjacentes. Estes representam
mintermos que não admitem nenhuma
combinação (não podem ser simplificados) mas
que fazem parte da função.
2) Procurar por mintermos (quadrados) que
somente admitam uma combinação apenas.
3) Combinar quadrados que admitam combinações
que englobem o máximo de quadrados
possíveis.
4) Combinar grupos de 8 quadrados que
corresponde à três variáveis a menos.
Observações:
a) Estados opcionais (x – don´t cares) podem ser
incluídos nas combinações caso conduzam a uma
melhor simplificação
b) Combinações onde todos os quadrados
participantes já tenham sido utilizados em
combinações prévias não geram simplificações
adicionais.
Mapas de Karnaugh- Exercícios:

b.1)F(A , B , C) = ∑ 3 , 4 , 6 , 7

F = ABC + ABC + ABC + ABC


AB A AC
C 00 01 11 10
BC
0 0 0 1 1
C 1 0 1 1 0 F = AC + BC

B
b.2)F(A , B , C) = ∑ (0, X2, X3, 4, 5, 6)
x x

F = ABC + ABC + ABC + ABC + ABC + ABC


C AB A AB
C 00 01 11 10

0 1 x 1 1
C 1 0 x 0 1
B
F = AB + C
Mapas de Karnaugh- Exercícios(outra forma):

b.1)F(A , B , C) = ∑ (3, 4, 6, 7)

F = ABC + ABC + ABC + ABC


A BC00
B
01 11 10
AC BC
0 0 0 1 0
A 1 1 0 1 1
F = AC + BC
C
b.2)F(A , B , C) = ∑ (0, X2, X3, 4, 5, 6)
x x

F = ABC + ABC + ABC + ABC + ABC + ABC


BC B C
A 00 01 11 10
AB
0 1 0 x x
A 1 1 1 0 1
C
F = AB + C
b.3)F(A,B,C,D) = ∑ (X0,1,X4,5,X6,X8,9,14,X15))

x0 x4

F = ABCD + ABCD + ABCD + ABCD


ABCD + ABCD + ABCD + ABCD + ABCD
x6 x8 x15
BC
AC AB A
CD
0 4 12 8
x x 0 x
1 5 13 9
1 1 0 1
0
3
0
7
x
15
0
11 D
C
2 6 14 10
0 x 1 0
ABC
B
F = AC + BC + ABC
b.4)F(A,B,C,D) = ∑ (0, 2, 5, 7, 8,10,13,15)

F = ABCD + ABCD + ABCD + ABCD


ABCD + ABCD + ABCD + ABCD
AB A
CD
1 0 0 1
BD
BD
0 1 1 0
D
0 1 1 0
C
1 0 0 1
B
F = BD + BD
Construir um circuito que realize a
seguinte função:

x=0,y=0 Z=A+B
x=0,y=1 não ocorre
x=1,y=0 Z=A+B
x=1,y=1 Z=A.B
x y A B Z x y A B Z
0 0 0 0 0 1 0 0 0 0
0 0 0 1 1 1 0 0 1 1
0 0 1 0 1 1 0 1 0 1
0 0 1 1 1 1 0 1 1 0
0 1 0 0 x 1 1 0 0 0
0 1 0 1 x 1 1 0 1 0
0 1 1 0 x 1 1 1 0 0
0 1 1 1 x 1 1 1 1 1
Z
xy x
xB AB A By
0 x 0 0
1 x 0 1
1 x 1 0 B
A
1 x 0 1
y
AB y
ABy

F = xB + ABy + ABy + ABy


Z A By
xy
AB A
xB
0 1 1 1
x x x x
0 0 1 0 y
x
0 1 0 1
B
AB y
ABy
F = xB + ABy + ABy + ABy (1)

(1)
x xB
B
yAB
A
Z
y yAB

yAB
F = xB + B(yA + yA) + yAB =
xB + B(y . A) + yAB (2)

x xB
B

y Z
B(y . A)
A

yAB
b.6)F(A,B,C,D) = ∑ (2,7,9,10,11,12,14,15)

F = ABCD + ABCD + ABCD + ABCD


ABCD + ABCD + ABCD + ABCD
ABD
AB A
CD
0 0 1 0 ABD

0 0 0 1
B CD
0 1 1 1 D
C
1 0 1 1
B
BCD
CD C B CD
AB
0 0 0 1
0 0 1 0 ABD
1 0 1 1 B
A
0 1 1 1
D
BCD
ABD
F = ABD + ABD + BCD + BCD (1)

A ABD
B
ABD

F (1)
D BCD

BCD
C
F = ABD + ABD + BCD + BCD =
A(BD + BD) + C(BD + BD)=
A(B + D) + C(B + D) (2)

C
B C(B + D)
F
D
A(B+ D)
A
Fundamentos da Computação
Digital

Método de Minização de
Quine-McCluskey
Quine-McCluskey
Passo1: A função deve estar representada
por soma de mintermos. Caso não esteja
expandir até que todos os mintermos
contenham todas as variáveis.
Exemplo:
F(a,b,c) = ab + bc
F(a,b,c) = ab(c + c) + bc(a + a)
F(a,b,c) = abc + abc + abc
F(a,b,c) = ∑ (3,6,7)
Passo 2: Os mintermos devem ser separados
em grupos por índices, onde o índice é dado
pelo número de variáveis iguais a 1.
Exemplo: F(A,B,C,D) = S (1, 4, 10, 11, 12, 14, 15)
Coluna 1
Índice Mintermo 1
0 ... 4
1 1, 4 10
2 10,12 12
3 11,14 11
4 15 14
15
Passo 3: A representação decimal de cada
mintermo deve ser comparada com todos os
mintermos do próximo grupo de índice maior.
Somente devem ser considerados no
próximo grupo mintermos de número (índice)
mais alto. Dois mintermos devem ser
combinados se seus números diferem de 2N1.
Os mintermos usados devem ser marcados.
Ao final, os mintermos não marcados são
considerados essenciais.
Exemplo: Podemos combinar o mintermo 4
do grupo 1 e mintermo 12 do grupo 2.
Passo 4: Os termos simplificados durante o
passo anterior devem ser colocados em uma
próxima coluna da seguinte forma:
I (2N)
Onde I é o mintermo menor e 2N é a diferença
entre os dois mintermos que foram
combinados. Somente o menor mintermo
deve ser colocado na nova coluna.

Ex: Mintermos 4 e 12 combinados passam


para a próxima coluna como 4(8).
Passo 5: Os termos de cada grupo da
coluna gerada são comparados com os
elementos do próximo grupo que tem as
mesmas potências de 2 entre parênteses.
Se os números I diferem de 2Ni então eles
podem ser combinados e marcados. O novo
termo tem a forma I(2N1, 2N2, ...), onde I é o
número do mintermo e 2N1, 2N2, ... São as
potências de 2. Estes novos termos formam
a nova coluna. O processo deve continuar
até que novos grupos não possam mais ser
formados.
Coluna 1 Coluna 2 Coluna 3
1 4(8) 10(1,4)
4P 10(1) P
10P 10(4) P
12P 12(2)
11 P 11(4) P
14P 14(1) P
15P

Resposta: 1, 4(8), 12(2), 10(1,4)


Passo 6: Conversão para soma de mintermos
1. Escreva o número em forma de equação;
2. Corte os literais correspondentes as
potências entre parênteses
Exemplo: Resposta: 1, 4(8), 12(2), 10(1,4)
8 4 2 1
1 ABCD ABCD
4(8) ABCD BCD
12(2) ABCD ABD
10(1,4) ABCD AC
Resposta Final:
F(A,B,C,D) = ABCD + BCD + ABD + AC
Simplificação por Karnaugh do exemplo
BCD

AB A
CD
0 1 1 0
ABCD 1 0 0 0
D
0 0 1 1
C
AC
0 0 1 1
REDUNDANTE
B
F(A,B,C,D) = ∑ (1, 4, 10, 11, 12, 14, 15)

F = AC + BCD + ABCD

 ABD é um mintermo redundante

 O método Quine-McCluskey encontra


todos os implicantes - primos possíveis sem
considerar os que são essenciais
Seleção dos Mintermos – Construção da Tabela

 Colocar X nos mintermos cobertos pelo


resultado;
 Somar #X nas colunas;
 Selecionar termos essenciais procurando nas
colunas com um X;
Resp.: 1; 4(8); 10(1,4)
 Retirar da tabela mintermos cobertos pelos
essenciais – se todos retirados FIM
 Repetir os passos anteriores caso sobrarem
mintermos da função;
1 4 10 11 12 14 15

P1 X

P 4(8) X X

12(2) X X

P 10(1,4) X X X X

1 1 1 1 2 2 1
Ex: Simplifique a função

F(a,b,c,d,e) = ∑ (0,1,2,3,10,16,17,18,19,28,29)

F = ABCDE + ABCDE + ABCDE + ABCDE +


00 11 21 32

ABCDE + ABCDE + ABCDE + ABCDE


10  2 16  1 17  2 18  2

+ ABCDE + ABCDE + ABCDE


19  3 28  3 29  4
Coluna 1 Coluna 2 Coluna 3 Coluna 4
0  0(1)  0(1,2)  0(1,2,16)
0(2)  0(1,16) 
1 
0(16)  0(2,16) 
2 
16  1(2)  1(2,16) 
3  1(16)  2(1,16) 
2(1)  16(1,2) 
10 
17  2(8)
2(16) 
18 
16(1) 
19 
16(2) 
28 
3(16) 
29  Resultado:
17(2) 
18(1) 
0(1,2,16), 2(8), 28(1)
28(1)
0 1 2 3 10 16 17 18 19 28 29

0(1,2,16) X X X X X X X X

2(8) X X

28(1) X X

0(1,2,16) = ABCDE = BC
2(8) = ABCDE = ACDE
28(1) = ABCDE = ABCD
Função Simplificada:
F(A,B,C,D,E) = BC + ACDE + ABCD
Simplifique usando o Método Quine-McCluskey
F(W,X,Y,Z) = ∑ (2, 6, 7, 9, 13, 15)

Coluna 1 Coluna 2
2  2(4)
6  6(1)
9  9(4)

7  7(8)
13  13(2)

15 
2 6 7 9 13 15
2(4)  X X
6(1) X X
9(4)  X X

7(8) X X

13(2) X X

2(4) – retirar 2, 6
9(4) – retirar 9, 13
Ficamos com a seguinte tabela:
7 15
6(1) X

7(8) X X
13(2) X Resposta: 2(4), 9(4), 7(8)

2(4) = W X Y Z = W Y Z
9(4) = W X Y Z = W Y Z
7(8) = W X Y Z = X Y Z

F(W,X,Y,Z) = W Y Z + W Y Z + X Y Z
Fundamentos da Computação
Digital

Lógica Combinacional
Lógica Combinacional
Um circuito combinacional consiste de variáveis
de entrada, portas lógicas e variáveis de saída.

Variáveis Variáveis
Lógica
Entrada Sáida
Combinacional
(n) (m)
Projeto:
1. Defina o problema
2. Determine o número de variáveis de entrada e saída
3. Dê nome as variáveis
4. Escreva a tabela verdade que descreve o circuito
5. Obtenha uma função booleana simplificada para
cada uma das variáveis de saída
6. Desenhe o circuito lógico
Somador de 2 bits: (meio somador)

Tabuada: 0+0=0
0+1=1
1+0=1
1 + 1 = 10

x y C S
0 0 0 0
S= xy+ xy=xy
0 1 0 1
1 0 0 1 C=xy
1 1 1 0
x x.y

y S

y x
y.x

C
x
y
S

C
x
S
y

C
Somador Completo: entrada saídas
x y Ci C0 S
Executa a soma de 0 0 0 0 0
três bits. Dois (x,y) 0 0 1 0 1
representam os dígitos
a serem somados e o 0 1 0 0 1
terceiro corresponde 0 1 1 1 0
ao vai um (Ci) dos bits 1 0 0 0 1
menos significativos. 1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
C0
x yCi00
y
01 11 10

0 0 0 1 0
x 1 0 1 1 1
Ci
C0 = xy + xCi + yCi
S
x yCi00
y
01 11 10

0 0 1 0 1
x 1 1 0 1 0
Ci
S = xyCi + xyCi + xyCi + xyCi
C0= xy + xCi + yCi

S = xyCi + xyCi + xyCi + xyCi =

Ci(xy + xy) + Ci(xy + xy)=


Ci(xy) + Ci(xy) =
S = Ci  (x  y)
x
y S
Ci

C0
½ som.
x ½ som.
y S

Ci C0
Somador Binário Paralelo (4 Bits):

Ex.: 1 1
A= 1 0 1 1 A3 A2 A1 A0
B= 0 0 1 1 + B3 B2 B1 B0
1110 S3 S2 S1 S0
0 1 0 0 1 1 1 1
B3 A3 B2 A2 B1 A1 B0 A0
y x C y x C y x C y x C
C4 3 2 1 0
C 0 + Ci C 0 + Ci C 0 + Ci C 0 + Ci
0 0 1 1 0

S3 S2 S1 S0
1 1 1 0
Subtratores:
Meio-Subtrator:
x y
x y R B
0 0 0 0
B 0 1 1 1
1 0 1 0
R 1 1 0 0

B = xy R = xy + xy = x  y
x

y B

xy
x
R
y

B
Subtrator Completo:
x y Bi B0 R
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
B0
x yBi00
y
01 11 10

0 0 1 1 1
x 1 0 0 1 0
Bi
B0 = xy + xBi + yBi
R
x yBi00
y
01 11 10

0 0 1 0 1
x 1 1 0 1 0
Bi
R = xyBi + xyBi + xyBi + xyBi
R = x  y  Bi
Vamos comparar as expressões do
somador completo e do subtrator completo

Somador Subtrator

S = Ci  (x  y) R = Bi  (x  y)

C0= xy + xCi + yCi B0 = xy + xBi + yBi

Das expressões acima vemos que se


invertermos x na expressão de C0 o
somador vira subtrator.
x
y S(R)

Ci(Bi)

Z C0(B0)
Se Z = 1 então x passa a ser invertido
(subtração)
Z=0 soma Z = 1 subtração

Z X C0(B0)

soma
{ 0
0
0
1
0
1
{ x

{
subtração
{ 1
1
0
1
1
0
x
Solução Alternativa:

Uma subtração A – B é equivalente a A + B + 1

10 A
10
10 B
- 01
1) 0 0
01
+1
01
Portanto podemos adotar a seguinte
solução usando um somador completo:
Z
Ci
B0 somador S0
A0 Co

Ci
B1 somador S1
A1
Co

Z=0 A+B
Z=1 A+B+1 A-B
Conversor de código:
A B C D w x y z
0 0 0 0 0 0 1 1
0 0 0 1 0 1 0 0
0 0 1 0 0 1 0 1
0 0 1 1 0 1 1 0
0 1 0 0 0 1 1 1
0 1 0 1 1 0 0 0
0 1 1 0 1 0 0 1
0 1 1 1 1 0 1 0
1 0 0 0 1 0 1 1
1 0 0 1 1 1 0 0
BCD Excesso 3
w
AB
CD C
0 0 0 0
0 1 1 1
x x x x B
A
1 1 x x
D
x
AB
CD C
0 1 1 1
1 0 0 0
x x x x B
A
0 1 x x
D
y
AB
CD C
1 0 1 0
1 0 1 0
x x x x B
A
1 0 x x
D
z
AB
CD C
1 0 0 1
1 0 0 1
x x x x B
A
1 0 x x
D
Pelos mapas temos:

w = A + BC + BD = A + B(C + D)
x = BD + BC + BCD
y = CD + CD = C + D
z=D
A
w
B
C

D
B
D x
C
C
y
D

D z
Circuitos Baseados em NAND:

A A A A

x S = xy
y

x
S = xy
y
S = xy
x
x+y
y

x
x
x. y=x+y
y
y
Método para obter circuitos com NANDS:

1) Desenhe o circuito com as portas usuais


(and, or e inversor)
2) Substitua as portas and, or e inversor por
suas equivalentes usando NAND
3) Remova do circuito todos pares de
inversores em cascata
A
A
Exemplo: Desenhe a função abaixo usando
portas comuns e em seguida somente com
Nands.
F = A ( B + CD ) + BC
C AND1
D
OR1
B
AND2
OR2
A
I1 F
AND3
AND1
C OR1
D

AND2
OR2
A
F
I1 AND3
Após a simplificação dos NANDS em pares

C
D

A
F
Exercício: Desenhe a função abaixo usando
NANDS:
F= D + C(A + B)

A
B
C
D F
A

C F

D
A

C F

D
Obtenção da função booleana a partir do
circuito.
C
D T1
T3
B
T4
A
F

T2
T1 = (CD) = C + D
T2 = (BC) = B + C
T3 = B . T1 = B .(C + D) = BC + BD = BC . BD =
(B + C)(B + D) = B + CD
T4 = AT3 = A(B+CD)
F = T2 . T4 = (BC) . (A(B+CD)) =
BC + A(B+CD)
Geração da tabela verdade:

A B C D T1 T2 T3 T4 F A B C D T1 T2 T3 T4 F
0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0
0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0
0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0
0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1
0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1
0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1
0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1
0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1
F
AB
CD C
BC 0 0 0 0
1 1 0 0
1 1 1 1 B
A
0 0 1 0
AB
D ACD

F = AB + BC + ACD
Representação And-Or-Inversor a partir da
Nand-Nand:

Lembrar que :

A+B+ C=
A (ABC) A ABC
B B
C C

(A) (B)
Para reconverter de Nand-Nand para And-
Or-Inversor troque do símbolo (A) para (B)
em níveis alternados de portas a partir da
C saída.
D

A F

B
C
C
D 3º

B 2º

A
1º F

B
C
C
D

A
F
B
C
Circuitos Baseados em Nor:

A A A A

A A+B
B

A A+B
B
A+B
A A.B
B

A
A
A + B= A . B

B
B
Método para obter circuitos com NORS:

1) Desenhe o circuito com as portas


usuais(and, or e inversor)
2) Substitua as portas and, or e inversor por
suas equivalentes usando NOR
3) Remova do circuito todos pares de
inversores em cascata

A A
A
Exemplo: Desenhe a função abaixo usando
portas comuns em seguida somente Nor´s
F = A ( B + CD ) + BC
C AND1

D OR1
B
AND2

A OR2
I1 F
AND3
C AND1
OR1

D
AND2

I1 AND3
A

F
OR2
Após a simplificação do Nor´s em pares
temos:
C

D
B
A

F
Exercício: Desenhe a função abaixo usando
NOR´S:
F= D + C(A + B)

A
B
C
D F
A
B

F
C

D
A
B

F
C

D
Representação And-Or-Inversor a partir de
Nor-Nor:

Lembrar que :

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

(A) (B)
Para reconverter de Nor-Nor para And-Or-
Inversor troque do símbolo (A) para o símbolo
(B) em níveis alternados de portas a partir da
saída.
A
B

D F
A
B

D F
A
B

C
F
D
Funções Or-Exclusivo e Nor-Exclusivo

2 Variáveis:

x  y = xy + xy = x 8 y = (xy + xy)
x 8 y = xy + xy = x  y = (xy + xy)
A  B  C = (A  B)  C = A  (B  C)

A 8 B 8 C = (A 8 B) 8 C = A 8 (B 8 C)
3 Variáveis:

(A  B)  C = (AB + AB)  C =
(AB + AB) . C + (AB + AB) . C =
AB . AB . C + ABC + ABC =
(A + B)(A + B)C + ABC + ABC =
(AB + AB)C + ABC + ABC =
ABC + ABC + ABC + ABC =
∑ 1,2,4,7
A BC00
B
01 11 10

0 0 1 0 1
A 1 1 0 1 0
C

ABC A8B8C
(A 8 B) 8 C = (AB + AB) 8 C =
(AB + AB) . C + (AB + AB) . C =
(AB . AB) . C + ABC + ABC
(A + B)(A + B) . C + ABC + ABC =
ABC + ABC + ABC + ABC =
∑ 1,2,4,7 = ∑ 001 , 010 ,100 , 111
 Or-Exclusivo- mintermos com
números binários tendo número impar de
1´s.
 Nor-Exclusivo-mintermos com
número binário tendo número par de 0´s.
 Quando o numero de variáveis é impar
as funções são equivalentes.

ABC A8B8C

 Quando o número de variáveis é par as


funções são complementares

ABCD = A8B8C8D
AB
CD C
Or-Exclusivo
0 1 0 1
número impar
1 0 1 0 de 1´s
0 1 0 1 B
A ABCD
1 0 1 0
D
AB
CD C
Nor-Exclusivo
1 0 1 0
número par de
0 1 0 1 0´s
1 0 1 0 B A8B8C8D
A
0 1 0 1
D
 É interessante saber que para
funções com número impar de variáveis
temos por exemplo:

ABC=AB8C=A8BC

A8B8C = ABC
Exemplo de uso de Or/Nor Exclusivo:

x y z P (impar)
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
P = 1 quando há um número par de uns na
entrada. Na função Or-Exclusivo o número de
uns é impar, logo P é o complemento do Or-
Exclusivo de 3 variáveis.

P=ABC=AB8C

A
B P

C
Verificador de Paridades:

Dados os 3 bits(x , y , z) e a paridade P o


circuito deve indicar se houve erro na
transmissão.
x y z P E x y z P E
0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 1 0 0 1 1
0 0 1 0 0 1 0 1 0 1
0 0 1 1 1 1 0 1 1 0
0 1 0 0 0 1 1 0 0 1
0 1 0 1 1 1 1 0 1 0
0 1 1 0 1 1 1 1 0 0
0 1 1 1 0 1 1 1 1 1
A função vale 1 nos mintermos com número par
de zeros, logo

E=x8y8z8P

x
y
E
z
P
Fundamentos da Computação
Digital

Lógica Combinacional
com integrados MSI e LSI
Somadores Paralelos:

Exemplo: Dado um somador de 4 bits,


transforma-lo em um conversor BCD-Excesso 3
BCD

B3 B2 B1 B0 A3 A2 A1 A0
C3 C0
S3 S2 S1 S0

Excesso 3
Acelerando os Somadores

O caminho de geração do vai um é o


fator de atraso da soma
Ai Pi
Bi Si

Gi

Ci Ci+1
Em cada somador a saída Ci+1 está 2 portas
depois da entrada Ci.
Em um somador de 4 bits há 8 portas entre
C4 e C 0
Método “ CARRYLOOK AHEAD ”

Pi = Ai  Bi Si = Pi  Ci
Gi = Ai . B i Ci+1 = Gi  Pi Ci
Circuito Somador Comum
B3 A3 B2 A2 B1 A 1 B0 A0

C4 C3 C2 C1

C0

S3 S2 S1 S0
C0 C4 8 portas
C0 S3 7 portas
A0, B0 C4 8 portas
A0, B0 S3 7 portas
Fórmula para geração do CARRY

C0
C1 = G0 + P0C0
C2 = G1 + P1C1 = G1 + P1 (G0 + P0C0) =
= G1 + P1G0 + P1P0C0
C3 = G2 + P2C2 = G2 + P2 (G1 + P1G0 + P1P0C0)
= G2 + P2G1 + P2 P1G0 + P2P1P0C0
B3A3 B2 A2 B1 A1 B0 A0

C0
P0
G0
G1 P1
P2
G2

C3 C2 C1

C0 Si 3p
A0, C0 Si 3p S3 S2 S1 S0
Decodificadores

Decodificadores convertem números


binários com N bits para até 2N saídas
Usados quando é necessário, a partir
de um número binário, escolher uma
entre 2N opções
Ex.: Decodificador 3 para 8 (3x8)

D0 xyz
z D1 xyz
y D2 xyz
D3 xyz
x D4 xyz
D5 xyz
D6 xyz
D7 xyz
Tabela Verdade do Decodificador (3x8)

x y z D0 D1 D2 D3 D4 D5 D6 D7
0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1
Observe que o decodificador gera todos os
mintermos da função. Deste modo é possível
usá-lo para implementar funções booleanas.

Ex.: Função F(x,y,z) = ∑(1,3,5)

0
1
x 2 F
3
y
4
z 5
6
7
74138
Decodificador com Liberação

E x y D0 D1 D2 D3
0 x x 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
y D0 xy
0
x
D1 xy
0

D2 xy
0

D3 xy
0

0
E
O decodificador com liberação pode ser
considerado um demultiplexador, isto é,
um circuito que recebe um sinal E e o
transmite para uma de 2N saídas.

Símbolo do Decodificador com Liberação


2x4
D0
x D1
y D2
D3
E
74139
Símbolo do Demultiplexador

1x4
D0
D1
E
D2
x y D3
Exercício: Use decodificadores 2 x 4 com
liberação para implementar decodificador 3 x 8
D0 D0
y y D1 D1
z z D2 D2
D3 D3’
E
1
x

E D0 D4
y D1 D5
z D2 D6
D3 D7
Codificadores
Projete um circuito que informe em 3 bits qual
das 8 linhas de entrada foi ativada. Assuma
que somente uma das linhas pode estar em
um a cada instante.
D0
x = D4+D5+D6+D7
D1
D2
D3 y = D2+D3+D6+D7
D4
D5
D6 z = D1+D3+D5+D7
D7
Tabela verdade do codificador 8 x 3:

D0 D1 D2 D3 D4 D5 D6 D7 x y z
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
Multiplexador:

É um circuito combinacional que seleciona


para a saída uma dentre 2N linhas de
entrada. A escolha da linha é feita por um
conjunto de N linhas de seleção, ou seja,
para escolhermos dentre 2N entradas
usamos N linhas de seleção.
Exemplo: Multiplexador 4 x 1

I0
S1 S0 y
I1
y 0 0 I0
I2
0 1 I1
I3
S1 S0 1 0 I2
1 1 I3
0 I0
0 0

1 I1 0 0

y
0 I2 1
1

0 I3 0 0

s1 1
0
0
s0 1
Implementação de Funções Booleanas com
Multiplexadores
a)Solução trivial:
Implementar F (x,y,z) = ∑ (1,2,5,6)
‘0’
I0
I1
‘1’ I2
I3 y F
I4
I5
I6
I7
S2 S1 S0
x
y
z
Solução Econômica

 Função de N + 1 variáveis use 2N x 1


multiplexador.
 Conecte N variáveis às linhas de seleção
do multiplexador.
 A variável restante será usada nas
entradas.
Exemplo: Função F(A,B,C) = ∑(1,3,5,6)

3 variáveis Mux 22 x 1 Mux 4 x1

A B C F
I0
0 0 0 0
I1 F
0 0 1 1
y 0 1 0 0
I2
0 1 1 1
I3 1 0 0 0
S1 S2 1 0 1 1
B 1 1 0 1
C 1 1 1 0
Função F(A,B,C) = ∑ (1,3,5,6)

I0 I1 I2 I3
A 0 1 2 3
A 4 5 6 7
0 1 A A
‘0’ I0
‘1’ I1 F
y
A I2
I3
S1 S0
B
C
Regras para se obter as entradas do Mux

 Se 2 mintermos em uma coluna não estão em


círculos, coloque „0‟ na entrada correspondente
 Se 2 mintermos em uma coluna estão em
círculos, coloque „1‟ na entrada correspondente
 Se somente o mintermo superior está em
círculo coloque „A‟ na entrada correspondente
 Se somente o mintermo inferior está em
círculo, coloque „A‟ na entrada correspondente
Exemplo:Implemente a Função
F(A,B,C,D) = ∑ (0,1,5,6,9,13,15)
usando multiplexadores

I0 I1 I2 I3 I4 I5 I6 I7
A 0 1 2 3 4 5 6 7
A 8 9 10 11 12 13 14 15
A 1 0 0 0 1 A A
I0
‘1’ I1
‘0’ I2
I3
y
I4
I5
I6
A I7

S2 S1 S0
B
C 74151(MUX 8 x1)
D
Comparador de Magnitude

Circuito que compara dois números binários A


e B. Determina se A > B , A = B ou A < B
A = A3A2A1A0 ; B = B3B2B1B0
1ºCaso: A=B
A = B se A3 = B3 e A2 = B2 e A1 = B1 e A0 = B0
Ai = Bi xi = AiBi + AiBi = (A = B) = x3.x2.x1.x0
2ºCaso A > B se
(A3 > B3) ou
(A3 = B3) e (A2 > B2) ou
(A3 = B3) e (A2 = B2) e (A1 > B1) ou
(A3 = B3) e (A2 = B2) e (A1 = B1) e (A0 > B0)
A3 B3 + x3 A2 B2 + x3 x2 A1 B1 + x3x2x1A0 B0 = A > B
3ºCaso: A < B se
(A3 < B3) ou
(A3 = B3) e (A2 < B2) ou
(A3 = B3) e (A2 = B2) e (A1 < B1) ou
(A3 = B3) e (A2 = B2) e (A1 = B1) e (A0 < B0)
A < B = A3 B3 + x3 A2 B2 + x3 x2 A1 B1 + x3x2x1A0 B0
Para o circuito A > B necessitamos de AiBi e
para A < B de AiBi
Para A = B temos
xi = AiBi + AiBi = Ai  Bi = AiBi + AiBi

Deste modo o circuito pode ser construído a


partir de
AiBi e AiBi
A3 A <B
x3

B3

A2
A >B

x2

B2
(A <B)
A1

B1
x1

A0

(A >B)

B0
x0

Circuito Comparador (A=B)

Вам также может понравиться