Algebra Booleana

download Algebra Booleana

of 41

Transcript of Algebra Booleana

2 lgebra Booleana e Circuitos LgicosUma 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.1 Operaes Bsicas da lgebra Booleana (ou lgebra de Chaveamento)Na lgebra Booleana, existem trs operaes ou funes bsicas. So elas, operao OU, operao E e complementao. Todas as funes Booleanas podem ser representadas em termos destas operaes bsicas.

2.1.1 Operao OU (Adio Lgica)Uma definio para a operao OU, que tambm denominada adio lgica, : A operao OU resulta 1 se pelo menos uma das variveis de entrada vale 1. Como uma varivel Booleana ou vale 1 ou vale 0, e como o resultado de uma operao qualquer pode ser encarado como (ou atribudo a) uma varivel Booleana, basta que definamos quando a operao vale 1. Automaticamente, a operao resultar 0 nos demais casos. Assim, pode-se dizer que a operao OU resulta 0 somente quando todas as variveis de entrada valem 0. Um smbolo possvel para representar a operao OU +, tal como o smbolo da adio algbrica (dos reais). Porm, como estamos trabalhando com variveis Booleanas,

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

2.1.2 Operao E (Multiplicao Lgica)A operao E, ou multiplicao lgica, pode ser definida da seguinte forma: A operao E resulta 0 se pelo menos uma das variveis de entrada vale 0. Pela definio dada, pode-se deduzir que o resultado da operao E ser 1 se, e somente se, todas as entradas valerem 1. O smbolo usualmente utilizado na operao E , porm outra notao possvel . Podemos, tambm, listar as possibilidades de combinaes entre dois valores Booleanos e os respectivos resultados, para a operao E: 00 01 10 11 = = = = 0 0 0 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.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

2.1.3 Complementao (ou Negao, ou Inverso)A operao complementao dispensa uma definio. a operao cujo resultado simplesmente o valor complementar ao que a varivel apresenta. Tambm devido ao fato de uma varivel Booleana poder assumir um entre somente dois valores, o valor complementar ser 1 se a varivel vale 0 e ser 0 se a varivel vale 1. Os smbolos utilizados para representar a operao complementao sobre uma varivel Booleana A so A , ~A e A' (l-se A negado). Nesta disciplina, adotaremos o primeiro smbolo. O resultado da operao complementao pode ser listado: 0 1 = = 1 0

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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-5

2.2 Avaliao de Expresses BooleanasDada a equao que descreve uma funo Booleana qualquer, deseja-se saber detalhadamente como esta funo se comporta para qualquer combinao das variveis de entrada. O comportamento de uma funo descrito pela sua tabela verdade e este problema conhecido como avaliao da funo ou da expresso que descreve a funo considerada. Em suma, deseja-se achar a tabela verdade para a funo Booleana. Uma tabela verdade consiste basicamente de um conjunto de colunas, nas quais so listadas todas as combinaes possveis entre as variveis de entrada ( esquerda) e o resultado da funo ( direita). Tambm, pode-se criar colunas intermedirias, onde so listados os resultados de subexpresses contidas na expresso principal. Isto normalmente facilita a avaliao, principalmente no caso de equaes muito complexas e/ou contendo muitas variveis. Quando numa mesma equao Booleana aparecem operaes E e OU, necessrio seguir a ordem de precedncia. Tal como na lgebra dos reais, a multiplicao (lgica) tem precedncia sobre a adio (lgica). Alm disso, expresses entre parntesis tm precedncia sobre operadores E e OU que estejam no mesmo nvel. Quanto complementao, esta deve ser avaliada to logo seja possvel. Caso a complementao seja aplicada sobre uma subexpresso inteira, necessrio que se avalie primeiramente a subexpresso para, s aps, inverter o seu resultado. O nmero de combinaes que as variveis de entrada podem assumir pode ser calculado por 2n, onde n o nmero de variveis de entrada. O procedimento para a criao da tabela verdade a partir de uma equao Booleana : 1. Criar colunas para as variveis de entrada e listar todas as combinaes possveis, utilizando a frmula no de combinaes = 2n (onde n o nmero de variveis de entrada); 2. Criar uma coluna para cada varivel de entrada que aparea complementada na equao e anotar os valores resultantes; 3. Avaliar a equao seguindo a ordem de precedncia, a partir do nvel de parntesis mais internos: 1o multiplicao lgica 2o adio lgica Tomemos como exemplo a expresso W = X + Y Z . A varivel W representa a funo Booleana propriamente dita. Esta varivel depende das variveis que esto direita do sinal =, ou seja, depende de X, Y e Z. Logo, so 3 as variveis de entrada. O total de combinaes entre 3 variveis ser 23=8. Ento, a tabela verdade para W dever ter 3 colunas esquerda e 8 linhas. Seguindo o procedimento dado acima, cria-se uma coluna, na qual listam-se os valores para Z. Aps, inicia-se a avaliao propriamente dita, a partir do nvel mais interno de parntesis. Como no h parntesis na expresso, resolvem-se as subexpresses que envolvem a operao E. No caso em questo, h somente uma tal subexpresso, que X Y . Ento, cria-se uma coluna para X Y , na qual anotam-se os resultados para este produto. Finalmente, utilizam-se os resultados de X Y , listados na coluna anterior, para operar o OU com a varivel X. Repare os passos descritos na tabela verdade que segue. Nela, os parntesis em torno do produto X Y indicam somente que este

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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 Portas LgicasJ vimos que uma funo Booleana pode ser representada por uma equao ou detalhada pela sua tabela verdade. Mas uma funo Booleana tambm pode ser representada de forma grfica, onde cada operador est associado a um smbolo especfico, permitindo o imediato reconhecimento visual. Tais smbolos so conhecidos por portas lgicas. Na realidade, mais do que smbolos de operadores lgicos, as portas lgicas representam recursos fsicos, isto , circuitos eletrnicos, capazes de realizar as operaes lgicas. Na eletrnica que trabalha com somente dois estados, a qual denominada eletrnica digital, o nvel lgico 0 normalmente est associado ausncia de tenso (0 volt) enquanto o nvel lgico 1, presena de tenso (a qual geralmente 5 volts). Nesta disciplina, nos limitaremos ao mundo da lgebra Booleana, admitindo que as portas lgicas representam tambm circuitos eletrnicos que, de alguma maneira, realizam as funes Booleanas simbolizadas. Ento, ao conjunto de portas lgicas e respectivas conexes que simbolizam uma equao Booleana, denominaremos circuito lgico.

2.3.1 Porta OUO 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).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-7

2.3.2 Porta EO 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).

2.3.3 Inversor (ou Porta Inversora, ou Negador)A porta que simboliza a operao complementao conhecida como inversor (ou porta inversora, ou negador). Como a operao complementao s pode ser realizada sobre uma varivel por vez (ou sobre o resultado de uma subexpresso), o inversor s possui uma entrada e, obviamente, uma sada. Caso se queira complementar uma expresso, necessrio obter-se primeiramente o seu resultado, para s ento aplicar a complementao. O smbolo do inversor mostrado na figura 2.3.

A

A

Figura 2.3 - Smbolo do inversor (tambm conhecido como negador ou porta inversora).

2.3.4 Exemplo de Circuito LgicoDada uma equao Booleana qualquer, possvel desenhar-se o circuito lgico que a implementa. O circuito lgico composto das portas lgicas relacionadas s operaes que so realizadas sobre as variveis de entrada. Os resultados das operaes so conduzidos por fios, os quais, no desenho, so representados por linhas simples. Os passos a serem seguidos para se realizar o desenho do circuito lgico a partir de uma equao so praticamente os mesmos usados na avaliao da expresso. Tomemos como exemplo a equao, avaliada na seo 2.2. Inicialmente, identificamos as variveis independentes, que no caso so X, Y e Z. Para cada uma destas, traamos uma linha (da esquerda para a direita), representando os fios que conduzem os valores. Feito isto, deve-se seguir desenhando as portas necessrias para representar cada uma das subexpresses, na mesma ordem tomada para a avaliao, ou seja: 1o parntesis (dos mais internos para os mais externos); 2o operaes E;

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-8

3o operaes OU. A figura 2.4 mostra o circuito lgico para a equao W = X + Y Z .

X Y Z W

Figura 2.4 - Um circuito lgico.

2.4 Leis Fundamentais e Propriedades da lgebra BooleanaAs leis da lgebra Booleana dizem respeito ao espao Booleano (isto ., valores que uma varivel pode assumir) e operaes elementares deste espao. J as propriedades podem ser deduzidas a partir das definies das operaes. Sejam A e B duas variveis Booleanas. Ento, o espao Booleano definido: se A0, ento A=1; se A1, ento A=0. As operaes elementares deste espao so operao OU, operao E e complementao, cujas definies foram dadas nas sees 2.1.1, 2.1.2 e 2.1.3, respectivamente. As propriedades da lgebra Booleana so as seguintes. Da adio lgica: (1) (2) (3) (4) A+0 = A A +1 = 1 A+A = A A+A = 1 A 0 = 0 A 1 = A A A = A A A = 0

Da multiplicao lgica: (5) (6) (7) (8) Da complementao: (9) Comutatividade: (10) (11) A + B = B+ A A B = B A A=A

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-9

Associatividade: (12) (13)A +(B + C ) =(A + B )+ C = ( A + C )+ B A (B C) = (A B) C = (A C) B

Distributiva (da multiplicao em relao adio): (14) A (B + C) = A B + A C

2.4.1 Teoremas de De MorganO primeiro teorema de De Morgan diz que a complementao de um produto (lgico) equivale soma (lgica) das negaes de cada varivel do referido produto. Sob a forma de equao, teramos: A B C ... = A + B + C + ... (2.1) O segundo teorema o dual ( i.e., o espelho) do primeiro, ou seja, a complementao de uma soma (lgica) equivale ao produto das negaes individuais das variveis: A + B + C + ... = A B C... (2.2) Particularizando os teoremas de De Morgan para duas variveis, temos: A B = A + B A + B = A B (2.3) (2.4)

2.5 Derivao de Expresses BooleanasDada uma funo Booleana, descrita por sua tabela verdade, derivar uma expresso Booleana para esta funo encontrar uma equao que a descreva. Logo, a derivao de expresses Booleanas o problema inverso da avaliao de uma expresso Booleana, descrito na seo 2.2 H basicamente duas maneiras de se definir (ou descrever) uma funo Booleana: descrevendo-se todas as situaes das variveis de entrada para as quais a funo vale 1 ou, alternativamente, todas as situaes em que a funo vale 0. O primeiro mtodo conhecido por soma de produtos (SdP), enquanto que o segundo chamado produto de somas (PdS). Qualquer funo Booleana pode ser descrita por meio de soma de produtos ou por meio de produto de somas. Como as funes Booleanas s podem assumir um dentre dois valores (0 ou 1), basta usar-se um dos dois mtodos para se encontrar uma equao para uma funo. A seguir, so detalhados os mtodos de derivao de expresses Booleanas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-10

2.5.1 Derivao de Expresses usando Soma de Produtos (SdP)Dada uma funo Booleana de n variveis (ou seja, n entradas), haver 2n combinaes possveis de valores. Dizemos que esse conjunto de valores que as variveis podem assumir, juntamente com os respectivos valores da funo, constituem o espao da funo. A cada combinao de entradas podemos associar um termo produto, no qual todas as variveis da funo esto presentes, e que construdo da seguinte forma: se a varivel correspondente vale 0, ela deve aparecer negada; se a varivel vale 1, ela deve aparecer no negada. A tabela a seguir lista os termos produto associados a cada combinao de entradas para uma funo Booleana de trs variveis (A, B e C, por exemplo).A B C

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)

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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)

2.5.2 Derivao de Expresses usando Produto de Somas (PdS)O mtodo de derivao usando produto de somas o dual (isto , o oposto) do mtodo de derivao em soma de produtos. A cada combinao das variveis de entrada de uma funo podemos associar um termo soma, no qual todas as variveis da funo esto presentes, e que construdo da seguinte forma: se a varivel correspondente vale 1, ela deve aparecer negada; se a varivel vale 0, ela deve aparecer no negada. A tabela a seguir lista os termos soma associados a cada combinao de entradas para uma funo Booleana de trs variveis (A, B e C, por exemplo).A B C

maxtermos A + B+ CA + 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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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.

2.6 Formas Cannicas, Padro e No-PadroAs representaes em soma de produtos e em produto de somas so denominadas formas padro. A soma de produtos e o produto de somas descritos nas duas sees anteriores apresentam ainda uma caracterstica bastante particular: em cada termo soma e em cada termo produto todas as variveis da funo esto presentes. Devido a essa caracterstica, essas formas so chamadas cannicas. Alm das representaes descritas nas sees anteriores, h representaes alternativas (e mais concisas) para as expresses cannicas. Se associarmos cada combinao das variveis de entrada ao seu equivalente em decimal, cada mintermo pode ser representado por mi, onde i o decimal associado. De forma similar, cada maxtermo pode ser representado por Mi, onde i o decimal associado. A tabela a seguir lista todos os mintermos e maxtermos de uma funo de trs variveis (A, B e C).A B C

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)

Ou ainda, de maneira mais concisa: F = (2,3,5,6) (2.9)

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-14

produtos) Booleanas iguais equivale prpria funo Booleana em questo. Desta forma, pode-se expandir o mintermo ABC paraABC = ABC + ABC (2.16) que uma manipulao algbrica decorrente da propriedade (3).

Retomando a equao 2.12 e utilizando 2.16, segue que:F = A BC + A BC + A BC + A BC + A BC

(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 = AB1+ 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.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-15

2.7 Circuitos Lgicos para Formas Padro e No-PadroAs regras gerais para se realizar o desenho de circuitos lgicos j foram apresentadas na seo 2.3 (item 2.3.4). As regras seguintes devem ser observadas, a fim de facilitar a compreenso do desenho: as variveis de entrada devem ser identificadas preferencialmente esquerda, junto aos respectivos fios; inversores devem ser providos para as variveis que aparecem negadas na equao; as portas que implementam as operaes Booleanas que aparecem na equao normalmente so posicionadas da esquerda para a direita, seguindo a ordem de avaliao dos operadores (descrita em 2.3.4). No caso de equaes na forma soma de produtos (cannica ou simplificada), h um primeiro nvel (desconsiderando-se possveis inversores), constitudo somente por portas E, onde cada porta E implementa um dos produtos da equao. H ainda um segundo nvel, constitudo por uma porta OU, responsvel pela soma lgica dos produtos. A figura 2.5 mostra um possvel circuito lgico para a equao 2.12. Repare que em todas as intersees de fios em que h conexo fsica, deve haver um ponto (suficientemente grande), como se fora uma solda. Logo, quando no h o referido ponto na interseo de fios, significa que tais fios esto eletricamente isolados.

1o nvelA B C

2o nvel

F

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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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 nvelA B C

2o nvel

F

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 nvelA B C

2o nvel

F

Figura 2.7 - Um circuito lgico para produto de somas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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 nvelA B

2o nvel

F C

Figura 2.8 - Circuito lgico para a equao 2.20.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-18

1o nvelA C

2o nvel

3o nvel

F B

Figura 2.9 - Circuito lgico multinvel, associado equao 2.21, a qual est na forma fatorada.

2.8 Simplificao de Funes Booleanas usando Mapas de KarnaughO mtodo de simplificao apresentado na seo 2.6 de aplicabilidade limitada, uma vez que bastante difcil certificar-se que todos os pares de mintermos que podiam ser simplificados foram determinados. Alternativamente quele mtodo, h outro mtodo de simplificao baseado na identificao visual de grupos de mintermos passveis de serem simplificados. No entanto, para que se possa identificar tais grupos, necessrio que os mintermos sejam dispostos de maneira mais conveniente, o que ser explicado a seguir. Na descrio do mtodo de simplificao literal, foi mencionado que os pares de mintermos que se diferenciam de somente uma varivel so passveis de simplificao. Observando a ordem com que os mintermos de uma funo Booleana qualquer (com, por exemplo, 3 variveis) aparecem na tabela verdade, vemos que, se trocarmos o 3 mintermo com o 4 e trocarmos tambm o 7 mintermo com o 8, obteremos uma nova ordem, na qual quaisquer dois mintermos adjacentes so passveis de simplificao. interessante notar tambm que o 1 mintermo pode ser simplificado com o 5, o 2 mintermo pode ser simplificado com o 6 e assim por diante.A B C

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:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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 0A BC

0 1

1 0 B

1 1BC

Figura 2.13 - Grupos de mintermos-1 adjacentes e termos produto para uma funo de 3 variveis.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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)

2.8.1 Mapas de Karnaugh e SubcubosA tabela modificada usada para a identificao dos mintermos-1 adjacentes no exemplo anterior denominada mapa de Karnaugh (no caso, para 3 variveis). Na figura 2.14 so mostrados os mapas de Karnaugh para funes de 2, 3 e 4 variveis. nome da funo B A 0 A 1 0 m0 m2 B 1 m1 m3

nome da funo BC A 0 A 1 00 m0 m4 01 m1 m5

C 11 m3 m7 10 m2 m6

B nome da funo CD AB 00 01 A 00 m0 m4 01 m1 m5 m13 m9 D 11 m3 m7 m15 m11 10 m2 m6 m14 m10 B

11 m12 10 m8

C Figura 2.14 - Mapas de Karnaugh para funes de 2, 3 e 4 variveis.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

C

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

C

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

C

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.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

C

2.8.2 Cobertura dos Mapas de KarnaughNormalmente, possvel identificar-se numa mesma funo Booleana mais de um implicante (ou mais de um implicado). Neste caso, necessrio determinar o conjunto de implicantes (ou implicados) que melhor cobre a funo, onde a melhor cobertura significa necessariamente a expresso mais simplificada possvel, a qual denominada expresso mnima. O procedimento bsico para se determinar a melhor cobertura (tambm chamada cobertura mnima) para uma expresso em soma de produtos o seguinte: Identificar os subcubos de mintermos-1 com maior nmero de elementos possvel, iniciando do tamanho 2n, onde n o nmero de variveis da funo. Caso algum mintermo-1 fique isolado (isto , no h nenhum outro mintermo-1 adjacente a ele), ento ele constituir um subcubo de um elemento; Identificar o menor conjunto de subcubos de modo que cada mintermo-1 pertena a pelo menos um subcubo (= seja coberto pelo menos uma vez).

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;

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

C

Cobertura 2:

D S0 CD AB 00 01 A 11 10 B 00 01 11 10

C

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-26

Cobertura 3:

D S0 CD AB 00 01 A 11 10 B 00 01 11 10

C

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.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

C

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-28

Cobertura 2 para soma de produtos:D S3 CD AB 00 01 11 A 10 B 00 01 11 10

C

Cobertura 1 para produto de somas:D S3 CD AB 00 01 11 A 10 B 00 01 11 10

C

Cobertura 2 para produto de somas:D S3 CD AB 00 01 11 A 10 B 00 01 11 10

C

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-29

2.9 Funes Incompletamente EspecificadasDurante o projeto lgico, pode ocorrer que algumas condies (combinaes) de entradas de uma funo Booleana no sejam especificadas, por no afetarem a funo no contexto do projeto. Cada condio de entrada cujo valor no especificado sinalizada com DC ou com X na tabela verdade (ou no mapa de Karnaugh) e so denominadas condies de dont care (ou simplesmente, dont care). Quando da simplificao de uma funo Booleana que contenha condies de dont care, essas condies podem e devem ser exploradas no sentido de se obter a mxima simplificao possvel. Para tanto, pode-se assumir cada condio de dont care como valendo 0 ou 1, independente das demais condies de dont care. A escolha do valor (0 ou 1) ir depender do contexto, mas sempre dever ocorrer com o objetivo de levar a uma simplificao mxima da funo Booleana. Exemplo 2.9: determinar a expresso mnima em soma de produtos para a funo. S5(A,B,C,D) = (0,1,2,12,13) + DC(3,7,10,11,14,15) onde o conjunto de condies de dont care est especificado por DC Repare que no caso de uma funo que contenha condies de dont care (ou seja, uma funo incompletamente especificada), no basta dizer somente onde esto os uns (ou somente os zeros) da funo: necessrio informar tambm quais condies de entrada no so especificadas, o que feito pelo conjunto DC.

D S5 CD AB 00 01 11 A 10 B 00 01 11 10

C

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;

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

C

Cobertura para produto de somas:D S6 CD AB 00 01 11 A 10 B 00 01 11 10

C

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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.

2.10 Outras Operaes LgicasAt agora, tem-se visto apenas duas funes booleanas de duas variveis, OU e E. n Mas, existem 22 funes Booleanas com n variveis binrias. Assim, existem 16 funes Booleanas de duas variveis e as funes E e OU so apenas duas dessas 16 funes. A tabela a seguir lista todas as 16 funes Booleanas de duas variveis, x e y. Valores para x,y= 00 01 10 11 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 Expresso algbrica F0 = 0 F1 = xy F2 = xy F3 = x F4 = x y F5 = x

Nome Zero E Inibio Transferncia Inibio Transferncia XOR OU NOR Equivalncia Complemento Implicao Complemento Implicao NAND Um

Smbolo 0 x.y x/y y/x xy x+y xy y' xy x' xy xy 1

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 + xyF7 = 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,

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

Figura 2.16 - Portas lgicas com mltiplas entradas

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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 MapeamentoNo 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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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 Produtosxi 2,4 yi ci 2,4 2,8 c(i+1)

Implementao com portas NANDxi yi 1,4

ci

1,4

c(i+1) 1,8

2,4

1,4

Produto de Somas

Implementao com portas NOR

Figura 2.18 soma de produtos e produto de somas com portas NAND e portas NOR, respectivamente.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-35

2.12 Comportamento Dinmico de Circuitos CombinacionaisAt o presente, analisamos somente o comportamento esttico dos circuitos combinacionais. Ou seja, dada uma combinao de valores aplicados s entradas do circuito h um tempo suficientemente longo, determinamos os valores de suas sadas. Entretanto, durante o funcionamento normal e um circuito, as entradas podem estar mudando com uma determinada freqncia, como conseqncia da aplicao sucessiva de diferentes conjuntos de dados. Ento, desde que o circuito tenha sido projetado para funcionar nesta freqncia, os valores das sadas tambm mudaro (com a mesma freqncia, na pior das hipteses), como conseqncia das mudanas das entradas. A partir de agora, estaremos assumindo que uma varivel Booleana pode se alterar ao longo do tempo, porm sempre assumindo um valor no intervalo [0;1]. Assim, a representao grfica de uma varivel Booleana ao longo de um intervalo de tempo denominada forma de onda da varivel. A figura 3.13 mostra um exemplo de forma de onda qualquer. Repare que uma forma de onda pode ser imaginada sobre o plano cartesiano, onde o eixo dos x representa o tempo (crescente da esquerda para a direita) e o eixo dos y representa o valor lgico da varivel (sempre dentro do intervalo [0;1]).A

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.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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

S

A B S

Figura 2.20 - exemplo de determinao da forma de onda da sada de uma porta.

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.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-37

A B

1

S1

C D

2

S2

4

S

3

S3

A B C D S1 S2 S3 S

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-38

ExercciosExerccio 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

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-39

Cobertura para produto de Somas:

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

C

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-40

Cobertura 2 para soma de produtos:

D S7 CD AB 00 01 11 A 10 B 00 01 11 10

C

Cobertura 1 para produto de somas:

D S7 CD AB 00 01 11 A 10 B 00 01 11 10

C

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

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)