Como um XOR com mais de 2 entradas deve funcionar?

27

Acabei de começar a estudar engenharia de computação e estou com algumas dúvidas em relação ao comportamento do portão XOR.

Projetei circuitos com o Logisim, cujos XORs se comportam de maneira diferente do que aprendi. Para mim, ele deve se comportar como uma porta de paridade, fornecendo uma saída alta sempre que as entradas receberem uma combinação ímpar. Porém, isso não ocorre para mais de duas entradas. Como deve se comportar?

Também li em um livro que os portões XOR não são produzidos com mais de duas entradas. Isso está correto? Por quê?

gabrieljcs
fonte
1
Por que não (ou quase nunca) com> 2 entradas? Dois usos típicos dos portões XOR são 1) para verificar a igualdade e 2) controlar / manipular a polaridade de um sinal. Nem faz sentido para mais de 2 entradas.
Wouter van Ooijen
1
A soma em um somador completo não seria representada como A ^ B ^ Cin?
gabrieljcs
Você pode expressá-lo dessa maneira, mas isso não significa que é uma boa maneira de implementá-lo.
Wouter van Ooijen
1
Acabei de verificar minha versão do Logisim e o "1 e apenas 1" parece ser o comportamento padrão, mas existe a opção de alterá-lo para uma função de paridade ímpar.
precisa
De fato, Joe. Este link tem uma discussão sobre isso, respondida pelo desenvolvedor do Logisim, Carl Burch.
Gabrieljcs

Respostas:

23

Existem diferentes pontos de vista sobre como um portão OR exclusivo com mais de duas entradas deve se comportar. Na maioria das vezes, esse portão XOR se comporta como uma cascata de portas de 2 entradas e executa uma função de paridade ímpar. No entanto, algumas pessoas interpretam o significado de OR exclusivo mais literalmente e dizem que a saída deve ser 1 se e somente se exatamente uma das entradas for 1. Parece-me que lembro que o Logisim usa a última interpretação e em algum lugar minha memória enferrujada eu a vi em uma biblioteca de células ASIC. Um dos símbolos padrão internacionais para uma porta XOR é um retângulo rotulado com o =1qual parece ser mais consistente com a definição "1 e apenas 1".

EDIT: A definição de OR exclusivo como "1 e apenas 1" é incomum, mas pode ser encontrada. Por exemplo, IEEE-Std91a-1991 fornece o símbolo para o OR exclusivo na p. 62 com a nota: "A saída fica no seu estado 1 se uma e apenas uma das duas entradas estiver no seu estado 1". Para mais de 2 entradas, o padrão recomenda o uso do símbolo "paridade ímpar". Os sites que discutem essa situação confusa incluem XOR: The Interesting Gate e demos de gate no TAMS . Uma pesquisa no Google também exibirá sites que afirmam que, estritamente falando, não existe um portão XOR com mais de duas entradas.

Joe Hass
fonte
4
Para mim, o segundo (1 e apenas 1) é a única maneira correta de fazer isso - qualquer outra coisa não é realmente exclusiva .
Polinomial
3
Não há um ponto de vista diferente, ambos os pontos estão tecnicamente corretos, no entanto "1 se apenas uma das entradas for 1" não se expande como você imagina. Quando você coloca em cascata XORs de 2 polegadas, cada saída sendo alimentada pelos pinos de um terceiro XOR mostra o ponto acima. As portas de entrada múltipla são derivadas de suas primitivas de 2 entradas. Portanto, a tabela verdade de 4 entradas é ((A⊕B) ⊕ (C⊕D)) que resulta em uma saída final 1 se houver um número ímpar de entradas verdadeiras.
Kris Bahnsen
@KrisBahnsen Como o OP apontou, existem de fato dois pontos de vista (tente o XOR padrão no Logisim se precisar de evidências). Sua afirmação de que portas de entrada múltipla são derivadas de primitivas de 2 entradas é dada como se fosse uma verdade universal, mas já lhe fornecemos um contra-exemplo.
precisa
@ JoeHass, nunca usei o logisim, uso principalmente o LogicWorks; em que um XOR de múltiplas entradas se comporta como eu descrevi acima, um número ímpar de entradas verdadeiras é uma saída verdadeira. A página wiki no XOR (en.wikipedia.org/wiki/XOR) concorda que o que eu disse também é verdade. Também nunca vi um IC XOR com várias entradas, portanto, não posso recorrer às planilhas de dados para tentar refutar o que disse. O Logisim parece ser a única coisa que implementa o esquema XOR de várias entradas com a lógica "1 se e somente ..." Se você puder encontrar outra fonte, admito que estou errado e que existem várias definições de XOR.
Kris Bahnsen
Bom esclarecimento, obrigado por dedicar tempo à pesquisa dos padrões muito mais do que eu.
Kris Bahnsen
11

Em um XOR de duas portas, a saída é alta quando as entradas são diferentes. Se as entradas são as mesmas, a saída é baixa.

Daí esta tabela de verdade:

insira a descrição da imagem aqui

Você pode encontrar um portão XOR que possui mais de duas entradas, mas na verdade não são um XOR de 3 entradas. Eles inserem XOR A e B e o resultado deles "R" é XOR com a entrada C. E o resultado de R XOR C é XOR com a entrada 4 e assim por diante.

Aqui está uma tabela verdade para as três entradas XOR mostradas:

insira a descrição da imagem aqui

Um algoritmo de paridade simples é o XORing bits em uma mensagem recebida, por exemplo, Ethernet. Se o remetente e o destinatário souberem que o XOR dos bits da mensagem deve ser 0 (um bit na mensagem é fornecido para poder adicionar um, para que uma mensagem de qualquer tamanho possa ser 0 quando o XOR), o destinatário pode saber se 1 bit foi invertido. Esta é uma verificação de paridade ruim, pois só pode encontrar um número ímpar de alterações de bits, mas mostra o conceito.

iQt
fonte
1
Sou matemático, essa resposta me parece horrível. Entendo que essa é a saída geralmente pretendida por um XOR de 3 entradas, mas 01101000 parece muito mais lógico para mim. + Boa resposta.
Ben Crossley
1

Se você pegar 4 entradas e alimentar dois a um XOR e dois a outro, pegue as duas saídas XOR e alimente-as com um terceiro XOR, sua saída fará o que você acredita (eu acho).

Andy aka
fonte
1
Estou mais preocupado com os porquês, não com os comos. Obrigado pela resposta, no entanto.
precisa
@ root, na verdade, você perguntou "Como deve se comportar?" Você não perguntou por que em qualquer lugar. Esta é uma resposta correta; ela produz ((A⊕B) ⊕ (C⊕D)) que é igual a um XOR de 4 polegadas, que é igual a vários XORs de 2 polegadas em cascata.
Kris Bahnsen
Você está certo. Desculpe pelo mal entendido.
Gabrieljcs
1

O XOR não é completamente um portão de paridade. Se você definir a saída do XOR como 1 quando uma e apenas uma das entradas for 1, um XOR de três entradas fornecerá 0 para a entrada 1. Isso não é usado com muita frequência e, portanto, existem poucas portas XOR de 3 entradas.

O que a maioria das pessoas quer dizer quando diz que XOR é a adição do módulo 2, que é exatamente um verificador de paridade. A maioria das portas rotuladas como XORs de 3 entradas são de fato portas de adição do módulo 2. Para duas entradas, a adição do módulo 2 é a mesma que o XOR, mas o 0 do XOR descrito acima é um 1 nas portas do módulo 2. As portas do módulo 2 com um número arbitrário de entradas podem ser produzidas a partir de portas XOR simples de duas entradas.

Duggie
fonte
1

Eu fiz um pouco de pesquisa ao ver sua pergunta e encontrei um IC que é um portão XOR de 3 polegadas. 74LVC1G386 da nxp. o link para o site nxp que mostra os resultados da pesquisa para este número de peça no site nxp é http://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10

Mahesh Mohandasan
fonte
2
Obrigado por contribuir, mas sua resposta será inútil se o NXP alterar o mecanismo de pesquisa. Resuma o que encontrou aqui para que seja de valor duradouro.
precisa
Eu apenas procurei para ver se há alguma manufatura para fornecer ao XOR mais de 3 entradas e encontrei esta ... então achei que ajudaria a compartilhá-la ... aqui está um link para a folha de dados nxp.com/documents/ data_sheet / 74LVC1G386.pdf
Mahesh Mohandasan
1
Por favor, não poste outro link! Diga-nos como a coisa funciona!
quer
é um portão XOR de 3 entradas que funciona exatamente como estudamos / conhecemos. isto é, fornece um alto o / p para um número ímpar de entradas altas (como na folha de dados). é por isso que compartilhou o link. :)
Mahesh Mohandasan
1

Então, eu fui lá e testei! Escrevi um pequeno arquivo verilog, simulei e observei a forma de onda.

Acontece que a interpretação correta para o verilog é: Há uma quantidade ímpar de 1s na entrada AKA Interpretation 2 deste artigo

module top (y1, y2);
output y1, y2;
reg a, b, c;
wire x1, x2;
wire t;

xor(t, a, b);
xor(x2, t, c);

assign y2 = x2;
assign y1 = x1;

xor(x1, a, b, c);

initial
begin
  $dumpfile("test.vcd");
  $dumpvars(y1, y2, a, b, c, x1, x2);

#20
#10  a = 0; b = 0; c = 0;
#10  a = 0; b = 0; c = 1;
#10  a = 0; b = 1; c = 0;
#10  a = 0; b = 1; c = 1;
#10  a = 1; b = 0; c = 0;
#10  a = 1; b = 0; c = 1;
#10  a = 1; b = 1; c = 0;
#10  a = 1; b = 1; c = 1;
#10  a = 0; b = 0; c = 0;
end

endmodule

insira a descrição da imagem aqui

mentatkgs
fonte
-1

De acordo com a lógica da simples entrada múltipla OU do portão, ele assume o maior valor entre todas as entradas, mas não toma uma decisão. No que diz respeito ao EXOR (misturar-se com o meio adicionador sendo apenas uma coincidência, como isso não acontece na lógica de múltiplos valores EXOR), toma-se uma decisão sobre qual é o mais alto entre as entradas, mas se o mais alto (incluindo 0 + 0 .. 1 + 1) são os mesmos; ele não seleciona entre as entradas, significa que não pode tomar uma decisão de qual escolher. Nenhuma decisão significa que a saída é zero. Por exemplo, se alguém for convidado a comprar o número máximo de doces de uma marca em uma casa de bonecas e se houver duas marcas (raiz = 2), ele poderá selecionar a que tiver maior contagem de doces, mas se ambas as marcas estão disponíveis gratuitamente, ele não pode selecionar nenhum (significa 0,0) da mesma forma se ambas as marcas oferecerem o mesmo número (1, 1) dos doces que ele não pode tomar uma decisão significa que a saída é zero. A mesma lógica pode ser estendida para 3, 4 ou mais número de marcas (maior número de marcas) de doces. Isso é igualmente aplicável à lógica de múltiplos valores. (x + x + .. + x = 0 onde x pode ter qualquer valor), em três entradas porta EXOR 1 + 1 + 1 = 0 (contra a interpretação normal 1 + 1 + 1 = 1 que parece estar errada, sendo misturado com paridade). VT Ingole, PhD

vijay ingole
fonte
Essa explicação é desnecessariamente complicada e parece não responder definitivamente à pergunta de qualquer maneira.
duskwuff 16/09/2015