Circuitos Digitais: Lógica, Álgebra Booleana e Mapas de Karnaugh

Classificado em Eletrônica

Escrito em em português com um tamanho de 25,8 KB

O que são Circuitos Digitais?

Circuitos Digitais (ou Circuitos Lógicos) são definidos como circuitos eletrônicos que utilizam sinais elétricos em apenas dois níveis de corrente (ou tensão) para representar valores binários.

Circuitos Lógicos baseiam seu funcionamento na lógica binária, que consiste em expressar toda informação na forma de dois dígitos (0 ou 1), tanto para armazenamento quanto para processamento. Daí surge intuitivamente a nomeação “digital” (dois dígitos).

Este fato auxilia na representação de estados de dispositivos que funcionam em dois níveis distintos, como: ligado/desligado (on/off), alto/baixo (high/low), verdadeiro/falso (true/false), entre outros.

Computadores, telefones celulares, leitores de DVD ou Blu-ray são alguns exemplos de aparelhos que baseiam a totalidade, ou parte, do seu funcionamento em circuitos digitais.

Introdução à Álgebra de Boole

Uma expressão booleana é formada por sinais de entrada (variáveis de entrada) ligados por conectivos lógicos, produzindo um único sinal de saída. Na avaliação de uma expressão booleana, deve-se seguir a seguinte ordem de precedência:

  1. Avalie NOT
  2. Avalie AND
  3. Avalie OR

Ex.: Avalie a expressão:

Propriedades da Álgebra de Boole

Soluções de Equações Lógicas

Lembramos que as funções estudadas possuem as seguintes representações:

  • Função E (AND): Y = A.B
  • Função Não E (NAND): Y = A.B
  • Função OU (OR): Y = A+B
  • Função Não OU (NOR): Y = A+B
  • Função Não (NOT) ou Inversor: Y = A
  • Função OU Exclusivo (XOR): Y = A(+)B

Vamos tomar como exemplo a tabela verdade abaixo para determinar a função lógica correspondente:

ABCYLinha
00001
10012
01013
11004
00115
10106
01107
11118

A linha é indicada na última coluna para facilitar as explicações seguintes. Observamos que as saídas são 0 para as linhas 0, 3, 5 e 6, e 1 para as linhas 1, 2, 4 e 7. Isso significa que teremos a função OU para as linhas cuja saída é 1, que podem ser encaradas como operações OR com tabelas que teriam 1 na saída apenas nas linhas 1, 2, 4 e 7, conforme mostrado a seguir:

ABCYABCS1ABCS2ABCS3ABCS4
00000000000000000000
00110001001000100010
01010100010101000100
0110=0110+0110+0110+0110
10011000100010011000
10101010101010101010
11001100110011001100
11111110111011101111

Isso nos permite escrever as equações lógicas para cada uma das quatro tabelas da seguinte forma:

  • S1 = A.B.C, que corresponde a A=0, B=0 e C=1
  • S2 = A.B.C, que corresponde a A=0, B=1 e C=0
  • S3 = A.B.C, que corresponde a A=1, B=0 e C=0
  • S4 = A.B.C, que corresponde a A=1, B=1 e C=1

Como a saída S é a combinação das quatro funções, temos: S = S1 + S2 + S3 + S4

Substituindo pelos valores encontrados, teremos:

S = A.B.C + A.B.C + A.B.C + A.B.C

Esta é a função lógica que representa a tabela verdade proposta como parte inicial do problema, para a qual devemos encontrar um circuito equivalente.

Teoria de Portas Lógicas

Portas lógicas, ou circuitos lógicos, são dispositivos que operam um ou mais sinais lógicos de entrada para produzir uma única saída, dependente da função implementada no circuito. São geralmente usadas em circuitos eletrônicos, devido às situações que os sinais deste tipo de circuito podem apresentar: presença de sinal ('1') e ausência de sinal ('0'). As situações 'Verdadeiro' e 'Falso' são estudadas na Lógica Matemática ou Lógica Booleana, que é a origem do nome destas portas. O comportamento das portas lógicas é conhecido pela tabela verdade, que apresenta os estados lógicos das entradas e das saídas.

NOT

É a porta inversora. Seu símbolo e tabela-verdade são:

AA'
01
10

Simule o funcionamento de uma porta NOT.

AND

A porta AND mais simples possui 2 entradas e 1 saída,

ABA . B
000
010
100
111

Simule o funcionamento de uma porta AND.

OR

A porta OR mais simples possui, também, 2 entradas e 1 saída,

ABA + B
000
011
101
111

Simule o funcionamento de uma porta OR.

NAND

É equivalente a uma porta AND seguida de uma porta NOT,

AB(A . B)'
001
011
101
110

Simule o funcionamento de uma porta AND.

NOR

É equivalente a uma porta OR seguida de uma porta NOT,

AB(A + B)'
001
010
100
110

Simule o funcionamento de uma porta OR.

XOR

É o OU Exclusivo (XOR),

ABXOR
000
011
101
110

Simule o funcionamento de uma porta OR.

XNOR

Equivalente à porta NOR seguida da porta NOT,

ABXNOR
001
010
100
111

AND-OR-INVERT (AOI)

Também disponível comercialmente. Sua estrutura contém portas AND, OR e NOT. Veja sua importância no livro-texto.

A importância dessas portas lógicas reside no fato de representarem os elementos básicos de construção da maioria dos circuitos digitais práticos. Quando se deseja construir um circuito lógico (ou digital) relativamente simples, usa-se uma placa de circuito impresso com soquetes sobre os quais se insere um circuito integrado (CI) digital. A maioria dos CIs já são padronizados, e os mais comuns pertencem à série denominada 7400. Os mais simples utilizam a tecnologia de Integração em Pequena Escala (SSI - Small Scale Integration). Como exemplo, veja o CI 7408, que contém quatro portas AND, cuja relação de suas entradas e saídas com os pinos de seu encapsulamento pode ser vista no diagrama.

Além de seu diagrama, são mostradas também as três formas de encapsulamento desse chip, sendo que duas delas exibem tipos diferentes de material e a outra difere na forma como deve ser fixada na placa de circuito impresso. Como indica seu diagrama, esse CI possui 14 pinos (olhando-o de cima, a numeração de tais pinos é importante, pois o pino 1 sempre começa do mesmo lado; isso é suficiente para efetuar as ligações elétricas necessárias para a montagem de seu circuito lógico), sendo que o pino 7 é o terra (Ground = 0 V) e o pino 14 é a tensão da fonte de energia (Vcc = 14 V). A maioria dos CIs SSI, que serão utilizados em nosso curso, possui 14 ou 16 pinos. Como os CIs vêm com número e tipo de portas determinados, como seria possível construir uma porta arbitrária a partir das que o CI contém? Por exemplo, suponha que você dispõe apenas do CI 7400, que é composto por quatro portas NAND. Para construir um inversor, e lembrando sempre que isso é possível pela aplicação das Leis de De Morgan, bastaria fazer:

InversorPorta AND
Porta ORLei de De Morgan

As Leis de De Morgan também podem ser usadas para mostrar que uma porta NAND com as entradas negadas é equivalente a uma porta AND, e isso também é válido para a porta NOR (dualidade), como visto acima.

Implementação e Simplificação de Circuitos Lógicos com Portas Lógicas

A expressão obtida através de um circuito lógico pode ser reduzida a uma expressão com um menor número de termos e variáveis. Essa expressão pode ser utilizada no lugar da expressão original sem alterar os valores finais do circuito. Assim, pode-se dizer que o circuito foi simplificado.

A figura abaixo mostra que o circuito da Figura 1(a) pode ser simplificado para resultar no circuito da Figura 1(b). Os dois circuitos realizam a mesma lógica; porém, o circuito da Figura 1(b) é melhor porque tem menos portas, será menor, mais simples e mais barato que o circuito original. Além disso, a confiabilidade do circuito melhorará, pois há menos conexões que podem causar defeitos.

Os métodos de simplificação de funções lógicas existentes são os seguintes:

O método algébrico emprega as equações e teoremas de Boole e De Morgan, sendo intuitivo e dependente da prática; o método gráfico é sistemático, com procedimentos passo a passo; o método tabular é mais aplicado para simplificação usando programas específicos em microcomputadores.

Expressões Booleanas de Soma-de-Produtos

Quando se inicia um projeto lógico, primeiramente é construída a tabela verdade. A tabela mostra os resultados exatos do circuito. Após analisar o circuito, as saídas '1' serão submetidas a uma série de operações AND. As expressões obtidas serão novamente submetidas, desta vez a uma operação OR, para assim formar a expressão completa da tabela. Esta expressão é chamada de expressão de forma de termo mínimo (mintermo), ou expressão de soma de produtos.

Expressões Booleanas de Produto-de-Somas

A tabela verdade também pode ser descrita utilizando a forma de termos máximos (maxtermos). Esta expressão é desenvolvida a partir das saídas '0' da equação. Para cada saída '0', um termo é submetido a uma operação OR. Os termos, depois de obtidos, são submetidos a uma operação AND. A expressão de produto das somas também pode ser chamada de forma de produto-de-somas.

Utilização dos Teoremas de De Morgan

Os Teoremas de De Morgan são muito úteis na Álgebra Booleana. Eles permitem a fácil transferência entre a forma de expressão booleana de termos mínimos e a de termos máximos. Eles também permitem a eliminação de barras de negação em diversas variáveis.

Utilização da Porta Lógica NAND

Todos os circuitos digitais podem ser construídos a partir das portas fundamentais AND, OR e NOT. A utilização da lógica NAND nem sempre simplifica o circuito. Em algumas situações, seria preferível o uso das lógicas AND e OR, devido ao menor número de portas que seria usado.

Utilização da Porta Lógica NOR

A porta lógica NAND foi considerada a 'porta universal' quando se tratava da substituição de um padrão lógico AND-OR. Porém, quando uma expressão booleana de maxtermos forma um padrão OR-AND, a porta NAND não funciona muito bem. A porta NOR tornou-se então a 'porta universal' na substituição de padrões OR-AND. A porta NOR continua sendo usada menos que a porta NAND.

Mapas de Karnaugh

A Álgebra de Boole é a base de qualquer simplificação de circuitos lógicos. Uma técnica fácil e amplamente usada na simplificação de circuitos é o Mapa de Karnaugh. Esta técnica gráfica tem como base os teoremas booleanos. O Mapa de Karnaugh é um dos vários métodos usados por projetistas na simplificação dos circuitos lógicos.

Primeira Etapa

A primeira etapa no processo de mapeamento consiste em desenvolver a expressão booleana de mintermos a partir de uma tabela verdade. Para cada saída '1', a tabela verdade produz uma série de variáveis submetidas a uma operação AND. Após isso, os grupos serão submetidos a uma operação OR, para assim formar uma expressão booleana de mintermos (soma-de-produtos). Esta expressão será denominada 'expressão booleana não simplificada'.

Segunda Etapa

A segunda etapa consiste em posicionar os '1s' apropriadamente dentro dos quadrados do mapa. O mapa é uma representação visual muito especial da tabela verdade.

Terceira Etapa

Na terceira etapa, deve-se agrupar os '1s' adjacentes em grupos de dois, quatro ou oito.

Quarta Etapa

A quarta etapa é a eliminação de variáveis. Quando uma variável e seu complemento estiverem juntas dentro de um laço, esta variável é eliminada.

Principais Códigos Binários

O sistema binário, ou base 2, é um sistema de numeração posicional em que todas as quantidades são representadas com base em dois números, com as cifras: zero e um (0 e 1). Os computadores digitais trabalham internamente com dois níveis de tensão, pelo que seu sistema de numeração natural é o sistema binário (aceso, apagado). Com efeito, em um sistema simples como este, é possível simplificar o cálculo com o auxílio da lógica booleana. Em computação, um dígito binário (0 ou 1) é chamado de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits é chamado de nibble. O sistema binário é a base para a Álgebra Booleana (de George Boole - matemático inglês), que permite realizar operações lógicas e aritméticas usando apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado). Toda a eletrônica digital e computação está baseada nesse sistema binário e na lógica de Boole, que permite representar por circuitos eletrônicos digitais (portas lógicas) os números, caracteres, e realizar operações lógicas e aritméticas. Os programas de computadores são codificados em formato binário e armazenados em mídias (memórias, discos, etc.) nesse formato. Dado um número N binário, para expressá-lo em decimal, deve-se escrever cada dígito que o compõe (bit), multiplicado pela base do sistema (base = 2), elevado à posição que ocupa. Uma posição à esquerda da vírgula representa uma potência positiva e à direita, uma potência negativa. A soma de cada multiplicação de cada dígito binário pelo valor das potências resulta no número real representado.

Exemplo:

1011 (binário)

1 × 23 + 0 × 22 + 1 × 21 + 1 × 20 = 11

Portanto, 1011 é 11 em decimal.

Teoria de Decodificadores

Um decodificador é um dispositivo que faz o inverso do codificador, desfazendo a codificação, de modo que a informação original, que foi codificada, possa ser recuperada. O mesmo método utilizado para codificar é geralmente apenas revertido para realizar a decodificação. Em eletrônica digital, um decodificador pode ter a forma de um circuito lógico de múltiplas entradas e múltiplas saídas, que converte as entradas codificadas em saídas codificadas, onde os códigos de entrada e saída são diferentes. Por exemplo, em decodificadores BCD n para 2n. As entradas devem estar habilitadas para o funcionamento do decodificador; caso contrário, suas saídas assumem um único código de saída 'desabilitado'. A decodificação é necessária em aplicações como multiplexação de dados, display de 7 segmentos e decodificação de endereços de memória. O circuito decodificador do exemplo seria uma porta AND, pois a saída de uma porta AND é 'alta' (1) apenas quando todas as entradas são 'altas'. Tal saída é denominada 'saída ativa em alto'. Se, em vez de uma porta AND, uma porta NAND fosse conectada, a saída seria 'baixa' (0) apenas quando todas as entradas fossem 'altas'. Tal saída é denominada 'saída ativa em baixo'. Um decodificador um pouco mais complexo seria o decodificador binário do tipo n para 2n.

Teoria de Circuitos Somadores

Adição Binária: é a operação mais simples de um Circuito Aritmético. A adição binária (0 e 1) é executada da mesma forma que a decimal (0 a 9), inclusive no 'Vai-Um' (Carry Out, de saída, e Carry In, de entrada), como pode ser entendido no exemplo dado abaixo. Quando somamos dois números binários, começamos pela coluna menos significativa (que representa unidade, dezena, centena, etc.).

e 'vai' 1

Aqui podemos ver uma adição de 2 bits que resulta em 4 possibilidades.

Meio Somador

O circuito combinacional que executa a soma de 2 bits é denominado Meio Somador. O circuito Meio Somador consiste em 2 entradas e 2 saídas. Podemos designar as 2 entradas pelos 2 bits a serem somados e as 2 saídas como Soma e Carry (Vai-Um).

Abaixo temos a tabela verdade de um Circuito Meio Somador:

Meio Somador
XYSA
0000
0110
1010
1101

As expressões 'X' e 'Y' são os valores de entrada. 'A' expressa uma operação AND entre X e Y, e 'S' expressa a operação XOR entre X e Y.

O circuito Meio Somador tem este nome porque não leva em consideração os resultados de somas menos significativas. Para casos em que a entrada menos significativa, denominada carry, seja considerada, usamos a denominação de circuitos de Somador Completo. Esses circuitos executam a soma dos 2 bits levando em consideração as entradas menos significativas de bit de carry. Este somador tem as mesmas saídas do Meio Somador: Soma e Carry.

Somador Completo

O Somador Completo, como citado acima, possui Carry In. É utilizado para somar números de pelo menos 2 casas. Isso é possível cascateando um Meio-Somador com Somadores Completos.

Somador Completo
XYCSA
00000
00110
01010
01101
10010
10101
11001
11111

As expressões 'X' e 'Y' são os valores de entrada. 'C' é o Carry In, 'A' expressa uma operação AND entre X e Y, e 'S' expressa a operação XOR entre X e Y.

Teoria de Circuitos Subtratores

Na subtração, procede-se da mesma maneira que na subtração decimal; porém, o 'Vai-Um' é colocado no algarismo de baixo.

e 'empresta' 1

Aqui podemos ver uma subtração de 2 bits que resulta em 4 possibilidades.

Meio Subtrator

O circuito subtrator é o circuito que executa a subtração binária; porém, este tipo de circuito não possui o Carry In (apesar de ter Carry Out). É utilizado para subtrações de apenas dois bits ou para o início de cascateamento de circuitos subtratores completos. O circuito Meio Subtrator consiste em 2 entradas e 2 saídas. Podemos designar as 2 entradas pelos 2 bits a serem subtraídos e as 2 saídas como Subtração e Carry Out.

Abaixo temos a tabela verdade de um Circuito Meio Subtrator:

Meio Subtrator
XYSA
0000
0111
1010
1100

As expressões 'X' e 'Y' são os valores de entrada. 'A' expressa uma operação AND entre X e Y, e 'S' expressa a operação XOR entre X e Y.

O circuito Meio Subtrator tem este nome porque não leva em consideração os resultados de subtrações menos significativas, assim como no Meio Somador. Para casos em que a entrada menos significativa, denominada carry, seja considerada, usamos a denominação de circuitos de Subtrator Completo. Esses circuitos executam a subtração dos 2 bits levando em consideração as entradas menos significativas de bit de carry. Este subtrator tem as mesmas saídas do Meio Subtrator: Subtração e Carry.

Subtrator Completo

O Subtrator Completo, como citado acima, possui Carry Out. É utilizado para subtrair números de pelo menos 2 casas. Isso é possível cascateando um Meio-Subtrator com Subtratores Completos.

Subtrator Completo
XYCSA
00000
00111
01011
01101
10010
10100
11000
11111

As expressões 'X' e 'Y' são os valores de entrada. 'C' expressa o Carry Out, 'A' expressa uma operação AND entre X e Y, e 'S' expressa a operação XOR entre X e Y.

Entradas relacionadas: