Come dovrebbe funzionare un XOR con più di 2 ingressi?


27

Ho appena iniziato a studiare ingegneria informatica e ho dei dubbi sul comportamento del gate XOR.

Ho progettato circuiti con Logisim, i cui XOR si comportano diversamente da quello che ho imparato. Per me, dovrebbe comportarsi come un gate di parità, dando un alto output ogni volta che gli input ricevono una combinazione dispari. Tuttavia, non per più di due input. Come dovrebbe comportarsi?

Ho anche letto in un libro che le porte XOR non sono prodotte con più di due ingressi. È corretto? Perché?


1
Perché non (o quasi mai) con> 2 ingressi? Due usi tipici delle porte XOR sono 1) per verificare l'uguaglianza e 2) per controllare / manipolare la polarità di un segnale. Né ha senso per più di 2 ingressi.
Wouter van Ooijen,

1
La somma in un full-adder non sarebbe rappresentata come A ^ B ^ Cin?
gabrieljcs,

Puoi esprimerlo in questo modo, ma ciò non significa che sia un buon modo per implementarlo.
Wouter van Ooijen,

1
Ho appena controllato la mia versione di Logisim e "1 e solo 1" sembra essere il comportamento predefinito, ma esiste la possibilità di cambiarlo in una funzione di parità dispari.
Joe Hass,

Anzi, Joe. Questo link ha una discussione a riguardo, a cui ha risposto lo sviluppatore di Logisim, Carl Burch.
gabrieljcs,

Risposte:


23

Esistono diversi punti di vista su come dovrebbe comportarsi un gate OR esclusivo con più di due ingressi. Molto spesso tale gate XOR si comporta come una cascata di gate a 2 ingressi ed esegue una funzione di parità dispari. Tuttavia, alcune persone interpretano il significato di esclusivo-OR più letteralmente e affermano che l'output dovrebbe essere 1 se e solo se esattamente uno degli input è un 1. Mi sembra di ricordare che Logisim utilizza quest'ultima interpretazione, e da qualche parte in la mia memoria arrugginita l'ho vista in una libreria di celle ASIC. Uno dei simboli standard internazionali per un gate XOR è un rettangolo etichettato con il =1quale sembra essere più coerente con la definizione "1 e solo 1".

EDIT: la definizione di OR-esclusivo come "1 e solo 1" non è comune ma può essere trovata. Ad esempio, IEEE-Std91a-1991 fornisce il simbolo dell'OR esclusivo a pag. 62 con la nota: "L'uscita si trova al suo stato 1 se uno e solo uno dei due ingressi si trova al suo stato 1". Per più di 2 ingressi lo standard consiglia invece di utilizzare il simbolo "parità dispari". I siti web che discutono di questa situazione confusa includono XOR: The Interesting Gate e gate demo su TAMS . Una ricerca su Google mostrerà anche siti che sostengono che, a rigor di termini, non esiste un gate XOR con più di due input.


4
Per quanto mi riguarda, il secondo (1 e solo 1) è l'unico modo corretto per farlo - qualsiasi altra cosa non è davvero esclusiva .
Polinomio

3
Non esiste un diverso punto di vista, entrambi i punti sono tecnicamente corretti, tuttavia "1 se solo se esattamente uno degli input è un 1" non si espande come si potrebbe pensare. Quando si collegano in cascata 2 XOR in ingresso, ogni uscita che si alimenta ai pin di un terzo XOR mostra questo punto. Le porte multi-input sono derivate dalle loro primitive a 2 ingressi. Quindi la tabella di verità 4input è ((A⊕B) ⊕ (C⊕D)) che risulta in un output finale 1 se esiste un numero dispari di input veri.
Kris Bahnsen,

@KrisBahnsen Come sottolineato dall'OP, ci sono in effetti due punti di vista (se hai bisogno di prove prova l'XOR predefinito in Logisim). La tua affermazione che le porte multi-input derivano da primitive a 2 input è data come se fosse la verità universale, ma ti abbiamo già dato un contro-esempio.
Joe Hass,

@JoeHass, non ho mai usato logisim, utilizzo principalmente LogicWorks; in cui un XOR multi-input si comporta come ho descritto sopra, il numero dispari di input veri è un output vero. La pagina wiki su XOR (en.wikipedia.org/wiki/XOR) concorda sul fatto che anche quello che ho detto è vero. Inoltre non ho mai visto un IC XOR multi-input, quindi non posso passare a fogli dati per provare a confutare ciò che ho detto. Logisim sembra essere l'unica cosa che implementa lo schema XOR multi-input con la logica "1 if and only ..." Se riesci a trovare un'altra fonte, ammetterò di sbagliarmi e che ci sono più definizioni di XOR.
Kris Bahnsen,

Buon chiarimento, grazie per aver dedicato del tempo alla ricerca degli standard molto più di quanto avessi io.
Kris Bahnsen,

11

Su un XOR a due gate, l'uscita è alta quando gli ingressi sono diversi. Se gli ingressi sono uguali, l'uscita è bassa.

Da qui questa tabella di verità:

inserisci qui la descrizione dell'immagine

È possibile trovare un gate XOR con più di due input, ma in realtà non sono un XOR a 3 input. Hanno XOR input A e B e il risultato di loro "R" è quindi XOR con input C. E il risultato di R XOR C è quindi XOR con input 4 e così via.

Ecco una tabella di verità per i tre input XOR mostrati:

inserisci qui la descrizione dell'immagine

Un semplice algoritmo di parità è bit XOR in un messaggio ricevuto, ad esempio Ethernet. Se il mittente e il destinatario sanno che XORing i bit del messaggio devono essere 0 (viene fornito un bit nel messaggio per poterne aggiungere uno in modo che un messaggio di qualsiasi lunghezza possa essere 0 quando XORed) allora il destinatario può sapere se 1 il bit è stato capovolto. Questo è un controllo di parità errato poiché può trovare solo un numero dispari di cambi di bit, ma mostra il concetto.


1
Sono un matematico, quella risposta mi sembra orribile. Capisco che è l'output generalmente inteso da un XOR a 3 input ma 01101000 mi sembra molto più logico. + Bella risposta.
Ben Crossley,

1

Se prendi 4 ingressi e dai due a uno XOR e due a un altro, prendi le due uscite XOR e le invii a un terzo XOR, la sua uscita fa quello che credi dovrebbe (credo).


1
Sono più preoccupato per i perché, non per i come. Grazie per la risposta, però.
gabrieljcs,

@root, in realtà, hai chiesto "Come dovrebbe comportarsi?" Non hai chiesto perché da nessuna parte. Questa è una risposta corretta, produce ((A⊕B) ⊕ (C⊕D)) che è lo stesso di un XOR a 4 ingressi, che è lo stesso di più XOR a 2 ingressi in cascata.
Kris Bahnsen,

Hai ragione. Scusa per il fraintendimento.
gabrieljcs,

1

XOR non è completamente un gate di parità. Se definisci l'output di XOR come 1 quando uno e solo uno degli input è 1, un XOR a tre input ti darebbe 0 per l'ingresso all-1. Questo non viene usato molto spesso e quindi ci sono poche porte XOR a 3 ingressi.

Cosa significa la maggior parte delle persone quando dicono che XOR è l'aggiunta di modulo 2 che è esattamente un controllo di parità. La maggior parte delle porte etichettate come XOR a 3 ingressi sono in realtà porte di aggiunta modulo 2. Per due ingressi, l'aggiunta di modulo 2 è la stessa cosa di XOR ma lo 0 dell'XOR sopra descritto è invece un 1 nelle porte del modulo 2. Le porte Modulo 2 con un numero arbitrario di ingressi possono essere prodotte da semplici porte XOR a due ingressi.


1

ho fatto un po 'di ricerca nel vedere la tua domanda e ho trovato un circuito integrato che è un gate XOR 3input. 74LVC1G386 da nxp. il collegamento al sito nxp che mostra i risultati di ricerca per questo numero di parte nel sito nxp è http://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10


2
Grazie per il tuo contributo, ma la tua risposta sarà inutile se NXP cambia il loro motore di ricerca. Riassumi ciò che hai trovato qui in modo che abbia un valore duraturo.
Joe Hass,

ho appena cercato di vedere se esiste una produzione che fornisce a XOR più di 3 input e ho trovato questo ... quindi ho pensato che sarebbe stato utile condividerlo ... ecco un link alla loro scheda tecnica nxp.com/documents/ data_sheet / 74LVC1G386.pdf
Mahesh Mohandasan

1
Per favore, non pubblicare un altro link! Dicci come funziona la cosa!
Joe Hass,

è un gate XOR a 3 ingressi che funziona proprio come abbiamo studiato / conosciuto. vale a dire, fornisce un elevato indice di crescita per un numero dispari di input elevati (come dalla scheda tecnica). Ecco perché ha condiviso il link. :)
Mahesh Mohandasan,

1

Quindi ci sono andato e ho provato! Ho scritto un piccolo file di verilog, simulato e guardato la forma d'onda.

Si scopre che l'interpretazione corretta per verilog è: C'è una quantità dispari di 1 nell'input AKA Interpretazione 2 di questo articolo

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

inserisci qui la descrizione dell'immagine


-1

Secondo la logica del semplice OR multi input, assume il valore più alto tra tutti gli input ma non prende una decisione. Per quanto riguarda EXOR (mischiato con half adder è solo una coincidenza, poiché non accade nella logica multi valore EXOR) prende una decisione su quale sia il più alto tra gli input ma se il più alto (incluso 0 + 0 .. 1 + 1) sono gli stessi che non riesce a selezionare tra gli input significa che non può prendere una decisione tra cui scegliere. Nessuna decadenza significa che l'output è zero. Ad esempio, se a qualcuno viene chiesto di acquistare il numero massimo di caramelle di una marca in un doller e se ci sono due marche (radix = 2), può selezionare quella con il conteggio dei dolci più alto, ma se entrambe le marche sono disponibili gratuitamente e non può selezionare alcun (significa 0,0) allo stesso modo se entrambi i marchi offrono lo stesso numero (1, 1) dei dolci non può prendere una decisione significa che l'output è zero. La stessa logica può essere estesa per 3, 4 o più numero di marche (radix superiore) di caramelle. Ciò vale anche per la logica multi valore. (x + x + .. + x = 0 dove x può avere qualsiasi valore), In tre ingressi EXOR gate 1 + 1 + 1 = 0 (rispetto all'interpretazione normale 1 + 1 + 1 = 1 che sembra essere errata, essendo mescolato con parità). VT Ingole, PhD


Questa spiegazione è inutilmente complicata e non sembra rispondere definitivamente alla domanda.
duskwuff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.