Como descrever um circuito lógico algebricamente

Eletrônica Circuitos digitais 17 de Novembro de 2019 às 15:16

Os sistemas digitais são compostos pelas principais portas lógicas AND, OR, NOT e suas derivações. Independentemente da complexidade do circuito, podemos descrever a lógica utilizando as expressões booleanas de cada porta, obtendo facilmente a saída do circuito. Para iniciar o artigo, vamos aprender ou relembrar alguns conceitos importantes.

Álgebra booleana

A álgebra booleana nasceu de um estudo de George Boole, conhecido como "Uma investigação das leis de pensamento" onde o autor explana como tomar decisões lógicas baseando-se em situações verdadeiras ou falsas. Este método matemático expressa a relação entre as entradas e saídas de um circuito, utilizando letras como símbolos (A, B, C, D) para representar níveis lógicos, tendo como dois valores possíveis, o verdadeiro e falso. Comparando com a álgebra comum, a álgebra booleana é mais simples, pois trabalha com o sistema de numeração binário, não possui frações, raiz quadrada, números imaginários e nem logaritmos, e sim três operações lógicas elementares, a AND, OR e NOT, que dá vida às portas lógicas, tanto em teoria como prática.

Figura 1: Parte de uma expressão booleana, aplicando os teoremas da álgebra booleana e DeMorgan.

Mas qual a utilidade? Além da utilização como um instrumento de análise, a álgebra booleana é aplicada para simplificar expressões booleanas de um circuito utilizando teoremas (leis), onde a lógica é refinada e escrita novamente utilizando um número reduzido de portas lógicas e ligações, obtendo a mesma saída/resultado anterior.

Figura 2: Exemplo de uma simplificação de circuito lógico.

A tabela verdade

A tabela verdade é um método para descrever como a saída de um circuito lógico se comporta com os níveis lógicos presentes nas entradas do circuito, oferecendo todas as combinações possíveis. Esta técnica é utilizada para documentar o projeto de circuitos lógicos combinacionais, e também utilizada para extrair as informações necessárias para uma expressão booleana.

Figura 3: Exemplos de tabelas verdade.

As portas lógicas

Cada porta lógica possui o seu símbolo, tabela verdade e expressão booleana conforme imagem abaixo.

Figura 4: Portas lógicas com seus símbolos, tabelas verdade e expressões booleanas.

As principais portas lógicas e suas definições e aplicações reais, estão disponíveis no artigo Criando portas lógicas com transistores.

Com todos esses conceitos explanados, podemos descrever um circuito lógico algebricamente, utilizando símbolos lógicos, tabela verdade e expressões booleanas.

Desenvolvendo expressões booleanas

Podemos criar uma expressão booleana a partir de um circuito com portas lógicas para determinar sua saída. Observando a imagem abaixo, temos dois circuitos lógicos e suas expressões. No primeiro circuito, a expressão para a saída da porta AND é "A . B", ou "AB". Esta saída esta ligada em uma das entradas da porta OR, sendo a outra a C. A porta OR realiza a soma dos valores booleanos, obtendo a saída "x" deste circuito, onde "x = A . B + C".

No segundo circuito temos primeiramente a porta OR realizando a soma de "A + B", o resultado é conectado em uma das entradas da porta AND, sendo a outra a C. A porta AND realiza o produto dessas expressões, onde "x = (A + B) . C".

Em casos de dúvidas com o primeiro exemplo, sempre inicie a expressão com a lógica AND para evitar erros, pois esta expressão pode ser escrita também como "x = C + A . B". Porém quando temos em primeiro lugar uma porta OR utiliza-se parenteses, se a expressão fosse escrita "A + B . C", ela estaria sendo interpretada de forma incorreta, pois a operação de soma "A +" iria fazer parte do produto "B . C".

Figura 6: Circuitos lógicos com suas expressões booleanas.

Quando um circuito possui uma porta lógica NOT ou inversora, a expressão de saída da NOT sempre será igual à expressão de entrada com uma barra encima, podemos ver esse exemplo da imagem abaixo. O valor booleano de A é invertido e é conectado em uma das portas da OR, sendo a outra a B, realizado a soma para obter a saída, onde "x = !A + B". No segundo circuito, temos primeiramente a porta OR realizando a soma de "A + B", entrando em uma porta NOT, realizando a inversão da soma. Vale ressaltar que no primeiro circuito, somente A é invertido, e B não, e no segundo circuito ambas entradas são invertidas.

Figura 7: Circuitos lógicos com porta NOT/Inversora e suas expressões booleanas.

Este outro circuito é um pouco diferente, ele possui cinco portas lógicas com suas entradas de "A, B, C, D, E" e sua saída é bem interessante, pois possui parenteses e colchetes. A Figura 8a representa o diagrama de tempo do circuito, onde podemos observar os sinais retangulares dos níveis lógicos em uma simulação realizada no software Dsch3.

Figura 8: Circuito lógico com suas expressões booleanas.
Figura 8a: Diagrama de tempo da Figura 8. Simulação realizada no software Dsch3.

Utilizando a expressão booleana final do circuito acima, podemos realizar uma substituição das letras A, B, C, D, E das entradas com níveis lógicos para conhecer o estado da saída. O método é semelhante com a álgebra comum, onde substituímos os valores das variáveis para conhecer o resultado de "X".

Temos, A = 0 , B = 0,  C = 1, D = 1 e E = 1,

Figura 9: Expressão booleana com os níveis lógicos.

Para realizar passo a passo desta expressão booleana conforme a imagem acima, precisamos seguir quatro regras importantes citadas por TOCCI e seus colegas, onde:

  1. Primeiro, realize as inversões de termos simples; ou seja, 0 = 1 ou 1 = 0.
  2. Em seguida, realize as operações dentro de parênteses.
  3. Realize as operações AND antes das operações OR, a menos que os parênteses  indiquem o contrário.
  4. Se uma expressão tiver uma barra sobre, realize a operação indicada pela expressão e, em seguida, inverta o resultado.

Após todos esses exemplos de como descrever um circuito lógico algebricamente, podemos montar uma tabela verdade a partir de um circuito lógico, e depois realizar o procedimento de descrever a expressão booleana e simplificá-la utilizando os teoremas básicos da álgebra booleana.

Analisando uma tabela verdade

Para saber como um circuito lógico funciona com todas as possíveis possibilidades, podemos utilizar uma tabela verdade, pois ela permite uma análise minuciosa da lógica, além de possuir uma tabela documentada para consultas posteriores.

Observando a imagem abaixo, temos um circuito com portas lógicas e três entradas A, B e C, onde a saída "X" é desconhecida. Para descobrir o comportamento deste circuito, é necessário implementar uma tabela verdade, adicionando as entradas, as portas lógicas e a saída conforme o diagrama do circuito. Com a tabela completa, separamos todas as saídas que são verdadeiras ou 1, e escrevemos algebricamente seus produtos e somas. Todas as linhas da tabela com saídas verdadeiras são descritas como um produto,  "A . B . C", e a junção destes produtos são realizadas com uma soma, onde "A . B . C + A . B . C...". conhecido como "expressão booleana em forma de soma-de-produtos".

Com a expressão booleana completa, podemos aplicar a álgebra booleana para simplificar este resultado. Conforme a expressão abaixo, utilizamos os teoremas 13 e 8, podendo aplicar a fatoração dos termos, onde as somas de A e !A, C e !C são igual à um, anulando esses termos da expressão. Com esses simples passos, reduzimos a expressão booleana alcançando a mesma lógica do circuito proposto.

Figura 10: Circuito lógico com sua tabela verdade e expressão booleana simplificada com os teoremas 13 e 8 da álgebra booleana.

Desafios!

Para você que gosta de eletrônica digital, separamos alguns desafios para praticar ainda mais.

  1. Utilizando o circuito da Figura 8, troque as portas AND por OR e cada porta OR por AND. E depois escreva a expressão booleana da saída "X".
  2. Faça o diagrama de tempo da Figura 10 utilizando as informações da tabela verdade.

Referência

  1. TOCCI, R, J; WIDMER, N. S; MOSS, G. L; Sistemas digitais: princípios e aplicações. 11 ed. Pearson Prentice Hall, 2011.