Quando vamos montar um sistema digital, pode ser que não tenhamos todas as portas lógicas à disposição. Para resolver este problema, é possível utilizar as portas NAND ou NOR para criar as demais. Portanto, nesta aula, veremos como se dá a universalidade das portas NAND e NOR.

Na aula anterior, projetamos e montamos na prática um circuito combinacional simples.


Informações básicas

O que é a universalidade das portas NAND e NOR

A universalidade das portas NAND e NOR diz respeito ao fato de elas poderem se transformar em qualquer outra porta lógica elementar. Isto é feito configurando elas de diferentes formas para que a tabela-verdade resultante seja igual à de uma outra porta lógica.

A utilidade disto é, como foi dito na introdução do post, substituir uma porta lógica quando ela não for acessível. Isto pode ocorrer quando você não encontrar para comprar ou então quando você precisar testar um circuito, mas não quer comprar uma porta lógica específica.

Desta forma, adiante veremos as correspondências da porta NAND e NOR. E, para entender por completo as equivalências, é importante entender sobre a álgebra booleana.


Porta NAND

Criando porta NOT

Universalidade da porta NAND recriando a porta NOT

A lógica do circuito acima é a seguinte:

(A.A)

=

(A)

=

A

De acordo com a propriedade de multiplicação da álgebra booleana A.A = A.

Criando porta AND

Porta AND a partir de uma NAND

O circuito acima é bem simples de entender, pois é uma junção da porta NOT vista acima com a própria porta NAND:

¬(¬(A.B)) = A.B

Criando porta OR

Porta OR a partir de uma NAND

A lógica do circuito acima advêm da seguinte relação:

(A.B)

=

A

+

B

A barra é distribuída ao longo da expressão resultando em uma porta OR com as entradas barradas. E, para converter para a porta OR, basta criar uma porta NOT em cada entrada, assim como foi visto acima.


Porta NOR

A lógica de equivalências para a porta NOR é parecida com o que foi mostrado na porta NAND.

Criando porta NOT

Universalidade da porta NOR recriando a porta NOT

A lógica do circuito acima é a seguinte:

(A+A)

=

(A)

=

A

De acordo com a propriedade de adição da álgebra booleana A+A = A.

Criando porta OR

Porta OR a partir de uma NOR

O circuito acima é bem simples de entender, pois é uma junção da porta NOT vista acima com a própria porta NOR:

¬(¬(A+B)) = A+B

Criando porta AND

Porta AND a partir de uma NOR

A lógica do circuito acima advêm da seguinte relação:

(A+B)

=

A

.

B

A barra é distribuída ao longo da expressão resultando em uma porta AND com as entradas barradas. E, para converter para a porta AND, basta criar uma porta NOT em cada entrada, assim como foi visto acima.


Exemplo da universalidade das portas NAND e NOR

Para exemplificar a utilização das conversões mostradas neste post, vamos recriar o seguinte circuito da aula 6 apenas com portas NAND.

Circuito combinacional ligação

Sua expressão de saída (S) é dada por: S = M(P1 + P2).

Como recriar

Existem duas formas de recriá-lo com as portas NAND:

  • Substituindo cada porta lógica pela conversão equivalente.
  • Barrando duas vezes a expressão de saída ou aplicando o teorema de De Morgan da álgebra booleana até encontrar uma expressão que envolva apenas operações do tipo NAND.

Como a primeira forma é simples de fazer, pretendo exemplificar com a 2ª forma.

Recriando o circuito

O primeiro passo que tomarei será desmembrar a expressão de saída em termos individuais:

S = M(P1 + P2) = M.P1 + M.P2

Agora, irei aplicar o teorema de De Morgan sobre a expressão OR (envolve os dois termos):

S = ¬( ¬(M.P1 + MP2) )

Distribuindo a barra mais interna:

S = ¬( ¬(M.P1).¬(M.P2) )

Com isto, a expressão de saída fica apenas com expressões do tipo AND ou NAND e não há mais necessidade de aplicar De Morgan. Entretanto, ainda falta converter as expressões AND em expressões do tipo NAND.

Para isto, basta barrar duas vezes estas expressões. Fazendo este procedimento para cada uma das expressões:

M.P1 = ¬(¬(M.P1)) e M.P2 = ¬(¬(M.P2))

Portanto, virou uma NAND barrada de M com P1 e uma NAND barrada de M com P2. Voltando os termos à expressão de saída:

S = ¬( ¬(¬(¬(M.P1))).¬(¬(¬(M.P2))) )

Como cada termo ficou barrado 3 vezes, podemos anular duas barras, pois ainda teremos expressões do tipo NAND:

S = ¬( ¬(¬(¬(M.P1))).¬(¬(¬(M.P2))) ) = ¬( ¬(M.P1).¬(M.P2) )

Ou seja, virou uma expressão do tipo: NAND entre (NAND entre M e P1) e (NAND entre M e P2).

Resultado

Com a expressão convertida do tópico anterior, podemos reconstruir o circuito:

Circuito combinacional ligação
Circuito original
Universalidade das portas NAND e NOR circuito exemplo
Circuito convertido

A partir das imagens acima é perceptível que aplicar o 2º método para recriar o circuito resultou em um sistema com apenas 3 portas lógicas. Coisa que não seria verdade se tivéssemos substituído cada porta lógica do circuito original pela conversão equivalente.

Isso porque, a porta OR viraria 3 portas NAND e a porta AND viraria mais 2 portas NAND totalizando 5 portas no circuito. Portanto, é bom optar por reformular a expressão de saída.


Considerações finais

Esta aula foi bem simples e direta, pois o assunto é bem tranquilo de entender mesmo. E ela finaliza o assunto dos circuitos combinacionais. Desta forma, com as aulas passadas, você já tem capacidade de criar sistemas digitais simples de forma completa.

O próximo passo será aprender sobre os decodificadores e codificadores, assunto que envolve os multiplexadores que são circuitos com aplicações bem interessantes.