Arquitetura de Computadores
Álgebra Booleana
Prof. Leomar
Códigos Alfanuméricos
Além dos dados numéricos, um computador
precisa ser capaz de manipular dados não
numéricos
Esses são códigos alfanuméricos
Código ASCII (American Standard Code for
Information Interchange)
✔ Código de 7 bits (128 representações)
✔ ASCII-Extendido – 8 bits (256 representações)
ASCII
ASCII Extendido
ASCII
Veja a seguinte seqüência
55 43 42 20 32 30 31 30
55
U C B 2 0 1 0 43
42
20
32
30
31
30
Álgebra Booleana
Constantes e variáveis booleanas
✔ Valores binários (0 – 1) ou (verdadeiro – falso)
ou (alto – baixo), etc
Apenas três operações básicas
✔ AND (E)
✔ OR (OU)
✔ NOT (NÃO)
Tabela Verdade
Determina os possíveis resultados de uma
expressão algébrica em função dos valores
das variáveis
A B XX
A
0 0 ?? ? X
0 1 ?? B
1 0 ??
1 1 ??
Operação OR
A expressão booleana da operação OR é:
x=A+B -> lê-se 'x é igual a A or B'
Resultados possíveis
✔ 0+0=0 AA BB XX
A
✔ 0+1=1 X
00 00 00
✔ 1+0=1 00 11 11 B
✔ 1+1=1 11 00 11
11 11 11
Porta OR
A
X
t0 t1 t2 t3 t4 t5 t6 t7
Prática
Determine a forma de onda da saída X para
o seguinte circuito
A A
B X
C B
C
OR
A=1 B=1
Operação AND
A expressão booleana da operação AND é:
x=A.B -> lê-se 'x é igual a A and B'
Resultados possíveis
✔ 0.0=0 AA BB XX
A
✔ 0.1=0 X
00 00 00
✔ 1.0=0 00 11 00 B
✔ 1.1=1 11 00 00
11 11 11
Porta AND
A
X
t0 t1 t2 t3 t4 t5 t6 t7
Prática
Determine a forma de onda da saída X para
o seguinte circuito
A A
B X
C B
X
AND
A=1 B=1
Operação NOT
A expressão booleana da operação NOT é:
x=A -> lê-se 'x é igual a not A'
A' = A
Resultados possíveis
✔ 0=1
✔ 1=0 AA XX
A X
00 11
11 00
Inversor
A X
t0 t1 t2 t3 t4
Precedência de Operações
A ordem de precedência de operações
booleanas é a seguinte
✔ () mais alta precedência
✔ NOT
✔ AND
✔ OR mais baixa precedência
Descrevendo Circuitos Lógicos
Algebricamente
A
A.B
B X=A.B+C
A
A+B
B X = (A + B) . C
C
X=A+B.C
ERRADO
Circuitos com Inversores
A
A
A+B
B
A A+B
A+B
B
Circuitos com Inversores
A
A
B ABC
C
ABC(A + D)
A A+D
A+D
D
Prática
Qual a expressão na saída do circuito
abaixo?
A
E
Avaliando Saídas dos Circuitos
Supondo que se queira saber o nível da
saída de um circuito tendo os níveis de
entrada das variáveis (sinais)
Se os valores das entradas forem:
✔ A=0
✔ B=1
✔ C=1
✔ D=1
Avaliando Saídas dos Circuitos
Para a expressão x = ABC(A + D) teremos
x = A.B.C.(A + D)
= 0.1.1.(0 + 1)
= 1.1.1.(0 + 1)
= 1.1.1.(1)
= [Link]
= 0
Tabela Verdade
A tabela verdade da expressão booleana
x=ABC(A + D) é: A B C D
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
Tabela Verdade
A tabela verdade da expressão booleana
x=ABC(A + D) é: A B C D A
0 0 0 0 1
0 0 0 1 1
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
1 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 0
1 1 1 1 0
Tabela Verdade
A tabela verdade da expressão booleana
x=ABC(A + D) é: A B C D A A+D
0 0 0 0 1 0
0 0 0 1 1 1
0 0 1 0 1 0
0 0 1 1 1 1
0 1 0 0 1 0
0 1 0 1 1 1
0 1 1 0 1 0
0 1 1 1 1 1
1 0 0 0 0 1
1 0 0 1 0 1
1 0 1 0 0 1
1 0 1 1 0 1
1 1 0 0 0 1
1 1 0 1 0 1
1 1 1 0 0 1
1 1 1 1 0 1
Tabela Verdade
A tabela verdade da expressão booleana
x=ABC(A + D) é: A B C D A A+D A+D
0 0 0 0 1 0 1
0 0 0 1 1 1 0
0 0 1 0 1 0 1
0 0 1 1 1 1 0
0 1 0 0 1 0 1
0 1 0 1 1 1 0
0 1 1 0 1 0 1
0 1 1 1 1 1 0
1 0 0 0 0 1 0
1 0 0 1 0 1 0
1 0 1 0 0 1 0
1 0 1 1 0 1 0
1 1 0 0 0 1 0
1 1 0 1 0 1 0
1 1 1 0 0 1 0
1 1 1 1 0 1 0
Tabela Verdade
A tabela verdade da expressão booleana
x=ABC(A + D) é: A B C D A A+D A+D ABC(A+D)
0 0 0 0 1 0 1 0
0 0 0 1 1 1 0 0
0 0 1 0 1 0 1 0
0 0 1 1 1 1 0 0
0 1 0 0 1 0 1 0
0 1 0 1 1 1 0 0
0 1 1 0 1 0 1 1
0 1 1 1 1 1 0 0
1 0 0 0 0 1 0 0
1 0 0 1 0 1 0 0
1 0 1 0 0 1 0 0
1 0 1 1 0 1 0 0
1 1 0 0 0 1 0 0
1 1 0 1 0 1 0 0
1 1 1 0 0 1 0 0
1 1 1 1 0 1 0 0
Implementando Circuitos a
partir de Expressões Booleanas
Peguemos uma expressão como exemplo
y = AC + BC' + A'BC
uma porta OR com três entradas
AC
BC' AC + BC' + A'BC
A'BC
O Resultado está correto?
B
AC + BC' + A'BC
C
Prática
Desenhe os circuitos das expressões
x = (A + B) (B' + C)
y = A'BC(A + D)'
z = [D + ((A + B).C)'].E
Porta NOR
A A+B A+B
B
A A+B
B
AA BB A+B
A+B A+B
A+B
00 00 00 11
00 11 11 00
11 00 11 0
11 11 11 00
Porta NAND
A A+B A+B
B
A A+B
B
AA BB A.B
A.B A.B
A.B
00 00 00 11
00 11 00 11
11 00 00 1
11 11 11 00
Teoremas Booleanos
(1) x.0 = 0 (9) x+y = y+x
(2) x.1 = x (10) x.y = y.x
(3) x.x = x (11) x+(y+z) = (x+y)+z
(4) x.x = 0 (12) x.(y.z) = (x.y).z
(5) x+0 = x (13) x(y + z) = xy + xz
(6) x+1 = 1 (14) x + xy = x
(7) x+x = x (15) x + xy = x + y
(8) x+x = 1 (16) x + xy = x + y
(17) (w+x)(y+z) = wy + wz + xy + xz
Teoremas de DeMorgan
Dois dos mais importantes teoremas da
álgebra booleana
(18) (x + y) = x . y
x x
y y
(19) (x . y) = x + y
x x
y y
Simplificação de Expressão
Booleana
Simplificar a expressão
z = (A + C) . (B + D)
considerando (A'+C) = x e (B+D') = y, teremos
z = (x . y)'
aplicando DeMorgan a esta expressão teremos
z = (x' + y')
ou
z = (A + C) + (B + D)
Simplificação de Expressão
Booleana (cont)
z = (A + C) + (B + D)
aplicando DeMorgan novamente em cada
parcela teremos
z = (A . C) + (B . D)
que é:
z = (A . C) + (B . D)
ou
z = AC + BD
Prática
Simplificar as expressões booleanas usando
os teoremas
✔ Z = A + B.C
✔ W = (A + B.C).(D + EF)