Portas Lógicas: XNOR

Publiquei aqui mesmo no Embarcados um post onde mostro como funcionam as portas lógicas. Em seguida falei sobre MUX e sobre a porta XOR. No post sobre a porta XOR, eu desenvolvi todos os circuitos, conforme o teorema de De Morgan e mostrei três circuitos distintos: 

  • Um circuito que mostrava uma configuração para a função XOR com portas lógicas comuns;
  • Um circuito que mostrava uma configuração para XOR com portas NANDs;
  • Um circuito que mostrava uma configuração para XOR com portas NORs;

Este post então, visa mostrar os circuitos e códigos Verilog para XNOR, sendo apenas um texto complementar ao mostrado no post anterior.

Uma porta XNOR, que é definida pela tabela conforme a figura em destaque, tem o seguinte comportamento:

  • Se todas as entradas forem iguais, a saída é um, nível alto;
  • Se todas as entradas não forem iguais, ao menos uma delas forem diferentes, a saída é zero, nível baixo.

Podemos reconhecer a lógica XNOR na expressão

$$\bar{A . \bar{B} + \bar{A} . B}$$

Para implementar a função XNOR, apenas é necessário adicionar uma inversora, ou porta NOT na saída dos circuitos mostrados para porta XOR. Lembre-se que, para uma porta NAND funcionar como portas AND, basta curto circuitar suas entradas. O mesmo é válido para a porta NOR: curto circuite suas entradas e ela funciona como uma porta NOT. Abaixo reproduzo os três circuitos com seus códigos implementados em Verilog.

Circuitos para XNOR

xnor 2
Figura 1: XNOR com portas lógicas comuns
xnor com nand
Figura 2: XNOR com portas NAND
xnor com nor
Figura 3: XNOR com portas NOR

Implementação dos três circuitos de XNOR em Verilog

Abaixo estão três circuitos implementados em Verilog, com portas lógicas comuns, com NANDs e com NORs.

// Embarcados - Use como quiser e de os creditos
// Exemplo de Implementacao de XNOR com portas logicas simples
// Thiago Lima - 14/11/2015
module exemplo_XNOR ( A, B, X );

input A, B;
output X;
wire C, D, X_inv;
 
nand U1( C, A, B ) ;
or   U2( D, A, B ) ;
and  U3( X_inv, C, D ) ;
not  U4( X, X_inv );
 
endmodule
// Embarcados - Use como quiser e de os creditos
// Exemplo de Implementacao de XNOR com NANDs
// Thiago Lima - 14/11/2015
module exemplo_XNOR ( A, B, X );

input A, B;
output X;
wire C, D, X_inv;
 
nand U1( C, A, B ) ;
and U2( D, C, A ) ;
nand U3( E, C, B ) ;
nand U4( X_inv, E, D ) ;
nand U5( X, X_inv, X_inv ) ;

endmodule
// Embarcados - Use como quiser e de os creditos
// Exemplo de Implementacao de XNOR com NORS
// Thiago Lima - 14/11/2015
module exemplo_XNOR ( A, B, X );

input wire A, B;
output wire X;
wire a_neg, b_neg, C, D, X_INV;
 
nor U1( a_neg, A, A );
nor U2( b_neg, B, B );
nor U3( C, a_neg, b_neg ) ;
nor U4( D, A, B ) ;
nor U5( X_INV, C, D ) ;
nor U6( X, X_INV, X_INV ) ;
 
endmodule

Bem pessoal, espero que tenham gostado. Caso tenham alguma dúvida ou comentário, deixe um recado abaixo.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
3 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Alexandre Fernandes
Alexandre Fernandes
07/06/2018 19:11

Boa noite Sr Thiago Lima,

Daqui é Alexandre Fernandes, aluno de Engenharia Mecatrônica do Instituto Politécnico de Viana do Castelo em Portugal. Estive a observar o seu trabalho sobre Portas Lógicas que é deveras interessante.
Estou a enviar-lhe mensagem devido a eu ter de fazer um trabalho em linguagem de programação C sobre portas lógicas,no qual apresento algumas dificuldades. Por acaso, não tem algum trabalho em linguagem C sobre portas lógicas que me mostrar para me servir de exemplo para trabalhar no meu?

Agradeço resposta,

Alexandre Fernandes

Alexandre Fernandes
Alexandre Fernandes
Reply to  Thiago Lima
25/06/2018 10:15

Boa tarde Thiago,
Sempre consegui realizar o trabalho com aprovação, apesar das dificuldades
Obrigado na mesma, o seu trabalho ajudou muito

Home » Hardware » Portas Lógicas: XNOR

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: