Universidade Federal de Uberlândia Faculdade de Computação Sistemas Digitais Módulo 5 Teoremas Lógicos, Simplificação Algébrica e Projeto de Circuitos Lógicos Graduação em Sistemas de Informação Prof. Dr. Daniel A. Furtado
Conteúdo Avaliação das Saídas dos Circuitos Lógicos Análise de Circuitos por Tabela Verdade Teoremas Lógicos Teoremas Básicos Teoremas de DeMorgan Simplificação Algébrica de Expressões Lógicas Simplificação de Circuitos Lógicos Projeto de Circuitos Lógicos Combinacionais
Avaliando as Saídas dos Circuitos Lógicos Exemplo 1: determinar o nível lógico da saída x do circuito acima para o caso em que A = 0, B = 1, C = 1 e D = 1: x = A BC A + D = 0 1 1 0 + 1 = 1 1 1 0 + 1 = 1 1 1 (1) = 1 1 1 0 = 0
Avaliando as Saídas dos Circuitos Lógicos Exemplo 2: determinar o nível lógico da saída x do circuito acima para o caso em que A = 0, B = 0, C = 1, D = 1 e E = 1: x = D + A + B C E = 1 + 0 + 0 1 1 = 1 + 0 1 1 = 1 + 0 1 = 1 + 1 1 = 1 x = D + A + B C E
Análise do Circuito por Tabela Verdade Uma análise detalhada do circuito lógico pode ser necessária em algumas situações; Por exemplo, dado um circuito lógico, pode-se desejar saber quais são as combinações de valores das entradas que levam ao valor lógico 1 na saída; Também pode ser necessário conhecer os possíveis valores lógicos em um nó intermediário do circuito (para fins de análise de defeitos, por exemplo); Uma forma de realizar tais avaliações é construindo uma tabela verdade que apresente todos os possíveis valores lógicos nos nós intermediários e no nó final do circuito.
Circuito exemplo (a) (b) (c) Tabela verdade completa do circuito (d)
Simplificação Algébrica
Simplificação Algébrica Introdução Expressões lógicas e circuitos lógicos frequentemente pode ser simplificados; Circuitos lógicos mais simples podem ser analisados com maior facilidade e geralmente são implementados com um custo menor; Em softwares, expressões lógicas mais simples também trazem benefícios óbvios.
Simplificação Algébrica Introdução Por exemplo, os circuitos (a) e (b) a seguir são equivalentes. Entretanto, o circuito (b) é muito mais simples e obviamente deveria ser escolhido no caso de uma eventual implementação.
Simplificação Algébrica Introdução A simplificação algébrica é uma forma de realizar simplificações em expressões lógicas utilizando uma coleção de teoremas lógicos da álgebra booleana; Alguns desses teoremas são apresentados a seguir.
Simplificação Algébrica Teoremas Booleanos 1. x 0 = 0 2. x 1 = x 3. x x = x x 0 x 1 x 0 x x 4. x x = 0 x 0
Simplificação Algébrica Teoremas Booleanos 5. x + 0 = x 6. x + 1 = 1 7. x + x = x x 0 x 1 x x 1 x 8. x + x = 1 x 1
Simplificação Algébrica Teoremas Booleanos 9. x + y = y + x (a operação OR é comutativa) 10. x y = y x (a operação AND é comutativa) 11. x + y + z = x + y + z = x + y + z (OR é associativa) 12. x yz = xy z = xyz (AND é associativa) 13. (a) x y + z = xy + xz 13. (b) w + x y + z = wy + wz + xy + xz Propriedade distributiva: podemos colocar termos comuns em evidência (fatorar) 14. x + xy = x 15. (a) x + xy = x + y 15. (b) x + xy = x + y
Simplificação Algébrica Teoremas Booleanos Os teoremas booleanos são fundamentais na simplificação algébrica de expressões lógicas; As variáveis x, y e z nos teoremas booleanos podem representar expressões com mais de uma variável: Por exemplo, utilizando o teorema 4, pode-se deduzir que AB AB = 0. Neste caso, basta considerar x = AB.
Simplificação Algébrica Duplas Inversões Duas inversões em sequência se anulam, ou seja: A + B + C = A + B + C A B = AB A = A Entretanto: A B AB
Simplificação Algébrica Exemplos Exemplo 1: utilize os teoremas booleanos para simplificar a expressão y = ABD + ABD y = ABD + ABD = AB D + D (coloca-se em evidência AB, teorema 13) = AB 1 (teorema 8) = AB (teorema 2)
Simplificação Algébrica Exemplos Exemplo 2: utilize os teoremas booleanos para simplificar a expressão z = A + B A + B z = A + B A + B = AA + AB + BA + BB (distribuição, teorema 13b) = 0 + AB + BA + B (teoremas 3 e 4) = AB + BA + B (0 + x = x, teorema 5) = B(A + A + 1) (pode-se colocar B em evidência, teor. 13) = B(1) (x + 1 = 1, teorema 6) = B (B 1 = B)
Simplificação Algébrica Exemplos Exemplo 3: utilize os teoremas booleanos para simplificar a expressão x = ACD + ABCD x = ACD + ABCD = CD(A + AB) (coloca-se CD em evidência, teor. 13) = CD(A + B) (A + AB = A + B; teorema 15a) = ACD + BCD (distribuição, teor. 13)
Simplificação Algébrica Exercícios Exercício. Utilize os teoremas lógicos para simplificar: AC + ABC ABCD + ABCD AD + ABD ABC + ABC + BCD ABC + AB(A + C)
Simplificação Algébrica Teoremas de DeMorgan Dois outros teoremas lógicos possuem especial importância no processo de simplificação algébrica de expressões lógicas; Eles foram propostos pelo matemático britânico Augustus De Morgan: 1. x + y = x y 2. x y = x + y
Simplificação Algébrica Exemplos Exemplo 4: simplifique a expressão x = AB + C AB + C = AB C (DeMorgan, x + y = x y ) = A + B C (DeMorgan, xy = x + y ) = A + B C = AC + BC
Formas Canônicas de uma Expressão Lógica Uma expressão lógica está na forma soma-de-produtos quando é constituída por dois ou mais termos AND conectados por operações OR, onde: Cada termo AND consiste em um grupo de variáveis conectadas pela operação AND e é denominado mintermo; As variáveis em um termo AND podem aparecer individualmente na forma complementada ou não; Exemplos: AB + CD + AD AB + BCD + D + ABD (expressão com 3 mintermos) (expressão com 4 mintermos) Atenção: na soma-de-produtos não é permitida a inversão de um grupo de variáveis, isto é, uma barra não pode cobrir mais que uma variável ao mesmo tempo, como em ABC ou BCD.
Formas Canônicas de uma Expressão Lógica Uma expressão lógica está na forma produto-das-somas quando é constituída por dois ou mais termos OR conectados por operações AND, onde: Cada termo OR consiste em um grupo de variáveis conectadas pela operação OR e é comumente denominado maxtermo; As variáveis em um termo OR podem aparecer individualmente na forma complementada ou não; Exemplos: (A + B + C)(A + D) (A + B)(A + D)(B + A + C)(D) Atenção: no produto-das-somas não é permitida a inversão de um grupo de variáveis, como em (A + B + C)(C + D).
Simplificação Algébrica Pode-se utilizar a forma soma-de-produtos e os teoremas lógicos para simplificar expressões lógicas; Passos: 1. Coloca-se a expressão na forma soma-de-produtos (se possível, aplica-se DeMorgan, multiplicações, etc.); 2. Procura-se por fatores comuns entre os termos a fim de colocá-los em evidência: o objetivo é tentar eliminar um ou mais termos; dê preferência para os fatores maiores;
Simplificação Algébrica Exemplo 5 Simplifique a expressão y = ABC + AB AC ABC + AB AC = ABC + AB(A + C) (DeMorgan) = ABC + AB(A + C) = ABC + AAB + ABC = ABC + AB + ABC = ABC + AB (x + xy = x) = A BC + B = A(B + C) (x + xy = x + y) = AB +AC
Simplificação Algébrica Exemplo 6 Simplifique a expressão (A + C) (B + D) (A + C) (B + D) = (A + C) + (B + D) = A C + B D = AC + BD
Simplificação Algébrica Exemplo 7 Simplificar a expressão x = (A + B)(A + B + D)D = AAD + ABD + ADD + BAD + BBD + BDD (Distribui) = 0 + ABD + 0 + BAD + BD + 0 (x x = 0) = ABD + ABD + BD (Reescreve) = BD(A + A + 1) (Fatora) = BD(1) (1 + x = 1) = BD (x 1 = x)
Simplificação Algébrica Exemplo 8 Simplificar a expressão z = AC ABD + ABCD + ABC Passo 1: colocar na forma soma-de-produtos: z = AC ABD + ABCD + ABC = AC A + B + D + ABCD + ABC [DeMorgan] = ACA + ACB + ACD + ABCD + ABC [Multiplica] Passo 2: fatorar/simplificar (1ª forma) = ACA + ACB + ACD + ABCD + ABC = 0 + ACB + ACD + ABCD + ABC [A A = 0] = ABC + ACD + ABCD + ABC [Reorganiza] = BC A + A + AD(C + BC) [Fatora] = BC + AD(C + CB) [A + A = 1] = BC + AD(C + B) [C + CB = C + B, teor. 15]
Simplificação Algébrica Exemplo 8 Passo 2: fatorar/simplificar (2ª forma) z = ACA + ACB + ACD + ABCD + ABC = 0 + ACB + ACD + ABCD + ABC [A A = 0] = C AB + AD + AB + ABCD [Fatora] = C B A + A + AD + ABCD [Fatora] = C B 1 + AD + ABCD [A + A = 1] = BC + ACD + ABCD [Distribui] = BC + AD(C + BC) [Fatora] = BC + AD(C + B) [C + CB = C + B, teor. 15]
Simplificação Algébrica Pode-se observar na simplificação algébrica que: É possível ter diversos caminhos no processo de simplificação; Nem sempre é óbvio escolher as melhores variáveis para fatorar; Nem sempre é fácil saber se a expressão resultante ainda pode ser simplificada; Muitas vezes temos um processo de tentativa e erro; Nem sempre o resultado obtido corresponde à forma mais simples da expressão. Por exemplo, a forma mais simples da última expressão simplificada é z = ABD + BC
Simplificação Algébrica Exercício Utilize a álgebra booleana para simplificar as expressões: a. q = RST(R + S + T) b. r = (ABA)(ABB)
Simplificação Algébrica e Circuitos Lógicos É possível utilizar a simplificação algébrica para simplificar circuitos lógicos; Basta obter a expressão lógica equivalente ao circuito a ser simplificado, simplificar a expressão e então gerar um novo circuito a partir da expressão simplificada;
Simplificação de Circuitos Exemplo. Utilizar o processo de simplificação algébrica para simplificar o circuito lógico:
Simplificação de Circuitos Solução Passo 1: Obter a expressão lógica equivalente à saída do circuito; z = ABC + AB(AC)
Simplificação de Circuitos Solução Passo 2: Simplificar a expressão lógica ABC + AB AC = ABC + AB(A + C) (DeMorgan) = ABC + AAB + ABC = ABC + AB + ABC = ABC + AB (x + xy = x) = A BC + B = A(B + C) (x + xy = x + y)
Simplificação de Circuitos Solução Passo 3: Montar o circuito correspondente à expressão simplificada. A(B + C)
Simplificação de Circuitos Exercício Simplificar o circuito a seguir utilizando a álgebra booleana:
Projeto de Circuitos Combinacionais
Projeto de Circuitos Combinacionais Quando se conhece o valor de saída de um circuito lógico para cada combinação de entradas, pode-se montar uma tabela verdade e projetar o circuito lógico a partir dessa tabela; Exemplo 1 Tabela Verdade do Circuito Entradas Saída x Circuito correspondente A B 0 0 0 0 1 1 AB A B x = AB 1 0 0 1 1 0
Projeto de Circuitos Combinacionais Exemplo 2. Três entradas com uma única saída em alta Tabela Verdade do Circuito Entradas Saída x A B C 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 ABC A B C Circuito correspondente x = ABC
Projeto de Circuitos Combinacionais Exemplo 3. Duas entradas e duas combinações de entrada que resultam em saída alta; Tabela Verdade do Circuito Entradas Saída x A B 0 0 0 0 1 1 1 0 1 1 1 0 AB AB A B x = AB + AB A B AB x = AB + AB
Projeto de Circuitos Combinacionais Exemplo 4 Tabela Verdade do Circuito Entradas A B C Saída x 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 ABC ABC ABC x = ABC + ABC + ABC = BC A + A + ABC = BC + ABC = B C + AC = B(C + A) 1 1 0 0 1 1 1 0 B C A x = B(C + A)
Projeto de Circuitos Procedimento Completo 1. Interprete o problema e construa uma tabela-verdade para descrever seu funcionamento; 2. Escreva o termo AND (produto) para cada caso em que a saída seja 1; 3. Escreva a expressão soma-de-produtos para a saída; 4. Simplifique a expressão de saída, se possível; 5. Implemente o circuito para a expressão final, simplificada.
Projeto de Circuitos Combinacionais Exemplo 5 Em um determinado modelo de automóvel, uma luz de advertência deve acender no painel de instrumentos do veículo quando uma das seguintes situações ocorrer: O motorista acende os faróis com a ignição desligada; O motorista abre a porta com a ignição ligada; Projete um circuito lógico para simular esses eventos. A saída x do circuito deverá indicar o estado da luz de emergência (ligada/desligada).
Projeto de Circuitos Combinacionais Exemplo 5 Solução: Passo 1a. Utilizar três variáveis lógicas para representar, respectivamente, o estado dos faróis, da ignição e da porta: Variável F: estado dos faróis (0 = desligado; 1 = ligado); Variável I: estado da ignição (0 = desligada; 1 = ligada); Variável P: estado da porta (0 = fechada; 1 = aberta);
Projeto de Circuitos Combinacionais Exemplo 5 Solução: Passo 1b. Construção da tabela verdade contendo todas as combinações possíveis de entrada e as respectivas saídas: Entradas F I P 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Saída x 0 0 0 0 1 1 1 0 1 Condições para acender a luz O motorista acende os faróis com a ignição desligada; O motorista abre a porta com a ignição ligada;
Projeto de Circuitos Combinacionais Exemplo 5 Solução: Passo 2. Obter os mintermos para cada saída igual a 1 Entradas F I P 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Saída x 0 0 0 0 1 1 1 0 1 F I P F I P F I P F I P
Projeto de Circuitos Combinacionais Exemplo 5 Solução: Passo 3. Escrever a expressão da saída na forma soma-de-produtos Entradas Saída x F I P 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 F I P F I P x = FIP + FI P + FIP + FIP 1 0 1 1 F I P 1 1 0 0 1 1 1 1 F I P
Projeto de Circuitos Combinacionais Exemplo 5 Solução: Passo 4. Simplificar a expressão da saída x = FIP + FI P + FIP + FIP = IP F + F + FI P + P = IP 1 + FI 1 = IP + FI Passo 5. Projetar o circuito para a expressão simplificada I P x = IP + IF F
Suficiência da Portas NAND e NOR
Teoremas de DeMorgan e Portas Lógicas Os teoremas de DeMorgan podem ser usados para estabelecer equivalências de portas lógicas; Uma porta NOR é equivalente a uma porta AND com duas inversões nas entradas: Teorema 1: x + y = x y
Teoremas de DeMorgan e Portas Lógicas Da mesma forma, uma porta NAND é equivalente a uma porta OR com duas inversões nas entradas: Teorema 2: x y = x + y
Suficiência da Porta NAND Qualquer circuito lógico pode ser representado utilizando apenas portas NAND.
Suficiência da Porta NOR Qualquer circuito lógico pode ser representado utilizando apenas portas NOR.
Suficiência das Portas NAND e NOR Suponha que a expressão lógica x = AB + CD tenha que ser implementada como um circuito para controle de uma esteira de transporte; Suponha ainda que os seguintes circuitos integrados (CIs) estejam disponíveis: 74LS00 74LS32 74LS08 Qual seria a melhor forma de criar o circuito?
Suficiência das Portas NAND e NOR Opção 1: Implementar o circuito a seguir utilizando um CI 74LS08 (portas AND) e um CI 74LS32 (porta OR) 74LS00 74LS32 74LS08
Suficiência das Portas NAND e NOR Opção 2: Tentar simplificar o circuito utilizando apenas portas NAND:
Suficiência das Portas NAND e NOR Circuito equivalente após substituição das portas AND e OR por portas NAND: Após eliminação das duplas inversões:
Suficiência das Portas NAND e NOR Assim, o circuito equivalente à expressão lógica x = AB + CD que utiliza apenas portas NAND poderia ser implementado utilizando apenas um CI 74LS00, ao invés de dois CIs diferentes, como na primeira proposta. 74LS00
Referências TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas Digitais: princípios e aplicações. 11.ed. São Paulo: Pearson Prentice Hall, 2011. Leitura recomendada: Páginas 49-75.