A maior rede de estudos do Brasil

Grátis
231 pág.
02_Algebra_booleana_portas_logicas

Pré-visualização | Página 5 de 9

† F = (!C + B).(A + !C.!A).B (Complementação/AND: X.X = X)
† F = (!C + B).((A + !C).(A + !A)).B (Distributividade)
† F = (!C + B).((A + !C).(1)).B (OR: X + !X = 1)
† F = (!C + B).(A + !C).B (AND: X . 1 = X)
† F = B.(!C + B).(A + !C ) (Comutatividade)
† F = (B.!C + B.B).(A + !C) (Distributividade)
† F = (B.!C + B).(A + !C) (AND: X.X = X)
† F = B.(A + !C) (Absorção: X + X.Y = X)
122
Álgebra booleana
† Teoremas e propriedades
„ Exercício
† F = !(A.B) + !(!A + B).C.!A + A
† F = !A + !B + !(!A + B).C.!A + A (De Morgan)
† F = !A + !B + (!!A.!B).C.!A + A (De Morgan)
† F = !A + !B + A.!B.C.!A + A (Complementação)
† F = !A + !B + A.!A.!B.C + A (Comutatividade)
† F = !A + !B + 0.!B.C + A (AND: X.!X = 0)
† F = !A + !B + 0 + A (AND: X.0 = 0)
† F = !A + !B + A (OR: X + 0 = X)
† F = !A + A + !B (Comutatividade)
† F = 1 + !B (OR: X + !X = 1)
† F = 1 (OR: X + 1 = 1) 
† Independente da combinação das entradas, F é sempre igual a 1
123
Álgebra booleana
† Programação
if ( idade > 18 || (idade > 18 && peso < 100) )
printf(“...”);
if ( idade > 18 )
printf(“...”);
Equivalentes
124
Álgebra booleana
† Programação
† Variáveis booleanas
„ I = idade > 18
„ P = peso < 100
† Equação
„ E = I + (I.P) ( idade > 18 || (idade > 18 && peso < 100) )
„ E = I.1 + I.P (AND: X.1 = X)
„ E = I.(1 + P) (Distributividade)
„ E = I.(1) (OR: X + 1 = 1)
„ E = I (AND: X.1 = X)
„ E = I (idade > 18)
if ( idade > 18 || (idade > 18 && peso < 100) )
printf(“...”);
True or False
125
Álgebra booleana
† Programação
if ( digito == 0 || (digito != 0 && tempo > 100) )
printf(“fim”);
if (digito == 0 || tempo > 100) )
printf(“fim”);
Equivalentes
126
Álgebra booleana
† Programação
† Variáveis booleanas
„ D0 = digito == 0
„ !D0 = digito != 0
„ T = tempo > 100
† Equação
„ E = D0 + (!D0.T) ( digito == 0 || (digito != 0 && tempo > 100) )
„ E = (D0 + !D0).(D0 + T) (distributividade: X + Y.Z = (X+Y).(X+Z) )
„ E = (1).(D0 + T) (OR: X + !X = 1)
„ E = D0 + T (AND: X.1 = X)
„ E = D0 + T (digito == 0 || tempo > 100)
if ( digito == 0 || (digito != 0 && tempo > 100) )
printf(“fim”);
True or False
127
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
† Tabela verdade
„ Tabelas verdade iguais → circuitos equivalentes
† Simplificação de equações
1. Simplificando a equação de um dos circuitos chega-se à equação do outro →
circuitos equivalentes
2. Simplificando as equações dos circuitos, chega-se à mesma equação → circuitos
equivalentes
Equivalentes ?
128
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 1 A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
129
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 2
B C F
0 0 0
0 1 0
1 0 1
1 1 0
Para comparar com um circuito com mais entradas, a avaliação do 
circuito com menos entradas deve partir das colunas de entradas do 
circuito com mais entradas 
130
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 2 A B C D F
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
Preencher a coluna de saída baseado 
somente nas entradas do circuito. As 
demais entradas são ignoradas.
131
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 2 A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Preencher a coluna de saída baseado 
somente nas entradas do circuito. As 
demais entradas são ignoradas.
132
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
„ Tabela verdade
† Comparação A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Circuito 1 Circuito 2
Os circuitos são equivalentes.
133
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
„ Simplificação de equações
† Circuito 1 
„ F = !A.B.!C + A.B.!C + B.!C.D
† Circuito 2 
„ F = B.!C
† Se a simplificação da equação do circuito 1 resultar na equação do 
circuito 2, então ambos são equivalentes
„ Simplificação
† F = !A.B.!C + A.B.!C + B.!C.D
† F = B.!C.(!A + A + D) (distributividade)
† F = B.!C.(1 + D) (propriedade do OR: X + !X = 1)
† F = B.!C.(1) (propriedade do OR: X + 1 = 1)
† F = B.!C (propriedade do AND: X.1 = X)
† Os circuitos são equivalentes
134
Álgebra booleana
† Como provar a equivalência entre 2 circuitos ?
„ Logisim
135
Álgebra booleana
† Como provar a não-equivalência entre 2 circuitos ?
† Tabela verdade 
„ Tabelas verdade diferentes → circuitos não-equivalentes
Equivalentes ?
136
Álgebra booleana
† Como provar a não-equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 1 A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
137
Álgebra booleana
† Como provar a não-equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 2
B C F
0 0 1
0 1 1
1 0 1
1 1 0
Para comparar com um circuito com mais entradas, a avaliação do 
circuito com menos entradas deve partir das colunas de entradas do 
circuito com mais entradas 
138
Álgebra booleana
† Como provar a não-equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 2 A B C D F
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
Preencher a coluna de saída baseado 
somente nas entradas do circuito. As 
demais entradas são ignoradas.
139
Álgebra booleana
† Como provar a não-equivalência entre 2 circuitos ?
„ Tabela verdade
† Circuito 2 A B C D F
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 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Preencher a coluna de saída baseado 
somente nas entradas do circuito. As 
demais entradas são ignoradas.
140
Álgebra booleana
† Como provar a não-equivalência entre 2 circuitos ?
„ Tabela verdade
† Comparação A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Circuito 1 Circuito 2
Os circuitos não são equivalentes.
A B C D F
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 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
141
Álgebra booleana
† Como provar a não-equivalência entre 2 circuitos ?
„ Logisim
142
Álgebra booleana
† Derivação de expressões booleanas
„ Até agora
† Obtenção de tabelas verdade a partir de expressões booleanas
† Obtenção de circuitos lógicos a partir de expressões booleanas e 
vice-versa
„ A partir da tabela verdade é possível obter a expressão 
que representa a função booleana através de dois 
métodos
† Soma de produtos (mais usado)
„ Exemplo: F = A.B + !A.C + !C
† Produto de somas
„ Exemplo: F = (X + Y).(!X + Y + Z).(!Y + Z) 
„ Qualquer função booleana pode ser descrita por meio de 
soma de produtos ou produto de somas
143
Álgebra booleana
† Derivação de expressões booleanas
„ Soma de produtos
† Para cada linha da tabela verdade onde a saída é 1, cria-se um 
termo produto
† Em cada termo produto as variáveis de entrada iguais a 0 aparecem 
negadas e aquelas iguais a 1 aparecem não negadas
† Em seguida