XOR ที่มีอินพุตมากกว่า 2 ควรทำงานอย่างไร?


27

ฉันเพิ่งเริ่มเรียนวิศวกรรมคอมพิวเตอร์และฉันมีข้อสงสัยเกี่ยวกับพฤติกรรมของประตู XOR

ฉันฉายวงจรกับ Logisim ซึ่ง XOR นั้นมีพฤติกรรมแตกต่างจากสิ่งที่ฉันได้เรียนรู้ สำหรับฉันมันควรทำตัวเป็นประตูพาริตี้ให้ผลผลิตสูงเมื่อใดก็ตามที่อินพุตได้รับชุดค่าผสมที่แปลก อย่างไรก็ตามมันไม่ได้มีไว้สำหรับอินพุตมากกว่าสองรายการ มันควรทำอย่างไร?

ฉันยังอ่านในหนังสือเล่มที่ประตูแฮคเกอร์ไม่ได้ผลิตด้วยอินพุตมากกว่าสองช่อง ถูกต้องไหม ทำไม?


1
ทำไมถึงไม่ (หรือแทบจะไม่เคย) ด้วยอินพุต> 2 การใช้ประตูแบบ XOR ทั่วไปสองแบบคือ 1) เพื่อตรวจสอบความเท่าเทียมกันและ 2) เพื่อควบคุม / จัดการขั้วของสัญญาณ ไม่มีความหมายสำหรับอินพุตมากกว่า 2 รายการ
Wouter van Ooijen

1
ยอดรวมในโฆษณาบวกจะไม่แสดงเป็น A ^ B ^ Cin หรือไม่
gabrieljcs

คุณสามารถแสดงได้ด้วยวิธีนี้ แต่ไม่ได้หมายความว่ามันเป็นวิธีที่ดีในการนำไปใช้
Wouter van Ooijen

1
เพิ่งตรวจสอบรุ่น Logisim ของฉันและดูเหมือนว่า "1 และ 1 เท่านั้น" จะเป็นพฤติกรรมเริ่มต้น แต่มีตัวเลือกให้เปลี่ยนเป็นฟังก์ชันคี่ - พาริตี้
Joe Hass

แน่นอนโจ ลิงค์นี้มีการอภิปรายเกี่ยวกับคาร์ลเบอร์เชิร์ชนักพัฒนาของ Logisim ที่ได้รับคำตอบ
gabrieljcs

คำตอบ:


23

มีมุมมองที่แตกต่างกันเกี่ยวกับวิธีที่เกตพิเศษหรือประตูที่มีอินพุตมากกว่าสองตัวควรทำงาน ส่วนใหญ่มักจะเป็นประตู XOR ที่ทำหน้าที่เหมือนน้ำตกของประตูเข้า 2 และดำเนินการฟังก์ชั่นคี่ -Pity อย่างไรก็ตามบางคนตีความความหมายของเอกสิทธิ์ - หรือมากกว่าตัวอักษรและพูดว่าผลลัพธ์ควรเป็น 1 ถ้าหากว่าหนึ่งในอินพุตคือ 1 ฉันดูเหมือนจะจำได้ว่า Logisim ใช้การตีความหลังและที่อื่นใน ความทรงจำที่เป็นสนิมของฉันฉันได้เห็นมันในห้องสมุดเซลล์ ASIC หนึ่งในสัญลักษณ์มาตรฐานสากลสำหรับประตู XOR คือสี่เหลี่ยมที่มีป้ายกำกับ=1ซึ่งดูเหมือนจะสอดคล้องกับคำนิยาม "1 และเพียง 1"

แก้ไข: คำจำกัดความของเอกสิทธิ์ OR หรือ "1 และเพียง 1" เป็นเรื่องแปลก แต่ก็สามารถพบได้ ตัวอย่างเช่น IEEE-Std91a-1991 ให้สัญลักษณ์แทนเอกสิทธิ์-OR ใน p 62 โดยมีหมายเหตุ: "เอาต์พุตยืนที่สถานะ 1 ถ้ามีเพียงหนึ่งอินพุตเท่านั้นและหนึ่งในสองอินพุตนั้นอยู่ที่สถานะ 1" สำหรับอินพุตมากกว่า 2 อินพุตมาตรฐานแนะนำให้ใช้สัญลักษณ์ "คี่พาริตี้" แทน เว็บไซต์ที่หารือถึงสถานการณ์ความสับสนนี้ ได้แก่แฮคเกอร์: น่าสนใจประตูและการสาธิตประตู TAMS การค้นหาของ Google จะทำให้ไซต์ที่อ้างว่าพูดอย่างเคร่งครัดไม่มีสิ่งเช่นประตู XOR ที่มีอินพุตมากกว่าสองรายการ


4
เท่าที่ฉันกังวลคนที่สอง (1 และมีเพียง 1) เป็นวิธีเดียวที่ถูกต้องในการทำเช่นนี้ - สิ่งอื่นไม่ได้จริงๆแต่เพียงผู้เดียว
พหุนาม

3
ไม่มีมุมมองที่แตกต่างกันจุดทั้งสองนั้นถูกต้องทางเทคนิคอย่างไรก็ตาม "1 หากเฉพาะถ้าหนึ่งในอินพุตเป็น 1" ไม่ขยายเท่าที่คุณคิด เมื่อคุณเรียงซ้อน 2INput XOR แต่ละเอาต์พุตป้อนเข้าสู่หมุดของ XOR ตัวที่สามนี่จะแสดงจุดดังกล่าวข้างต้น Multi-input Gates มาจาก 2input เบื้องต้น ดังนั้นตารางความจริง 4input คือ ((A⊕B) ⊕ (C⊕D)) ซึ่งส่งผลให้ 1 เอาต์พุตสุดท้ายหากมีจำนวนอินพุตจริงที่เป็นเลขคี่
Kris Bahnsen

@KrisBahnsen ตามที่ OP ชี้ให้เห็นมีสองมุมมองแน่นอน (ลองใช้ XOR เริ่มต้นใน Logisim หากคุณต้องการหลักฐาน) การยืนยันของคุณว่าประตูแบบหลายอินพุตนั้นได้มาจากการป้อนข้อมูลแบบดั้งเดิมแบบ 2 อินพุตราวกับว่ามันเป็นความจริงสากล แต่เราได้ยกตัวอย่างให้คุณแล้ว
Joe Hass

@ JoeHass ฉันไม่เคยใช้ logisim ฉันใช้ LogicWorks เป็นหลัก ซึ่ง XOR แบบหลายอินพุตทำงานตามที่ฉันอธิบายไว้ข้างต้นจำนวนจริงของอินพุตที่แท้จริงคือเอาต์พุตจริง หน้าวิกิบน XOR (en.wikipedia.org/wiki/XOR) ยอมรับว่าสิ่งที่ฉันพูดนั้นเป็นจริงเช่นกัน ฉันยังไม่เคยเห็น XOR IC แบบหลายอินพุตจริงๆดังนั้นฉันจึงไม่สามารถหันไปใช้แผ่นข้อมูลเพื่อลองและพิสูจน์หักล้างสิ่งที่ฉันพูด Logisim ดูเหมือนจะเป็นสิ่งเดียวที่ใช้รูปแบบ XOR แบบมัลติอินพุทพร้อมกับตรรกะ "1 if and only ... " หากคุณสามารถค้นหาแหล่งอื่นฉันจะยอมรับว่าฉันผิดและมีคำจำกัดความของ XOR ที่หลากหลาย
Kris Bahnsen

คำอธิบายที่ดีขอบคุณที่สละเวลาในการค้นคว้ามาตรฐานมากกว่าที่ฉันมี
Kris Bahnsen

11

ที่เกต XOR สองตัวเอาต์พุตจะสูงเมื่ออินพุตแตกต่างกัน หากอินพุตเหมือนกันเอาต์พุตจะต่ำ

ดังนั้นตารางความจริงนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถหาเกต XOR ที่มีอินพุตมากกว่าสองตัวได้ แต่จริง ๆ แล้วมันไม่ใช่ XOR 3 อินพุต พวกเขาอินพุต XOR A และ B และผลลัพธ์ของพวกเขา "R" คือ XOR กับอินพุต C และผลลัพธ์ของ R XOR C นั้นคือ XOR ที่มีอินพุต 4 เป็นต้น

นี่คือตารางความจริงสำหรับอินพุต XOR สามตัวที่แสดง:

ป้อนคำอธิบายรูปภาพที่นี่

อัลกอริธึมที่เท่าเทียมกันง่าย ๆ คือบิต XORing ในข้อความที่ได้รับเช่นอีเธอร์เน็ต หากผู้ส่งและผู้รับรู้ว่า XORing บิตข้อความควรเป็น 0 (หนึ่งบิตในข้อความนั้นมีไว้เพื่อให้สามารถเพิ่มหนึ่งเพื่อให้ข้อความที่มีความยาวใด ๆ สามารถเป็น 0 เมื่อ XORed) จากนั้นผู้รับสามารถทราบว่า 1 บิตถูกพลิก นี่เป็นการตรวจสอบพาริตีที่ไม่ดีเนื่องจากสามารถตรวจพบการเปลี่ยนแปลงบิตจำนวนคี่เท่านั้น แต่แสดงแนวคิด


1
ฉันเป็นนักคณิตศาสตร์คำตอบนั้นดูน่ากลัวสำหรับฉัน ฉันเข้าใจว่านั่นเป็นผลลัพธ์ที่ตั้งใจไว้โดย XOR 3 ตัว แต่ 01101000 นั้นดูสมเหตุสมผลกว่าสำหรับฉัน + คำตอบที่ดี
Ben Crossley

1

หากคุณใช้อินพุต 4 ตัวและให้ฟีดสองถึงหนึ่ง XOR และอีกสองไปยังอีกตัวหนึ่งให้ใช้ XOR สองเอาต์พุตและป้อนเข้ากับ XOR ที่สามเอาต์พุตของมันจะเป็นสิ่งที่คุณเชื่อว่าควรจะเป็น


1
ฉันกังวลมากขึ้นเกี่ยวกับ whys ไม่ชำนาญ ขอบคุณสำหรับคำตอบ
gabrieljcs

@ รูทจริง ๆ แล้วคุณถามว่า "มันควรทำยังไงดี?" คุณไม่ได้ถามทำไม นี่เป็นคำตอบที่ถูกต้องมันให้ผล ((A⊕B) ⊕ (C⊕D)) ซึ่งเหมือนกับ 4input XOR ซึ่งเหมือนกับ 2input XORs หลายตัวเรียงซ้อนกัน
Kris Bahnsen

คุณถูก. ขอโทษที่เข้าใจผิด.
gabrieljcs

1

XOR ไม่ได้เป็นประตูที่เท่าเทียมกันอย่างสมบูรณ์ หากคุณกำหนดเอาต์พุตของ XOR เป็น 1 เมื่ออินพุตหนึ่งและหนึ่งเดียวเท่านั้นคือ 1 ดังนั้นอินพุต XOR สามตัวจะให้ 0 สำหรับอินพุต all-1 สิ่งนี้ไม่ได้ใช้บ่อยมากและดังนั้นจึงมีประตูสามประตูเข้าน้อย

สิ่งที่คนส่วนใหญ่หมายถึงเมื่อพวกเขาพูดว่าแฮคเกอร์คือมอดูโล 2 นอกจากนี้ซึ่งเป็นตัวตรวจสอบความเท่าเทียม ประตูส่วนใหญ่ที่มีป้ายกำกับว่าเป็น XOR แบบ 3 อินพุทนั้นเป็นประตูแบบโมดูโล 2 สำหรับสองอินพุต modulo 2 นอกจากนี้เป็นสิ่งเดียวกันกับ XOR แต่ 0 จาก XOR ที่อธิบายข้างต้นแทน 1 ใน modulo 2 ประตู Modulo 2 ประตูที่มีจำนวนอินพุตโดยพลการสามารถสร้างได้จากประตู XOR แบบสองอินพุตอย่างง่าย


1

ฉันทำการค้นหาเล็กน้อยเพื่อดูคำถามของคุณและพบ IC ซึ่งเป็น 3INput XOR gate 74LVC1G386 จาก nxp ลิงค์ไปยังเว็บไซต์ nxp ที่แสดงผลการค้นหาสำหรับหมายเลขชิ้นส่วนนี้ในเว็บไซต์ nxp คือhttp://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10


2
ขอบคุณที่ร่วมให้ข้อมูล แต่คำตอบของคุณจะไร้ค่าถ้า NXP เปลี่ยนเครื่องมือค้นหา โปรดสรุปสิ่งที่คุณพบที่นี่เพื่อให้มันมีค่ายั่งยืน
Joe Hass

ฉันแค่ค้นหาเพื่อดูว่ามีผู้ผลิตใดให้ XOR มากกว่า 3 อินพุตและพบอันนี้ ... ดังนั้นคิดว่ามันจะช่วยให้ฉันแบ่งปันได้ ... นี่คือลิงค์ไปยังแผ่นข้อมูลของพวกเขาnxp.com/documents/ data_sheet / 74LVC1G386.pdf
Mahesh Mohandasan

1
กรุณาอย่าโพสต์ลิงค์อื่น! บอกเราว่ามันทำงานอย่างไร!
Joe Hass

มันเป็นประตู XOR 3 อินพุทซึ่งทำงานเหมือนกับที่เราศึกษา / รู้ เช่น. มันให้สูง o / p สำหรับจำนวนอินพุตสูงแปลก (จากแผ่นข้อมูล). นั่นคือเหตุผลที่แชร์ลิงค์ :)
Mahesh Mohandasan

1

ดังนั้นฉันไปที่นั่นและทดสอบ! ฉันเขียนไฟล์ verilog ขนาดเล็กจำลองและดูรูปคลื่น

ปรากฎการตีความที่ถูกต้องสำหรับ verilog คือ: มีจำนวนคี่ 1 ในการตีความ AKA 2 ของบทความนี้

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

ป้อนคำอธิบายรูปภาพที่นี่


-1

ตามตรรกะของเกตหลายอินพุตหรือเกตแบบง่ายมันจะถือว่าค่าสูงสุดในทุกอินพุตอย่างไรก็ตามมันไม่ได้ทำการตัดสินใจ ในเรื่องที่เกี่ยวกับ EXOR (การผสมกับ adder ครึ่งหนึ่งเป็นแค่เรื่องบังเอิญเพราะมันไม่ได้เกิดขึ้นในหลายค่าตรรกะ EXOR) มันจะทำการตัดสินใจว่าอันไหนที่สูงที่สุดในบรรดาอินพุต แต่ถ้าค่าสูงสุด (รวม 0 + 0 .. 1 + 1) เหมือนกันล้มเหลวในการเลือกท่ามกลางอินพุตหมายความว่าไม่สามารถตัดสินใจได้ว่าจะเลือกแบบใด ไม่มีการตัดสินใจหมายถึงผลลัพธ์เป็นศูนย์ตัวอย่างเช่นถ้ามีคนขอให้ซื้อขนมหวานจำนวนหนึ่งแบรนด์สูงสุดในหนึ่ง doller และถ้ามีสองแบรนด์ (radix = 2) จากนั้นเขาสามารถเลือกหนึ่งที่มีจำนวนหวานสูงสุด แต่ถ้าทั้งสองแบรนด์ มีให้บริการโดยไม่เสียค่าใช้จ่ายเขาไม่สามารถเลือกใด ๆ (หมายถึง 0,0) เช่นกันหากทั้งสองแบรนด์มีหมายเลขเดียวกัน (1, 1) ของหวานที่เขาไม่สามารถตัดสินใจได้หมายความว่าผลผลิตเป็นศูนย์ ตรรกะเดียวกันสามารถขยายได้สำหรับจำนวน 3, 4 หรือมากกว่าของแบรนด์ (radix ที่สูงขึ้น) ของขนม สิ่งนี้ใช้ได้กับตรรกะค่าหลายค่าเท่ากัน (x + x + .. + x = 0 โดยที่ x สามารถมีค่าใด ๆ ), ในสามอินพุต EXOR gate 1 + 1 + 1 = 0 (เทียบกับการตีความปกติ 1 + 1 + 1 = 1 ซึ่งดูเหมือนว่าผิด ผสมกับความเท่าเทียมกัน) VT Ingole, PhD


คำอธิบายนี้ซับซ้อนโดยไม่จำเป็นและดูเหมือนจะไม่ตอบคำถามอย่างแน่นอน
duskwuff
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.