


















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



















Uma álgebra Booleana pode ser definida com um conjunto de operadores e um conjunto de axiomas, que são assumidos verdadeiros sem necessidade de prova. Em 1854, George Boole introduziu o formalismo que até hoje se usa para o tratamento sistemático da lógica, que é a chamada Álgebra Booleana. Em 1938, C. E. Shannon aplicou esta álgebra para mostrar que as propriedades de circuitos elétricos de chaveamento podem ser representadas por uma álgebra Booleana com dois valores. Diferentemente da álgebra ordinária dos reais, onde as variáveis podem assumir valores no intervalo (-∞;+∞), as variáveis Booleanas só podem assumir um número finito de valores. Em particular, na álgebra Booleana de dois valores, cada variável pode assumir um dentre dois valores possíveis, os quais podem ser denotados por [F,V] (falso ou verdadeiro), [H,L] (high and low) ou ainda [0,1]. Nesta disciplina, adotaremos a notação [0,1], a qual também é utilizada em eletrônica digital. Como o número de valores que cada variável pode assumir é finito (e pequeno), o número de estados que uma função Booleana pode assumir também será finito, o que significa que podemos descrever completamente as funções Booleanas utilizando tabelas. Devido a este fato, uma tabela que descreva uma função Booleana recebe o nome de tabela verdade, e nela são listadas todas as combinações de valores que as variáveis de entrada podem assumir e os correspondentes valores da função (saídas).
Na álgebra Booleana, existem três operações ou funções básicas. São elas, operação OU , operação E e complementação. Todas as funções Booleanas podem ser representadas em termos destas operações básicas.
Uma definição para a operação OU , que também é denominada adição lógica, é: “A operação OU resulta 1 se pelo menos uma das variáveis de entrada vale 1 ”. Como uma variável Booleana ou vale 1 ou vale 0 , e como o resultado de uma operação qualquer pode ser encarado como (ou atribuído a) uma variável Booleana, basta que definamos quando a operação vale 1. Automaticamente, a operação resultará 0 nos demais casos. Assim, pode- se dizer que a operação OU resulta 0 somente quando todas as variáveis de entrada valem 0. Um símbolo possível para representar a operação OU é “+”, tal como o símbolo da adição algébrica (dos reais). Porém, como estamos trabalhando com variáveis Booleanas, sabemos que não se trata da adição algébrica, mas sim da adição lógica. Outro símbolo também encontrado na bibliografia é “∨”. Listando as possibilidades de combinações entre dois valores Booleanos e os respectivos resultados para a operação OU , tem-se:
Note que a operação OU só pode ser definida se houver, pelo menos, duas variáveis envolvidas. Ou seja, não é possível realizar a operação sobre somente uma variável. Devido a isso, o operador “+” ( OU ) é dito binário. Nas equações, não se costuma escrever todas as possibilidades de valores. Apenas adotamos uma letra (ou uma letra com um índice) para designar uma variável Booleana. Com isso, já se sabe que aquela variável pode assumir ou o valor 0 ou o valor 1. Então, supondo que queiramos demonstrar o comportamento da equação A+B (lê-se A ou B), poderíamos fazê-lo utilizando uma tabela verdade, como segue:
A B A+B 0 0 0 0 1 1 1 0 1 1 1 1
Da mesma forma, podemos mostrar o comportamento da equação A+B+C (lê-se A ou B ou C) por meio de uma tabela verdade. Como na equação há somente o símbolo “+”, trata-se da operação OU sobre três variáveis. Logo, pode-se aplicar diretamente a definição da operação OU : o resultado será 1 se pelo menos uma das variáveis de entrada valer 1.
É importante notar que, devido ao fato de haver somente um operador na equação, pode-se também avaliar a equação 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. Também a ordem em que são avaliadas as variáveis A, B e C é irrelevante (propriedade comutativa ). Estas propriedades são ilustradas pela tabela verdade a seguir. Nela, os parêntesis indicam sub-expressões já avaliadas em coluna imediatamente à esquerda. Note que os valores das colunas referentes às expressões A+B+C, (A+B)+C e (B+C)+A são os mesmos (na mesma ordem).
Também para a operação E valem as propriedades associativa e comutativa. Então, a equação A⋅BC pode ainda ser avaliada tomando-se as variáveis aos pares, em qualquer ordem. Veja a tabela verdade a seguir e compare os resultados.
A B C A.B.C A.B (A.B).C B.C (B.C).A 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1
A operação complementação dispensa uma definição. É a operação cujo resultado é simplesmente o valor complementar ao que a variável apresenta. Também devido ao fato de uma variável Booleana poder assumir um entre somente dois valores, o valor complementar será 1 se a variável vale 0 e será 0 se a variável vale 1. Os símbolos utilizados para representar a operação complementação sobre uma
variável Booleana A são A , ~A e A' (lê-se A negado). Nesta disciplina, adotaremos o primeiro símbolo. O resultado da operação complementação pode ser listado:
0 = 1 1 = 0 Diferentemente das operações OU e E, a complementação só é definida sobre uma variável, ou sobre o resultado de uma expressão. Ou seja, o operador complementação é
dito unário. E a tabela verdade para A é: A (^) A 0 1 1 0
Dada a equação que descreve uma função Booleana qualquer, deseja-se saber detalhadamente como esta função se comporta para qualquer combinação das variáveis de entrada. O comportamento de uma função é descrito pela sua tabela verdade e este problema é conhecido como avaliação da função ou da expressão que descreve a função considerada. Em suma, deseja-se achar a tabela verdade para a função Booleana. Uma tabela verdade consiste basicamente de um conjunto de colunas, nas quais são listadas todas as combinações possíveis entre as variáveis de entrada (à esquerda) e o resultado da função (à direita). Também, podem-se criar colunas intermediárias, onde são listados os resultados de sub-expressões contidas na expressão principal. Isto normalmente
facilita a avaliação, principalmente no caso de equações muito complexas e/ou contendo muitas variáveis. Quando numa mesma equação Booleana aparecem operações E^ e^ OU , é necessário seguir a ordem de precedência. Tal como na álgebra dos reais, a multiplicação (lógica) tem precedência sobre a adição (lógica). Além disso, expressões entre parêntesis têm precedência sobre operadores E e OU que estejam no mesmo nível. Quanto à complementação, esta deve ser avaliada tão logo seja possível. Caso a complementação seja aplicada sobre uma sub-expressão inteira, é necessário que se avalie primeiramente a sub- expressão para, só após, inverter o seu resultado. O número de combinações que as variáveis de entrada podem assumir pode ser calculado por 2n, onde n é o número de variáveis de entrada. O procedimento para a criação da tabela verdade a partir de uma equação Booleana é:
qual listam-se os valores para Z. Após, inicia-se a avaliação propriamente dita, a partir do nível mais interno de parêntesis. Como não há parêntesis na expressão, resolvem-se as sub- expressões que envolvem a operação E. No caso em questão, há somente uma tal sub-
expressão, que é X ⋅ Y. Então, 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 variável X. Repare os passos descritos na tabela
verdade que segue. Nela, os parêntesis em torno do produto X ⋅ Y indicam somente que este termo já foi avaliado e que no passo referente a esta coluna, tomaram-se apenas os valores previamente encontrados. X Y Z (^) Z Y. Z W=X+Y. Z 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1
A porta que simboliza a operação complementação é conhecida como inversor (ou porta inversora, ou negador). Como a operação complementação só pode ser realizada sobre uma variável por vez (ou sobre o resultado de uma sub-expressão), o inversor só possui uma entrada e, obviamente, uma saída. Caso se queira complementar uma expressão, é necessário obter-se primeiramente o seu resultado, para só então aplicar a complementação. O símbolo do inversor é mostrado na figura 3.
Figura 3 - Símbolo do inversor (também conhecido como negador ou porta inversora).
Dada uma equação Booleana qualquer, é possível desenhar-se o circuito lógico que a implementa. O circuito lógico é composto das portas lógicas relacionadas às operações que são realizadas sobre as variáveis de entrada. Os resultados das operações são conduzidos por fios, os quais, no desenho, são representados por linhas simples. Os passos a serem seguidos para se realizar o desenho do circuito lógico a partir de uma equação são praticamente os mesmos usados na avaliação da expressão. Tomemos como exemplo a equação, avaliada na seção 2. Inicialmente, identificamos as variáveis independentes, que no caso são X, Y e Z. Para cada uma destas, traçamos uma linha (da esquerda para a direita), representando os fios que conduzem os valores. Feito isto, deve-se seguir desenhando as portas necessárias para representar cada uma das sub-expressões, na mesma ordem tomada para a avaliação, ou seja: 1 o^ parêntesis (dos mais internos para os mais externos); 2 o^ operações E; 3 o^ operações OU. A figura 4 mostra o circuito lógico para a equação W= X + Y⋅ Z.
Figura 4 - Um circuito lógico.
As leis da álgebra Booleana dizem respeito ao espaço Booleano (isto é, valores que uma variável pode assumir) e operações elementares deste espaço. Já as propriedades podem ser deduzidas a partir das definições das operações. Sejam A e B duas variáveis Booleanas. Então, o espaço Booleano é definido:
se A≠0, então A=1; se A≠1, então A=0. As operações elementares deste espaço são operação OU , operação E e complementação , cujas definições foram dadas nas seções 1.1, 1.2 e 1.3, respectivamente. As propriedades da álgebra Booleana são as seguintes.
Da adição lógica: (1) A+0 = A (2) A+1 = 1 (3) A+A = A (4) A+ A = 1
Da multiplicação lógica: (5) A⋅ 0 = 0 (6) A⋅ 1 = A (7) A⋅A = A (8) A⋅ A = 0
Da complementação: (9) A = A
Comutatividade: (10) A+B = B+A (11) A⋅ B = B⋅A
Associatividade: (12) A+(B+C) = (A+B)+C = (A+C)+B (13) A⋅(B⋅C) = (A⋅B)⋅C = (A⋅C)⋅B
Distributiva (da multiplicação em relação à adição): (14) A⋅(B + C) = A ⋅B + A ⋅C
O primeiro teorema de DeMorgan diz que a complementação de um produto (lógico) equivale à soma (lógica) das negações de cada variável do referido produto. Sob a forma de equação, teríamos:
A ⋅ B⋅C⋅...=A+B+C+ ...(1)
O segundo teorema é o dual ( i.e., o espelho) do primeiro, ou seja, a complementação de uma soma (lógica) equivale ao produto das negações individuais das variáveis:
A + B+C+...=A⋅B⋅C⋅ ...(2)
Particularizando os teoremas de DeMorgan para duas variáveis, temos:
Cada termo produto construído conforme a regra anteriormente descrita é denominado mintermo (ou minitermo). Note que, para um dado mintermo, se substituirmos os valores das variáveis associadas, obteremos 1. Porém, se substituirmos nesse mesmo mintermo quaisquer outras combinações de valores, obteremos 0. Dessa forma, se quisermos encontrar a equação para uma função a partir de sua tabela verdade, basta montarmos um OU entre os mintermos associados aos 1 s da função (também chamados mintermos 1 ).
Exemplo 1: encontrar a equação em soma de produtos (SdP) para a função F, descrita pela seguinte tabela verdade:
F é função das variáveis A, B e C. Os valores de (A, B,C) para os quais F=1 são (0,1,0), (0,1,1), (1,0,1) e (1,1,0). Os mintermos associados a essas condições (ou seja, os
mintermos 1), são A ⋅B⋅ C , A ⋅B⋅C, A⋅ B ⋅C e A⋅B⋅ C , respectivamente. Logo, a equação 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 (5) A fim de simplificar a notação, o símbolo da operação E pode ser omitido. Desta forma, a equação anterior pode ser reescrita de maneira mais concisa:
F = A B C + A BC + A B C + AB C (6)
O método de derivação usando produto de somas é o dual (isto é, o oposto) do método de derivação em soma de produtos. A cada combinação das variáveis de entrada de uma função podemos associar um termo soma, no qual todas as variáveis da função estão presentes, e que é construído da seguinte forma: se a variável correspondente vale 1 , ela deve aparecer negada; se a variável vale 0 , ela deve aparecer não negada. A tabela a seguir lista os termos soma associados a cada combinação de entradas para uma função Booleana de três variáveis (A, B e C, por exemplo).
Cada termo soma construído conforme a regra anteriormente descrita é denominado maxtermo (ou maxitermo). Note que, para um dado maxtermo, se substituirmos os valores das variáveis associadas, obteremos 0. Porém, se substituirmos nesse mesmo maxtermo quaisquer outras combinações de valores, obteremos 1. Dessa forma, se quisermos encontrar a equação para uma função a partir de sua tabela verdade, basta montarmos um E entre os maxtermos associados aos 0 s da função (também chamados maxtermos 0 ). Exemplo 2: encontrar a equação em produto de somas (PdS) para a função F, descrita pela seguinte tabela verdade:
Foi escolhida a mesma função do exemplo anterior, para que se possa estabelecer comparações entre os dois métodos de derivação. Os valores das variáveis de entrada (A, B,C) para os quais F=0 são (0,0,0), (0,0,1), (1,0,0) e (1,1,1). Os maxtermos associados a
essas condições (ou seja, os maxtermos 0), são A+B+C, A+B+ C , A +B+C e A + B + C , respectivamente. Logo, a equação 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 ) (7) Note que a ordem de precedência de uma expressão em produto de somas é “primeiro cada soma deve ser avaliada, para só então se avaliar o produto”. Isto significa que os parêntesis em torno de cada termo soma são obrigatórios! Repare também que os símbolos referentes à operação E (entre os termos soma) podem ser omitidos.
Figura 7- Simplificações possíveis entre os mintermos de uma função de 3 variáveis.
É importante ressaltar que o conceito de adjacência é aplicável na horizontal e na vertical, mas nunca na diagonal. Por exemplo, observe que m 0 e m 5 não são adjacentes, pois não estão nem na mesma linha, nem na mesma coluna. O processo de simplificação usando a nova disposição inicia pela construção da tabela em si: os valores da função que se quer simplificar devem ser preenchidos conforme a nova ordem. Após, identificam-se todos os grupos de mintermos-1 adjacentes entre si. Cada grupo origina um termo produto, no qual somente as variáveis comuns a todos os mintermos-1 permanecem. Desde que os grupos de mintermos-1 adjacentes tenham sido corretamente identificados, a simplificação se torna trivial. Exemplo 3: simplificar a função F, cuja tabela verdade encontra-se no item 5.2. O primeiro passo é construir uma tabela para F, usando a nova disposição dos mintermos.
Figura 8 - Grupos de mintermos-1 adjacentes e termos produto para uma função de 3 variáveis.
Após, deve-se identificar todos os grupos de mintermos-1 adjacentes entre si. Cada grupo de mintermos-1 originará um produto, conforme indicado na figura 8. A equação em soma de produtos simplificada será o OU entre os produtos encontrados:
F = A B + A B C + B C (8)
A tabela modificada usada para a identificação dos mintermos-1 adjacentes no exemplo anterior é denominada mapa de Karnaugh (no caso, para 3 variáveis). Na figura 9 são mostrados os mapas de Karnaugh para funções de 2, 3 e 4 variáveis.
Figura 9 - Mapas de Karnaugh para funções de 2, 3 e 4 variáveis.
O primeiro passo para simplificar-se uma função usando mapa de Karnaugh é escolher o mapa conforme o número de variáveis da função e preencher os valores dos mintermos conforme a tabela verdade fornecida, ou conforme a equação fornecida. O segundo passo é identificar grupos de mintermos adjacentes que formem grupos de 2m elementos adjacentes entre si, com 0 m n, onde n é o número de variáveis da função. Estes grupos são denominados subcubos. No caso de se querer encontrar uma expressão em soma de produtos, estaremos interessados nos subcubos de mintermos-1. Então, cada subcubo contendo mintermos-1 irá
Durante o projeto lógico, pode ocorrer que algumas condições (combinações) de entradas de uma função Booleana não sejam especificadas, por não afetarem a função no contexto do projeto. Cada condição de entrada cujo valor não é especificado é sinalizada com “DC” ou com “X” na tabela verdade (ou no mapa de Karnaugh) e são denominadas condições de don’t care (ou simplesmente, don’t care ). Quando da simplificação de uma função Booleana que contenha condições de don’t care , essas condições podem e devem ser exploradas no sentido de se obter a máxima simplificação possível. Para tanto, pode-se assumir cada condição de don’t care como valendo 0 ou 1, independente das demais condições de don’t care. A escolha do valor (0 ou
Até agora, tem-se visto apenas duas funções booleanas de duas variáveis, OU e E. Mas, existem 22n^ funções Booleanas com n variáveis binárias. Assim, existem 16 funções Booleanas de duas variáveis e as funções E e OU são apenas duas dessas 16 funções. A tabela a seguir lista todas as 16 funções Booleanas de duas variáveis, x e y.
Cada linha na tabela acima representa uma função de duas variáveis e os nomes destas funções são dados na primeira coluna. As tabelas verdades de cada uma das funções são dadas na terceira coluna. Note que cada função foi designada por Fi onde i é o decimal equivalente ao número binário que é obtido interpretando-se os valores das funções dados na terceira coluna como números binários. Cada uma destas funções pode ser dada em termos de operações E, OU e complemento. Como pode ser visto na tabela, existem duas funções constantes, 0 e 1 , que retornam sempre 0 ou 1, respectivamente, independente de que valores se tem na entrada. Existem quatro funções de uma variável, que representam o complemento e a transferência. E existem 10 funções que definem oito operações binárias: E, inibição, XOR, OU, NOR, equivalência, implicação e NAND. Sendo que inibição e implicação nunca são usados no projeto de circuitos, principalmente, por poderem ser facilmente implementados usando-se operações E, OU e complemento. A função NOR é o complemento da operação OU e a função NAND é o complemento da operação E. Pode-se notar também que XOR e equivalência são o complemento uma da outra e, por esta razão, a equivalência é normalmente chamada XNOR. Para implementar as funções mostradas na tabela acima, são usadas geralmente oito tipos de portas lógicas: portas E, OU, complemento ou inversora, portas de transferência ou driver, portas NAND, XOR e XNOR. Obviamente, portas lógicas com múltiplas entradas são mais difíceis de contruir e como não são muito utilizadas, o custo da manutenção de bibliotecas contendo tais portas e
Figura 10 - Regras de conversão
Exemplo 4: encontrar uma implementação usando apenas portas NAND e outra implementação usando apenas portas NOR para a função de carry
Figura 11 – soma de produtos e produto de somas com portas NAND e portas NOR, respectivamente.
Até o presente, analisamos somente o comportamento estático dos circuitos combinacionais. Ou seja, dada uma combinação de valores aplicados às entradas do circuito há um tempo suficientemente longo, determinamos os valores de suas saídas. Entretanto, durante o funcionamento normal e um circuito, as entradas podem estar mudando com uma determinada freqüência, como conseqüência da aplicação sucessiva de diferentes conjuntos de dados. Então, desde que o circuito tenha sido projetado para funcionar nesta freqüência, os valores das saídas também mudarão (com a mesma freqüência, na pior das hipóteses), como conseqüência das mudanças das entradas. A partir de agora, estaremos assumindo que uma variável Booleana pode se alterar ao longo do tempo, porém sempre assumindo um valor no intervalo [0;1]. Assim, a representação gráfica de uma variável Booleana ao longo de um intervalo de tempo é denominada forma de onda da variável. A figura 12 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 lógico da variável (sempre dentro do intervalo [0;1]).
Figura 12 - exemplo de forma de onda. Quando uma variável Booleana se modifica ao longo do tempo, ela costuma ser chamada de sinal. Portanto, na análise temporal (também conhecida como análise de timing ) de um circuito, pode-se associar um sinal a cada entrada do circuito e a cada saída de cada porta do circuito (o conjunto de entradas e de saídas de portas de um circuito é chamado nós ou nodos do circuito.) Normalmente, os sinais referentes às entradas de um circuito são dados. As portas lógicas são fabricadas com material semicondutor (silício). Apesar das reduzidas dimensões que a tecnologia atual permite que sejam alcançadas, as portas lógicas não conseguem responder de maneira instantânea às variações em suas entradas. Ao tempo que decorre entre alguma das entradas de uma porta se modificar e essa modificação se propagar até a saída, dá-se o nome de atraso^ (da porta lógica). O atraso de uma porta P normalmente é representado por td(P) ou tdP ou tp(P) ou ainda tpP. É importante ressaltar que cada porta lógica pode apresentar um atraso diferente, mesmo em se tratando de portas de mesma função e mesmo número de entradas. O valor do atraso de uma porta depende de vários fatores, dentre eles a tecnologia de fabricação, as dimensões dos transistores que a compõem, a temperatura do local de operação etc. Na análise temporal de um circuito combinacional, é prudente seguirem-se os seguintes passos: