Você está na página 1de 33

Captulo 4 Circuitos Combinacionais

Circuitos lgicos combinacionais so aqueles cujas sadas so funo exclusivamente de uma combinao dos valores atuais dos sinais de entrada do circuito. Tome-se como exemplo uma unidade aritmtica que esteja realizando uma soma, e que tenha em suas entradas os valores decimais 25 e 32. A sada mostrar, ento, o valor 57. Se modificarmos o valor da primeira entrada para 35, a sada passar para 67. A execuo da operao de soma 35 + 32 depende unicamente do conhecimento destes valores atuais das entradas, no tendo nenhuma dependncia em relao ao valor passado 25. A mudana no valor da sada, de 57 para 67, quase imediata. Existe um atraso entre a mudana de valor na entrada, de 25 para 35, e a correspondente mudana na sada, que devido soma dos atrasos de propagao das portas lgicas no interior da unidade aritmtica, j analisados no Captulo 2. Um circuito combinacional reconhecido pelas seguintes propriedades: (a) ele contm apenas portas lgicas, no incluindo elementos de memorizao (memrias, registradores); e (b) ele no contm realimentaes, ou seja, caminhos fechados nos quais, percorrendo-se portas lgicas conectadas entre si, possa se chegar de volta a uma determinada porta. Como se ver no Captulo 5, circuitos que no obedeam a uma destas restries so circuitos seqenciais.

4.1 Lgica em dois nveis e lgica multi-nvel A partir da tabela-verdade de uma funo, pode ser facilmente obtida uma expresso algbrica para esta funo na forma de uma soma de mintermos, conforme visto no captulo anterior. Atravs de transformaes algbricas apropriadas, esta soma de mintermos pode ser minimizada para uma soma-de-produtos, reduzindo-se os nmeros de termos e/ou de literais na expresso. Com base nesta soma-de-produtos, constri-se diretamente um circuito combinacional. Exemplo 4.1. Seja a funo F = Y + XY Z + XY Para esta funo, pode ser construdo diretamente o circuito da Figura 4.1, atravs de um mapeamento direto entre operadores da lgebra booleana e portas lgicas. 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 lgica denominada de dois nveis, que so aqueles que

Tcnicas Digitais para Computao

implementam as operaes E e OU. Nesta denominao, no so consideradas as portas inversoras necessrias para a implementao dos complementos das variveis de entrada.

Figura 4.1 Circuito AND-OR para a funo do Exemplo 4.1 Exemplo 4.2. Seja agora uma funo cuja expresso no uma soma-de-produtos: F = A(B+ C(D + E) Se esta funo for implementada atravs de um mapeamento direto entre operadores booleanos e portas lgicas, obtido o circuito mostrado na Figura 4.2.

Figura 4.2 Circuito em lgica multi-nvel para a funo 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 nveis. Esta denominao advm do fato que o caminho mais longo entre um sinal de entrada qualquer, correspondendo a alguma das variveis A, B, C, D e E, e o sinal de sada F, passa por 4 portas lgicas, mais uma vez desprezando-se portas inversoras para a complementao das variveis de entrada. O circuito da Figura 4.2 no segue o modelo AND-OR da Figura 4.1, por no ter sido originado diretamente a partir de uma soma-deprodutos. Exemplo 4.3. A funo do Exemplo 4.2 pode ser transformada algebricamente para uma soma-de-produtos: F = AB + ACD + ACE A implementao direta desta funo atravs de um circuito lgico mostrada na Figura 4.3.

Captulo 4 Circuitos Combinacionais

O circuito da Figura 4.3 tem um total de 6 portas lgicas (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 tambm tem um total de 6 portas lgicas (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 nmero de entradas das portas diretamente proporcional ao nmero de transistores numa implementao em tecnologia MOS, o circuito da Figura 4.2 ocupa uma rea menor e consome uma menor potncia. Esta concluso quanto rea ocupada e potncia consumida vale para toda comparao entre a implementao de uma funo numa lgica em dois nveis, obtida a partir de uma soma-de-produtos, e uma implementao alternativa numa lgica multi-nvel, que pode ser obtida fatorando-se sucessivamente a expresso da soma-de-produtos.

Figura 4.3 Circuito AND-OR para a funo 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 sada, desprezando-se os inversores, de apenas duas portas lgicas, enquanto que no circuito da Figura 4.2 o caminho mais longo passa por 4 portas. Assim, o mximo tempo de propagao que pode decorrer num circuito implementado numa lgica em dois nveis de duas vezes o atraso de cada porta (assumindo-se, por simplicidade, que todas as portas apresentem atraso idntico), enquanto que num circuito multi-nvel o tempo mximo de propagao de N vezes o atraso de casa porta, onde N o nmero de nveis do circuito. Com isto, o circuito em dois nveis pode trabalhar numa freqncia de operao mais alta. Uma implementao em lgica de dois nveis tambm pode ser obtida a partir de uma expresso na forma de um produto-de-somas. Neste caso, no entanto, o circuito resultante do mapeamento direto entre operadores booleanos e portas lgicas ser do tipo OR-AND.

Tcnicas Digitais para Computao

Exemplo 4.4. Seja a expresso de uma funo na forma de produto-de-somas F = X(Y + Z)(X + Y + Z) A Figura 4.4 mostra o circuito OR-AND, em lgica de dois nveis, correspondente a esta funo.

Figura 4.4 Circuito OR-AND para a a funo do Exemplo 4.4 4.2 Minimizao de funes booleanas A minimizao sistemtica de uma funo booleana feita a partir da forma cannica da soma de mintermos (ou, alternativamente, do produto de maxtermos). Neste livro, ser considerada apenas a minimizao visando uma implementao da funo atravs de uma lgica em dois nveis, que resulta num circuito de tipo AND-OR (ou, alternativamente, de um circuito OR-AND). Conforme j foi enfatizado no Captulo 3, a minimizao de circuitos visa a diminuio do nmero de portas lgicas e/ou do nmero total de entradas de portas, o que representa um menor tamanho para o circuito e, geralmente, tambm um menor consumo de potncia. 3.2.1 Minimizando circuitos por transformaes algbricas Como minimizar a implementao de um circuito lgico? A idia bsica trabalhar no sobre a implementao inicial da funo, como aquela obtida na Figura 3.8 para a funo F do Exemplo 3.6, mas sim sobre a expresso booleana de F. O conjunto de axiomas e teoremas da lgebra booleana permite a realizao de transformaes algbricas sobre uma expresso, que mantenham o valor da mesma inalterado, mas diminuam os nmeros de termos e literais. Pelas regras de implementao de uma funo anteriormente estabelecidas, o nmero de termos-produto na expresso proporcional ao nmero de portas E no circuito lgico resultante, enquanto que o nmero de literais na expresso proporcional ao nmero de sinais de entrada nas portas lgicas. Assim, se os nmeros de termos-produto e de literais numa expresso forem minimizados, pode-se ter uma razovel confiana de que tambm os nmeros de portas e sinais de entrada de portas no circuito correspondente estaro sendo minimizados.

Captulo 4 Circuitos Combinacionais

Exemplo 3.7. Seja a funo F do Exemplo 3.6: F = XYZ + XYZ + XZ Aplicando-se a fatorao (identidade 14 na Figura 3.3), obtm-se: F = XY(Z + Z) + XZ Aplicando-se agora a identidade 7 da Figura 3.2, chega-se a: F = XY 1 + XZ Aplicando-se finalmente a identidade 2 da Figura 3.2, tem-se a expresso minimizada: F = XY + XZ Esta expresso para F tem apenas 2 termos-produto e 4 literais, em comparao com os 3 termos-produto e 8 literais da expresso original. Pelas regras estabelecidas anteriormente, pode-se obter a partir da mesma o circuito da Figura 3.9. Verifica-se que o circuito da Figura 3.9 tem 4 portas lgicas e um total de 7 sinais de entrada para estas portas. A simplificao algbrica da expresso de F resultou, portanto, numa minimizao expressiva do circuito lgico, em termos de rea ocupada, se comparado com o circuito original da Figura 3.8.

Figura 3.9 Implementao da funo do Exemplo 3.7 No existe, no entanto, nenhuma regra exata que defina qual a seqncia de transformaes algbricas que leva simplificao mxima de uma funo booleana e, portanto, minimizao ideal do circuito lgico. Na realidade, usado um mtodo de tentativas e erros, guiado de preferncia por um bom conhecimento dos axiomas e teoremas da lgebra booleana. Os exemplos a seguir ilustram simplificaes de expresses booleanas por seqncias de transformaes algbricas. Exemplo 3.8. A funo F = X + XY pode ser simplificada pela seguinte seqncia de transformaes: 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

Tcnicas Digitais para Computao

Exemplo 3.9. A funo F = X + XY pode ser simplificada pela seguinte seqncia de transformaes: F = (X + X)(X + Y) pela identidade 15 F = 1 (X + Y) pela identidade 7 F = X+Y pela identidade 2 Exemplo 3.10. A funo F = XY + XZ + YZ pode ser simplificada pela seguinte seqncia de transformaes: 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 situao que ocorre freqentemente. Para que uma simplificao mais expressiva seja obtida, pode ser necessria uma transformao intermediria que aumente temporariamente o tamanho da expresso, como foi feito no primeiro passo da seqncia de transformaes. 3.3 Mintermos e maxtermos A tabela-verdade que define uma funo contm uma linha para cada combinao de valores das variveis de entrada. Assim, por exemplo, para uma funo de 3 variveis se tem uma tabela-verdade com 8 combinaes de valores, conforme visto na Figura 3.10. Na figura, tambm so mostrados os termos-produto que correspondem a cada uma das combinaes de valores das variveis. combinao 101, por exemplo, corresponde o termo-produto X YZ , pois, nesta situao, as variveis de entrada X e Z tm valor 0 e devem, portanto, aparecer no-complementadas neste termo, enquanto a varivel Y tem valor 1 e deve aparecer complementada. A partir da tabela-verdade, uma primeira expresso algbrica obtida facilmente para a funo, na seguinte forma: expresso algbrica de F = soma dos termos-produto para os quais F tem valor 1 Assim, se a funo da Figura 3.10 tivesse valor 1 para as combinaes de entrada 011 e 101, sua expresso algbrica seria F = XYZ + XYZ

Captulo 4 Circuitos Combinacionais

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.10 Mintermos de uma funo de 3 variveis Define-se como mintermo de uma funo o termo-produto no qual cada varivel de entrada aparece exatamente uma vez, sendo esta varivel complementada se a varivel tem valor 0 naquela combinao de entradas e no-complementada se a varivel tem valor 1. Assim, os termos-produto mostrados na Figura 3.10 so todos eles mintermos da funo F. Um termo-produto X Z desta mesma funo no seria um mintermo, pois nele no aparece a varivel Y. Simplificadamente, cada mintermo representado pela notao mi, onde i o valor decimal que associado combinao de valores das variveis de entrada. A coluna da direita da Figura 3.10 mostra as notaes simplificadas dos mintermos da funo F. Como esta funo tem 3 variveis, ela possui 8 mintermos, numerados de m0 a m7. Alternativamente, uma funo pode ser representada atravs de seus termos-soma. A Figura 3.11 mostra, para uma funo de 3 variveis, os termos-soma que correspondem s 8 combinaes de valores das variveis de entrada. Define-se como maxtermo de uma funo o termo-soma no qual cada varivel de entrada aparece exatamente uma vez, sendo esta varivel complementada se a varivel tem valor 1 naquela combinao de entradas e no-complementada se a varivel tem valor 0. Assim, os termos-soma da Figura 3.11 so maxtermos.

Tcnicas Digitais para Computao

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.11 Maxtermos de uma funo de 3 variveis Simplificadamente, cada maxtermo representado pela notao Mi, onde i o valor decimal que associado combinao de valores das variveis de entrada. A coluna da direita da Figura 3.11 mostra as notaes simplificadas dos maxtermos da funo F. Seja o mintermo m1, por exemplo: m1 = X Y Z Se for aplicado o teorema de De Morgan expresso de m1, obtido m 1 = X Y Z = X + Y + Z = M1 O mesmo pode ser demonstrado para os demais mintermos e maxtermos de uma funo. Genericamente, portanto, sempre vale a relao m i = Mi 3.3.1 Representao de funes booleanas por mintermos e maxtermos A partir de uma tabela-verdade, uma expresso algbrica de uma funo pode ser obtida pela soma dos mintermos que produzem valor 1 na funo. Exemplo 3.11. Seja a funo apresentada na Figura 3.12. Esta funo produz valor 1 para as combinaes de entrada 000, 010, 101 e 111. Ela pode ser ento representada algebricamente por: F = XYZ + XYZ + XYZ + XYZ Simplificadamente, esta funo pode ser representada por F = m 0 + m2 + m5 + m7 ou, ainda, por F = m(0,2,5,7)

Captulo 4 Circuitos Combinacionais

Exemplo 3.12. Tome-se agora o complemento de F, mostrado na coluna da direita da Figura 3.12. Algebricamente, F pode ser representada como F = m(1,3,4,6) Se o valor de F for complementado, deve ser recuperada a expresso original de F. F = m1 + m3 + m4 + m6 Aplicando-se De Morgan, obtido: F = m1 m 3 m4 m6 Como m i = Mi ,chega-se a: F = F = M 1 M 3 M4 M6 ou ainda, simplificadamente: F = M(1,3,4,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 Funo para o Exemplo 3.11 Conclui-se, a partir do Exemplo 3.12, que uma funo pode ser representada algebricamente pelo produto dos maxtermos que resultam em valor 0 para a funo. A soma dos mintermos e o produto dos maxtermos so referidos como formas-padro das expresses algbricas, tambm ditas formas cannicas. A soma dos mintermos a forma algbrica que contm o mximo nmero de termos-produto de uma funo (e, portanto, tambm o mximo nmero de literais em cada termo), enquanto o produto de maxtermos a forma que contm o mximo nmero de termos-soma. Como se ver no prximo captulo, a representao de uma funo atravs de seus mintermos ou maxtermos um passo essencial para a implementao de um mtodo de minimizao sistemtico, que garanta a obteno de uma expresso com os nmeros mnimos de termos e literais. Se uma funo for dada atravs de uma expresso que no uma soma de mintermos, ento a forma da soma de mintermos pode ser obtida gerando-se em primeiro lugar a tabelaverdade da funo.

10

Tcnicas Digitais para Computao

Exemplo 3.13. Seja a funo F = Y+X Z Esta expresso no uma soma de mintermos, pois a funo tem 3 variveis X, Y e Z e os termos-produto Y e X Z no contm todas as variveis da funo. A funo pode ser representada pela tabela-verdade da Figura 3.13, para a construo da qual foram avaliados primeiramente os termos Y e X Z . A partir da tabela-verdade, a forma cannica de soma de mintermos obtida facilmente: F = m(0,1,2,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.13 Tabela-verdade para funo do Exemplo 3.13 4.2.1 Mapas de Karnaugh de 2 variveis A representao de uma funo como soma de mintermos pode ser visualizada graficamente atravs de um mapa de Karnaugh. Para uma funo de duas variveis, que contm 4 mintermos, ou seja, 4 combinaes de valores das variveis de entrada, um mapa de Karnaugh um diagrama contendo 4 clulas, uma para cada mintermo, dispostas conforme a Figura 4.5. Como se v no diagrama, cada linha corresponde a um valor da varivel X, cada coluna corresponde a um valor da varivel Y e cada clula corresponde a uma combinao de valores de X e Y e, portanto, a um mintermo. Para a representao de uma funo atravs de um mapa de Karnaugh, coloca-se na clula que corresponde a cada mintermo o valor da funo para aquele mintermo.

Figura 4.5 Mapa de Karnaugh para funo de 2 variveis

Captulo 4 Circuitos Combinacionais

11

Exemplo 4.5. A Figura 4.6 mostra o mapa de Karnaugh da funo F(X,Y) = m(1,2,3) = m1 + m2 + m3

Figura 4.6 Mapa de Karnaugh para funo do Exemplo 4.5 Se cada clula isolada do mapa corresponde a um mintermo, a regio englobando a coluna da direita do mapa (duas clulas vizinhas, incluindo m1 e m3), corresponde ao termo Y, conforme ilustrado na Figura 4.7. Da mesma forma, a regio da coluna da esquerda do mapa corresponde ao termo Y , a regio da linha superior do mapa corresponde ao termo X e a regio da linha inferior corresponde ao termo X.

Figura 4.7 Regies e termos correspondentes do mapa de Karnaugh Esta constatao sobre os termos que correspondem a regies do mapa pode ser comprovada algebricamente. A regio da coluna direita do mapa, por exemplo, a unio (soma lgica) das clulas que correspondem aos mintermos m1 e m3. Portanto: m 1 + m 3 = XY + XY = Y(X + X) = Y Exemplo 4.6. A Figura 4.8 mostra a mesma funo do Exemplo 4.5: F = m(1,2,3) = m1 + m2 + m3 Esta funo pode ser simplificada atravs da seguinte seqncia de transformaes algbricas: 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, pode-se observar que a funo a unio das regies que correspondem aos termos Y e X, de modo que a soluo F=Y+X poderia ter sido apontada sem necessidade de nenhuma manipulao algbrica.

12

Tcnicas Digitais para Computao

Figura 4.8 Mapa de Karnaugh da funo do Exemplo 4.6 interessante observar que as transformaes algbricas realizadas no Exemplo 4.6 correspondem exatamente simplificao grfica realizada: 1) a transformao (1) corresponde utilizao dupla do mintermo m3, que precisa ser agrupado tanto a m2, para compor a regio X, como a m1,para compor a regio Y; e 2) as fatoraes no passo (2) correspondem composio das regies X e Y, com a eliminao das variveis cujos valores variam de um mintermo para outro dentro da mesma regio; a. a varivel X troca de valor entre m1 e m3, restando a varivel Y como representao da regio que engloba m1 e m3; e b. a varivel Y troca de valor entre m2 e m3, restando a varivel X como representao da regio que engloba m2 e m3. Conclui-se que uma funo pode ser expressa como a soma dos mintermos que produzem 1 no valor da funo, ou, alternativamente, como a soma de termos-produto que correspondem a regies do mapa do Karnaugh, sendo necessrio que cada mintermo para o qual a funo produz valor 1 seja coberto por pelo menos uma regio. 4.2.2 Mapas de Karnaugh de 3 variveis Uma funo de 3 variveis tem 8 mintermos e, portanto, o mapa de Karnaugh correspondente precisa ter 8 clulas, como mostrado na Figura 4.9. Neste mapa, existem 2 linhas, correspondendo aos 2 valores da varivel X, e 4 colunas, correspondendo s 4 combinaes de valores das variveis Y e Z.

Figura 4.9 Mapa de Karnaugh para uma funo de 3 variveis

Captulo 4 Circuitos Combinacionais

13

Nota-se que os mintermos correspondentes s colunas do mapa no seguem uma ordem crescente. Isto feito intencionalmente, para facilitar o processo de simplificao atravs de regras geomtricas, como j foi feito no mapa de 2 variveis. Com esta providncia, os mintermos correspondentes a duas clulas vizinhas quaisquer do mapa diferem sempre pelo valor de uma nica varivel. Exemplo 4.7. As clulas que correspondem aos mintermos m5 e m7 so vizinhas. Estes mintermos tm expresses algbricas X YZ e XYZ , que diferem apenas pelo valor da varivel Y. importante observar que existe uma vizinhana atravs das bordas do mapa. Assim, a coluna bem direita do mapa vizinha da coluna bem esquerda. Exemplo 4.8. As clulas que correspondem aos mintermos m0 e m2 so vizinhas. Estes mintermos tm expresses algbricas X YZ e XYZ , que diferem apenas pelo valor da varivel Y. As clulas que correspondem aos mintermos m4 e m6 tambm so vizinhas. Estes mintermos tm expresses algbricas X YZ e XYZ , que tambm diferem apenas pelo valor da varivel Y. Como j se fez para mapas de 2 variveis, a soma de 2 mintermos adjacentes no mapa permite uma fatorao, seguida da eliminao da varivel que troca de valor entre estes dois mintermos. Obtm-se, assim, um termo-produto que mantm as variveis cujos valores permanecem constantes nos dois mintermos. Exemplo 4.9. Seja a regio que engloba os mintermos m5 e m7. Como esta regio engloba clulas cujos mintermos mantm constantes os valores X e Z, o termo-produto correspondente mesma XZ. A varivel Y troca de valor entre estes mintermos e eliminada aps a fatorao. Algebricamente, feita a seguinte simplificao: m 5 + m7 = XYZ + XYZ = XZ(Y + Y) = XZ Exemplo 4.10. Seja a regio que engloba os mintermos m2, m3, m6 e m7, mostrada no mapa da Figura 4.10. Esta funo pode ser simplificada passo a passo, da seguinte maneira: - a regio englobando m2 e m3 corresponde ao termo-produto XY , pois nestes dois mintermos X mantm o valor 0 e Y mantm o valor 1, enquanto Z troca de valor e eliminada aps a fatorao; - a regio englobando m6 e m7 corresponde ao termo-produto XY, pois nestes dois mintermos X e Y mantm o valor 1, enquanto Z troca de valor e eliminada aps a fatorao; - os resultados parciais dos passos anteriores so agora somados, o que resulta na expresso F = XY + XY = (X + X)Y = Y . A concluso final que a regio englobando os mintermos m2, m3, m6 e m7 corresponde ao termo-produto Y. De fato, observa-se graficamente que, nesta regio quadrada de 4 mintermos, apenas a varivel Y mantm o valor 1, enquanto X e Z trocam de valor e so eliminadas pela fatorao.

14

Tcnicas Digitais para Computao

Figura 4.10 Mapa de Karnaugh para funo do Exemplo 4.10 Verifica-se, ento, que: a) uma clula isolada corresponde a um termo-produto com 3 literais (um mintermo); b) uma regio contendo 2 clulas adjacentes corresponde a um termo-produto com 2 literais; c) uma regio contendo 4 clulas adjacentes (um quadrado ou uma linha) corresponde a um termo-produto com 1 literal; e d) por extenso, uma regio contendo 8 clulas (isto , o mapa inteiro) corresponde ao valor constante 1. Tomando-se o caso geral de mapas de N variveis, as regies de clulas adjacentes podem ser consideradas como sub-cubos em um cubo (ou hiper-cubo) de N dimenses. Quando uma funo minimizada, deve-se procurar cobrir todos os mintermos atravs do menor nmero possvel de termos-produto. Alm disto, devem ser procurados os termosproduto com o menor nmero possvel de literais. Graficamente, esta minimizao pode ser expressa como a procura de uma cobertura para os mintermos que tenha o menor nmero possvel de sub-cubos, sendo estes de mximo tamanho. Exemplo 4.11. Seja a funo F = m(2,3,4,5) O mapa de Karnaugh correspondente mostrado na Figura 4.11. Para a minimizao desta funo, possvel cobrir todos os 4 mintermos atravs de 2 sub-cubos, cada um englobando 2 mintermos. O primeiro sub-cubo, que engloba m2 e m3, corresponde ao termo-produto XY , enquanto o segundo sub-cubo, que engloba m4 e m5, corresponde ao termo-produto X Y . A soluo da minimizao , portanto: F = XY + X Y

Figura 4.11 Mapa de Karnaugh para funo do Exemplo 4.11

Captulo 4 Circuitos Combinacionais

15

Nota-se que a soluo do Exemplo 4.11 resultou na expresso F = XY + X Y , que corresponde definio da operao ou-exclusivo (ou xor) F = X Y . Enquanto a operao ou convencional d como resultado o valor 1 se uma das entradas tiver valor 1 ou se ambas as entradas tiverem valor 1, a operao xor resulta no valor 1 apenas se uma das entradas tiver valor 1, mas no caso ambas as entradas tenham valor 1. O circuito correspondente, portanto, ao invs de 2 portas E de 2 entradas e 1 porta OU de 2 entradas, necessrias para a implementao de F = XY + X Y , poderia ser realizado com uma nica porta lgica XOR. As tcnicas de minimizao de circuitos, baseadas em mapas de Karnaugh e apresentadas neste livro, no so apropriadas para solues envolvendo portas XOR, e sim para solues de tipo AND-OR. Exemplo 4.12. Seja a funo F = m(3,4,6,7) O mapa de Karnaugh correspondente mostrado na Figura 4.12. Para a minimizao desta funo, tambm possvel cobrir todos os 4 mintermos atravs de 2 sub-cubos, cada um englobando 2 mintermos. O primeiro sub-cubo, que engloba m3 e m7, corresponde ao termo-produto YZ. Para a visualizao do segundo sub-cubo, que engloba m4 e m6 e corresponde ao termo-produto X Z , deve-se lembrar das vizinhanas entre clulas pelas bordas do mapa. A soluo da minimizao , portanto: F = YZ + X Z Nota-se que os mintermos m6 e m7 podem ser agrupados num sub-cubo que corresponde ao termo XY. No entanto, no faz sentido incluir o termo XY na soluo, pois m6 e m7 so cobertos pelos outros dois termos j escolhidos. Em certas situaes, um mintermo deve ser utilizado mais de uma vez na soluo, de modo a se obter uma soluo mnima.

Figura 4.12 Mapa de Karnaugh para funo do Exemplo 4.12

16

Tcnicas Digitais para Computao

Exemplo 4.13. Seja a funo F = m(0,2,4,5,6) O mapa de Karnaugh correspondente mostrado na Figura 4.13. No mapa da Figura 4.13(a) sugerida a seguinte soluo: - os mintermos m0, m2, m4 e m6 so cobertos pelo termo-produto Z ; - o mintermo m5 restante coberto pelo termo-produto X YZ . No entanto, uma minimizao mais eficiente pode ser obtida para esta funo, conforme mostrado na Figura 4.13(b), pela reutilizao do mintermo m4. Alm de contribuir para o termo Z , m4 ainda pode formar com m5 um sub-cubo de 2 clulas que corresponde ao termo-produto X Y .

Figura 4.13 Mapa de Karnaugh para funo do Exemplo 4.13 Em outras situaes, existe mais de uma soluo mnima possvel para a cobertura dos mintermos. Nestes casos, qualquer uma das solues pode ser adotada. Exemplo 4.14. Seja a funo F = m(1,3,4,5,6) O mapa de Karnaugh correspondente mostrado na Figura 4.14. Na minimizao desta funo, m1 e m3 so cobertos pelo termo-produto XZ , enquanto que m4 e m6 so cobertos pelo termo-produto X Z . Para a cobertura do mintermo restante m5, h duas solues alternativas: - cobrir m4 e m5 atravs do termo-produto X Y ; ou - cobrir m1 e m5 atravs do termo-produto YZ . Estas duas solues exigem um termo-produto com 2 literais, de modo que ambas levam a circuitos lgicos de mesmo tamanho.

Figura 4.14 Mapa de Karnaugh para funo do Exemplo 4.14

Captulo 4 Circuitos Combinacionais

17

4.2.3 Mapas de Karnaugh de 4 variveis Funes de 4 variveis tm 16 mintermos e, portanto, o mapa de Karnaugh correspondente tem 16 clulas, conforme mostrado na Figura 4.15. Neste mapa, deve-se ter especial ateno com a vizinhana de clulas atravs das bordas: a coluna mais esquerda vizinha da coluna mais direita, enquanto a linha mais superior vizinha da linha mais inferior. Assim, por exemplo, m0 vizinho de m8 e de m2, enquanto m1 vizinho de m9 e m4 vizinho de m6.

Figura 4.15 Mapa de Karnaugh para funes de 4 variveis As concluses obtidas para mapas de 3 variveis, relacionadas correspondncia entre regies do mapa e termos-produto, podem ser estendidas para mapas de 4 variveis da seguinte maneira: a) uma clula isolada corresponde a um termo-produto com 4 literais (um mintermo); b) um sub-cubo contendo 2 mintermos adjacentes corresponde a um termo-produto com 3 literais; c) um sub-cubo contendo 4 clulas adjacentes (um quadrado, uma linha ou uma coluna) corresponde a um termo-produto com 2 literais; d) um sub-cubo contendo 8 clulas adjacentes (2 linhas ou 2 colunas) corresponde a um termo-produto com 1 literal; e e) um sub-cubo contendo 16 clulas (isto , o mapa inteiro) corresponde ao valor constante 1. Exemplo 4.15. Seja a funo F = m(0,1,2,4,5,6,8,9,12,13,14) O mapa de Karnaugh correspondente mostrado na Figura 4.16. Os 11 mintermos desta funo podem ser cobertos atravs de 3 termos-produto: - o termo Y cobre os mintermos m0, m1, m4, m5, m8, m9, m12 e m13; - o termo W Z cobre os mintermos m0, m2, m4 e m6, havendo uma reutilizao dos mintermos m0 e m4, que j foram cobertos por Y ; e - o termo X Z cobre os mintermos m4, m6, m12 e m14, havendo uma reutilizao dos mintermos m4, que j foi coberto por Y e por W Z , de m6, que j foi coberto por W Z , e de m12, que j foi coberto por Y .

18

Tcnicas Digitais para Computao

Figura 4.16 Mapa de Karnaugh para funo do Exemplo 4.15 No caso de ser necessria a minimizao de uma funo que no est expressa atravs de uma soma de mintermos, o primeiro passo para a simplificao consiste em obter o mapa de Karnaugh, cuidando-se para o fato de que cada termo-produto da funo original pode cobrir 1 ou mais mintermos. Exemplo 4.16. Seja a funo F = ABC + BCD + ABCD + ABC Para a minimizao desta funo, obtemos em primeiro lugar o mapa de Karnaugh da Figura 4.17(a). Como a funo tem 4 variveis de entrada, os termos A BC , BCD e A BC , que tm 3 literais cada, no so mintermos e correspondem a sub-cubos que cobrem 2 mintermos cada. A Figura 4.17(b) mostra o resultado da minimizao. Os 7 mintermos da funo so cobertos atravs dos 3 termos-produto BC , BD e ACD .

Figura 4.17 Mapa de Karnaugh para funo do Exemplo 4.16

Captulo 4 Circuitos Combinacionais

19

4.2.4 Implicantes primos Nos exemplos anteriores, no foi utilizado nenhum procedimento sistemtico para a identificao do nmero mnimo de termos-produto, tendo estes o mnimo nmero de literais, que cobrem todos os mintermos de uma funo. Este procedimento sistemtico possvel a partir da identificao dos implicantes primos e dos implicantes primos essenciais da funo. Um implicante primo de uma funo um termo-produto obtido pela combinao do mximo nmero de mintermos adjacentes que produzem valor 1 na funo. Para a obteno do conjunto de todos os implicantes primos de uma funo, deve-se varrer todos os seus mintermos. Para cada mintermo, obtm-se 1 ou mais implicantes primos da seguinte forma: a) se o mintermo no tem nenhum mintermo adjacente, ento ele prprio um implicante primo; b) se um sub-cubo com 2 mintermos adjacentes no est includo dentro de um sub-cubo maior com 4 mintermos adjacentes, ento o termo-produto correspondente a este subcubo um implicante primo; c) se um sub-cubo com 4 mintermos adjacentes no est includo dentro de um sub-cubo maior com 8 mintermos adjacentes, ento o termo-produto correspondente a este subcubo um implicante primo; e d) assim por diante, para sub-cubos maiores. Exemplo 4.17. Seja a funo F = m(1,3,4,5,6) cujo mapa de Karnaugh mostrado na Figura 4.18. Atravs da varredura sistemtica de todos os seus mintermos, so identificados os seus implicantes primos da seguinte maneira: - para o mintermo m1 so encontrados os implicantes primos XZ e YZ ; - para o mintermo m3 encontrado novamente o implicante primo XZ ; - para o mintermo m4 so encontrados os implicantes primos X Y e X Z ; - para o mintermo m5 so encontrados novamente os implicantes primos X Y e YZ ; e - para o mintermo m6 encontrado novamente o implicante primo X Z . Foram ento encontrados 4 implicantes primos: XZ , YZ , X Y e X Z .

Figura 4.18 Mapa de Karnaugh para funo do Exemplo 4.17

20

Tcnicas Digitais para Computao

Um implicante primo essencial de uma funo um implicante primo que o nico a cobrir um dado mintermo. Para a obteno do conjunto de todos os implicantes primos essenciais de uma funo, deve-se varrer todos os seus mintermos. Para cada mintermo, se o mesmo for coberto por apenas um implicante primo, ento este essencial. Exemplo 4.18. Seja a mesma funo do Exemplo 4.17, mostrada na Figura 4.18, cujos implicantes primos so XZ , YZ , X Y e X Z . Atravs da varredura sistemtica de todos os seus mintermos, so identificados os seus implicantes primos essenciais da seguinte maneira: - o mintermo m1 coberto por dois implicantes primos, XZ e YZ , de modo que nenhum destes includo na lista de essenciais; - o mintermo m3 coberto apenas pelo implicante primo XZ , de modo que este essencial; - o mintermo m4 coberto por dois implicantes primos, X Y e X Z , de modo que nenhum destes includo na lista de essenciais; - o mintermo m5 coberto por dois implicantes primos, X Y e YZ , de modo que nenhum destes includo na lista de essenciais; e - o mintermo m6 coberto apenas pelo implicante primo X Z , de modo que este includo na lista de essenciais. A lista de implicantes primos essenciais da funo inclui, portanto, os termos-produto XZ e X Z . Estes dois termos cobrem os mintermos m1, m3, m4 e m6, mas no cobrem o mintermo m5. Dos exemplos anteriores, fica claro que a expresso minimizada de uma funo deve incluir os implicantes primos essenciais. No entanto, estes no cobrem necessariamente todos os mintermos da funo, conforme ilustrado pelo Exemplo 4.18. O algoritmo para a obteno da expresso minimizada para a funo, portanto, aquele mostrado a seguir. Algoritmo para minimizao de funes booleanas 1. Identificar os implicantes primos da funo. 2. Identificar os implicantes primos essenciais da funo. 3. A funo simplificada dada pela soma dos implicantes primos essenciais, mais outros implicantes primos, no-essenciais, que sejam necessrios para cobrir mintermos ainda no cobertos pelos implicantes primos essenciais. Os dois exemplos a seguir diferem justamente na execuo do terceiro passo deste algoritmo.

Captulo 4 Circuitos Combinacionais

21

Exemplo 4.19. Seja a funo F = m(1,3,4,5,6,7,12,14) dada pelo mapa de Karnaugh da Figura 4.19. Esta funo tem 3 implicantes primos: - AD , que cobre os mintermos m1, m3, m5 e m7; - AB, que cobre os mintermos m4, m5, m6 e m7; e - BD , que cobre os mintermos m4, m6, m12 e m13. Os implicantes primos AD e BD so essenciais, pois: - AD o nico implicante primo a cobrir os mintermos m1 e m3; - BD o nico implicante primo a cobrir os mintermos m12 e m14. A soluo para a simplificao da funo F = AD + BD pois estes dois implicantes primos essenciais j cobrem todos os mintermos da funo.

Figura 4.19 Mapa de Karnaugh para funo do Exemplo 4.19

22

Tcnicas Digitais para Computao

Exemplo 4.20. Seja a funo F = m(0,5,10,11,12,13,15) dada pelo mapa de Karnaugh da Figura 4.20. Esta funo tem 6 implicantes primos: - P1 = A BCD , que idntico ao mintermo m0; - P2 = BCD , que cobre os mintermos m5 e m13; - P3 = ABC, que cobre os mintermos m12 e m13; - P4 = ABD , que cobre os mintermos m13 e m15; - P5 = ACD , que cobre os mintermos m11 e m15; e - P6 = A BC , que cobre os mintermos m10 e m11. Para a identificao dos implicantes primos essenciais desta funo, foi montada a tabela de cobertura mostrada na Figura 4.21. Esta tabela mostra quais mintermos so cobertos por cada implicante primo. Examinando-se a tabela coluna por coluna (i.e., mintermo por mintermo), fcil verificar quais mintermos so essenciais, i.e., so cobertos por apenas um implicante primo. So ento identificados os seguintes implicantes primos essenciais: - P1 = A BCD , que o nico implicante primo a cobrir o mintermo m0; - P2 = BCD , que o nico implicante primo a cobrir o mintermo m5; - P3 = ABC, que o nico implicante primo a cobrir o mintermo m12; e - P6 = A BC , que o nico implicante primo a cobrir o mintermo m10. Ainda usando a tabela de cobertura, podem ser identificados quais mintermos so cobertos pelos implicantes primos essenciais. Esta verificao mostra que o nico mintermo que no coberto por nenhum implicante primo essencial m15. Deve-se, ento, escolher um implicante primo no essencial para cobertura deste mintermo restante. No caso, podem ser escolhidos tanto P4 como P5, pois ambos cobrem m15 e tm 3 literais. Existem, ento, duas solues equivalentes para a simplificao da funo: F = ABCD + BCD + ABC + ABC + ABD , ou F = ABCD + BCD + ABC + ABC + ACD .

Figura 4.20 Mapa de Karnaugh para funo do Exemplo 4.20

Captulo 4 Circuitos Combinacionais

23

O Exemplo 4.20 demonstra os passos bsicos do que conhecido como mtodo de minimizao de Quine-McCluskey e que foi desenvolvido em 1956. Este mtodo est na base de todos os mtodos de minimizao de funes lgicas desenvolvidos posteriormente. Problemas reais, no entanto, envolvem funes de dezenas de variveis e precisam ser computacionalmente eficientes. Um exemplo o projeto do bloco de controle de um processador, que contm um grande nmero de variveis de entrada, correspondendo aos bits que codificam a instruo a ser executada e aos sinais que informam sobre o estado atual do bloco operacional do processador. Basicamente, os mtodos de minimizao posteriores a Quine-McCluskey visaram melhorar a eficincia computacional do ltimo passo do mtodo, que a escolha dos implicantes primos no essenciais necessrios para a cobertura dos mintermos ainda no cobertos pelos implicantes primos essenciais. Os passos iniciais do mtodo, para identificao dos implicantes primos e dos implicantes primos essenciais, so computacionalmente mais simples.

Figura 4.21 Tabela de cobertura para funo do Exemplo 4.20

24 4.3 Sntese de funes usando portas NAND e NOR

Tcnicas Digitais para Computao

Conforme foi visto no Captulo 2, a porta NAND (NO-E) a mais simples de ser cosntruda em tecnologia TTL. Por este motivo, tornaram-se populares tcnicas que permitem a implementao de circuitos lgicos utilizando unicamente estas portas.

Figura 4.22 Porta lgica NAND de 3 entradas A Figura 4.22 mostra a definio de uma porta NAND de 3 entradas, que implementa a operao F = ABC . Pela definio da porta, ela equivale a uma operao E, seguida de um complemento. Por esta interpretao, a porta fornece valor 0 na sada quando todas as entradas so iguais a 1 e fornece valor 1 em caso contrrio, ou seja, quando uma ou mais entradas tiverem valor 0. Pela aplicao do Teorema de De Morgan definio da funo NAND, obtm-se F = A+B+C Pela interpretao direta desta expresso alternativa para a funo NAND, pode-se dizer que F = 1 quando A = 0 OU B = 0 OU C = 0 A Figura 4.23 mostra um smbolo alternativo para a porta NAND, considerando esta interpretao alternativa. Ele ilustra que a porta NAND equivalente a uma porta OR com as entradas complementadas.

Figura 4.23 Smbolo alternativo da porta NAND

Captulo 4 Circuitos Combinacionais

25

4.3.1 Propriedades da porta NAND Demonstra-se facilmente que qualquer funo lgica pode ser implementada a partir de uma combinao apropriada de portas NAND. A Figura 4.24(a) mostra que um inversor obtido utilizando-se uma porta NAND com as suas duas entradas ligadas ao mesmo sinal, pois F = A A = A A Figura 4.24(b) mostra que uma porta E pode ser obtida a partir de uma porta NAND seguida de um inversor, sendo este ltimo implementado tambm por uma porta NAND, conforme visto anteriormente, pois F = A B = A B A Figura 4.24(c), finalmente, mostra que uma porta OU pode ser obtida a partir de uma porta NAND se for lembrado o smbolo alternativo desta. Basta, ento, colocar um inversor adicional (tambm implementado com uma porta NAND) em cada entrada da porta NAND, para que esta implemente a funo OU. A operao realizada neste caso F = A B = A + B = A + B A funo NAND de 3 ou mais variveis comutativa, tal como as funes E e OU: A nand B = B nand A A funo NAND, no entanto, no associativa: (A nand B) nand C A nand (B nand C) Isto facilmente demonstrado, pois A B C = A B + C = A B + C enquanto que A B C = A + B C = A + B C

Figura 4.24 Suficincia da porta NAND No havendo associatividade da funo NAND, os circuitos das Figuras 4.25(a) e (b) no so equivalentes.

26

Tcnicas Digitais para Computao

Figura 4.25 Ausncia de associatividade do NAND Note-se que, no entanto, a funo NAND de 3 entradas comutativa, de modo que A B C = B A C = C A B

4.3.2 Lgica de dois nveis com portas NAND A partir de uma expresso na forma de soma-de-produtos, pode ser obtido por mapeamento direto um circuito de 2 nveis de tipo AND-OR, conforme j foi visto na Seo 4.2. Este circuito pode ser facilmente transformado para um circuito em 2 nveis de tipo NAND-NAND, conforme ilustrado no exemplo a seguir. Exemplo 4.21. Seja a funo F = AB + CD + E implementada na forma de um circuito AND-OR conforme mostrado na Figura 4.26(a). As portas E so substitudas por portas NAND e so colocados inversores na entrada da porta OU, conforme a Figura 4.26(b), de modo que os complementos na sada do NAND e na entrada do OU se cancelam, preservando a funo original. Na falta de uma porta NAND ligada terceira entrada da porta OU, um inversor adicional foi colocado nesta entrada. Lembrando-se que uma porta OU com as entradas complementadas , na verdade, uma representao alternativa para a porta NAND, o circuito final mostrado na Figura 4.26(c). A funo implementada pelo circuito da Figura 4.26(c) F = AB CD E F = AB + CD + E F = AB + CD + E que , como esperado, a prpria funo F original.

Captulo 4 Circuitos Combinacionais

27

Figura 4.26 Lgica de dois nveis usando circuitos NAND-NAND A concluso deste exemplo que, a partir de uma expresso de soma-de-produtos, pode ser implementado diretamente um circuito em 2 nveis na forma NAND-NAND. Deve-se tomar o cuidado de acrescentar um inversor nas entradas que correspondem a termos-produto com um nico literal. 4.3.3 Lgica de 2 nveis com circuitos NOR-NOR A Figura 4.27 mostra a definio de uma porta NOR (NO-OU) de 3 entradas, que implementa a operao F = A+B+C Pela definio da porta, ela equivale a uma operao OU, seguida de um complemento. Por esta interpretao, a porta fornece valor 1 na sada quando todas as entradas so iguais a 0 e fornece valor 0 em caso contrrio, ou seja, quando uma ou mais entradas tiverem valor 1. Pela aplicao do Teorema de De Morgan definio da funo NOR, obtm-se F = A B C Pela interpretao direta desta expresso alternativa para a funo NOR, pode-se dizer que F = 1 quando A = 0 E B = 0 E C = 0

28

Tcnicas Digitais para Computao

Figura 4.27 Porta lgica NOR de 3 entradas A Figura 4.28 mostra um smbolo alternativo para a porta NOR, considerando esta interpretao alternativa. Ele ilustra que a porta NOR equivalente a uma porta E com as entradas complementadas.

Figura 4.28 Smbolo alternativo da porta NOR Demonstra-se que, da mesma forma que a porta NAND, a porta NOR suficiente para a implementao de qualquer outra funo lgica. Conforme foi visto na Seo 4.2, partindo-se de um produto-de-somas pode-se implementar diretamente um circuito em lgica de 2 nveis na forma OR-AND. Este circuito pode ser facilmente transformado num circuito tipo NOR-NOR, conforme ilustrado no exemplo a seguir.

Captulo 4 Circuitos Combinacionais

29

Exemplo 4.22. Seja a funo F = (A + B) (C + D) E implementada na forma de um circuito OR-AND conforme mostrado na Figura 4.29(a). As portas OU so substitudas por portas NOR e so colocados inversores na entrada da porta E, conforme a Figura 4.29(b), de modo que os complementos na sada do NOR e na entrada do E se cancelam, preservando a funo original. Na falta de uma porta NOR ligada terceira entrada da porta E, um inversor adicional foi colocado nesta entrada. Lembrando-se que uma porta E com as entradas complementadas , na verdade, uma representao alternativa para a porta NOR, o circuito final mostrado na Figura 4.29(c). A funo implementada pelo circuito da Figura 4.29(c) F = A+B+C+D+ E F = (A + B) (C + D) E F = (A + B) (C + D) E que , como esperado, a prpria funo F original.

Figura 4.29 Lgica de dois nveis usando circuitos NOR-NOR A concluso deste exemplo que, a partir de uma expresso de produto-de-somas, pode ser implementado diretamente um circuito em 2 nveis na forma NOR-NOR. Deve-se tomar o cuidado de acrescentar um inversor nas entradas que correspondem a termos-soma com um nico literal. A forma NOR-NOR no se tornou to popular quanto a forma NAND-NAND tendo em vista a influncia da tecnologia TTL.

30 4.4 Funes com sadas no-especificadas

Tcnicas Digitais para Computao

Em muitas situaes, sabido que certas combinaes de valores de entrada de um circuito lgico C1 jamais ocorrero. 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. Nestes casos, no importa qual seria o valor que C1 produziria quando uma destas combinaes de entrada ocorresse, pois, por definio, isto no acontecer. Portanto, quando do projeto deste circuito, pode-se supor que o valor de sada gerado diante de uma destas combinaes de entrada seja tanto 0 como 1. Este valor de sada denominado dont care, e a liberdade de atribuir ao mesmo o valor 0 ou 1 pode ser aproveitado para uma minimizao mais eficiente da funo lgica. Exemplo 4.23. Suponha-se um circuito que receba como entrada um dgito decimal codificado em BCD. Para as 10 combinaes vlidas de valores de entrada, o circuito implementa a funo F = m(0,3,4,7,8) Como as combinaes de entrada que correspondem aos mintermos m10 at m15 jamais ocorrero, estes mintermos so considerados como dont care, o que especificado como F = m(0,3,4,7,8), d(10,11,12,13,14,15) Na tabela-verdade, o valor da funo para os mintermos dont care identificado pela letra X, conforme mostrado na Figura 4.30.

Figura 4.30 Tabela-verdade para funo do Exemplo 4.23

Captulo 4 Circuitos Combinacionais

31

A Figura 4.31 mostra o mapa de Karnaugh desta funo. Para cada mintermo dont care, escolhe-se o valor 0 ou 1, o que for mais apropriado para facilitar a minimizao. No caso, supe-se o valor 1 para os mintermos m11, m12 e m15, enquanto que m10, m13 e m14 ficam com valor 0. Com estas atribuies, a funo pode ser minimizada para F = CD + CD

Figura 4.31 Mapa de Karnaugh para funo do Exemplo 4.23

4.5 Anlise de blocos combinacionais Um bloco combinacional aquele cujos valores das sadas so funo exclusivamente dos valores atuais das entradas, desconsiderados apenas os atrasos de propagao das portas lgicas. O bloco combinacional, portanto, no tem capacidade de memorizao. Um bloco combinacional pode ser reconhecido a partir de duas caractersticas bsicas: a) formado exclusivamente por portas lgicas que implementam os operadores da lgebra booleana (E, OU, complemento, XOR, NAND, NOR), no contendo, portanto, elementos de memorizao, como flip-flops, registradores e memrias, que sero discutidos no Captulo 5; e b) no possui laos de realimentao, isto , no contm uma porta lgica cuja entrada seja uma funo do valor de sada desta mesma porta. A anlise da funo implementada por um bloco combinacional pode ser feita de maneira bastante simples. Uma primeira expresso lgica pode ser obtida pelo mapeamento direto entre as portas do circuito e os operadores da lgebra booleana. A partir desta expresso pode-se construir uma tabela-verdade, que permite identificar a funo do circuito. Eventualmente, esta expresso pode ser previamente simplificada por manipulaes algbricas.

32

Tcnicas Digitais para Computao

Exemplo 4.23. Seja o circuito da Figura 4.32. Reconhece-se que este circuito combinacional, pois o mesmo formado apenas por portas lgicas elementares e no contm laos de realimentao. Pode-se ento obter a expresso lgica da funo de sada S por um processo de substituies e manipulaes algbricas: 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 expresso, na forma de soma de mintermos, constri-se a tabela-verdade, mostrada na Figura 4.33. Verifica-se que este circuito implementa a funo de soma aritmtica entre as 3 variveis de entrada, desprezando-se o vai-um.

Figura 4.32 Circuito combinacional para o Exemplo 4.23

Captulo 4 Circuitos Combinacionais

33

Exerccios 4.1 Implemente as funes abaixo atravs de circuitos em 2 nveis de tipo AND-OR e verifique os nmeros de portas e entradas e portas que foram necessrios. Transforme cada circuito para a implementao multi-nvel que minimize o nmero de portas lgicas e/ou entradas de portas. Compare os atrasos mximos de propagao nas implementaes alternativas. a) F 1 = ABC + ACD + ABD b) F 2 = ABD + ABDE + CD + CDE

4.2 Implemente as funes abaixo diretamente atravs de circuitos multi-nvel, sem efetuar nenhuma transformao algbrica, e verifique os nmeros de portas e entradas e portas que foram necessrios. Transforme cada circuito para uma implementao em 2 nveis de tipo OR-AND. Compare os atrasos mximos de propagao nas implementaes alternativas. a) F 1 = A + B(C + D) b) F 2 = AB + (A + C)D

4.3 Minimize as funes de 3 variveis abaixo com o auxlio de mapas de Karnaugh. a) F1 = m(1,2,5,7) b) F2 = m(0,1,2,5,6,7) ateno: esta funo tem 2 solues mnimas distintas c) F 3 = AC + AB + ABC + ABC d) F 4 = AB + ABC + ABC

4.4 Identifique os implicantes primos e os implicantes primos essenciais das funes de 4 variveis abaixo. a) F1 = m(0,1,3,5,7,8,10,12,14) b) F2 = m(1,2,5,6,7,8,9,10,14,15) c) F 3 = BCD + ABD + ABC + ABD + ABCD d) F 4 = ACD + ABD + ABC + A BD 4.5 Minimize as funes abaixo utilizando o mtodo 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 incluso de implicantes primos noessenciais na soluo. a) F1(A,B,C) = m(1,3,4,5,6) b) F 2 (A,B,C) = ABC + AB + A BC + ABC c) F3(A,B,C,D)= m(1,3,4,5,6,7,12,13,14) d) F 4 (A,B,C, D) = ABD + BCD + ABD + ACD + AC + ABD

Você também pode gostar