18 novembro 2016

Eletrônica Digital: Descrevendo Circuitos Lógicos Algebricamente

No texto anterior falei sobre álgebra booleana. Assim como foi dito anteriormente, buscarei apresentar alguns passos para que possamos descrever algebricamente alguns circuitos lógicos.

Geralmente meus textos ficam muito extensos, e isso pode fazer com que o nosso objetivo principal sofra um pouco de desvios. Porém pretendo adotar um novo modelo, buscarei ser o mais claro e objetivo possível, mas, ao mesmo tempo didático.



Primeiramente, devemos entender que qualquer circuito lógico independente de sua complexidade pode ser descrito por operações booleanas, as mesmas que vimos no texto anterior (OR, AND e NOT). Pois as operações que conhecemos na álgebra booleana são básicas e formam a base para outros teoremas que ainda vou apresentar aqui no blog.


Como já conhecemos as operações booleanas e as porta lógicas básicas, vou apresentar um primeiro circuito lógico e descreverei passo a passo como obter a expressão algébrica do mesmo.


Seja o circuito lógico a seguir formado por uma porta AND e uma OR.



Figura 1 - Circuito lógico de porta AND e OR.

Sempre ao tentarmos representar um circuito lógico algebricamente, estamos interessados em expressar a saída em função das entradas. Na Figura 1 estamos interessados na saída S em função das entradas A, B e C.

O primeiro passo é observar para onde as entradas estão direcionadas, ou seja, a quais portas elas estão conectadas. Claramente observamos que A e B estão sendo operados em uma porta AND e se recordarmos o texto anterior a saída deste tipo de porta é:
E este resultado é enviado para a porta lógica OR e é operado junto com a entrada C de acordo com a operação booleana OR. O resultado desta saída já conhecemos muito bem e é:
Esse resultado representa para nós a saída de nosso circuito. Assim, podemos finalmente escrever o resultado:
Uma importante observação que devo fazer é, se a gente não tivesse conhecimento do circuito, que operação lógica seria realizado primeiro na expressão acima? A partir desta dúvida apresento a seguinte definição:

- Fica definido que, caso o circuito possua operações AND, essa operação é realizado primeiro a não ser que haja parênteses, sendo que as operação entre parênteses tem prioridade assim como na álgebra convencional.

Feito a definição acima, podemos prosseguir e identificar a ordem das operações para nosso exemplo, ou seja, de acordo com o que convencionamos a operação A AND B tem prioridade e é realizada primeiro.

Esse primeiro exemplo é simples, vamos a outro exemplo, porém vamos ver o que acontece quando tem-se uma porta NOT conectado em um circuito. Consideremos então o circuito lógico a seguir.


Figura 2 - Circuito lógico de porta NOT e OR.

Vamos obter a expressão booleana que representa o circuito lógico acima. Seguindo o procedimento do exemplo anterior, observamos a entrada A conectado em uma porta NOT, como já conhecemos esta porta, temos o seguinte resultado:
Esse valor é enviado para a porta OR e é operado juntamente com a entrada B sob a operação lógica OR. Logo o resultado obtido na operação OR é:
Para nós este último resultado já representa a saída S em função de A e B, logo podemos escrever:
Os exemplos contendo portas NOT são muito interessantes e as vezes por falta de prática acabamos confundindo-as na hora da obtenção da operação algébrica do circuito. Por isso, vou apresentar mais um exemplo, observe e compare a diferença do exemplo anterior com o exemplo a seguir.

Seja o circuito lógico apresentado a seguir.


Figura 3 - Circuito contendo porta OR e NOT.

Para este exemplo o procedimento realizado é o mesmo, ou seja, observando a entrada temos as entradas A e B conectadas a uma porta OR. Como já conhecemos esta operação teremos o seguinte resultado:
Esse resultado é levado diretamente a uma porta NOT, logo obtemos o seguinte resultado:
Este já é para nós o resultado final, ou seja, a saída S escrita algebricamente em função das entradas A e B, logo, temos:

De forma simples e resumida apresentei os passos para obtermos a expressão algébrica de um circuito lógico. O que pretendo a seguir é trazer um último exemplo fazendo um "misto" do que vimos até agora. Vejamos o circuito lógico a seguir.


Figura 4 - Exemplo contendo várias portas lógicas básicas.

Vamos obter a expressão algébrica da saída S em função das entradas A, B, C e D. Observe na imagem que as saídas de cada porta já está destacado, isso para facilitar nosso entendimento.

Seguindo o mesmo procedimento proposto no primeiro exemplo, temos a entrada A conectado a uma porta NOT e seu resultado pode ser visto na imagem. Em seguida temos uma porta AND com três entradas. O resultado desta porta AND também pode ser visualizado no diagrama. 

Se observamos a mesma entrada A, esta é enviada para uma porta OR e é operado com uma entrada D, novamente o resultado pode ser visto na imagem. A saída desta porta OR é conectado a uma porta NOT. Enfim, o resultado tanto da porta AND quanto da porta NOT são enviados para a última porta AND. E finalmente podemos escrever a saída S em termos de suas entradas como:



Logo, este é o resultado final obtido do nosso último exemplo. Observe atentamente o uso dos parênteses neste caso. Cabe destacar que nem sempre as expressões obtidas serão triviais, ou seja, podemos encontrar casos em que a expressão final seja muito grande ou envolva grande número de operações. 

Em vista dessa dificuldade existem os teoremas que nos ajudam a simplificar nossas expressões. E nos textos que se seguem apresentarei estes teoremas que são muito úteis para nós.

Para o próximo texto pretendo apresentar um pouco sobre como fazer para implementar o circuito a partir de uma dada expressão algébrica. Esse assunto está intimamente relacionado com o que acabamos de ver. 

Um apelo que faço para você que está lendo meu texto (ou melhor meu resumo) é que, não deixe de ler a literatura de sistemas digitais. Na literatura você aprenderá muito mais sobre os assuntos que trato nos textos aqui do blog. Além disso, caso você não conheça nenhuma literatura a respeito do assunto, convido você a acessar a aba Livros onde indico vários livros os quais tenho contato e já estudei por meio deles.

Por fim vou terminando por aqui, espero que você tenha gostado. Compartilhe este texto com seus amigos, colegas, enfim ajude o blog a atingir mais pessoas. Curta nossa página no Facebook e fique ligado nas novidades.

Obrigado por ler meus textos e até o próximo!

Referência bibliográfica:


TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas Digitais: Princípios e Aplicações. 10 ed. São Paulo: Pearson Prentice Hall, 2008. 804 p


EmoticonEmoticon