Capítulo 4 Circuitos Combinacionais

Circuitos lógicos combinacionais são aqueles cujas saídas são função exclusivamente de uma combinação dos valores atuais dos sinais de entrada do circuito. Tome-se como exemplo uma unidade aritmética que esteja realizando uma soma, e que tenha em suas entradas os valores decimais 25 e 32. A saída mostrará, então, o valor 57. Se modificarmos o valor da primeira entrada para 35, a saída passará para 67. A execução da operação de soma 35 + 32 depende unicamente do conhecimento destes valores atuais das entradas, não tendo nenhuma dependência em relação ao valor passado 25. A mudança no valor da saída, de 57 para 67, é quase imediata. Existe um atraso entre a mudança de valor na entrada, de 25 para 35, e a correspondente mudança na saída, que é devido à soma dos atrasos de propagação das portas lógicas no interior da unidade aritmética, já analisados no Capítulo 2. Um circuito combinacional é reconhecido pelas seguintes propriedades: (a) ele contém apenas portas lógicas, não incluindo elementos de memorização (memórias, registradores); e (b) ele não contém realimentações, ou seja, caminhos fechados nos quais, percorrendo-se portas lógicas conectadas entre si, possa se chegar de volta a uma determinada porta. Como se verá no Capítulo 5, circuitos que não obedeçam a uma destas restrições são circuitos seqüenciais.

4.1 Lógica em dois níveis e lógica multi-nível A partir da tabela-verdade de uma função, pode ser facilmente obtida uma expressão algébrica para esta função na forma de uma soma de mintermos, conforme visto no capítulo anterior. Através de transformações algébricas apropriadas, esta soma de mintermos pode ser minimizada para uma soma-de-produtos, reduzindo-se os números de termos e/ou de literais na expressão. Com base nesta soma-de-produtos, constrói-se diretamente um circuito combinacional. Exemplo 4.1. Seja a função F = Y + XY Z + XY Para esta função, pode ser construído diretamente o circuito da Figura 4.1, através de um mapeamento direto entre operadores da álgebra booleana e portas lógicas. O circuito da Figura 4.1, obtido diretamente a partir de uma soma-de-produtos, é denominado um circuito AND-OR, pois ele é formado por uma coluna de portas E, que implementam os termos-produto, seguidas por uma porta OU, que implementa a soma dos termos. Este circuito implementa uma lógica denominada de dois níveis, que são aqueles que

2

Técnicas Digitais para Computação

implementam as operações E e OU. Nesta denominação, não são consideradas as portas inversoras necessárias para a implementação dos complementos das variáveis de entrada.

Figura 4.1 – Circuito AND-OR para a função do Exemplo 4.1 Exemplo 4.2. Seja agora uma função cuja expressão não é uma soma-de-produtos: F = A(B+ C(D + E) Se esta função for implementada através de um mapeamento direto entre operadores booleanos e portas lógicas, é obtido o circuito mostrado na Figura 4.2.

Figura 4.2 – Circuito em lógica multi-nível para a função do Exemplo 4.2 Em contraste com o circuito da Figura 4.1, verifica-se que aquele da Figura 4.2 é um circuito em 4 níveis. Esta denominação advém do fato que o caminho mais longo entre um sinal de entrada qualquer, correspondendo a alguma das variáveis A, B, C, D e E, e o sinal de saída F, passa por 4 portas lógicas, mais uma vez desprezando-se portas inversoras para a complementação das variáveis de entrada. O circuito da Figura 4.2 não segue o modelo AND-OR da Figura 4.1, por não ter sido originado diretamente a partir de uma soma-deprodutos. Exemplo 4.3. A função do Exemplo 4.2 pode ser transformada algebricamente para uma soma-de-produtos: F = AB + ACD + ACE A implementação direta desta função através de um circuito lógico é mostrada na Figura 4.3.

Capítulo 4 – Circuitos Combinacionais

3

O circuito da Figura 4.3 tem um total de 6 portas lógicas (2 inversores, 3 portas E e 1 porta OU) e 13 sinais de entrada para estas portas (2 portas com 1 entrada, 1 porta com 2 entradas e 3 portas com 3 entradas). Comparativamente, o circuito da Figura 4.2 também tem um total de 6 portas lógicas (2 inversores, 2 portas E e 2 portas OU), mas apresenta apenas 10 sinais de entrada para estas portas (2 portas com 1 entrada e 4 portas com 2 entradas). Como o número de entradas das portas é diretamente proporcional ao número de transistores numa implementação em tecnologia MOS, o circuito da Figura 4.2 ocupa uma área menor e consome uma menor potência. Esta conclusão quanto à área ocupada e à potência consumida vale para toda comparação entre a implementação de uma função numa lógica em dois níveis, obtida a partir de uma soma-de-produtos, e uma implementação alternativa numa lógica multi-nível, que pode ser obtida fatorando-se sucessivamente a expressão da soma-de-produtos.

Figura 4.3 – Circuito AND-OR para a função do Exemplo 4.3 Por outro lado, no entanto, observa-se que no circuito da Figura 4.3 o caminho mais longo entre uma entrada e a saída, desprezando-se os inversores, é de apenas duas portas lógicas, enquanto que no circuito da Figura 4.2 o caminho mais longo passa por 4 portas. Assim, o máximo tempo de propagação que pode decorrer num circuito implementado numa lógica em dois níveis é de duas vezes o atraso de cada porta (assumindo-se, por simplicidade, que todas as portas apresentem atraso idêntico), enquanto que num circuito multi-nível o tempo máximo de propagação é de N vezes o atraso de casa porta, onde N é o número de níveis do circuito. Com isto, o circuito em dois níveis pode trabalhar numa freqüência de operação mais alta. Uma implementação em lógica de dois níveis também pode ser obtida a partir de uma expressão na forma de um produto-de-somas. Neste caso, no entanto, o circuito resultante do mapeamento direto entre operadores booleanos e portas lógicas será do tipo OR-AND.

do produto de maxtermos). Seja a expressão de uma função na forma de produto-de-somas F = X(Y + Z)(X + Y + Z) A Figura 4. o número de termos-produto na expressão é proporcional ao número de portas E no circuito lógico resultante.4. Neste livro. 3. Assim.1 Minimizando circuitos por transformações algébricas Como minimizar a implementação de um circuito lógico? A idéia básica é trabalhar não sobre a implementação inicial da função.4 Técnicas Digitais para Computação Exemplo 4.2. de um circuito OR-AND). Figura 4. alternativamente. mas sim sobre a expressão booleana de F. alternativamente. em lógica de dois níveis. que resulta num circuito de tipo AND-OR (ou. o que representa um menor tamanho para o circuito e. será considerada apenas a minimização visando uma implementação da função através de uma lógica em dois níveis.4 – Circuito OR-AND para a a função do Exemplo 4. a minimização de circuitos visa a diminuição do número de portas lógicas e/ou do número total de entradas de portas. se os números de termos-produto e de literais numa expressão forem minimizados. geralmente. .2 Minimização de funções booleanas A minimização sistemática de uma função booleana é feita a partir da forma canônica da soma de mintermos (ou. O conjunto de axiomas e teoremas da álgebra booleana permite a realização de transformações algébricas sobre uma expressão.8 para a função F do Exemplo 3. correspondente a esta função.6. Conforme já foi enfatizado no Capítulo 3. enquanto que o número de literais na expressão é proporcional ao número de sinais de entrada nas portas lógicas. mas diminuam os números de termos e literais.4 mostra o circuito OR-AND. como aquela obtida na Figura 3. Pelas regras de implementação de uma função anteriormente estabelecidas. que mantenham o valor da mesma inalterado. pode-se ter uma razoável confiança de que também os números de portas e sinais de entrada de portas no circuito correspondente estarão sendo minimizados. também um menor consumo de potência.4 4.

numa minimização expressiva do circuito lógico.7 Não existe. Seja a função F do Exemplo 3. Pelas regras estabelecidas anteriormente. Os exemplos a seguir ilustram simplificações de expressões booleanas por seqüências de transformações algébricas. em termos de área ocupada. guiado de preferência por um bom conhecimento dos axiomas e teoremas da álgebra booleana. portanto. pode-se obter a partir da mesma o circuito da Figura 3.3). nenhuma regra exata que defina qual é a seqüência de transformações algébricas que leva à simplificação máxima de uma função booleana e.9 – Implementação da função do Exemplo 3. é usado um método de tentativas e erros.8. A função F = X + XY pode ser simplificada pela seguinte seqüência de transformações: F = X • 1 + XY pela identidade 2 pela identidade 14 F = X(1 + Y) pela identidade 3 F = X •1 F=X pela identidade 2 . Figura 3.6: F = XYZ + XYZ + XZ Aplicando-se a fatoração (identidade 14 na Figura 3.2.7.9 tem 4 portas lógicas e um total de 7 sinais de entrada para estas portas. Na realidade. Exemplo 3.8. A simplificação algébrica da expressão de F resultou.Capítulo 4 – Circuitos Combinacionais 5 Exemplo 3.9. no entanto. à minimização ideal do circuito lógico. em comparação com os 3 termos-produto e 8 literais da expressão original. portanto. obtém-se: F = XY(Z + Z) + XZ Aplicando-se agora a identidade 7 da Figura 3. tem-se a expressão minimizada: F = XY + XZ Esta expressão para F tem apenas 2 termos-produto e 4 literais. Verifica-se que o circuito da Figura 3. chega-se a: F = XY • 1 + XZ Aplicando-se finalmente a identidade 2 da Figura 3.2. se comparado com o circuito original da Figura 3.

Para que uma simplificação mais expressiva seja obtida. as variáveis de entrada X e Z têm valor 0 e devem. também são mostrados os termos-produto que correspondem a cada uma das combinações de valores das variáveis. por exemplo. A função F = XY + XZ + YZ pode ser simplificada pela seguinte seqüência de transformações: F = XY + XZ + YZ(X + X) pelas identidades 2 e 7 F = XY + XZ + XYZ + XYZ pela identidade 14 F = XY(1+ Z) + XZ(1 + Y) pelas identidades 2 e 14 F = XY + XZ pelas identidades 3 e 2 Este último exemplo (conhecido como Teorema do Consenso) é ilustrativo de uma situação que ocorre freqüentemente. nesta situação.10.10.10 tivesse valor 1 para as combinações de entrada 011 e 101. conforme visto na Figura 3. na seguinte forma: expressão algébrica de F = soma dos termos-produto para os quais F tem valor 1 Assim.3 Mintermos e maxtermos A tabela-verdade que define uma função contém uma linha para cada combinação de valores das variáveis de entrada. 3. A função F = X + XY pode ser simplificada pela seguinte seqüência de transformações: F = (X + X)(X + Y) pela identidade 15 F = 1 • (X + Y) pela identidade 7 F = X+Y pela identidade 2 Exemplo 3. pois. uma primeira expressão algébrica é obtida facilmente para a função. portanto. para uma função de 3 variáveis se tem uma tabela-verdade com 8 combinações de valores. se a função da Figura 3. pode ser necessária uma transformação intermediária que aumente temporariamente o tamanho da expressão. enquanto a variável Y tem valor 1 e deve aparecer complementada. aparecer não-complementadas neste termo. À combinação 101.6 Técnicas Digitais para Computação Exemplo 3. por exemplo. corresponde o termo-produto X YZ . sua expressão algébrica seria F = XYZ + XYZ .9. A partir da tabela-verdade. Na figura. Assim. como foi feito no primeiro passo da seqüência de transformações.

A coluna da direita da Figura 3. sendo esta variável complementada se a variável tem valor 0 naquela combinação de entradas e não-complementada se a variável tem valor 1. Um termo-produto X Z desta mesma função não seria um mintermo. Alternativamente. cada mintermo é representado pela notação mi. os termos-soma que correspondem às 8 combinações de valores das variáveis de entrada. A Figura 3. onde i é o valor decimal que é associado à combinação de valores das variáveis de entrada. Como esta função tem 3 variáveis.10 são todos eles mintermos da função F. os termos-produto mostrados na Figura 3.10 – Mintermos de uma função de 3 variáveis Define-se como mintermo de uma função o termo-produto no qual cada variável de entrada aparece exatamente uma vez. . Assim. uma função pode ser representada através de seus termos-soma. Define-se como maxtermo de uma função o termo-soma no qual cada variável de entrada aparece exatamente uma vez. para uma função de 3 variáveis.11 mostra.11 são maxtermos. numerados de m0 a m7. ela possui 8 mintermos.Capítulo 4 – Circuitos Combinacionais 7 XYZ 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 termo-produto X YZ X YZ XYZ XYZ X YZ X YZ XY Z XYZ mintermo m0 m1 m2 m3 m4 m5 m6 m7 Figura 3. os termos-soma da Figura 3. sendo esta variável complementada se a variável tem valor 1 naquela combinação de entradas e não-complementada se a variável tem valor 0. Assim. Simplificadamente. pois nele não aparece a variável Y.10 mostra as notações simplificadas dos mintermos da função F.

por exemplo: m1 = X Y Z Se for aplicado o teorema de De Morgan à expressão de m1.11. A coluna da direita da Figura 3. é obtido m 1 = X Y Z = X + Y + Z = M1 O mesmo pode ser demonstrado para os demais mintermos e maxtermos de uma função.11 mostra as notações simplificadas dos maxtermos da função F. Esta função produz valor 1 para as combinações de entrada 000. Exemplo 3. por F = Σm(0. uma expressão algébrica de uma função pode ser obtida pela soma dos mintermos que produzem valor 1 na função. onde i é o valor decimal que é associado à combinação de valores das variáveis de entrada.2.8 Técnicas Digitais para Computação XYZ 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 termo-soma X +Y+Z X +Y+Z X +Y+Z X +Y+Z X +Y+Z X +Y+Z X +Y+Z X +Y+Z maxtermo M0 M1 M2 M3 M4 M5 M6 M7 Figura 3. ainda. Ela pode ser então representada algebricamente por: F = XYZ + XYZ + XYZ + XYZ Simplificadamente.3.5. portanto.7) . sempre vale a relação m i = Mi 3. Genericamente.12.1 Representação de funções booleanas por mintermos e maxtermos A partir de uma tabela-verdade.11 – Maxtermos de uma função de 3 variáveis Simplificadamente. Seja a função apresentada na Figura 3. esta função pode ser representada por F = m 0 + m2 + m5 + m7 ou. cada maxtermo é representado pela notação Mi. Seja o mintermo m1. 101 e 111. 010.

a representação de uma função através de seus mintermos ou maxtermos é um passo essencial para a implementação de um método de minimização sistemático.4. Como se verá no próximo capítulo. portanto. F = m1 + m3 + m4 + m6 Aplicando-se De Morgan.12 – Função para o Exemplo 3.6) XYZ 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 F 1 0 1 0 0 1 0 1 F 0 1 0 1 1 0 1 0 Figura 3.12.4. que garanta a obtenção de uma expressão com os números mínimos de termos e literais. a partir do Exemplo 3. Se uma função for dada através de uma expressão que não é uma soma de mintermos. que uma função pode ser representada algebricamente pelo produto dos maxtermos que resultam em valor 0 para a função.11 Conclui-se. também ditas formas canônicas. então a forma da soma de mintermos pode ser obtida gerando-se em primeiro lugar a tabelaverdade da função.chega-se a: F = F = M 1 • M 3 • M4 • M6 ou ainda. enquanto o produto de maxtermos é a forma que contém o máximo número de termos-soma.12. Algebricamente. deve ser recuperada a expressão original de F. Tome-se agora o complemento de F.6) Se o valor de F for complementado. A soma dos mintermos e o produto dos maxtermos são referidos como formas-padrão das expressões algébricas. A soma dos mintermos é a forma algébrica que contém o máximo número de termos-produto de uma função (e. é obtido: F = m1 • m 3 • m4 • m6 Como m i = Mi . também o máximo número de literais em cada termo).3.12.3. . F pode ser representada como F = Σm(1. mostrado na coluna da direita da Figura 3.Capítulo 4 – Circuitos Combinacionais 9 Exemplo 3. simplificadamente: F = Π M(1.

dispostas conforme a Figura 4.10 Técnicas Digitais para Computação Exemplo 3.13 – Tabela-verdade para função do Exemplo 3. para a construção da qual foram avaliados primeiramente os termos Y e X Z . ou seja.13. Figura 4.5) X Y Z 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Y 1 1 0 0 1 1 0 0 XZ 1 0 1 0 0 0 0 0 F 1 1 1 0 1 1 0 0 Figura 3. coloca-se na célula que corresponde a cada mintermo o valor da função para aquele mintermo. A partir da tabela-verdade. pois a função tem 3 variáveis X. a um mintermo.4. 4 combinações de valores das variáveis de entrada. portanto.1 Mapas de Karnaugh de 2 variáveis A representação de uma função como soma de mintermos pode ser visualizada graficamente através de um mapa de Karnaugh. um mapa de Karnaugh é um diagrama contendo 4 células. cada linha corresponde a um valor da variável X. A função pode ser representada pela tabela-verdade da Figura 3.13.1. que contém 4 mintermos. Para a representação de uma função através de um mapa de Karnaugh. uma para cada mintermo.5.2. Seja a função F = Y+X Z Esta expressão não é uma soma de mintermos.13 4.2. Como se vê no diagrama. a forma canônica de soma de mintermos é obtida facilmente: F = Σm(0. Para uma função de duas variáveis. cada coluna corresponde a um valor da variável Y e cada célula corresponde a uma combinação de valores de X e Y e.5 – Mapa de Karnaugh para função de 2 variáveis . Y e Z e os termos-produto Y e X Z não contêm todas as variáveis da função.

a região da coluna da esquerda do mapa corresponde ao termo Y . Figura 4.Capítulo 4 – Circuitos Combinacionais 11 Exemplo 4.2.2.5: F = Σm(1. Portanto: m 1 + m 3 = XY + XY = Y(X + X) = Y Exemplo 4.3) = m1 + m2 + m3 Esta função pode ser simplificada através da seguinte seqüência de transformações algébricas: F = XY + X Y + XY (1) duplicando o termo X Y F = XY + X Y + XY + XY F = (X + X)Y + X(Y + Y) (2) fatorando Y e X F = Y+X Graficamente. A Figura 4. a região englobando a coluna da direita do mapa (duas células vizinhas.8 mostra a mesma função do Exemplo 4. pode-se observar que a função é a união das regiões que correspondem aos termos Y e X. A região da coluna direita do mapa.3) = m1 + m2 + m3 Figura 4. conforme ilustrado na Figura 4. .7.6 mostra o mapa de Karnaugh da função F(X.7 – Regiões e termos correspondentes do mapa de Karnaugh Esta constatação sobre os termos que correspondem a regiões do mapa pode ser comprovada algebricamente.5 Se cada célula isolada do mapa corresponde a um mintermo. de modo que a solução F=Y+X poderia ter sido apontada sem necessidade de nenhuma manipulação algébrica.Y) = Σm(1. a região da linha superior do mapa corresponde ao termo X e a região da linha inferior corresponde ao termo X.6. por exemplo. Da mesma forma.6 – Mapa de Karnaugh para função do Exemplo 4. A Figura 4. incluindo m1 e m3). corresponde ao termo Y. é a união (“soma lógica”) das células que correspondem aos mintermos m1 e m3.5.

8 – Mapa de Karnaugh da função do Exemplo 4. e b. como a m1. Neste mapa. a variável Y troca de valor entre m2 e m3. Figura 4. correspondendo às 4 combinações de valores das variáveis Y e Z.para compor a região Y.6 É interessante observar que as transformações algébricas realizadas no Exemplo 4. restando a variável X como representação da região que engloba m2 e m3. e 4 colunas.9 – Mapa de Karnaugh para uma função de 3 variáveis . e 2) as fatorações no passo (2) correspondem à composição das regiões X e Y. alternativamente.9. como a soma de termos-produto que correspondem a regiões do mapa do Karnaugh. para compor a região X. que precisa ser agrupado tanto a m2.2 Mapas de Karnaugh de 3 variáveis Uma função de 3 variáveis tem 8 mintermos e. o mapa de Karnaugh correspondente precisa ter 8 células. ou. 4.2.12 Técnicas Digitais para Computação Figura 4. existem 2 linhas. como mostrado na Figura 4. a variável X troca de valor entre m1 e m3. Conclui-se que uma função pode ser expressa como a soma dos mintermos que produzem 1 no valor da função. restando a variável Y como representação da região que engloba m1 e m3. correspondendo aos 2 valores da variável X. portanto. a. com a eliminação das variáveis cujos valores variam de um mintermo para outro dentro da mesma região. sendo necessário que cada mintermo para o qual a função produz valor 1 seja coberto por pelo menos uma região.6 correspondem exatamente à “simplificação gráfica” realizada: 1) a transformação (1) corresponde à utilização dupla do mintermo m3.

Estes mintermos têm expressões algébricas X YZ e XYZ . seguida da eliminação da variável que troca de valor entre estes dois mintermos. nesta região quadrada de 4 mintermos. m3.9. Como já se fez para mapas de 2 variáveis. De fato. Seja a região que engloba os mintermos m5 e m7.a região englobando m6 e m7 corresponde ao termo-produto XY.10. o termo-produto correspondente à mesma é XZ. Isto é feito intencionalmente. As células que correspondem aos mintermos m0 e m2 são vizinhas. Com esta providência. É importante observar que existe uma vizinhança através das bordas do mapa. que diferem apenas pelo valor da variável Y. A conclusão final é que a região englobando os mintermos m2.a região englobando m2 e m3 corresponde ao termo-produto XY . enquanto X e Z trocam de valor e são eliminadas pela fatoração. Seja a região que engloba os mintermos m2. Exemplo 4. da seguinte maneira: . que diferem apenas pelo valor da variável Y. o que resulta na expressão F = XY + XY = (X + X)Y = Y . Algebricamente. Exemplo 4. m6 e m7 corresponde ao termo-produto Y.7. pois nestes dois mintermos X mantém o valor 0 e Y mantém o valor 1.8. enquanto Z troca de valor e é eliminada após a fatoração. . As células que correspondem aos mintermos m4 e m6 também são vizinhas. Obtém-se. A variável Y troca de valor entre estes mintermos e é eliminada após a fatoração. enquanto Z troca de valor e é eliminada após a fatoração. para facilitar o processo de simplificação através de regras geométricas. m3. As células que correspondem aos mintermos m5 e m7 são vizinhas. Como esta região engloba células cujos mintermos mantêm constantes os valores X e Z. apenas a variável Y mantém o valor 1. os mintermos correspondentes a duas células vizinhas quaisquer do mapa diferem sempre pelo valor de uma única variável. a soma de 2 mintermos adjacentes no mapa permite uma fatoração. Estes mintermos têm expressões algébricas X YZ e XYZ . Assim. que também diferem apenas pelo valor da variável Y.10. assim. Estes mintermos têm expressões algébricas X YZ e XYZ . como já foi feito no mapa de 2 variáveis. a coluna bem à direita do mapa é vizinha da coluna bem à esquerda. m6 e m7.Capítulo 4 – Circuitos Combinacionais 13 Nota-se que os mintermos correspondentes às colunas do mapa não seguem uma ordem crescente. mostrada no mapa da Figura 4. é feita a seguinte simplificação: m 5 + m7 = XYZ + XYZ = XZ(Y + Y) = XZ Exemplo 4. Exemplo 4. um termo-produto que mantém as variáveis cujos valores permanecem constantes nos dois mintermos. . pois nestes dois mintermos X e Y mantêm o valor 1. Esta função pode ser simplificada passo a passo. observa-se graficamente que.os resultados parciais dos passos anteriores são agora somados. .

uma região contendo 8 células (isto é. e d) por extensão. que: a) uma célula isolada corresponde a um termo-produto com 3 literais (um mintermo). é possível cobrir todos os 4 mintermos através de 2 sub-cubos. esta minimização pode ser expressa como a procura de uma cobertura para os mintermos que tenha o menor número possível de sub-cubos. O primeiro sub-cubo. deve-se procurar cobrir todos os mintermos através do menor número possível de termos-produto. c) uma região contendo 4 células adjacentes (um quadrado ou uma linha) corresponde a um termo-produto com 1 literal.11. Graficamente. corresponde ao termo-produto XY .11 – Mapa de Karnaugh para função do Exemplo 4. as regiões de células adjacentes podem ser consideradas como sub-cubos em um “cubo” (ou hiper-cubo) de N dimensões.3.4. A solução da minimização é. Tomando-se o caso geral de mapas de N variáveis. Exemplo 4. então.10 – Mapa de Karnaugh para função do Exemplo 4. Além disto. sendo estes de máximo tamanho.5) O mapa de Karnaugh correspondente é mostrado na Figura 4. portanto: F = XY + X Y Figura 4.11 . o mapa inteiro) corresponde ao valor constante 1.11.14 Técnicas Digitais para Computação Figura 4. Seja a função F = Σm(2. b) uma região contendo 2 células adjacentes corresponde a um termo-produto com 2 literais. que engloba m4 e m5. Para a minimização desta função.10 Verifica-se. Quando uma função é minimizada. que engloba m2 e m3. enquanto o segundo sub-cubo. corresponde ao termo-produto X Y . devem ser procurados os termosproduto com o menor número possível de literais. cada um englobando 2 mintermos.

As técnicas de minimização de circuitos. A solução da minimização é. de modo a se obter uma solução mínima. O circuito correspondente. corresponde ao termo-produto YZ.12. Para a visualização do segundo sub-cubo. portanto: F = YZ + X Z Nota-se que os mintermos m6 e m7 podem ser agrupados num sub-cubo que corresponde ao termo XY. e sim para soluções de tipo AND-OR. O primeiro sub-cubo. a operação xor resulta no valor 1 apenas se uma das entradas tiver valor 1.11 resultou na expressão F = XY + X Y .7) O mapa de Karnaugh correspondente é mostrado na Figura 4. No entanto.4. deve-se lembrar das vizinhanças entre células pelas bordas do mapa. cada um englobando 2 mintermos. Figura 4.12 . não faz sentido incluir o termo XY na solução. não são apropriadas para soluções envolvendo portas XOR. ao invés de 2 portas E de 2 entradas e 1 porta OU de 2 entradas. necessárias para a implementação de F = XY + X Y . também é possível cobrir todos os 4 mintermos através de 2 sub-cubos. que corresponde à definição da operação ou-exclusivo (ou xor) F = X ⊕ Y . portanto. que engloba m4 e m6 e corresponde ao termo-produto X Z .6. Exemplo 4. que engloba m3 e m7. um mintermo deve ser utilizado mais de uma vez na solução. Em certas situações. mas não caso ambas as entradas tenham valor 1.12. baseadas em mapas de Karnaugh e apresentadas neste livro.12 – Mapa de Karnaugh para função do Exemplo 4. Enquanto a operação ou convencional dá como resultado o valor 1 se uma das entradas tiver valor 1 ou se ambas as entradas tiverem valor 1.Capítulo 4 – Circuitos Combinacionais 15 Nota-se que a solução do Exemplo 4. Para a minimização desta função. pois m6 e m7 são cobertos pelos outros dois termos já escolhidos. poderia ser realizado com uma única porta lógica XOR. Seja a função F = Σm(3.

m4 ainda pode formar com m5 um sub-cubo de 2 células que corresponde ao termo-produto X Y . de modo que ambas levam a circuitos lógicos de mesmo tamanho. uma minimização mais eficiente pode ser obtida para esta função. qualquer uma das soluções pode ser adotada. ou .13. No mapa da Figura 4.5.14.cobrir m1 e m5 através do termo-produto YZ .5. Além de contribuir para o termo Z . Seja a função F = Σm(0.3. Para a cobertura do mintermo restante m5. No entanto. existe mais de uma solução mínima possível para a cobertura dos mintermos.14 – Mapa de Karnaugh para função do Exemplo 4.13 – Mapa de Karnaugh para função do Exemplo 4.4. pela reutilização do mintermo m4. m4 e m6 são cobertos pelo termo-produto Z . . enquanto que m4 e m6 são cobertos pelo termo-produto X Z . há duas soluções alternativas: .14 .16 Técnicas Digitais para Computação Exemplo 4. Exemplo 4. Figura 4.2.cobrir m4 e m5 através do termo-produto X Y .6) O mapa de Karnaugh correspondente é mostrado na Figura 4.o mintermo m5 restante é coberto pelo termo-produto X YZ . Na minimização desta função. Nestes casos.13(a) é sugerida a seguinte solução: . Seja a função F = Σm(1.14. Figura 4.os mintermos m0. m1 e m3 são cobertos pelo termo-produto XZ . m2.13(b).13.6) O mapa de Karnaugh correspondente é mostrado na Figura 4. Estas duas soluções exigem um termo-produto com 2 literais.13 Em outras situações.4. conforme mostrado na Figura 4.

Neste mapa.o termo X Z cobre os mintermos m4. portanto. que já foi coberto por W Z . Seja a função F = Σm(0. havendo uma reutilização dos mintermos m0 e m4.12. havendo uma reutilização dos mintermos m4. o mapa de Karnaugh correspondente tem 16 células. . m6.1. m9. enquanto m1 é vizinho de m9 e m4 é vizinho de m6. que já foi coberto por Y e por W Z . uma linha ou uma coluna) corresponde a um termo-produto com 2 literais. m12 e m13. podem ser estendidas para mapas de 4 variáveis da seguinte maneira: a) uma célula isolada corresponde a um termo-produto com 4 literais (um mintermo).14) O mapa de Karnaugh correspondente é mostrado na Figura 4. e e) um sub-cubo contendo 16 células (isto é. o mapa inteiro) corresponde ao valor constante 1.Capítulo 4 – Circuitos Combinacionais 17 4. m5. por exemplo. conforme mostrado na Figura 4. Figura 4. deve-se ter especial atenção com a vizinhança de células através das bordas: a coluna mais à esquerda é vizinha da coluna mais à direita.9. Exemplo 4. e . Assim. de m6.15. b) um sub-cubo contendo 2 mintermos adjacentes corresponde a um termo-produto com 3 literais. Os 11 mintermos desta função podem ser cobertos através de 3 termos-produto: . c) um sub-cubo contendo 4 células adjacentes (um quadrado. enquanto a linha mais superior é vizinha da linha mais inferior. . m1.o termo Y cobre os mintermos m0. m4 e m6.o termo W Z cobre os mintermos m0. e de m12.3 Mapas de Karnaugh de 4 variáveis Funções de 4 variáveis têm 16 mintermos e. m8. que já foi coberto por Y .15 – Mapa de Karnaugh para funções de 4 variáveis As conclusões obtidas para mapas de 3 variáveis.16. relacionadas à correspondência entre regiões do mapa e termos-produto.2. m12 e m14.8.2.4. m4. m2. que já foram cobertos por Y .15. m0 é vizinho de m8 e de m2.5.6. d) um sub-cubo contendo 8 células adjacentes (2 linhas ou 2 colunas) corresponde a um termo-produto com 1 literal.13.

17(a). não são mintermos e correspondem a sub-cubos que cobrem 2 mintermos cada.16 . Figura 4. que têm 3 literais cada.17 – Mapa de Karnaugh para função do Exemplo 4.15 No caso de ser necessária a minimização de uma função que não está expressa através de uma soma de mintermos. os termos A BC . o primeiro passo para a simplificação consiste em obter o mapa de Karnaugh.18 Técnicas Digitais para Computação Figura 4. BCD e A BC .16. BD e ACD . Exemplo 4. Como a função tem 4 variáveis de entrada. A Figura 4.17(b) mostra o resultado da minimização. cuidando-se para o fato de que cada termo-produto da função original pode cobrir 1 ou mais mintermos. obtemos em primeiro lugar o mapa de Karnaugh da Figura 4. Os 7 mintermos da função são cobertos através dos 3 termos-produto BC .16 – Mapa de Karnaugh para função do Exemplo 4. Seja a função F = ABC + BCD + ABCD + ABC Para a minimização desta função.

17. b) se um sub-cubo com 2 mintermos adjacentes não está incluído dentro de um sub-cubo maior com 4 mintermos adjacentes.para o mintermo m5 são encontrados novamente os implicantes primos X Y e YZ .18. . não foi utilizado nenhum procedimento sistemático para a identificação do número mínimo de termos-produto. e d) assim por diante. . tendo estes o mínimo número de literais.para o mintermo m3 é encontrado novamente o implicante primo XZ .4 Implicantes primos Nos exemplos anteriores. são identificados os seus implicantes primos da seguinte maneira: . e . Seja a função F = Σm(1. então o termo-produto correspondente a este subcubo é um implicante primo. Para a obtenção do conjunto de todos os implicantes primos de uma função. então o termo-produto correspondente a este subcubo é um implicante primo. obtém-se 1 ou mais implicantes primos da seguinte forma: a) se o mintermo não tem nenhum mintermo adjacente.para o mintermo m1 são encontrados os implicantes primos XZ e YZ .Capítulo 4 – Circuitos Combinacionais 19 4. Através da varredura sistemática de todos os seus mintermos.17 . para sub-cubos maiores. que cobrem todos os mintermos de uma função.4. Foram então encontrados 4 implicantes primos: XZ . X Y e X Z .3. Este procedimento sistemático é possível a partir da identificação dos implicantes primos e dos implicantes primos essenciais da função.18 – Mapa de Karnaugh para função do Exemplo 4. Para cada mintermo.para o mintermo m6 é encontrado novamente o implicante primo X Z . YZ .5. então ele próprio é um implicante primo. deve-se varrer todos os seus mintermos. c) se um sub-cubo com 4 mintermos adjacentes não está incluído dentro de um sub-cubo maior com 8 mintermos adjacentes.para o mintermo m4 são encontrados os implicantes primos X Y e X Z .6) cujo mapa de Karnaugh é mostrado na Figura 4.2. Exemplo 4. . Um implicante primo de uma função é um termo-produto obtido pela combinação do máximo número de mintermos adjacentes que produzem valor 1 na função. Figura 4.

o mintermo m6 é coberto apenas pelo implicante primo X Z . conforme ilustrado pelo Exemplo 4. estes não cobrem necessariamente todos os mintermos da função.20 Técnicas Digitais para Computação Um implicante primo essencial de uma função é um implicante primo que é o único a cobrir um dado mintermo. Identificar os implicantes primos essenciais da função. XZ e YZ . Através da varredura sistemática de todos os seus mintermos. X Y e X Z . cujos implicantes primos são XZ . fica claro que a expressão minimizada de uma função deve incluir os implicantes primos essenciais. é aquele mostrado a seguir. Algoritmo para minimização de funções booleanas 1. se o mesmo for coberto por apenas um implicante primo.o mintermo m4 é coberto por dois implicantes primos. . Para cada mintermo. . de modo que este é essencial. Dos exemplos anteriores. mostrada na Figura 4. X Y e X Z . não-essenciais. X Y e YZ .17. de modo que nenhum destes é incluído na lista de essenciais. O algoritmo para a obtenção da expressão minimizada para a função.o mintermo m5 é coberto por dois implicantes primos. 2. mais outros implicantes primos.18. YZ .18. deve-se varrer todos os seus mintermos. A função simplificada é dada pela soma dos implicantes primos essenciais.o mintermo m3 é coberto apenas pelo implicante primo XZ . Seja a mesma função do Exemplo 4. . então este é essencial. . de modo que nenhum destes é incluído na lista de essenciais. que sejam necessários para cobrir mintermos ainda não cobertos pelos implicantes primos essenciais. os termos-produto XZ e X Z . de modo que nenhum destes é incluído na lista de essenciais.o mintermo m1 é coberto por dois implicantes primos. Os dois exemplos a seguir diferem justamente na execução do terceiro passo deste algoritmo. portanto. A lista de implicantes primos essenciais da função inclui. m3. 3. mas não cobrem o mintermo m5. e . portanto. No entanto. Para a obtenção do conjunto de todos os implicantes primos essenciais de uma função.18. de modo que este é incluído na lista de essenciais. Estes dois termos cobrem os mintermos m1. Exemplo 4. são identificados os seus implicantes primos essenciais da seguinte maneira: . Identificar os implicantes primos da função. m4 e m6.

que cobre os mintermos m4. A solução para a simplificação da função é F = AD + BD pois estes dois implicantes primos essenciais já cobrem todos os mintermos da função. m5 e m7. m6 e m7.BD . Esta função tem 3 implicantes primos: .AD . m12 e m13. pois: . que cobre os mintermos m1.19.6. Seja a função F = Σm(1. m5. que cobre os mintermos m4.19. . m3. m6. Figura 4.AD é o único implicante primo a cobrir os mintermos m1 e m3.7.14) dada pelo mapa de Karnaugh da Figura 4.12.Capítulo 4 – Circuitos Combinacionais 21 Exemplo 4. e .3. . Os implicantes primos AD e BD são essenciais.4.19 – Mapa de Karnaugh para função do Exemplo 4.AB.5.19 .BD é o único implicante primo a cobrir os mintermos m12 e m14.

P6 = A BC . Existem. que é idêntico ao mintermo m0.21. então. que cobre os mintermos m10 e m11. .P3 = ABC. .e. que cobre os mintermos m13 e m15..P1 = A BCD .. então.20 . podem ser identificados quais mintermos são cobertos pelos implicantes primos essenciais.P2 = BCD .22 Técnicas Digitais para Computação Exemplo 4.20.11.P6 = A BC .20. Examinando-se a tabela coluna por coluna (i.12. ou F = ABCD + BCD + ABC + ABC + ACD .P5 = ACD . Esta verificação mostra que o único mintermo que não é coberto por nenhum implicante primo essencial é m15. que cobre os mintermos m12 e m13. i. que é o único implicante primo a cobrir o mintermo m10. que é o único implicante primo a cobrir o mintermo m12. escolher um implicante primo não essencial para cobertura deste mintermo restante. Esta função tem 6 implicantes primos: .P1 = A BCD . . duas soluções equivalentes para a simplificação da função: F = ABCD + BCD + ABC + ABC + ABD . que cobre os mintermos m11 e m15. e . foi montada a tabela de cobertura mostrada na Figura 4. Para a identificação dos implicantes primos essenciais desta função. são cobertos por apenas um implicante primo.20 – Mapa de Karnaugh para função do Exemplo 4. Seja a função F = Σm(0.10. que cobre os mintermos m5 e m13. São então identificados os seguintes implicantes primos essenciais: .15) dada pelo mapa de Karnaugh da Figura 4.P2 = BCD . é fácil verificar quais mintermos são essenciais.P4 = ABD . . . podem ser escolhidos tanto P4 como P5. que é o único implicante primo a cobrir o mintermo m0. Deve-se. e .5. Ainda usando a tabela de cobertura. mintermo por mintermo). pois ambos cobrem m15 e têm 3 literais.13. .P3 = ABC. Esta tabela mostra quais mintermos são cobertos por cada implicante primo. No caso. que é o único implicante primo a cobrir o mintermo m5. Figura 4.e.

Figura 4. para identificação dos implicantes primos e dos implicantes primos essenciais.Capítulo 4 – Circuitos Combinacionais 23 O Exemplo 4.21 – Tabela de cobertura para função do Exemplo 4. os métodos de minimização posteriores a Quine-McCluskey visaram melhorar a eficiência computacional do último passo do método. são computacionalmente mais simples. Basicamente. Problemas reais. Os passos iniciais do método. Um exemplo é o projeto do bloco de controle de um processador. Este método está na base de todos os métodos de minimização de funções lógicas desenvolvidos posteriormente.20 demonstra os passos básicos do que é conhecido como método de minimização de Quine-McCluskey e que foi desenvolvido em 1956. no entanto. que contém um grande número de variáveis de entrada. correspondendo aos bits que codificam a instrução a ser executada e aos sinais que informam sobre o estado atual do bloco operacional do processador. envolvem funções de dezenas de variáveis e precisam ser computacionalmente eficientes. que é a escolha dos implicantes primos não essenciais necessários para a cobertura dos mintermos ainda não cobertos pelos implicantes primos essenciais.20 .

Figura 4. quando uma ou mais entradas tiverem valor 0. Pela aplicação do Teorema de De Morgan à definição da função NAND.23 mostra um símbolo alternativo para a porta NAND. pode-se dizer que F = 1 quando A = 0 OU B = 0 OU C = 0 A Figura 4. Figura 4. Pela definição da porta. Por esta interpretação. ou seja. obtém-se F = A+B+C Pela interpretação direta desta expressão alternativa para a função NAND. tornaram-se populares técnicas que permitem a implementação de circuitos lógicos utilizando unicamente estas portas.22 mostra a definição de uma porta NAND de 3 entradas. Por este motivo.23 – Símbolo alternativo da porta NAND . Ele ilustra que a porta NAND é equivalente a uma porta OR com as entradas complementadas.24 4. a porta NAND (NÃO-E) é a mais simples de ser cosntruída em tecnologia TTL. que implementa a operação F = ABC . seguida de um complemento. considerando esta interpretação alternativa.3 Síntese de funções usando portas NAND e NOR Técnicas Digitais para Computação Conforme foi visto no Capítulo 2. ela equivale a uma operação E. a porta fornece valor 0 na saída quando todas as entradas são iguais a 1 e fornece valor 1 em caso contrário.22 – Porta lógica NAND de 3 entradas A Figura 4.

pois F = A •A = A A Figura 4. sendo este último implementado também por uma porta NAND. A operação realizada neste caso é F = A •B = A + B = A + B A função NAND de 3 ou mais variáveis é comutativa. Basta. A Figura 4. pois A • B• C = A • B + C = A • B + C enquanto que A • B• C = A + B• C = A + B• C Figura 4. então.24(a) mostra que um inversor é obtido utilizando-se uma porta NAND com as suas duas entradas ligadas ao mesmo sinal.24(b) mostra que uma porta E pode ser obtida a partir de uma porta NAND seguida de um inversor. .24 – Suficiência da porta NAND Não havendo associatividade da função NAND. não é associativa: (A nand B) nand C • A nand (B nand C) Isto é facilmente demonstrado.3.Capítulo 4 – Circuitos Combinacionais 25 4.1 Propriedades da porta NAND Demonstra-se facilmente que qualquer função lógica pode ser implementada a partir de uma combinação apropriada de portas NAND. conforme visto anteriormente.24(c). para que esta implemente a função OU.25(a) e (b) não são equivalentes. mostra que uma porta OU pode ser obtida a partir de uma porta NAND se for lembrado o símbolo alternativo desta. pois F = A •B = A • B A Figura 4. finalmente. tal como as funções E e OU: A nand B = B nand A A função NAND. os circuitos das Figuras 4. colocar um inversor adicional (também implementado com uma porta NAND) em cada entrada da porta NAND. no entanto.

como esperado. de modo que A • B• C = B • A • C = C • A • B 4. pode ser obtido por mapeamento direto um circuito de 2 níveis de tipo AND-OR.26(c). Seja a função F = AB + CD + E implementada na forma de um circuito AND-OR conforme mostrado na Figura 4.21. As portas E são substituídas por portas NAND e são colocados inversores na entrada da porta OU.3. a função NAND de 3 entradas é comutativa. uma representação alternativa para a porta NAND. Este circuito pode ser facilmente transformado para um circuito em 2 níveis de tipo NAND-NAND. de modo que os complementos na saída do NAND e na entrada do OU se cancelam. o circuito final é mostrado na Figura 4.25 – Ausência de associatividade do NAND Note-se que. na verdade. conforme a Figura 4.26(c) é F = AB • CD • E F = AB + CD + E F = AB + CD + E que é. conforme ilustrado no exemplo a seguir. Lembrando-se que uma porta OU com as entradas complementadas é. no entanto. conforme já foi visto na Seção 4.26(a). um inversor adicional foi colocado nesta entrada.2 Lógica de dois níveis com portas NAND A partir de uma expressão na forma de soma-de-produtos. . Exemplo 4. A função implementada pelo circuito da Figura 4.26(b).2. Na falta de uma porta NAND ligada à terceira entrada da porta OU. preservando a função original.26 Técnicas Digitais para Computação Figura 4. a própria função F original.

26 – Lógica de dois níveis usando circuitos NAND-NAND A conclusão deste exemplo é que.27 mostra a definição de uma porta NOR (NÃO-OU) de 3 entradas. ela equivale a uma operação OU. Deve-se tomar o cuidado de acrescentar um inversor nas entradas que correspondem a termos-produto com um único literal. 4. pode ser implementado diretamente um circuito em 2 níveis na forma NAND-NAND. a partir de uma expressão de soma-de-produtos.3 Lógica de 2 níveis com circuitos NOR-NOR A Figura 4. Pela aplicação do Teorema de De Morgan à definição da função NOR. ou seja. que implementa a operação F = A+B+C Pela definição da porta. pode-se dizer que F = 1 quando A = 0 E B = 0 E C = 0 . quando uma ou mais entradas tiverem valor 1. obtém-se F = A •B •C Pela interpretação direta desta expressão alternativa para a função NOR. seguida de um complemento. a porta fornece valor 1 na saída quando todas as entradas são iguais a 0 e fornece valor 0 em caso contrário. Por esta interpretação.3.Capítulo 4 – Circuitos Combinacionais 27 Figura 4.

Conforme foi visto na Seção 4.28 mostra um símbolo alternativo para a porta NOR. a porta NOR é suficiente para a implementação de qualquer outra função lógica. conforme ilustrado no exemplo a seguir. considerando esta interpretação alternativa. Figura 4.2. Este circuito pode ser facilmente transformado num circuito tipo NOR-NOR.28 – Símbolo alternativo da porta NOR Demonstra-se que. da mesma forma que a porta NAND.27 – Porta lógica NOR de 3 entradas A Figura 4.28 Técnicas Digitais para Computação Figura 4. Ele ilustra que a porta NOR é equivalente a uma porta E com as entradas complementadas. partindo-se de um produto-de-somas pode-se implementar diretamente um circuito em lógica de 2 níveis na forma OR-AND. .

Na falta de uma porta NOR ligada à terceira entrada da porta E. Deve-se tomar o cuidado de acrescentar um inversor nas entradas que correspondem a termos-soma com um único literal. Figura 4.29 – Lógica de dois níveis usando circuitos NOR-NOR A conclusão deste exemplo é que. uma representação alternativa para a porta NOR. a partir de uma expressão de produto-de-somas. a própria função F original. Seja a função F = (A + B) • (C + D) • E implementada na forma de um circuito OR-AND conforme mostrado na Figura 4. preservando a função original. de modo que os complementos na saída do NOR e na entrada do E se cancelam.29(c). pode ser implementado diretamente um circuito em 2 níveis na forma NOR-NOR.29(c) é F = A+B+C+D+ E F = (A + B) • (C + D) • E F = (A + B) • (C + D) • E que é. um inversor adicional foi colocado nesta entrada. o circuito final é mostrado na Figura 4. conforme a Figura 4.29(a). A forma NOR-NOR não se tornou tão popular quanto a forma NAND-NAND tendo em vista a influência da tecnologia TTL. .29(b). As portas OU são substituídas por portas NOR e são colocados inversores na entrada da porta E. A função implementada pelo circuito da Figura 4.Capítulo 4 – Circuitos Combinacionais 29 Exemplo 4. como esperado.22. na verdade. Lembrando-se que uma porta E com as entradas complementadas é.

14.30 – Tabela-verdade para função do Exemplo 4. conforme mostrado na Figura 4. Nestes casos.3.8) Como as combinações de entrada que correspondem aos mintermos m10 até m15 jamais ocorrerão. Σd(10. é sabido que certas combinações de valores de entrada de um circuito lógico C1 jamais ocorrerão. Figura 4. quando do projeto deste circuito. Para as 10 combinações válidas de valores de entrada.4.4. o que é especificado como F = Σm(0. Portanto. Este valor de saída é denominado don’t care.23 .4 Funções com saídas não-especificadas Técnicas Digitais para Computação Em muitas situações.23. estes mintermos são considerados como don’t care. pois. e a liberdade de atribuir ao mesmo o valor 0 ou 1 pode ser aproveitado para uma minimização mais eficiente da função lógica.8). pode-se supor que o valor de saída gerado diante de uma destas combinações de entrada seja tanto 0 como 1. Isto acontece quando se conhece perfeitamente o circuito C2 (ou contexto externo) que gera estes valores de entrada e pode-se assumir que o mesmo está corretamente implementado.13. não importa qual seria o valor que C1 produziria quando uma destas combinações de entrada ocorresse.11.7. o circuito implementa a função F = Σm(0.30 4. por definição. Exemplo 4. Suponha-se um circuito que receba como entrada um dígito decimal codificado em BCD.12.3.7. o valor da função para os mintermos don’t care é identificado pela letra X. isto não acontecerá.30.15) Na tabela-verdade.

Uma primeira expressão lógica pode ser obtida pelo mapeamento direto entre as portas do circuito e os operadores da álgebra booleana. desconsiderados apenas os atrasos de propagação das portas lógicas. OU. m13 e m14 ficam com valor 0. m12 e m15. . e b) não possui laços de realimentação. que serão discutidos no Capítulo 5. Eventualmente. Com estas atribuições. não contendo. elementos de memorização. Para cada mintermo don’t care. No caso. esta expressão pode ser previamente simplificada por manipulações algébricas. complemento. isto é. NOR).31 mostra o mapa de Karnaugh desta função.Capítulo 4 – Circuitos Combinacionais 31 A Figura 4. não contém uma porta lógica cuja entrada seja uma função do valor de saída desta mesma porta. escolhe-se o valor 0 ou 1. A análise da função implementada por um bloco combinacional pode ser feita de maneira bastante simples. Um bloco combinacional pode ser reconhecido a partir de duas características básicas: a) é formado exclusivamente por portas lógicas que implementam os operadores da álgebra booleana (E. XOR. enquanto que m10. O bloco combinacional.31 – Mapa de Karnaugh para função do Exemplo 4. supõe-se o valor 1 para os mintermos m11. não tem capacidade de memorização. como flip-flops. que permite identificar a função do circuito. a função pode ser minimizada para F = CD + CD Figura 4. NAND.23 4. registradores e memórias. A partir desta expressão pode-se construir uma tabela-verdade. o que for mais apropriado para facilitar a minimização. portanto.5 Análise de blocos combinacionais Um bloco combinacional é aquele cujos valores das saídas são função exclusivamente dos valores atuais das entradas. portanto.

33. desprezando-se o vai-um.32. Verifica-se que este circuito implementa a função de soma aritmética entre as 3 variáveis de entrada. mostrada na Figura 4. pois o mesmo é formado apenas por portas lógicas elementares e não contém laços de realimentação.23 . constrói-se a tabela-verdade. Figura 4. Pode-se então obter a expressão lógica da função de saída S por um processo de substituições e manipulações algébricas: S= A+B S = CZ + CZ S = (D + E)Z + (D + E)Z S = (XY + X Y)Z + (XY + XY)Z S = XY • XY • Z + XYZ + XY Z S = (X + Y) • (X + Y) • Z + XYZ + XYZ S = (X X + XY + Y Y + XY) • Z + XYZ + XYZ S = XYZ + XYZ + XYZ + X YZ A partir desta expressão. Seja o circuito da Figura 4. na forma de soma de mintermos.32 – Circuito combinacional para o Exemplo 4.32 Técnicas Digitais para Computação Exemplo 4.23. Reconhece-se que este circuito é combinacional.

5 Minimize as funções abaixo utilizando o método de Quine-McCluskey: identifique os implicantes primos e os implicantes primos essenciais e construa a tabela de cobertura dos mintermos para verificar a necessidade de inclusão de implicantes primos nãoessenciais na solução.3.1.B.Capítulo 4 – Circuitos Combinacionais 33 Exercícios 4.7.6.13.3. e verifique os números de portas e entradas e portas que foram necessários.7) – atenção: esta função tem 2 soluções mínimas distintas c) F 3 = AC + AB + ABC + ABC d) F 4 = AB + ABC + ABC 4. Compare os atrasos máximos de propagação nas implementações alternativas.2 Implemente as funções abaixo diretamente através de circuitos multi-nível.6.7) b) F2 = Σm(0. a) F1 = Σm(1. a) F 1 = ABC + ACD + ABD b) F 2 = ABD + ABDE + CD + CDE 4.2.5.12. a) F1 = Σm(0.3.8.1 Implemente as funções abaixo através de circuitos em 2 níveis de tipo AND-OR e verifique os números de portas e entradas e portas que foram necessários. Transforme cada circuito para uma implementação em 2 níveis de tipo OR-AND.10.4 Identifique os implicantes primos e os implicantes primos essenciais das funções de 4 variáveis abaixo.B.10.C.5.B.14) d) F 4 (A.14. D) = ABD + BCD + ABD + ACD + AC + ABD .12. sem efetuar nenhuma transformação algébrica.6. Compare os atrasos máximos de propagação nas implementações alternativas.C) = ABC + AB + A BC + ABC c) F3(A.5.8.4.C) = Σm(1.5.14) b) F2 = Σm(1.1. a) F 1 = A + B(C + D) b) F 2 = AB + (A + C)D 4.B. Transforme cada circuito para a implementação multi-nível que minimize o número de portas lógicas e/ou entradas de portas.D)= Σm(1.2.4.9.7.15) c) F 3 = BCD + ABD + ABC + ABD + ABCD d) F 4 = ACD + ABD + ABC + A BD 4.5.5.6) b) F 2 (A.3 Minimize as funções de 3 variáveis abaixo com o auxílio de mapas de Karnaugh. a) F1(A.C.2.7.