Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Algebra Booleana
Apostila Algebra Booleana
Apostila Algebra Booleana
Uma lgebra Booleana pode ser definida com um conjunto de operadores e um conjunto de axiomas, que so assumidos verdadeiros sem necessidade de prova. Em 1854, George Boole introduziu o formalismo que at hoje se usa para o tratamento sistemtico da lgica, que a chamada lgebra Booleana. Em 1938, C. E. Shannon aplicou esta lgebra para mostrar que as propriedades de circuitos eltricos de chaveamento podem ser representadas por uma lgebra Booleana com dois valores. Diferentemente da lgebra ordinria dos reais, onde as variveis podem assumir valores no intervalo (-;+), as variveis Booleanas s podem assumir um nmero finito de valores. Em particular, na lgebra Booleana de dois valores, cada varivel pode assumir um dentre dois valores possveis, os quais podem ser denotados por [F,V] (falso ou verdadeiro), [H,L] (high and low) ou ainda [0,1]. Nesta disciplina, adotaremos a notao [0,1], a qual tambm utilizada em eletrnica digital. Como o nmero de valores que cada varivel pode assumir finito (e pequeno), o nmero de estados que uma funo Booleana pode assumir tambm ser finito, o que significa que podemos descrever completamente as funes Booleanas utilizando tabelas. Devido a este fato, uma tabela que descreva uma funo Booleana recebe o nome de tabela verdade, e nela so listadas todas as combinaes de valores que as variveis de entrada podem assumir e os correspondentes valores da funo (sadas).
2-2
sabemos que no se trata da adio algbrica, mas sim da adio lgica. Outro smbolo tambm encontrado na bibliografia . Listando as possibilidades de combinaes entre dois valores Booleanos e os respectivos resultados para a operao OU, tem-se: 0+0 0+1 1+0 1+1 = = = = 0 1 1 1
Note que a operao OU s pode ser definida se houver, pelo menos, duas variveis envolvidas. Ou seja, no possvel realizar a operao sobre somente uma varivel. Devido a isso, o operador + (OU) dito binrio. Nas equaes, no costuma-se escrever todas as possibilidades de valores. Apenas adotamos uma letra (ou uma letra com um ndice) para designar uma varivel Booleana. Com isso, j se sabe que aquela varivel pode assumir ou o valor 0 ou o valor 1. Ento, supondo que queiramos demonstar o comportamento da equao A+B (l-se A ou B), poderamos faz-lo utilizando uma tabela verdade, como segue: A 0 0 1 1 B 0 1 0 1 A+B 0 1 1 1
Da mesma forma, podemos mostrar o comportamento da equao A+B+C (l-se A ou B ou C) por meio de uma tabela verdade. Como na equao h somente o smbolo +, tratase da operao OU sobre trs variveis. Logo, pode-se aplicar diretamente a definio da operao OU: o resultado ser 1 se pelo menos uma das variveis de entrada valer 1. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 A+B+C 0 1 1 1 1 1 1 1
importante notar que, devido ao fato de haver somente um operador na equao, pode-se tambm avaliar a equao decompondo-a em pares. Por exemplo, pode-se primeiramente achar o resultado de A+B, para depois operar os valores resultantes com os respectivos valores de C. Esta propriedade conhecida como associativa. Tambm a ordem em que so avaliadas as variveis A, B e C irrelevante (propriedade comutativa). Estas propriedades so ilustradas pela tabela verdade a seguir. Nela, os parntesis indicam subexpresses j avaliadas em coluna imediatamente esquerda. Note que os valores das
2-3
colunas referentes s expresses A+B+C, (A+B)+C e (B+C)+A so os mesmos (na mesma ordem). A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 A+B+C 0 1 1 1 1 1 1 1 A+B 0 0 1 1 1 1 1 1 (A+B)+C 0 1 1 1 1 1 1 1 B+C 0 1 1 1 0 1 1 1 (B+C)+A 0 1 1 1 1 1 1 1
Assim como a operao OU, a operao E s pode ser definida entre, pelo menos duas variveis. Ou seja, o operador (E) tambm binrio. Para mostrar o comportamento da equao A B (l-se A e B), escreve-se uma tabela verdade, como segue: A 0 0 1 1 B 0 1 0 1 AB 0 0 0 1
De forma semelhante, pode-se determinar o resultado da equao ABC (l-se A e B e C) utilizando diretamente a definio da operao E: o resultado ser 0 se pelo menos uma das variveis de entrada valer 0.
2-4
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
ABC 0 0 0 0 0 0 0 1
Tambm para a operao E valem as propriedades associativa e comutativa. Ento, a equao ABC pode ainda ser avaliada tomando-se as variveis aos pares, em qualquer ordem. Veja a tabela verdade a seguir e compare os resultados. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 ABC 0 0 0 0 0 0 0 1 AB 0 0 0 0 0 0 1 1 (AB)C 0 0 0 0 0 0 0 1 BC 0 0 0 1 0 0 0 1 A(BC) 0 0 0 0 0 1 0 1
Diferentemente das operaes OU e E, a complementao s definida sobre uma varivel, ou sobre o resultado de uma expresso. Ou seja, o operador complementao dito unrio. E a tabela verdade para A : A 0 1 A 1 0
2-5
2-6
termo j foi avaliado e que no passo referente a esta coluna, tomaram-se apenas os valores previamente encontrados.
X Y Z
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Z 1 0 1 0 1 0 1 0
X Y 0 0 1 0 0 0 1 0
W = X + Y Z
0 0 1 0 1 1 1 1
2.3.1 Porta OU
O smbolo da porta OU pode ser visto na figura 2.1. Tal como na porta E, as entradas so colocadas esquerda e a sada, direita. Deve haver no mnimo duas entradas, mas h somente uma sada. O funcionamento da porta E segue a definio da operao E, dada na seo 2.1.1.
A B A+B A B C A+B+C
(a)
(b)
Figura 2.1 - Smbolo da porta lgica OU com 2 entradas (a) e com 3 entradas (b).
2-7
2.3.2 Porta E
O smbolo da porta E mostrado na figura 2.2. esquerda esto dispostas as entradas (no mnimo duas, obviamente) e direita, a sada (nica). As linhas que conduzem as variveis de entrada e sada podem ser interpretadas como fios que transportam os sinais eltricos associados s variveis. O comportamento da porta E segue extritamente a definio (e tabela verdade) dada na seo 2.1.2.
A B A.B A B C A.B.C
(a)
(b)
Figura 2.2 - Smbolo da porta lgica E com 2 entradas (a) e com 3 entradas (b).
Figura 2.3 - Smbolo do inversor (tambm conhecido como negador ou porta inversora).
2-8
X Y Z W
Da multiplicao lgica: (5) (6) (7) (8) Da complementao: (9) Comutatividade: (10) (11) A + B = B+ A A B = B A A=A
2-9
2-10
mintermo A B C A B C A B C A B C A B C A B C A B C A B C
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Cada termo produto construdo conforme a regra anteriormente descrita denominado mintermo (ou minitermo). Note que, para um dado mintermo, se substituirmos os valores das variveis associadas, obteremos 1. Porm, se substituirmos nesse mesmo mintermo quaisquer outras combinaes de valores, obteremos 0. Dessa forma, se quisermos encontrar a equao para uma funo a partir de sua tabela verdade, basta montarmos um OU entre os mintermos associados aos 1s da funo (tambm chamados mintermos 1 ). Exemplo 2.1: encontrar a equao em soma de produtos (SdP) para a funo F, descrita pela seguinte tabela verdade:
A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 F 0 0 1 1 0 1 1 0
F funo das variveis A, B e C. Os valores de (A,B,C) para os quais F=1 so (0,1,0), (0,1,1), (1,0,1) e (1,1,0). Os mintermos associados a essas condies (ou seja, os mintermos 1), so A B C , A B C , A B C e A B C , respectivamente. Logo, a equao em soma de produtos para F ser o OU entre estes produtos, conforme segue: F = A B C + A B C + A B C + A B C (2.5)
2-11
A fim de simplificar a notao, o smbolo da operao E pode ser omitido. Desta forma, a equao anterior pode ser reescrita de maneira mais concisa:
F = A BC + A BC + A BC + A BC
(2.6)
maxtermos A + B+ C
A + B+ C A + B+ C A + B+ C A + B+ C A + B+ C A + B+ C A + B+ C
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Cada termo soma construdo conforme a regra anteriormente descrita denominado maxtermo (ou maxitermo). Note que, para um dado maxtermo, se substituirmos os valores das variveis associadas, obteremos 0. Porm, se substituirmos nesse mesmo maxtermo quaisquer outras combinaes de valores, obteremos 1. Dessa forma, se quisermos encontrar a equao para uma funo a partir de sua tabela verdade, basta montarmos um E entre os maxtermos associados aos 0s da funo (tambm chamados maxtermos 0 ). Exemplo 2.2: encontrar a equao em produto de somas (PdS) para a funo F, descrita pela seguinte tabela verdade: A B C F 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0
2-12
Foi escolhida a mesma funo do exemplo anterior, para que se possa estabelecer comparaes entre os dois mtodos de derivao. Os valores das variveis de entrada (A,B,C) para os quais F=0 so (0,0,0), (0,0,1), (1,0,0) e (1,1,1). Os maxtermos associados a essas condies (ou seja, os maxtermos 0), so A + B + C , A + B + C , A + B + C e A + B + C , respectivamente. Logo, a equao em produto de somas para F ser o E entre estas somas: F =(A + B + C)(A + B + C)(A + B + C)(A + B + C) (2.7)
Note que a ordem de precedncia de uma expresso em produto de somas primeiro cada soma deve ser avaliada, para s ento avaliar-se o produto. Isto significa que os parntesis em torno de cada termo soma so obrigatrios! Repare tambm que os smbolos referentes operao E (entre os termos soma) podem ser omitidos.
mintermo m0 m1 m2 m3 m4 m5 m6 m7
maxtermo M0 M1 M2 M3 M4 M5 M6 M7
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Voltando funo F das sees anteriores, podemos reescrever a expresso em soma de produtos, na forma cannica, como segue:
F = m2 + m3 + m5 + m6
(2.8)
2-13
E sua expresso em produto de somas, na forma cannica, pode ser reescrita como: F = M0 M1 M4 M7 Ou simplesmente, como: F = (0,1,4,7) (2.11) (2.10)
Apesar da praticidade das representaes cannicas, elas so pouco teis para a implementao de circuitos digitais. O nmero de elementos (portas lgicas e conexes) de um circuito lgico depende diretamente do nmero de operaes Booleanas (inverso, E e OU) contidas na expresso associada. Desta forma, normal que se deseje reduzir o nmero de operaes contidas numa funo, de modo a poder-se implement-la com circuitos lgicos mais simples, e portanto, de menor custo. A reduo do nmero de operaes obtida mediante a eliminao de literais da expresso, aplicando-se as propriedades da lgebra Booleana descritas na seo 2.4. Um literal uma varivel negada ou uma varivel no negada. O processo de reduo de literais (ou de reduo de operaes, equivalentemente) denominado simplificao. Para exemplificar os passos bsicos para a simplificao algbrica (literal) de expresses Booleanas, tomemos a expresso cannica, em soma de produtos, para a funo F:
F = A BC + A BC + A BC + A BC
(2.12)
O primeiro passo identificar pares de mintermos que se diferenciam por apenas um literal, a fim de aplicar a propriedade (14). Os mintermos ABC e ABC , por exemplo, possuem os mesmos literais, exceto pela varivel C: no primeiro, o literal C , enquanto no segundo, o literal C. Ento, com o uso da propriedade (14), pode-se fatorar esses dois mintermos, obtendo-se: F = A B(C + C)+ A BC + A BC (2.13)
Pela propriedade (4), tem-se que C + C=1. Ento, substituindo em 2.13, segue: F = AB 1 + ABC + ABC (2.14) E pela propriedade (6), AB 1 = AB. Substituindo em 2.14, obtm-se:
F = A B + A BC + A BC
(2.15)
Assim, pela manipulao algbrica, obtivemos uma expresso em soma de produtos que simplificada em relao a sua expresso em soma de produtos na forma cannica, pois o nmero de operaes e tambm de literais foram reduzidos (compare 2.15 com 2.12). Entretanto, na equao 2.12, o mintermo ABC tambm poderia ter sido agrupado com o mintermo ABC , pois ambos possuem os mesmos literais, exceto pela varivel A ( A no primeiro e A no segundo). Naturalmente, os passos a serem seguidos seriam os mesmos descritos anteriormente. E a equao resultante seria um pouco diferente, mas com o mesmo nmero de operaes, sendo portanto, de mesma complexidade. Na verdade, o melhor seria se pudssemos agrupar o mintermo ABC com o mintermo ABC e ao mesmo tempo com o mintermo ABC . Felizmente, a propriedade (3) da lgebra Booleana diz que o OU entre duas ou mais variveis Booleanas iguais igual a prpria varivel Booleana em questo. Estendendo esta propriedade, pode-se dizer que o OU entre duas ou mais funes (inclusive
2-14
produtos) Booleanas iguais equivale prpria funo Booleana em questo. Desta forma, pode-se expandir o mintermo ABC para
ABC = ABC + ABC (2.16) que uma manipulao algbrica decorrente da propriedade (3).
(2.17)
Ento, a propriedade (3) garante que as expresses 2.12 e 2.17 so equivalentes, embora o mintermo ABC aparea duplicado. E pelo fato de aparecer duas vezes, pode-se usar uma cpia de ABC para simplificar com ABC e outra para simplificar com ABC . Os passos da simplificao so os mesmos j descritos: pela propriedade (14), segue: F = A B(C + C)+ A BC +(A + A)BC E pela propriedade (6), vem: F = AB 1 + ABC + 1 BC Finalmente, pela propriedade (4), tem-se:
F = A B + A BC + BC
(2.18) (2.19)
(2.20)
Repare que o mintermo A BC no pde ser agrupado com nenhum outro mintermo. Note tambm que foram feitas todas as simplificaes possveis, uma vez que foram agrupados e simplificados todos os pares de mintermos que se diferenciam de somente uma varivel. Logo, a expresso 2.20 representa a mxima simplificao possvel sob a forma de soma de produtos. E por esse motivo, ela dita equao mnima em soma de produtos da funo F. Quanto a expresso 2.15, diz-se ser uma equao em soma de produtos simplificada (porm, no-mnima). Logo, toda equao mnima simplificada, porm, nem toda equao que foi simplificada necessariamente mnima. Embora a equao mnima em soma de produtos apresente menor nmero de operaes Booleanas que a representao na forma cannica, as vezes pode ser possvel reduzir-se ainda mais o nmero de operaes, fatorando-se literais. Por exemplo, na expresso 2.20 pode-se fatorar o primeiro e o terceiro mintermos como segue: F = B(A + C)+ A BC (2.21)
A expresso 2.21, obtida pela fatorao de 2.20, no nem do tipo soma de produtos, nem produto de somas, pois h um termo que no nem produto, nem soma. Diz-se que a expresso est na forma fatorada. No caso de 2.21, a fatorao no resultou em reduo do nmero de operaes. No que se refere a terminologia, as formas soma de produtos e produto de somas so ditas formas padro (formas standard). A forma fatorada dita no-padro. As formas cannicas so, pois, casos especiais de formas padro, nas quais os termos so mintermos ou maxtermos. A fim de diferenciar somas de produtos cannicas de somas de produtos simplificadas, usaremos a expresso soma de mintermos. De maneira similar, usaremos a expresso produto de maxtermos para diferenciar produtos de somas cannicos de produtos de somas simplificados.
2-15
1o nvel
A B C
2o nvel
Figura 2.5 - Um circuito lgico para soma de produtos. O circuito da figura 2.5 pode ainda ser desenhado utilizando-se uma notao simplificada para os inversores das entradas. Ao invs de se desenhar um inversor para cada varivel que aparece negada na equao, coloca-se um crculo junto a cada entrada de cada
2-16
porta na qual h uma varivel negada. A aplicao desse procedimento para o circuito da figura 2.5 resulta no seguinte desenho: 1o nvel
A B C
2o nvel
Figura 2.6 - Um circuito lgico para soma de produtos - outra possvel representao. No caso de equaes na forma produto de somas (cannica ou simplificada), o primeiro nvel constitudo por portas OU, sendo cada uma responsvel por uma das somas lgicas da equao. O segundo nvel, por sua vez, constitudo por uma porta E, que realiza o produto lgico das parcelas. A figura 2.7 mostra um possvel circuito lgico para a equao 2.7. 1o nvel
A B C
2o nvel
2-17
Pelo fato de apresentarem apenas dois nveis de portas (dois nveis lgicos), circuitos para equaes representadas nas formas padro, cannicas ou simplificadas, so ditos circuitos em dois nveis (ou lgica a dois nveis). Dada a equao cannica de uma funo qualquer, o circuito para uma equao simplificada a partir da cannica possui menos portas e/ou portas de menor complexidade. (A complexidade relativa de uma porta pode ser medida pelo nmero de entradas que ela apresenta). A figura 2.8 mostra o circuito lgico para a equao 2.20, que a forma mnima para a funo da equao 2.12. Note que este circuito de menor complexidade que o circuito da figura 2.6. A complexidade relativa de um circuito lgico pode ser calculada somando-se o nmero de entradas das portas. Nos circuitos das figuras 2.6 e 2.7 h 4 portas de 3 entradas e 1 porta de 4 entradas. Ento, a complexidade relativa ser 4x3+1x4=16. No circuito da figura 2.8 h 2 portas de 2 entradas e 2 portas de 3 entradas. Sua complexidade relativa ser 2x2+2x3=10. Claramente, o circuito da figura 2.8 de menor complexidade que os circuitos das figuras 2.6 e 2.7. Estes dois so de mesma complexidade relativa. No clculo da complexidade relativa, as inverses normalmente no so levadas em conta. Circuitos para formas fatoradas podem ser vistos como o caso mais genrico. Em geral, as formas fatoradas conduzem a circuitos cujo nmero de nveis lgicos maior do que dois. Por isso, circuitos lgicos para formas fatoradas so denominados circuitos multinvel (lgica multinvel). Como dito na seo 2.6, as vezes uma forma fatorada pode apresentar menor nmero de operaes do que a respectiva forma padro. Quando isso ocorre, o circuito associado forma fatorada tambm ser de menor complexidade relativa. Entretanto, se no ocorrer reduo no nmero de operaes, mesmo assim possvel que o circuito para a forma fatorada seja de menor complexidade relativa, pois o conceito de complexidade relativa tambm inclui o nmero de entradas de cada porta. Ento, a maneira mais segura de saber se o circuito associado forma fatorada de menor complexidade ou no desenh-lo e somar o nmero de entradas. A figura 2.9 mostra o circuito para a equao 2.21, obtida a partir da equao 2.20 fatorando-se o literal B. Note que o nmero de operaes Booleanas destas equaes o mesmo: 4. No entanto, a complexidade do circuito da forma fatorada 3x2+1x3=9, portanto menor do que a complexidade do circuito da figura 2.8.
1o nvel
A B
2o nvel
F C
2-18
1o nvel
A C
2o nvel
3o nvel
F B
Figura 2.9 - Circuito lgico multinvel, associado equao 2.21, a qual est na forma fatorada.
mintermo A B C A B C A B C A B C A B C A B C A B C A B C
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Figura 2.10 - Mintermos para uma funo de 3 variveis. Ento, usando o novo ordenamento e re-arranjando os mintermos em duas linhas, temos a seguinte tabela:
2-19
A B C A B C
A B C A B C
A B C A B C
A B C A B C
Figura 2.11 - Tabela de adjacncias para uma funo de 3 variveis. Repare que nessa nova tabela, quaisquer dois mintermos adjacentes (na horizontal ou na vertical) so passveis de serem simplificados, pois s se diferenciam de uma varivel. importante ressaltar que esse conceito de adjacncia no est restrito aos limites da tabela, uma vez que os elementos extremos de uma mesma linha (ou de uma mesma coluna) tambm so simplificveis. Isto implica que a tabela de adjacncias de mintermos da figura 2.11 pode e deve ser encarada como uma figura geomtrica tridimensional do tipo toride (ou uma rosquinha). A figura a seguir explicita as relaes de adjacncia dos mintermos para uma funo de trs variveis. m0 m4 m1 m5 m3 m7 m2 m6
Figura 2.12 - Simplificaes possveis entre os mintermos de uma funo de 3 variveis. importante ressaltar que o conceito de adjacncia aplicvel na horizontal e na vertical, mas nunca na diagonal. Por exemplo, observe que m0 e m5 no so adjacentes, pois no esto nem na mesma linha, nem na mesma coluna. O processo de simplificao usando a nova disposio inicia pela construo da tabela em si: os valores da funo que se quer simplificar devem ser preenchidos conforme a nova ordem. Aps, identificam-se todos os grupos de mintermos-1 adjacentes entre si. Cada grupo origina um termo produto, no qual somente as variveis comuns a todos os mintermos-1 permanecem. Desde que os grupos de mintermos-1 adjacentes tenham sido corretamente identificados, a simplificao se torna trivial. Exemplo 2.3: simplificar a funo F, cuja tabela verdade encontra-se no item 2.5.2. O primeiro passo construir uma tabela para F, usando a nova disposio dos mintermos. C F AB BC 00 01 11 10 A 0 A 1 0 0
A BC
0 1
1 0 B
1 1
BC
Figura 2.13 - Grupos de mintermos-1 adjacentes e termos produto para uma funo de 3 variveis.
2-20
Aps, deve-se identificar todos os grupos de mintermos-1 adjacentes entre si. Cada grupo de mintermos-1 originar um produto, conforme indicado na figura 213. A equao em soma de produtos simplificada ser o OU entre os produtos encontrados:
F = A B + A BC + BC
(2.22)
nome da funo BC A 0 A 1 00 m0 m4 01 m1 m5
C 11 m3 m7 10 m2 m6
11 m12 10 m8
2-21
O primeiro passo para simplificar-se uma funo usando mapa de Karnaugh escolher o mapa conforme o nmero de variveis da funo e preencher os valores dos mintermos conforme a tabela verdade fornecida, ou conforme a equao fornecida. O segundo passo identificar grupos de mintermos adjacentes que formem grupos de 2m elementos adjacentes entre si, com 0mn, onde n o nmero de variveis da funo. Estes grupos so denominados subcubos. No caso de se querer encontrar uma expresso em soma de produtos, estaremos interessados nos subcubos de mintermos-1. Ento, cada subcubo contendo mintermos-1 ir originar um produto, no qual uma ou mais variveis podero estar ausentes devido simplificao que obtida. Os produtos associados aos subcubos de mintermos-1, simplificados ou no, so denominados implicantes. importante ressaltar que quanto maior o nmero de elementos do subcubo, maior ser a simplificao obtida. Exemplo 2.4: determinar os implicantes das funes dadas a seguir. D F0 CD AB 00 01 A 11 10 00 0 1 0 0 01 0 1 0 0 11 0 1 0 0 10 0 1 0 0 B
D F1 CD AB 00 01 A 11 10 00 0 1 1 0 01 0 1 1 0 11 0 0 0 0 10 0 0 0 0 B
2-22
D F2 CD AB 00 01 A 11 10 00 0 0 0 0 01 1 0 0 1 11 1 0 0 1 10 0 0 0 0 B
C D F3 CD AB 00 01 A 11 10 00 1 0 0 1 01 0 0 0 0 11 0 0 0 0 10 1 0 0 1 B
No caso de se querer encontrar uma expresso em produtos de somas, estaremos interessados nos subcubos de mintermos-0. Ento, cada subcubo contendo mintermos-0 ir originar uma soma, no qual uma ou mais variveis podero estar ausentes devido simplificao que obtida. As somas associados aos subcubos de mintermos-0, simplificadas ou no, so denominadas implicados. Tambm neste caso, quanto maior o nmero de elementos do subcubo, maior ser a simplificao obtida. Exemplo 2.5: determinar os implicados das funes dadas a seguir.
2-23
D F4 CD AB 00 01 A 11 10 00 1 1 1 1 01 1 0 0 1 11 1 1 1 1 10 1 1 1 1 B
C D F5 CD AB 00 01 A 11 10 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 10 0 0 0 0 B
C D F6 CD AB 00 01 A 11 10 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 C 10 0 0 0 0 B
2-24
D F7 CD AB 00 01 A 11 10 00 0 1 1 1 01 1 1 1 1 11 1 1 1 0 10 1 1 1 0 B
Observaes: 1. Cada mintermo-1 pode ser coberto por mais de um subcubo, caso isso resulte numa simplificao maior; 2. Um ltimo teste para verificar se a expresso obtida realmente a mnima consiste em verificar se algum subcubo pode ser removido, sem deixar algum mintermo-1 descoberto. Um subcubo que poder ser removido sem descobrir mintermos dito subcubo no-essencial. Logo, todo o subcubo que no pode ser removido dito essencial.; 3. Pode haver mais de uma expresso mnima para uma mesma funo Booleana;
2-25
4. A expresso mnima aquela de menor complexidade. E a complexidade ser medida pelo nmero de literais de uma funo. Exemplo 2.6:. ache a equao mnima em soma de produtos para as funes Booleanas que seguem: S0(A, B,C,D) = (0,1,2,5,6,7,13,15) Cobertura 1: D S0 CD AB 00 01 A 11 10 B 00 01 11 10
Cobertura 2:
D S0 CD AB 00 01 A 11 10 B 00 01 11 10
2-26
Cobertura 3:
D S0 CD AB 00 01 A 11 10 B 00 01 11 10
S1(W,X, Y, Z) = (0,1,2,5,8.9.10) D S1 YZ WX 00 01 A 11 10 B 00 01 11 10
C Conforme j mencionado anteriormente, tambm possvel obter-se uma expresso mnima em produto de somas a partir do mapa de Karnaugh da funo Booleana. Para tanto, deve-se identificar os subcubos de mintermos-0, ao invs de subcubos de mintermos-1. Cada subcubo de mintermo-0 ir originar um termo soma, possivelmente j simplificado, o qual recebe o nome de implicado. Os passos para a obteno de uma cobertura mnima so os mesmos j descritos para a obteno da expresso em soma de produtos.
2-27
Exemplo 2.7: determine a equao mnima em produto de somas para a funo Booleana. S2(W,X, Y, Z) = (0,1,2,5,8,9,10) Observao importante: repare que a funo foi especificada pela descrio de seus mintermos-1. Mas como foi solicitada a expresso em produto de somas, uma vez montado o mapa de Karnaugh usando a informao fornecida, passaremos a identificar os subcubos de mintermos-0. Z S2 YZ WX 00 01 W 11 10 X 00 01 11 10
Y Exemplo 2.8: determinar a expresso mnima em soma de produtos e a expresso mnima em produto de somas para a funo Booleana dada a seguir. Desenhar o circuito lgico para cada expresso obtida. S3(A,B,C,D) = (1,2,3,6,7,8,9,12,14) Obs: existe mais de uma cobertura mnima possvel para essa funo. Cobertura 1 para soma de produtos:
D S3 CD AB 00 01 11 A 10 B 00 01 11 10
2-28
2-29
D S5 CD AB 00 01 11 A 10 B 00 01 11 10
Observaes: Iremos identificar cada condio de entrada no especificadas (ou dont care) por meio de um X (xis maisculo). O valor que ser assumido para um dont care totalmente independente dos demais dont cares;
2-30
Quando da identificao dos subcubos, no aconselhvel escrever o valor que foi assumido para um determinado dont care, pois isso pode gerar confuses. O simples fato de um dont care pertencer (ou no) a algum subcubo j identifica o valor que foi assumido para ele; Para uma mesma funo Booleana, deve-se identificar a soluo em soma de produtos num mapa de Karnaugh e a soluo em produto de somas em outro mapa, a fim de evitar confuses
Exemplo 2.10:. dada a funo que segue, determinar as equaes mnimas em SdP (soma de produtos) e em PdS (produto de somas) para a funo dada. Desenhar os respectivos circuitos lgicos e identificar, o circuito de menor complexidade (entre SdP e PdS). S6(A,B,C,D) = (0,3,5,6,7) + DC(10,11,12,13,14,15) Cobertura para soma de produtos:
D S6 CD AB 00 01 11 A 10 B 00 01 11 10
2-31
Observao: um mesmo dont care pode assumir um valor lgico para a cobertura em SdP e outro valor lgico para a cobertura em PdS, pois as coberturas so totalmente independentes.
Nome Zero E Inibio Transferncia Inibio Transferncia XOR OU NOR Equivalncia Complemento Implicao Complemento Implicao NAND Um
Comentrio Constante 0 xey x mas no y x y mas no x y x ou y, mas no ambos x ou y No-OU x igual a y No y Se y, ento x No x Se x, ento y No E Constante 1
F6 = xy + xy
F7 = x + y F8 = (x + y)' F9 = xy + x' y' F10 = y ' F11 = x + y F12 = x F13 = x + y F14 = ( xy )' F15 = 1
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 1
1 1 1 0 1 1 1 1
Cada linha na tabela acima representa uma funo de duas variveis e os nomes destas funes so dados na primeira coluna. As tabelas verdades de cada uma das funes so dadas na terceira coluna. Note que cada funo foi designada por Fi onde i o decimal equivalente ao nmero binrio que obtido interpretando-se os valores das funes dados na terceira coluna como nmeros binrios. Cada uma destas funes pode ser dada em termos de operaes E, OU e complemento. Como pode ser visto na tabela, existem duas funes constantes, 0 e 1, que retornam sempre 0 ou 1, respectivamente, independente de que valores se tem na entrada. Existem quatro funes de uma varivel, que representam o complemento e a transferncia. E existem 10 funes que definem oito operaes binrias: E, inibio, XOR, OU, NOR,
2-32
equivalncia, implicao e NAND. Sendo que inibio e implicao nunca so usados no projeto de circuitos, principalmente, por poderem ser facilmente implementados usando-se operaes E, OU e complemento. A funo NOR o complemento da operao OU e a funo NAND o complemento da operao E. Pode-se notar tambm que XOR e equivalncia so o complemento uma da outra e, por esta razo, a equivalncia normalmente chamada XNOR. Para implementar as funes mostradas na tabela acima, so usadas geralmente oito tipos de portas lgicas: portas E, OU, complemento ou inversora, portas de transferncia ou driver, portas NAND, XOR e XNOR. A figura 2.15 mostra os smbolos de cada uma destas portas com respectivos atrasos (em nanossegundos) e custo (em nmero de transistores).
Figura 2.15 - Smbolos para portas lgicas com respectivos atrasos e custos Na figura acima, os nmeros dentro do smbolo de cada porta lgica indica o atraso atravs da porta, ou seja, o tempo que leva para que o resultado da operao lgica correspondente aparea na sada da porta, quando se aplica valores na entradas. Assim, por exemplo, a porta NOR possui um atraso de propagao de 1,4 ns. O nmero ao lado do smbolo de uma porta lgica indica a quantidade de transistores necessrios para implementla. Assim, pode-se notar que a implementao de uma porta XOR (14 transistores) mais "cara" que a implementao de uma porta XNOR (12 transistores). Evidentemente, para portas lgicas com mltplas entradas (mais de duas entradas) estes valores so diferentes. A figura 2.16 mostra portas lgicas com mltiplas entradas.
A B C
A+B+C 2,8 8
A B C
A.B.C 2,8 8
A B C
(A.B.C) 1,8 6
A B C D
A+B+C+D 3,2 10
A B C D
A.B.C.D 3,2 10
A B C D
(A.B.C.D) 2,2 8
A B C
A+B+C 2,8 8
A B C D
A+B+C+D 3,2 10
2-33
Obviamente, portas lgicas com mltiplas entradas so mais difceis de contruir e como no so muito utilizadas, o custo da manuteno de bibliotecas contendo tais portas e das ferramentas de projeto tende a ser maior que a utilidade destas portas. Por isso, em geral, se tem somente portas de trs e quatro entradas em bibliotecas de portas lgicas. Quando se est implementando funes booleanas usando estas portas lgicas, usualmente tenta-se encontrar uma expresso booleana que melhor satisfaa um conjunto de requisitos de projeto. Geralmente, estes requisitos envolvem restries de custo, que pode ser dado em termos de nmero de transistores e/ou atraso dos sinais ao longo do circuito. Muitas vezes se est interessado em obter o circuito mais rpido, ou seja, o que tenha o menor atraso a partir das entradas para a sada, mas tambm existem casos em que se deseja o circuito mais barato, ou seja, com o menor nmero de transistores. Por sua natureza, estes dois objetivos so conflitantes, pois um circuito rpido avalia subexpresses em paralelo, o que vai exigir mais portas do que um circuito de baixo, em que subexpresses so fatoradas e executadas serialmente.
2.11 Mapeamento
No projeto de circuitos, tem-se frequentemente o seguinte problema: dada uma funo booleana (mnima ou no), deve-se projetar um circuito lgico usando somente alguns poucos tipos de portas que esto disponveis. Esta ao de adaptar-se a lgica de uma funo ao conjunto de portas que est disponvel denominada mapeamento tecnolgico (ou simplesmente mapeamento) da funo. O conjunto de portas disponvel denominado biblioteca de portas, e depende de vrios fatores, dentre os quais, da tecnologia em que o circuito ser implementado. Assim, o problema de mapeamento pode ser formulado da seguinte maneira: dada uma funo booleana simplificada, em SdP ou em PdS, ou dado um circuito para essa funo, e dada uma biblioteca de portas, mapear a funo usando somente as portas (tipos de portas) que existem na biblioteca. Este processo envolve vrias tarefas. Primeiro ser mostrado como converter uma funo ou circuito lgico envolvendo portas E, OU e complemento em uma funo ou circuito lgico contendo apenas portas NAND (ou somente portas NOR). Esta tarefa consiste de duas partes: converso e otimizao. Durante a converso, cada porta E e porta OU substituda por uma porta NAND ou NOR equivalente, enquanto que durante a otimizao, so eliminados quaisquer dois inversores, um seguido do outro, que possam ter surgido durante a converso. As regras para a tarefa de converso so baseadas nos Teoremas de De Morgan, como mostrado a seguir: Regra 1: xy = (( xy )' )' Regra 2: x + y = (( x + y )' )' = ( x ' y ' )' Regra 3: xy = (( xy )' )' = ( x '+ y ' )' Regra 4: x + y = (( x + y )' )' Regra 5: ( x ' )' = x As regras 1 e 2 so usadas para a converso para portas NAND, enquanto as regras 3 e 4 so usadas para a converso para portas NOR.. A regra 5 usada para a otimizao do
2-34
circuito e permite eliminar quaisquer dois inversores que aparecem um seguido do outro no circuito. A figura 2.17 ilustra graficamente as regras dadas acima.
Regra 1:
Regra 2:
Regra 3:
Regra 4:
Regra 5:
Figura 2.17 - Regras de converso Exemplo 2.11: encontrar uma implementao usando apenas portas NAND e outra implementao usando apenas portas NOR para a funo de carry ci +1 = xi yi + xi ci + y i ci ou ci +1 = ( xi + y i )( xi + ci )( y i + ci ) .
xi 2,4 yi ci 2,4 2,8 c(i+1) ci 1,4 c(i+1) 1,8 xi yi 1,4
2,4
1,4
Soma de Produtos
xi 2,4 yi ci 2,4 2,8 c(i+1)
ci
1,4
c(i+1) 1,8
2,4
1,4
Produto de Somas
Figura 2.18 soma de produtos e produto de somas com portas NAND e portas NOR, respectivamente.
2-35
tempo
Figura 2.19 - exemplo de forma de onda. Quando uma varivel Booleana se modifica ao longo do tempo, ela costuma ser chamada de sinal. Portanto, na anlise temporal (tambm conhecida como anlise de timing) de um circuito, pode-se associar um sinal a cada entrada do circuito e a cada sada de cada porta do circuito (o conjunto de entradas e de sadas de portas de um circuito chamado ns ou nodos do circuito.) Normalmente, os sinais referentes s entradas de um circuito so dados. As portas lgicas so fabricadas com material semicondutor (silcio). Apesar das reduzidas dimenses que a tecnologia atual permite que sejam alcanadas, as portas lgicas no conseguem responder de maneira instantnea s variaes em suas entradas. Ao tempo que decorre entre alguma das entradas de uma porta se modificar e essa modificao se propagar at a sada, d-se o nome de atraso (da porta lgica). O atraso de uma porta P normalmente representado por td(P) ou tdP ou tp(P) ou ainda tpP. importante ressaltar que cada porta lgica pode apresentar um atraso diferente, mesmo em se tratando de portas de mesma funo e mesmo nmero de entradas. O valor do atraso de uma porta depende de vrios fatores, dentre eles a tecnologia de fabricao, as dimenses dos transistores que a compem, a temperatura do local de operao etc.
2-36
Exemplo 2.11: determinar o sinal de sada S da porta que segue, a partir dos sinais A e B aplicados s suas entradas.
A B
A B S
Na anlise temporal de um circuito combinacional, prudente seguirem-se os seguintes passos: identificar com uma linha vertical cada mudana no valor (=transio) dos sinais das entradas. Note que as formas de onda das entradas sempre so fornecidas, fazendo parte dos dados do problema. Para cada intervalo de tempo delimitado por duas linhas verticais adjacentes, identificar o sinal resultante usando a tabela verdade da porta em questo; Considerar um pequeno intervalo de tempo aps cada transio de entrada, referente ao atraso de propagao da porta.
Exemplo 2.11: determine as formas de onda e os atrasos envolvidos para S1, S2, S3 e S no circuito que segue, a partir das entradas fornecidas. Considere que as portas 1 e 2 tm o mesmo valor para o atraso individual. Identifique o atraso total do circuito, indicando as parcelas que o compem.
2-37
A B
S1
C D
S2
S3
A B C D S1 S2 S3 S
2-38
Exerccios
Exerccio 2.1 - Dada a equao abaixo (que est na forma fatorada), use as propriedades da lgebra Booleana para encontrar a equao mnima em soma de produtos. S = Z (X + X Y) Exerccio 2.2 - Ache a equao em soma de mintermos e a equao em produto de maxtermos para as funes F1 e F2 descritas pela tabela verdade abaixo e desenhe os respectivos circuitos lgicos A B C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 F1 1 0 0 1 1 1 0 0 F2 0 1 0 1 0 0 0 1
Exerccio 2.3 - Reescreva as equaes do exerccio 2, usando a notao compacta. Exerccio 2.4 - determinar a expresso mnima em soma de produtos e a expresso mnima em produto de somas para a funo Booleana dada a seguir. Desenhar o circuito lgico para cada expresso obtida. S4( x0 , x1 , x2 , x3 ) = (1,3,5,7,8,9,11,13) Cobertura para soma de produtos:
x3 S4 x2x3 x0x1 00 01 11 x0 10 x1 00 01 11 10
x2
2-39
x3 S4 x2x3 x0x1 00 01 11 x0 10 x1 00 01 11 10
x2
Exemplo 2.11:. dada a funo que segue, determinar as equaes mnimas em SdP (soma de produtos) e em PdS (produto de somas) para a funo dada. Desenhar os respectivos circuitos lgicos e identificar, o circuito de menor complexidade (entre SdP e PdS). S7(A,B,C,D) = (4,6,8,9,12,13,14) + DC(0,2,5,10) Observao: neste caso, h duas coberturas mnimas para SdP. Determine cada uma nos dois primeiros mapas. Cobertura 1 para soma de produtos:
D S7 CD AB 00 01 11 A 10 B 00 01 11 10
2-40
D S7 CD AB 00 01 11 A 10 B 00 01 11 10
D S7 CD AB 00 01 11 A 10 B 00 01 11 10
2-41
Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN 0-13-301144-5) [2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice Hall, 1988 (ISBN 0-13-162926-3) [3] TAUB, H. Circuitos Digitais e Microprocessadores. McGraw-Hill, 1982. [4] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL Design, McGraw-Hill Higher Education (a McGraw-Hill Company), 2000 (ISBN texto: 0-07-012591-0 CD parte da coleo: 0-07-235596-4) [5] ERCEGOVAC, Milos; LANG, Toms; MORENO, Jaime H. Introduo aos Sistemas Digitais. Porto Alegre: Bookman, 2000 (ISBN: 85-7307-698-4) [6] KATZ, Randy H. Contemporary Logic Design. The Benjamin/Cummings Publishing Company, Inc. , 1994 (ISBN: 0-8053-2703-7)