Curso Técnico em Eletrotécnica Disciplina: Automação Predial e Industrial Professor: Ronimack Trajano 1 FORMAS CANÔNICAS A lógica estruturada é baseada na capacidade de escrever equações booleanas de maneira que ela utilize vários tipos de formas regulares e repetidas. Dois tipos de formas estruturadas são especialmente úteis em um projeto lógico. Elas são conhecidas como “Soma de produtos” e “Produto de somas”. Uma expressão em soma de produtos consiste em efetuar operações OR sobre termos contendo operações AND. A expressão em produto de somas consiste em efetuar operações AND sobre termos contendo operações OR. Com essa estruturação, as equações podem ser determinadas pela aplicação da regra de De Morgan. Se associarmos cada combinação das variáveis de entrada ao seu equivalente em decimal, cada mintermo pode ser representado por mi, onde i é o decimal associado. De forma similar, cada maxtermo pode ser representado por Mi, onde i é o decimal associado. A Tabela 1 lista todos os mintermos e maxtermos de uma função de três variáveis (A, B e C). Tabela 1 - Minitermos e Maxtermos para uma função de 3 variáveis. Quando representamos expressões descritas em termos de soma de produtos, é conveniente introduzirmos o conceito de Minitermo. O minitermo é formado com a operação AND aplicada a todas as variáveis, em suas formas normais ou complementares. A notação com minitermos pode ser utilizada para simplificar a aparência de expressões em soma de produtos. Quando representamos expressões descritas em termos de produto das somas, é conveniente introduzirmos o conceito de Maxtermo. O maxtermo é formado com a operação OR aplicada a todas as variáveis, em suas formas normais ou complementares. A notação com maxtermo pode ser utilizada para simplificar a aparência de expressões em produto de somas. Considere a função: ( , , )= ̅ ̅+ ̅ + ̅+ Nota de aula adaptada das notas de aula Introdução aos Sistemas Digitais (v.2001/1) de José Luís Güntzel e Francisco Assis do Nascimento e Eletrônica Digital por F. C. C. de Castro. Esta expressão pode ser expressa em termos de minitermos utilizando a seguinte forma, onde o símbolo de somatório (∑) indica a operação OR aplicada aos minitermos listados dentro do parêntese. Cada termo produto construído é denominado minitermo. ( , , )= (0,3,4,7) Note que, para um dado minitermo, se substituirmos os valores das variáveis associadas, obteremos 1. Porém, se substituirmos nesse mesmo minitermo quaisquer outras combinações de valores, obteremos 0. Dessa forma, se quisermos encontrar a equação para uma função a partir de sua tabela verdade, basta montarmos um OU entre os minitermos associados aos 1s da função (também chamados minitermos 1 ). Considere a função: ( , , ) = ( + + ̅ )( + + )( ̅ + + ̅ )( ̅ + + ) Esta expressão pode ser expressa em termos de maxtermos utilizando a seguinte forma, onde o símbolo de somatório (∏) indica a operação AND aplicada nos maxtermos listados entre parêntesis. Cada termo soma construído é denominado maxtermo. ( , , )= (1,2,5,6) Note que, para um dado maxtermo, se substituirmos os valores das variáveis associadas, obteremos 0. Porém, se substituirmos nesse mesmo maxtermo quaisquer outras combinações de valores, obteremos 1. Dessa forma, se quisermos encontrar a equação para uma função a partir de sua tabela verdade, basta montarmos um E entre os maxtermos associados aos 0s da função (também chamados maxtermos 0). A soma de produtos e o produto de somas descritos apresentam ainda uma característica bastante particular: em cada termo soma e em cada termo produto todas as variáveis da função estão presentes. Devido a essa característica, essas formas são chamadas canônicas. 2 SIMPLIFICAÇÃO DE FUNÇÕES BOOLEANAS - MAPAS DE KARNAUGH O método de simplificação de uma expressão Booleana utilizando soma de produtos (SdP) para os minitermos, ou produto de somas (PdS) para os maxtermos é de aplicabilidade limitada, uma vez que é bastante difícil certificar-se que todos os pares de minitermos que podiam ser simplificados foram determinados. Alternativamente àquele método, há outro método de simplificação baseado na identificação visual de grupos de minitermos ou maxtermos passíveis de serem simplificados. No entanto, para que se possam identificar tais grupos, é necessário que os minitermos sejam dispostos de maneira mais conveniente, o que será explicado a seguir. Na descrição do método de simplificação literal, foi mencionado que os pares de minitermos que se diferenciam de somente uma variável são passíveis de simplificação, ou seja, se o minitermo ̅ ̅ e ̅ se diferenciam apenas da variável “C”, então na soma dos termos essa variável será eliminada, ou seja, ̅ ̅+ ̅ = ̅ ( ̅ + ) = ̅ (1) = ̅ . Observando a ordem com que os minitermos de uma função Booleana qualquer (com, por exemplo, 3 variáveis) aparecem na tabela verdade, vemos que, se trocarmos o 3° minitermo com o 4° e trocarmos também o 7° minitermo com o 8°, obteremos uma nova ordem, na qual quaisquer dois minitermos adjacentes são passíveis de simplificação. É interessante notar também que o 1° minitermo pode ser simplificado com o 5°, o 2° minitermo pode ser simplificado com o 6° e assim por diante. Tabela 2 - Minitermos para uma função de 3 variáveis. Então, usando o novo ordenamento e rearranjando os minitermos em duas linhas, temos a seguinte tabela: Tabela 3 - Tabela de adjacências para uma função de 3 variáveis. Repare que nessa nova tabela, quaisquer dois minitermos adjacentes (na horizontal ou na vertical) são passíveis de serem simplificados, pois só se diferenciam de uma variável. É importante ressaltar que esse conceito de adjacência não está restrito aos limites da tabela, uma vez que os elementos extremos de uma mesma linha (ou de uma mesma coluna) também são simplificáveis. Isto implica que a tabela de adjacências de minitermos da Tabela 3 pode e deve ser encarada como uma figura geométrica tridimensional do tipo “toróide”. A Figura 1 a seguir explicita as relações de adjacência dos minitermos para uma função de três variáveis. Figura 1 - Simplificações possíveis entre os minitermos de uma função de 3 variáveis. É importante ressaltar que o conceito de adjacência é aplicável na horizontal e na vertical, mas nunca na diagonal. Por exemplo, observe que m 0 e m5 não são adjacentes, pois não estão nem na mesma linha, nem na mesma coluna. O processo de simplificação usando a nova disposição inicia pela construção da tabela em si: os valores da função que se quer simplificar devem ser preenchidos conforme a nova ordem. Após, identificam-se todos os grupos de minitermos-1 adjacentes entre si. Cada grupo origina um termo produto, no qual somente as variáveis comuns a todos os minitermos-1 permanecem. Desde que os grupos de minitermos-1 adjacentes tenham sido corretamente identificados, a simplificação se torna trivial. Um mapa de Karnaugh é uma matriz com 2 N células, onde N é o número de variáveis ou entradas do circuito e onde cada célula está associada a um minitermo ou maxtermo. Para três variáveis, por exemplo, o mapa de Karnaugh é um conjunto de 8 células, já que existem 8 minitermos ou maxtermos associados. As células do mapa K (leia-se mapa de Karnaugh) são arrumadas de modo que minitermos logicamente adjacentes sejam, também, graficamente adjacentes. Dois minitermos são logicamente adjacentes quando diferem pelo estado lógico de apenas uma única variável. Figura 2 - Mapas de Karnaugh para funções de 2, 3 e 4 variáveis. 2.1 REPRESENTAÇÃO DE FUNÇÕES NOS MAPAS DE KARNAUGH (MAPA K) Duas situações podem ocorrer quando se quer representar uma função no mapa K: a função está na forma canônica ou então na forma reduzida. Quando a função está na forma canônica de soma de produtos (soma de minitermos) basta colocar 1 nas células associadas aos minitermos que a compõem e 0 nas restantes. Quando a forma canônica é de produto de somas (produto de maxtermos) basta colocar 0 nas células associadas aos índices de maxtermos que compõem a função e 1 nos restantes. 2.1.1 SIMPLIFICAÇÃO USANDO OS 1S DO MAPA K 1) As células ocupadas por 1s são identificadas; 2) Formam-se grupos de células logicamente adjacentes ocupadas por 1s; 3) Estes grupos devem conter o maior número possível de células logicamente adjacentes, mas este número deve ser sempre uma potência de 2. Logo, só é permitida a formação de grupos que tenham 1, 2, 4, 8, 16, 32, ... elementos; 4) Os grupos devem ter sempre a forma de quadrados ou retângulos; 5) A mesma célula pode participar da formação de dois ou mais grupos diferentes; 6) Os minitermos da coluna da esquerda são adjacentes aos minitermos da coluna da direita. Os minitermos da linha superior do mapa são, também, adjacentes aos minitermos da linha inferior; 7) Os minitermos localizados nos vértices do mapa são adjacentes entre si; 8) Sempre que um grupo é formado, a variável que muda de estado é a eliminada. Se o grupo engloba parte da região “A” e parte da região “A”, a variável A é eliminada. 2.1.2 SIMPLIFICAÇÃO USANDO OS 0S DO MAPA K 1) Grupos de células contendo zeros são formados usando-se as mesmas regras válidas para a minimização por 1s; 2) Após a leitura dos grupos de zeros, que surgem como produtos lógicos, os mesmos são complementados, transformando-se em somas lógicas; 3) As somas lógicas são combinadas através da operação produto lógico. Isto resulta numa função minimizada com a estrutura de produto de somas. 2.1.3 EXEMPLOS: 1) Dadas as representações de minitermos Y(A, B, C, D) = ∏(2,4,10,12,14) e pela tabela verdade a seguir, apresente a expressão booleana simplificada. 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 Y 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 2) Dadas as representações de minitermos ( , , ) = ∑(0,1,3,5,6,7)e pela tabela verdade a seguir, apresente a expressão booleana simplificada. 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 Y 1 1 0 1 0 1 1 1 3) Dadas as representações de minitermos Y(A, B, C, D) = ∑(0,2,8,10) e pela tabela verdade a seguir, apresente a expressão booleana simplificada. A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2.2 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 Y 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 FUNÇÕES INCOMPLETAMENTE ESPECIFICADAS (DON’T CARE CONDITION) Durante o projeto lógico, pode ocorrer que algumas condições (combinações) de entradas de uma função Booleana para as quais não sejam especificadas o seu resultado na saída, por não afetarem a função no contexto do projeto. Cada condição de entrada cujo valor não é especificado é sinalizada com “DC” ou com “X” na tabela verdade (ou no mapa de Karnaugh) e são denominadas condições de don’t care (ou simplesmente, don’t care). Quando da simplificação de uma função Booleana que contenha condições de don’t care, essas condições podem e devem ser exploradas no sentido de se obter a máxima simplificação possível. Para tanto, pode-se assumir cada condição de don’t care como valendo 0 ou 1, independente das demais condições de don’t care. A escolha do valor (0 ou 1) irá depender do contexto, mas sempre deverá ocorrer com o objetivo de levar a uma simplificação máxima da função Booleana. Vamos supor que um determinado processo industrial a ser controlado por um circuito lógico tenha uma variável Y representada de minitermos Y(A, B, C, D) = ∑(4,5,6,8,9) + DC(7,10,11,14,15) e consequente tabela verdade a seguir: 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 Y 0 0 0 0 1 1 1 X 1 1 X X 0 0 X X O valor de X atribuído à saída Y em determinadas linhas da tabela verdade significa que, para os específicos valores lógicos das variáveis A, B, C e D nestas linhas, o valor lógico da saída Y é irrelevante para o processo controlado (don’t care). O mapa resultante é: Mas uma vez que os quadrículos contendo X representam situações irrelevantes ao processo industrial, podemos atribuir a cada X um valor lógico conveniente no contexto de minimização lógica de forma a nos permitir agrupar o maior número possível de quadrículos gerando o menor número possível de agrupamentos. Nesse sentido para a simplificação máxima desta função, seria conveniente que os valores de saída X, apresentados nas linhas 2 e 4 do mapa K fossem iguais a 1, visto que não haveria alterações nas outras saídas do circuito, consequentemente o circuito lógico não sofreria alterações quanto ao estado das demais saídas. Desse modo, o mapa K poderia ser representado por: O mapa K para a função com os valores dos X’s atribuídos objetivando a minimização da função lógica resultante. A função lógica minimizada resulta em = ̅ + = ⊕ . Observe que os X’s da linha 3 não foram inclusos na solução final, visto que todos os 1’s já foram combinados (agrupados). 4) Dadas as representações de minitermos ( , , ) = ∑(0,1,5,6) + (3,7) e pela tabela verdade a seguir, apresente a expressão booleana simplificada. 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 Y 1 1 0 X 0 1 1 X 5) Dadas as representações de minitermos ( , , ) = ∑(0,1,5,6) + verdade a seguir, apresente a expressão booleana simplificada. 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 Y 1 X X X X 0 0 1 (3,7) e pela tabela