Menu
Coddy logo textTech

שערי XOR ו-XNOR

חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 41 מתוך 90.

השיעור הזה עוסק בשתי שערים לוגיים נוספים: XOR (OR בלעדי) ו-XNOR (NOR בלעדי). שערים אלה שימושיים להשוואת ביטים ולבדיקת זוגיות.

שער XOR

שער XOR מוציא 1 כאשר הקלטים שונים.

טבלת אמת (2 קלטים):

about
000
011
101
110

פרימיטיב שער של Verilog:

xor(out, a, b);

שקול להשמה רציפה:

assign out = a ^ b;

שער XNOR

שער XNOR מפיק 1 כאשר הקלטים זהים. הוא ההפך מ-XOR.

טבלת אמת (2 קלטים):

about
001
010
100
111

פרימיטיב שער Verilog:

xnor(out, a, b);

הקצאה רציפה שקולה:

assign out = a ~^ b;   // או ~(a ^ b)

מספר קלטים

לשערי XOR ו-XNOR יכולים להיות יותר מ-2 קלטים. הפלט הוא:

  • XOR: 1 אם מספר אי-זוגי של קלטים הוא 1
  • XNOR: 1 אם מספר זוגי של קלטים הוא 1
xor(out, a, b, c);      // XOR עם 3 קלטים
xnor(out, p, q, r, s);  // XNOR עם 4 קלטים

דוגמה (XOR עם 3 קלטים):

abcout
0000
0011
0101
0110
1001
1010
1100
1111

שימושים נפוצים

שימושדוגמה
בדיקה אם שני ביטים שוניםxor(diff, a, b)
בדיקה אם שני ביטים זהיםxnor(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 אונליין