



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
contextualização implicantes primos.
Tipologia: Notas de estudo
1 / 7
Esta página não é visível na pré-visualização
Não perca as partes importantes!




3.Método de Quine-MacCluskey 8
4.Bibliografia 9
A simplificação de funções booleanas é parte essencial na redução dos custos da realização de circuitos lógicos e aritméticos binários. Muitos dos algoritmos de minimização foram baseados nas idéias de Quine e McCluskey
Na primeira restrição tem-se a soma dos implicantes primos que cobrem o mintermo 0. Na segunda restrição a soma dos implicantes primos que cobrem o mintermo 1 e na terceira restrição os que cobrem o mintermo 5. Pode-se verificar que todos os mintermos estão contidos na cobertura da função e correspondem às restrições no problema de cobertura. A solução desse problema matemático é dado por F1(ABC) = 0X0 + X01, cujo custo é igual a 6.
2- Teorema de Expansão de Shannon
A geração de implicantes primos pelo Método de Expansão de Shannon é uma técnica iterativa, que permite obter implicantes primos de uma dada função booleana através de simples operações sobre o conjunto de mintermos e/ou estados irrelevantes que descreve a função. Tal método pode ser empregado em funções com um grande número de variáveis. Todos, ou quase todos os implicantes primos que não estariam no conjunto solução são eliminados, simplificando, desse modo, a busca pela solução mínima. O teorema diz que qualquer função booleana f(x1,x2, ... ,xn) pode ser expressa por: f(x1,x2, ... ,xn) = x1. f(1,x2, ... ,xn) + x’1. f(0,x2, ... ,xn). Este teorema pode ser provado por indução perfeita, ou seja, fazendo x1 assumir o valor “1” tem-se, consequentemente, x’1 assumindo valor lógico “0”. Dessa forma, tem-se a expressão: f(x1,x2, ... ,xn) = 1. f(1,x2, ... ,xn). De modo similar, substituindo-se x1 = “0” e x’1 = “1” a equação também será reduzida a uma identidade, provando, desse modo, o teorema. Se o teorema for novamente aplicado em relação à variável x2, em cada um dos dois termos obtidos em relação à variável x1, obtém-se a seguinte expressão: f(x1,x2, ... ,xn) = x1x2. f(1,1,x3, ... ,xn) + x1x’2. f(1,0,x3, ... ,xn) + x’1x2. f(0,1,x3, ... ,xn) + x’1x’2. f(0,0,x3, ... ,xn). A expressão da função f(x1,x2, ... ,xn) sobre o restante das variáveis produz uma forma normal disjuntiva (soma de produto). De maneira similar, a aplicação repetida do dual do Teorema de Expansão sobre as mesmas variáveis produz a forma normal conjuntiva (produto de soma). Em termos práticos, a maneira mais rápida e simples para se obter a forma soma de produto canônica de uma função booleana é resumida a seguir:
O Algoritmo para a obtenção dos implicantes primos de uma função booleana utilizando- se do Teorema de Expansão de Shannon foi inicialmente estudado por Scheinman [6]. Trata-se de um método manual e iterativo e de difícil entendimento. A partir dos estudos de Scheinman deu-se ao método uma abordagem através da mais avançada técnica de programação estruturada, e nas estruturas de dados utilizadas empregou-se somente apontadores e alocação dinâmica de memória.
A estrutura de dados obtida é de extrema complexidade e de difícil programação, porém, o algoritmo desenvolvido utiliza somente duas operações aritméticas, a subtração e a potenciação, e uma operação lógica, a igualdade. O algoritmo implementado será ilustrado, para maior clareza, utilizando-se como exemplo a função de 4 variáveis, F2(ABCD) = Σm(1,5,6,8,11,12,15) + d(0,3). Os passos do algoritmo são os seguintes:
Passo 1: Ordene em um coluna, de forma crescente, as representações decimais dos mintermos e dos estados irrelevantes. O estados irrelevantes devem conter uma marca e são utilizados para obter implicantes primos de dimensões maiores. Considera-se dimensão de um implicante a quantidade de variáveis irrelevantes que eles possuem. Quanto menor a quantidade de varáveis (literais), na forma negada ou não, que um implicante possuir, maior será a sua dimensão. Essa primeira coluna é considerada, no algoritmo proposto, como sendo o nó raiz. A Figura 2 apresenta o nó raiz para a função F2.
Note que os estados irrelevantes contêm uma marca.
Passo 2: Divida o conjunto de termos formado no passo anterior em dois outros grupos de colunas, um rotulado com uma literal ( A, por exemplo) e o outro com a mesma literal na forma negada (A’, por exemplo). Considerou-se as variáveis ordenadas como ABCD, sendo que os pesos são respectivamente 23, 22, 21 e 20. Dessa forma, a variável A é a de maior peso (peso 8). A coluna A’ contém os termos (mintermos e irrelevantes) da função original, cuja representação decimal é menor do que 8 (peso da variável A). A coluna A contém os termos da função original, cuja representação decimal é maior ou igual a 8, sendo que de cada um desses números é subtraído o valor 8, valor correspondente à variável A que está sendo expandida. A Figura 3 apresenta o nó raiz subdividido em duas outras colunas.
Passo 3: Crie uma terceira coluna com o rótulo X. Essa coluna indicará a redundância entre A e A’. Nesta coluna, têm-se as representações decimais que são comuns tanto da coluna A como da coluna A’. Esses decimais comuns às colunas A e A’ devem ser marcados nas respectivas colunas para indicar que são termos redundantes em relação à variável A. Se algum decimal contido na coluna X foi anteriormente marcado em ambas as colunas, A e A’, eles também devem ser marcados na coluna X. A Figura 4 apresenta o diagrama de decisão contendo a terceira coluna, as dos termos irrelevantes para a variável sob expansão.
com os obtidos com o tradicional Método de Quine-Mc Cluskey. Escolheu-se o Método de Quine-McCluskey pois na primeira fase do método, a geração de implicantes, todos os implicantes primos são gerados. Os parâmetros utilizados para a comparação foram a quantidade de memória utilizada, o tempo de execução e a quantidade de implicantes primos gerados. A Figura 6 apresenta a quantidade de memória utilizada pelo Expander subtraída da quantidade de memória utilizada pelo Quine-McCluskey. O Sinal (-) foi utilizado somente para indicar que na grande maioria dos casos o Expander utilizou menos memória.
Passo 4: Examine cada uma das colunas geradas. Se alguma coluna contém somente decimais marcados, toda a coluna deve ser eliminada, pois todos os seus termos estão contidos nas outras colunas; Passo 5: Cada uma das colunas criadas no passo 3 devem ser novamente expandidas em relação à variável B, e repete-se os passos 2, 3 e 4. Se um decimal da coluna B for
[1] Shannon, C. E. “The synthesis of two-terminal switching circuits”, Bell Sys. Tech. J., 1948.
[2] Quine, W., “The Problem of Simplifying Truth Functions”, American Mathematical Monthly, Vol. 59, pp. 521-531, 1952.
[3] Mccluskey, E., “Minimization of Boolean Function”, The Bell System Technical Journal, Vol. 35, pp. 1417-1444, November, 1956.
[4] McCluskey E. J., Logic Design Principles, Prentice Hall, N.J., 1986.
[5] Silva, A.C.R., Contribuição à Síntese de Circuitos Digitais Utilizando Programação Linear Inteira 0 e 1, Tese de Doutorado, UNICAMP, 1993. 2004 WCETE March 14 - 17, 2004, São Paulo, BRAZIL World Congress on Engineering and Technology Education.