Bagaimana XOR dengan lebih dari 2 input seharusnya berfungsi?

27

Saya baru saja mulai belajar teknik komputer, dan saya ragu tentang perilaku gerbang XOR.

Saya telah memproyeksikan sirkuit dengan Logisim, yang XOR-nya berperilaku berbeda dari apa yang telah saya pelajari. Bagi saya, itu harus berperilaku sebagai gerbang paritas, memberikan output tinggi setiap kali input menerima kombinasi ganjil. Meskipun demikian, tidak lebih dari dua input. Bagaimana seharusnya berperilaku?

Saya juga membaca di sebuah buku bahwa gerbang XOR tidak diproduksi dengan lebih dari dua input. Apakah itu benar? Mengapa?

gabrieljcs
sumber
1
Mengapa tidak (atau hampir tidak pernah) dengan> 2 input? Dua kegunaan khas gerbang XOR adalah 1) untuk memeriksa kesetaraan, dan 2) untuk mengontrol / memanipulasi polaritas sinyal. Tidak masuk akal untuk lebih dari 2 input.
Wouter van Ooijen
1
Bukankah jumlah dalam penambah-penuh diwakili sebagai A ^ B ^ Cin?
gabrieljcs
Anda dapat mengekspresikannya seperti itu, tetapi itu tidak berarti bahwa itu adalah cara yang baik untuk mengimplementasikannya.
Wouter van Ooijen
1
Baru saja memeriksa versi Logisim saya, dan "1 dan hanya 1" tampaknya merupakan perilaku default, tetapi ada opsi untuk mengubahnya ke fungsi paritas ganjil.
Joe Hass
Memang, Joe. Tautan ini memiliki diskusi mengenai hal itu, dijawab oleh pengembang Logisim, Carl Burch.
gabrieljcs

Jawaban:

23

Ada beberapa sudut pandang tentang bagaimana gerbang OR-eksklusif dengan lebih dari dua input seharusnya berperilaku. Paling sering seperti gerbang XOR berperilaku seperti kaskade gerbang 2-input dan melakukan fungsi paritas ganjil. Namun, beberapa orang menafsirkan arti eksklusif-ATAU lebih harfiah dan mengatakan bahwa output harus menjadi 1 jika dan hanya jika tepat salah satu input adalah 1. Saya tampaknya ingat bahwa Logisim menggunakan interpretasi yang terakhir, dan di suatu tempat di ingatan berkarat saya, saya telah melihatnya di perpustakaan sel ASIC. Salah satu simbol standar internasional untuk gerbang XOR adalah persegi panjang berlabel =1yang tampaknya lebih konsisten dengan definisi "1 dan hanya 1".

EDIT: Definisi eksklusif-OR sebagai "1 dan hanya 1" tidak umum tetapi dapat ditemukan. Sebagai contoh, IEEE-Std91a-1991 memberikan simbol untuk eksklusif-OR pada hal. 62 dengan catatan: "Output berada pada status 1-nya jika satu dan hanya satu dari dua input yang berada pada status 1-nya." Untuk lebih dari 2 input, standar merekomendasikan untuk menggunakan simbol "paritas ganjil". Situs web yang membahas situasi membingungkan ini termasuk XOR: Gerbang Yang Menarik dan demo gerbang di TAMS . Pencarian google juga akan muncul situs yang mengklaim bahwa, secara tegas, tidak ada yang disebut gerbang XOR dengan lebih dari dua input.

Joe Hass
sumber
4
Sejauh yang saya ketahui, yang kedua (1 dan hanya 1) adalah satu-satunya cara yang benar untuk melakukan ini - hal lain tidak benar-benar eksklusif .
Polinom
3
Tidak ada sudut pandang yang berbeda, kedua titik ini secara teknis benar, namun "1 jika hanya jika salah satu inputnya adalah 1" tidak berkembang seperti yang mungkin Anda pikirkan. Saat Anda mengalirkan 2 input XOR, setiap output memasukkan pin XOR ketiga ini menunjukkan titik di atas. Gerbang multi-input diturunkan dari 2 input primitif. Dengan demikian tabel kebenaran input adalah ((A⊕B) ⊕ (C⊕D)) yang menghasilkan hasil akhir 1 jika ada jumlah ganjil dari input yang benar.
Kris Bahnsen
@KrisBahnsen Seperti yang ditunjukkan OP, memang ada dua sudut pandang (coba XOR default di Logisim jika Anda membutuhkan bukti). Pernyataan Anda bahwa gerbang multi-input berasal dari primitif 2-input diberikan seolah-olah itu adalah kebenaran universal tetapi kami telah memberi Anda contoh tandingan.
Joe Hass
@ JoHass, saya tidak pernah menggunakan logisim, saya terutama menggunakan LogicWorks; di mana, XOR multi-input berperilaku seperti yang saya jelaskan di atas, jumlah ganjil dari input yang benar adalah output yang benar. Halaman wiki di XOR (en.wikipedia.org/wiki/XOR) setuju bahwa apa yang saya katakan juga benar. Saya juga belum pernah benar-benar melihat multi-input XOR IC, jadi saya tidak bisa beralih ke lembar data untuk mencoba dan menyangkal apa yang saya katakan. Logisim tampaknya menjadi satu-satunya yang mengimplementasikan skema multi-input XOR dengan logika "1 jika dan hanya ..." Jika Anda dapat menemukan sumber lain, saya akan mengakui bahwa saya salah dan ada beberapa definisi XOR.
Kris Bahnsen
Klarifikasi yang baik, terima kasih telah meluangkan waktu untuk meneliti standar jauh lebih banyak daripada yang saya miliki.
Kris Bahnsen
11

Pada dua gerbang XOR output tinggi ketika input berbeda. Jika inputnya sama, outputnya rendah.

Oleh karena itu tabel kebenaran ini:

masukkan deskripsi gambar di sini

Anda dapat menemukan gerbang XOR yang memiliki lebih dari dua input, tetapi sebenarnya bukan XOR 3 input. Mereka XOR input A dan B dan hasilnya "R" kemudian XOR dengan input C. Dan hasil R XOR C kemudian XOR dengan input 4 dan seterusnya.

Berikut adalah tabel kebenaran untuk tiga input XOR yang ditunjukkan:

masukkan deskripsi gambar di sini

Algoritma paritas sederhana adalah XORing bit dalam pesan yang diterima misalnya Ethernet. Jika pengirim dan penerima tahu bahwa XORing bit pesan harus 0 (satu bit dalam pesan disediakan untuk dapat menambahkan satu sehingga pesan berapa pun panjangnya dapat 0 ketika XORed) maka penerima dapat mengetahui jika 1 bit telah dibalik. Ini adalah pemeriksaan paritas buruk karena hanya dapat menemukan jumlah bit perubahan yang ganjil, tetapi menunjukkan konsepnya.

iQt
sumber
1
Saya seorang ahli matematika, jawaban itu tampak mengerikan bagi saya. Saya mengerti bahwa ini adalah output yang umumnya dimaksudkan oleh XOR 3-input tetapi 01101000 tampaknya jauh lebih logis bagi saya. + Jawaban yang bagus.
Ben Crossley
1

Jika Anda mengambil 4 input dan mengumpankan dua ke satu XOR dan dua ke yang lain kemudian, ambil dua output XOR dan berikan mereka ke XOR ketiga, outputnya melakukan apa yang Anda yakini seharusnya (saya pikir).

Andy alias
sumber
1
Saya lebih peduli tentang mengapa, bukan bagaimana. Terima kasih atas jawabannya.
gabrieljcs
@root, sebenarnya, Anda bertanya, "Bagaimana seharusnya bersikap?" Anda tidak bertanya mengapa di mana pun. Ini adalah jawaban yang benar, menghasilkan ((A⊕B) ⊕ (C⊕D)) yang sama dengan 4input XOR, yang sama dengan beberapa 2input XORs yang digabungkan menjadi satu.
Kris Bahnsen
Kamu benar. Maaf atas kesalahpahaman ini.
gabrieljcs
1

XOR tidak sepenuhnya merupakan gerbang paritas. Jika Anda mendefinisikan output XOR sebagai 1 ketika satu dan hanya satu dari input adalah 1 maka tiga input XOR akan memberi Anda 0 untuk semua-1 input. Ini tidak sering digunakan sehingga ada beberapa gerbang XOR 3-input.

Apa yang kebanyakan orang maksud ketika mereka mengatakan XOR adalah penambahan modulo 2 yang merupakan pemeriksa paritas. Sebagian besar gerbang berlabel 3-input XOR sebenarnya adalah gerbang penambahan modulo 2. Untuk dua input, penambahan modulo 2 adalah hal yang sama dengan XOR tetapi 0 dari XOR yang dijelaskan di atas adalah bukan 1 di gerbang modulo 2. Gerbang Modulo 2 dengan jumlah input sewenang-wenang dapat dihasilkan dari gerbang XOR dua-input sederhana.

Duggie
sumber
1

Saya melakukan sedikit pencarian untuk melihat pertanyaan Anda dan menemukan IC yang merupakan gerbang XOR 3input. 74LVC1G386 dari nxp. tautan ke situs nxp yang menampilkan hasil pencarian untuk nomor bagian ini di situs nxp adalah http://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10

Mahesh Mohandasan
sumber
2
Terima kasih telah berkontribusi, tetapi jawaban Anda tidak ada artinya jika NXP mengubah mesin pencari mereka. Harap rangkum apa yang Anda temukan di sini sehingga akan bernilai lama.
Joe Hass
saya hanya mencari untuk melihat apakah ada manufaktur menyediakan XOR dengan lebih dari 3 input dan menemukan ini ... jadi saya pikir itu akan membantu saya membagikannya ... berikut ini tautan ke lembar data mereka nxp.com/documents/ data_sheet / 74LVC1G386.pdf
Mahesh Mohandasan
1
Tolong jangan memposting tautan lain! Beri tahu kami cara kerjanya!
Joe Hass
dengan 3 input gerbang XOR yang fungsinya sama seperti yang telah kita pelajari / ketahui. yaitu., ia memberikan o / p tinggi untuk jumlah ganjil dari input tinggi (seperti dari lembar data). itulah mengapa berbagi tautan. :)
Mahesh Mohandasan
1

Jadi, saya pergi ke sana dan menguji! Saya menulis file Verilog kecil, disimulasikan dan melihat bentuk gelombang.

Ternyata interpretasi yang benar untuk Verilog adalah: Ada jumlah ganjil 1 di input AKA Interpretasi 2 artikel ini

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

masukkan deskripsi gambar di sini

mentatkgs
sumber
-1

Sesuai logika multi input ATAU gerbang, ini mengasumsikan nilai tertinggi di antara semua input namun tidak mengambil keputusan. Mengenai EXOR (dicampur dengan setengah adder menjadi hanya kebetulan, karena tidak terjadi dalam logika multi nilai EXOR) diperlukan keputusan yang mana yang tertinggi di antara input tetapi jika tertinggi (termasuk 0 + 0 .. 1 + 1) sama dengan gagal memilih di antara input berarti tidak dapat mengambil keputusan mana yang dipilih. Tidak ada keputusan berarti output nol. Misalnya jika seseorang diminta untuk membeli jumlah maksimum permen dari satu merek dalam satu boneka dan jika ada dua merek (radix = 2) maka ia dapat memilih salah satu yang memiliki jumlah manis tertinggi tetapi jika kedua merek tersedia tanpa biaya, ia tidak dapat memilih (berarti 0,0) juga jika kedua merek menawarkan nomor yang sama (1, 1) permen yang tidak dapat diambil keputusannya berarti outputnya nol. Logika yang sama dapat diperluas untuk 3, 4 atau lebih jumlah merek (radix lebih tinggi) dari permen. Ini sama berlaku untuk logika multi nilai. (x + x + .. + x = 0 di mana x dapat memiliki nilai apa pun), Dalam tiga input gerbang EXOR 1 + 1 + 1 = 0 (berlawanan dengan interpretasi normal 1 + 1 + 1 = 1 yang tampaknya salah, karena tercampur dengan paritas). VT Ingole, PhD

vijay ingole
sumber
Penjelasan ini tidak perlu rumit, dan sepertinya tidak menjawab pertanyaan secara definitif.
duskwuff