Dando prosseguimento à apresentação de portas lógicas, artigo publicado anteriormente e escrito por mim, vou descrever de forma mais detalhada a porta XOR.
Uma porta XOR é definida pela tabela conforme a figura em destaque:
- Se todas as entradas forem iguais, a saída é zero, nível baixo;
- Se todas as entradas não forem iguais, ao menos uma delas forem diferentes, a saída é um, nível alto.
Sem utilizar nenhuma porta Inversora e utilizando o mínimo de portas lógicas possível, obteremos o circuito a seguir:
XOR com portas NAND
É natural então pensar no circuito abaixo, quando vemos a equação desse circuito:
$$A . \bar{B} + \bar{A} . B$$
Trocando a porta OR do primeiro circuito em uma porta NAND com todas as suas entradas e saídas com negação, conforme o Teorema de De Morgan, obtemos os circuito abaixo.
Deslocando o símbolo da entrada da porta AND para a saída das duas portas AND de entrada, obtemos o circuito a seguir:
Podemos então substituir as portas lógicas inversoras por uma porta lógica NAND. Se as duas entradas de uma porta NAND são zero, a saída é um. Então, mesmo mudando a lógica e permanecendo uma entrada como um, o resultado da operação de uma porta NAND, de duas entradas em zero, é um. Para uma das entradas igual a um e a outra igual a zero, ou seja, valores diferentes de entradas, o resultado que deve chegar até o último estágio, porta NAND mais à direita, são os valores zero e zero. Essa inclusão não prejudica em nada, pois as portas seguintes têm essa mesma lógica. Temos então uma porta XOR construída apenas com portas NAND.
XOR com portas NOR
Voltando a Figura 1, podemos tornar todas as portas lógicas em NORs. Para isso basta trocar a porta AND por uma porta OR com todas as entradas e saída, conforme o Teorema de De Morgan, como na figura abaixo.
A porta NAND também pode ser substituída por uma porta NOR com as entradas negadas. Veja na figura abaixo o circuito resultante.
Rearrumando as portas inversoras, obtemos o circuito abaixo.
Uma porta inversora pode ser substituída, no entanto, por uma porta NOR com as entradas em curto. Então, finalmente obtemos o circuito para XOR com portas lógicas NOR.
Implementação dos três circuitos em Verilog
Abaixo estão três circuitos implementados em Verilog, o com portas lógicas comuns, com NANDs e com NORs.
// Embarcados - Use como quiser e de os creditos // Exemplo de Implementacao de XOR com portas logicas simples // Thiago Lima - 14/11/2015 module exemplo_XOR ( A, B, X ); input A, B; output X; wire C, D; nand U1( C, A, B ) ; or U2( D, A, B ) ; and U3( X, C, D ) ; endmodule
// Embarcados - Use como quiser e de os creditos // Exemplo de Implementacao de XOR com NANDs // Thiago Lima - 14/11/2015 module exemplo_XOR ( A, B, X ); input A, B; output X; wire C, D; nand U1( C, A, B ) ; nand U2( D, C, A ) ; nand U3( E, C, B ) ; nand U4( X, E, D ) ; endmodule
// Embarcados - Use como quiser e de os creditos // Exemplo de Implementacao de XOR com NORS // Thiago Lima - 14/11/2015 module exemplo_XOR ( A, B, X ); input wire A, B; output wire X; wire a_neg, b_neg, C, D; 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, C, D ) ; endmodule
E é isso! Caso tenham alguma dúvida ou comentário, deixe um recado abaixo.









parabens!! é de luladores como você que o brasil precisa
Excelente!!! Me ajudou muito num trabalho universitário. Grata!