Soma de Produtos Soma de produtos é uma forma padrão de representação de funções Booleanas constituida pela aplicação da operação lógica OU sobre um conjunto de termos formados pela operação E: Soma de produtos Z = AB Ú AC Ú D’F Termo produto 2 níveis lógicos
Produto de Somas O produto de somas é outra forma padrão de representação de funções Booleanas caracterizada pela aplicação da operação E sobre um conjunto de operações OU sobre as entradas Produto de Somas Z = (A Ú B)(A Ú C)(D’ Ú F) Termo soma 2 níveis lógicos
Mintermos Um mintermo é um termo produto que vale 1 em apenas um ponto do domínio de uma função Booleana É definido por um produto (AND) onde cada variável aparece apenas uma vez, direta ou complementada A 1 B 1 C 1 F = A’BC 1 Mintermo A’BC
Maxtermos Um maxtermo é um termo soma que vale 0 (zero) em apenas um ponto do domínio da função É determinado por uma disjunção (OR) onde cada variável aparece apenas uma vez, direta ou complementada A 1 B 1 C 1 F 1 Maxtermo (A’ Ú B Ú C)
Formas Canônicas Uma tabela verdade é uma assinatura que identifica unívocamente uma função Booleana Espressões Booleanas diferentes podem representar uma mesma função Booleana F = A Ú BC F = A B Ú A B’ Ú BC F = A( B Ú C Ú B’ C’) Ú B C Tabela Verdade Espressões Booleanas
Formas Canônicas Dois Níveis Formas Canônicas são representações (assinaturas) únicas de funções Booleanas Ex: uma soma de produtos é uma forma canônica 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 F = A' B C Ú A B' C' Ú A B' C Ú A B C' Ú A B C OR de 1’s F' = A' B' C' Ú A' B' C Ú A' B C'
Formas Canônicas Dois Níveis Formas Canônicas são representações (assinaturas) únicas de funções Booleanas Ex: produto de somas é outra forma canônica 0 0 0 0 0 1 0 1 0 F = (A Ú B Ú C) (A Ú B Ú C’) (A Ú B’ Ú C) AND de 0’s F' = (A Ú B’ Ú C’) (A Ú B’ Ú C’) (A Ú B’ Ú C) (A Ú B Ú C’) (A Ú B Ú C)
Formas Canônicas Dois Níveis Notação para soma de mintermos: F(A,B,C) = (1, 3, 5, 7) = m1 Ú m3 Ú m5 Ú m7 = A B C’ Ú A B' C' Ú A B’ C Ú A B C Notação para produto de maxtermos: F(A,B,C) = (0, 2, 4, 6) = M0·M2·M4·M6 = (A Ú B Ú C) (A Ú B’ Ú C) (A’ Ú B Ú C) (A’ Ú B’ Ú C)
Simplificação de Soma de Mintermos Usando métodos algébricos: F(A,B,C) = ∑(3,4,5,6,7) = m3 Ú m4 Ú m5 Ú m6 Ú m7 = A' B C Ú A B' C' Ú A B' C Ú A B C' Ú A B C = A B' (C Ú C') Ú A' B C Ú A B (C' Ú C) = A B' Ú A' B C Ú A B = A (B' Ú B) Ú A' B C = A Ú A' B C = A Ú B C Implementação
Mintermos x Maxtermos É possível obter um produto de maxtermos a partir de uma soma de mintermos e vice-versa aplicando De Morgan sobre o complemento da função F(A,B,C) = (1, 2, 3, 5, 7) = A’ B’ C Ú A’ B C’ Ú A B’ C Ú A B C F ’ (A,B,C) = (0, 4, 6) = A’ B’ C’ Ú A B’ C’ Ú A B C’ F (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’) = (1, 3, 7)
Funções Incompletas São funções para as quais algumas combinações de valores das entradas nunca ocorrem Ex: acionador de display de 7 segmentos para dígitos BCD A 1 B C D S1 X 4 entradas -> 16 combinações apenas 10 utilizadas 6 combinações nunca ocorrem são denominadas irrelevantes (don’t cares) podem ser utilizadas para simplificar a lógica
Funções Incompletas Funções incompletas mapeiam pontos do domínio da função em 3 valores possíveis: F(A, B, C, D) { 0, 1, X } Os domínios de pontos onde F vale { 0, 1, X} são denominados, respectivamente, de: F1 = {m0, m2, m3, m5, m6, m7, m8, m9 } Fx = {i10, i11, i12, i13, i14, i15 } F0 = {M1, M4 } F pode ser descrita definindo-se dois desses três conjuntos: F (A, B, C, D) = F1 Fx ou F1 F0 ou F0 Fx
Minimização Lógica Dois Níveis Manipulação algébrica: Difícil determinar a ordem e quais transformações aplicar Como saber se atingiu-se a melhor solução ? Ferramentas de auxílio: Não conseguem tratar problemas grandes de forma exata Baseiam-se em heurísticas e critérios de custo Resultados bastante bons em lógica dois níveis Métodos manuais apenas para fins didáticos ou funções muito simples
Minimização Lógica Dois Níveis Idéia base: aplicação de distribuição e complemento A(B Ú B’) = A F = A B' + A B = A (B' + B) = A G = A' B' + A B' = (A' + A) B' = B' Dentro de G1: A varia enquanto Dentro de F1: B não muda B varia enquanto A não muda Resultado: A é eliminado! Resultado: B é eliminado!
Cubos 1 Cubo 1 X O espaço Booleano n-dimencional pode ser visualizado espacialmente Produtos de literais são chamados de cubos XY X 01 00 11 10 Y Cubo 2 Cubo 4 WXYZ 0111 0011 0010 0000 0001 0110 1010 0101 0100 1000 1011 1001 1110 1111 1101 1100 Y Z W X Cubo 3 XYZ X 011 010 000 001 111 110 100 101 Y Z
Visualização de Cubos F(X, Y, Z) = ∑(4,5,6,7) = X 011 111 010 110 F(X, Y, Z) = ∑(4,5,6,7) = X Y 001 Z 101 Pontos adjacentes diferem em 1 bit Todos os pontos da função estão dispostos sobre uma face Y e Z variam enquanto X permanece inalterado: Y e Z podem ser eliminados da expressão 000 X 100 Cubo 3
Mapas de Karnaugh Visualização do domínio de uma função na forma matricial Pontos do domínio estão dispostos seguindo o código Gray, pares adjacentes diferem em 1 bit
Adjacências no Mapa de Karnaugh Os elementos nas extremidades das linhas e colunas são também adjacentes
Adjacências no Mapa de Karnaugh B é eliminado A permanece F = ? A é eliminado B’ permanece F = ? F = ? O cubo obtido é definido pelas variáveis que não mudam de fase ao longo de seus mintermos
Adjacências no Mapa de Karnaugh B é eliminado A permanece F = A B’ AB = A A é eliminado B’ permanece F = A B C’ A B C AB’C A B’ C’ = A(B(C C’) B’(C C’)) = A F = A’ B’ AB’ = B’ O cubo obtido é definido pelas variáveis que não mudam de fase ao longo de seus mintermos
Adjacências no Mapa-K Adjacência nas extremidades das linhas 00 C AB 01 11 10 1 A B Adjacência nas extremidades das colunas
Complemento de uma Função Trocar 0’s por 1’s F’ = ?
Complemento de uma Função F = A C B’ C’ Trocar 0’s por 1’s F’ = A’ C B C’
Karnaugh de 4 variáveis F = ?
Karnaugh de 4 variáveis F = C + A' B D + B' D'
Minimização com Irrelevâncias Os pontos irrelevantes podem ser considerados como 1 ou 0 no mapa de Karnaugh São utilizados para formar cubos maiores, simplificando a função A AB C 00 01 11 10 1 x 1 Os pontos irrelevantes deste cubo estão sendo computados como 1’s 1 x 1 x B Este ponto irrelevante é considerado como 0
Exemplo: comparador de 2 bits 3 funções de 4 variáveis 3 mapas de Karnaugh © R.H. Katz
Exemplo: comparador de 2 bits F1 = ? F2 = ? F3 = ? © R.H. Katz
Exemplo: comparador de 2 bits F1 = A' B' C' D' + A' B C' D + A B C D + A B' C D' F2 = A' B' D + A' C F3 = B C' D' + A C' + A B D' A xnor B xnor C xnor D © R.H. Katz