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 2 níveis lógicos Circuitos Digitais Termo produto CIC - UnB 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) 2 níveis lógicos Circuitos Digitais Termo soma CIC - UnB 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 0 0 0 0 1 1 1 1 Circuitos Digitais B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F = A’BC 0 0 0 1 0 0 0 0 Mintermo A’BC CIC - UnB 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 0 0 0 0 1 1 1 1 Circuitos Digitais B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 1 1 0 1 1 1 1 Maxtermo (A’ B C) CIC - UnB 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 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 1 1 1 1 1 Tabela Verdade Circuitos Digitais F 1 1 1 0 0 0 0 0 F = A BC F = A B A B’ BC F = A( B C B’ C’) B C Espressões Booleanas CIC - UnB 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 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 OR de 1’s Circuitos Digitais F 0 0 0 1 1 1 1 1 F 1 1 1 0 0 0 0 0 011 100 101 110 111 F = A' B C A B' C' A B' C A B C' A B C F' = A' B' C' A' B' C A' B C' CIC - UnB 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 000 001 010 F = (A B C) (A B C’) (A B’ C) A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 1 1 1 1 1 F 1 1 1 0 0 0 0 0 AND de 0’s F' = (A B’ C’) (A B’ C’) (A B’ C) (A B C’) (A B C) Circuitos Digitais CIC - UnB 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) Circuitos Digitais CIC - UnB 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 BC B Implementação C F A Circuitos Digitais CIC - UnB 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) Circuitos Digitais CIC - UnB 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 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S1 1 0 1 1 0 1 1 1 1 1 X X X X X X Circuitos Digitais s1 x1 x2 x3 x4 • 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 s6 s7 s2 s5 s 3 s4 CIC - UnB 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 Circuitos Digitais F1 F0 ou F0 Fx CIC - UnB 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 Circuitos Digitais CIC - UnB 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 A 0 0 1 1 B 0 1 0 1 F 0 0 1 1 Dentro de F1: B varia enquanto A não muda G = A' B' + A B' = (A' + A) B' = B' Dentro de G1: A varia enquanto A 0 0 1 1 B 0 1 0 1 G 1 0 1 0 B não muda Resultado: A é eliminado! Resultado: B é eliminado! Circuitos Digitais CIC - UnB Cubos 0 1 Cubo 1 X • O espaço Booleano n-dimencional pode ser visualizado espacialmente • Produtos de literais são chamados de cubos XY 11 01 Y Cubo 2 00 10 X 011 XYZ 111 WXYZ 1011 1111 0111 0011 010 1010 1110 110 0010 0110 Y Z 001 000 Cubo 3 X 101 100 Y 0001 1001 1101 0101 Z 1100 W 0000 X 1000 0100 Cubo 4 Circuitos Digitais CIC - UnB Visualização de Cubos XYZ 111 011 110 010 F(X, Y, Z) = ∑(4,5,6,7) = X Y Z 001 000 Cubo 3 X Circuitos Digitais 101 100 • 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 CIC - UnB 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 A 0 B 1 0 0 1 1 A AB 00 CD 2 00 01 11 00 0 4 12 8 1 5 13 9 3 7 15 11 2 6 14 10 3 01 A AB C 00 01 11 11 10 10 0 1 Circuitos Digitais C 0 2 6 4 1 3 7 5 B D B CIC - UnB Adjacências no Mapa de Karnaugh • Os elementos nas extremidades das linhas e colunas são também adjacentes AB 00 C 01 11 111 011 A 10 010 0 000 010 110 100 1 001 011 111 101 110 B 001 101 C B 000 100 A Circuitos Digitais CIC - UnB Adjacências no Mapa de Karnaugh A 0 B 0 1 0 0 1 1 B é eliminado A permanece A 00 01 11 10 0 0 0 1 1 1 0 0 1 1 F=? A 0 1 0 1 1 1 0 0 B AB C 1 B A é eliminado B’ permanece F=? F=? • O cubo obtido é definido pelas variáveis que não mudam de fase ao longo de seus mintermos Circuitos Digitais CIC - UnB Adjacências no Mapa de Karnaugh A 0 B 0 1 0 0 AB C 1 1 1 B é eliminado A permanece 00 01 11 10 0 0 0 1 1 1 0 0 1 1 F = A B’ AB = A A B 0 1 0 1 1 A é eliminado B’ permanece 1 0 0 F = A’ B’ AB’ = B’ B A F = A B C’ A B C AB’C A B’ C’ = A(B(C C’) B’(C C’)) =A • O cubo obtido é definido pelas variáveis que não mudam de fase ao longo de seus mintermos Circuitos Digitais CIC - UnB Adjacências no Mapa-K AB C 0 A 00 01 11 10 1 0 0 1 •Adjacência nas extremidades das linhas 1 0 0 1 1 B AB C A 00 01 11 10 0 1 0 1 0 1 1 0 1 0 •Adjacência nas extremidades das colunas B Circuitos Digitais CIC - UnB Complemento de uma Função AB C 0 A 00 01 11 10 1 0 0 1 F=? 1 0 0 1 1 B AB C 0 A Trocar 0’s por 1’s 00 01 11 10 0 1 1 0 F’ = ? 1 1 1 0 0 B Circuitos Digitais CIC - UnB Complemento de uma Função AB C 0 A 00 01 11 10 1 0 0 1 F = A C B’ C’ 1 0 0 1 1 B AB C 0 A Trocar 0’s por 1’s 00 01 11 10 0 1 1 0 F’ = A’ C B C’ 1 1 1 0 0 B Circuitos Digitais CIC - UnB Karnaugh de 4 variáveis AB 00 CD A 01 11 10 00 1 0 0 1 01 0 1 0 0 D 11 1 1 1 1 10 1 1 1 1 F=? C B Circuitos Digitais CIC - UnB Karnaugh de 4 variáveis AB 00 CD A 01 11 10 00 1 0 0 1 01 0 1 0 0 F = C + A' B D + B' D' D 11 1 1 1 1 10 1 1 1 1 C B Circuitos Digitais CIC - UnB 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 AB C A 00 01 11 10 0 1 0 x 1 1 0 x 1 x Os pontos irrelevantes deste cubo estão sendo computados como 1’s B Este ponto irrelevante é considerado como 0 Circuitos Digitais CIC - UnB Exemplo: comparador de 2 bits A B C D N1 F1 A B = C D =, >, < F2 A B < C D F3 A B > C D N2 A 0 0 1 • 3 funções de 4 variáveis • 3 mapas de Karnaugh 1 Circuitos Digitais © R.H. Katz B C D 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 F1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 F2 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 F3 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 CIC - UnB Exemplo: comparador de 2 bits AB CD A 00 01 11 10 00 1 0 0 0 01 0 1 0 0 AB CD A 00 01 11 10 00 0 0 0 0 01 1 0 0 0 D 11 0 0 1 11 1 1 0 0 0 0 00 01 11 10 00 0 1 1 1 01 0 0 1 1 1 11 0 0 0 0 10 0 0 1 0 C 10 B K-map for F1 D 1 C 10 A D 0 C AB CD 1 1 0 B K-map for F2 0 B K-map for F3 F1 = ? F2 = ? F3 = ? Circuitos Digitais © R.H. Katz CIC - UnB Exemplo: comparador de 2 bits AB CD A 00 01 11 10 00 1 0 0 0 01 0 1 0 0 AB CD A 00 01 11 10 00 0 0 0 0 01 1 0 0 0 D 11 0 0 1 0 10 0 0 0 1 C AB CD A 00 01 11 10 00 0 1 1 1 01 0 0 1 1 D 11 1 1 0 1 10 1 1 0 0 C D 11 0 0 0 0 10 0 0 1 0 C B K-map for F1 B K-map for F2 B K-map for F3 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 Circuitos Digitais © R.H. Katz CIC - UnB