Menu
CoddyTech

Gerbang XOR, XNOR

Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 41 dari 90.

Pelajaran ini membahas dua gerbang logika tambahan: XOR (OR eksklusif) dan XNOR (NOR eksklusif). Gerbang ini berguna untuk membandingkan bit dan memeriksa paritas.

Gerbang XOR

Gerbang XOR menghasilkan 1 saat inputnya berbeda.

Tabel Kebenaran (2 masukan):

about
000
011
101
110

Primitif gerbang Verilog:

xor(out, a, b);

Setara dengan penugasan kontinu:

assign out = a ^ b;

Gerbang XNOR

Gerbang XNOR menghasilkan 1 saat inputnya sama. Gerbang ini adalah kebalikan dari XOR.

Tabel Kebenaran (2 masukan):

about
001
010
100
111

Primitif gerbang Verilog:

xnor(out, a, b);

Padanan penugasan kontinu:

assign out = a ~^ b;   // atau ~(a ^ b)

Beberapa Input

Gerbang XOR dan XNOR dapat memiliki lebih dari 2 input. Outputnya adalah:

  • XOR: 1 jika jumlah input bernilai 1 adalah ganjil
  • XNOR: 1 jika jumlah input bernilai 1 adalah genap
xor(out, a, b, c);      // XOR dengan 3 input
xnor(out, p, q, r, s);  // XNOR dengan 4 input

Contoh (XOR 3-input):

abcout
0000
0011
0101
0110
1001
1010
1100
1111

Penggunaan Umum

PenggunaanContoh
Membandingkan apakah dua bit berbedaxor(diff, a, b)
Membandingkan apakah dua bit samaxnor(same, a, b)
Menghasilkan paritas (jumlah 1 ganjil)xor(parity, data[0], data[1], data[2], data[3])
Memeriksa paritas (jumlah 1 genap)xnor(parity, data[0], data[1], data[2], data[3])

Contoh Kode

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

Tabel Ringkasan

GerbangOutput bernilai 1 jikaPrimitifOperator
XORInput berbedaxor(out, a, b)^
XNORInput samaxnor(out, a, b)~^
challenge icon

Tantangan

Tambahkan primitif gerbang yang belum ada sesuai dengan tugas.

Yang harus dilakukan:

  1. Buat gerbang XOR dengan output xor_result dan input x dan y
  2. Buat gerbang XNOR dengan output xnor_result dan input x dan y

Coba sendiri

module xor_xnor_challenge (
  input x,
  input y,
  output xor_result,
  output xnor_result
);
  
  // TODO: Tambahkan gerbang XOR (xor_result = x ^ y)
  
  // TODO: Tambahkan gerbang XNOR (xnor_result = x ~^ y)

endmodule
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Verilog online