Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

XOR XNOR Gates

جزء من قسم الأساسيات في رحلة Verilog على Coddy. الدرس 41 من 90.

يتناول هذا الدرس بوابتي منطق إضافيتين: XOR (OR الحصرية) وXNOR (NOR الحصرية). تُعد هذه البوابات مفيدة لمقارنة البتات والتحقق من التكافؤ.

بوابة XOR

تُخرج بوابة XOR القيمة 1 عندما تكون المدخلات مختلفة.

جدول الحقيقة (بمدخلين):

about
000
011
101
110

بدائية بوابة Verilog:

xor(out, a, b);

المكافئ للتعيين المستمر:

assign out = a ^ b;

بوابة XNOR

تُخرج بوابة XNOR القيمة 1 عندما تكون input متطابقة. وهي عكس XOR.

جدول الحقيقة (بمدخلين):

about
001
010
100
111

البدائية المنطقية في Verilog:

xnor(out, a, b);

المكافئ للتعيين المستمر:

assign out = a ~^ b;   // أو ~(a ^ b)

مدخلات متعددة

يمكن أن تحتوي بوابات XOR وXNOR على أكثر من مدخلين. يكون الخرج:

  • XOR: يكون 1 إذا كان عدد فردي من المدخلات يساوي 1
  • XNOR: يكون 1 إذا كان عدد زوجي من المدخلات يساوي 1
xor(out, a, b, c);      // XOR بـ 3 مدخلات
xnor(out, p, q, r, s);  // XNOR بـ 4 مدخلات

مثال (XOR بثلاثة مُدخلات):

abcout
0000
0011
0101
0110
1001
1010
1100
1111

الاستخدامات الشائعة

الاستخداممثال
Compare ما إذا كان البِتان مختلفينxor(diff, a, b)
Compare ما إذا كان البِتان samexnor(same, a, b)
توليد التكافؤ (عدد فردي من 1's)xor(parity, data[0], data[1], data[2], data[3])
التحقق من التكافؤ (عدد زوجي من 1's)xnor(parity, data[0], data[1], data[2], data[3])

مثال على الشيفرة

module xor_xnor_demo (
  input a, b,
  output xor_out,
  output xnor_out
);
  xor(xor_out, a, b);
  xnor(xnor_out, a, b);
  endmodule

جدول الملخص

البوابةيكون الخرج 1 عندماالبدائيالعامل
XORتكون المدخلات مختلفةxor(out, a, b)^
XNORتكون المدخلات متماثلةxnor(out, a, b)~^
challenge icon

التحدي

أضف بوابات المنطق البدائية المفقودة استنادًا إلى المهام.

ما يجب فعله:

  1. أنشئ بوابة XOR بمخرج xor_result ومدخلين هما x وy
  2. أنشئ بوابة XNOR بمخرج xnor_result ومدخلين هما x وy

جرّب بنفسك

module xor_xnor_challenge (
  input x,
  input y,
  output xor_result,
  output xnor_result
);
  
  // TODO: أضف بوابة XOR (xor_result = x ^ y)
  
  // TODO: أضف بوابة XNOR (xnor_result = x ~^ y)

endmodule
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Verilog عبر الإنترنت