If - Else
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 53 dari 90.
Pernyataan if-else memungkinkan kamu memilih antara dua tindakan yang berbeda berdasarkan suatu kondisi. Jika kondisinya benar, satu blok akan dijalankan. Jika salah, blok lainnya akan dijalankan.
Pernyataan if-else memberi kodemu titik pengambilan keputusan: lakukan satu hal jika kondisinya benar, lakukan hal lain jika kondisinya salah.
Sintaks:
if (condition) begin
// Dijalankan saat condition bernilai true (1)
end else begin
// Dijalankan saat condition bernilai false (0)
endContoh Sederhana
if (reset) begin
count = 0;
end else begin
count = count + 1;
end- Jika
resetbernilai 1 →countmenjadi 0 - Jika
resetbernilai 0 →countbertambah 1
Beberapa Pernyataan
Gunakan begin dan end saat kamu memiliki lebih dari satu pernyataan:
if (enable) begin
out = data_in;
valid = 1;
end else begin
out = 0;
valid = 0;
endPercabangan If-Else dengan Beberapa Kondisi
Kamu dapat merangkai pernyataan if-else:
if (a > b) begin
max = a;
end else if (b > a) begin
max = b;
end else begin
max = a; // a dan b sama
endAturan Penting
| Aturan | Penjelasan |
|---|---|
else bersifat opsional | Kamu bisa menggunakan if tanpa else |
else berlaku untuk if terdekat | Berhati-hatilah saat membuat nesting |
Gunakan begin/end untuk beberapa pernyataan | Wajib digunakan jika ada lebih dari satu baris |
Tantangan
Yang harus dilakukan:
- Tambahkan pernyataan
if-elseyang hilang agar ini berfungsi. - Saat
enablebernilai 1,outharus sama dengana & b. - Saat
enablebernilai 0,outharus sama dengana | b.
Coba sendiri
module ifelse_challenge;
reg a, b, enable;
reg out;
initial begin
a = 1;
b = 0;
enable = 1;
// TODO: Tambahkan pernyataan if-else
// Jika enable bernilai 1: out = a & b
// Jika tidak: out = a | b
$display("out = %d (should be 0 because 1&0=0)", out);
$finish;
end
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
1Pengantar
Apa Itu VerilogPerangkat Keras vs Perangkat LunakModul PertamamuKomentarTingkat Abstraksi Desain4Operator Bagian 1
Operator AritmetikaOperator ModuloOperator PerbandinganUlasan, Matematika SederhanaOperator Bitwise7Penugasan dan Gerbang
Penugasan KontinuPenugasan dengan OperatorPrimitif Gerbang BawaanGerbang AND, OR, NOTGerbang XOR, XNORUlasan: Rangkaian Gerbang Logika10Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Komparator SederhanaPernyataan CaseCasex dan CasezRangkuman: Desain ALU5Operator Bagian 2
Operator LogikaOperator ReduksiOperator GeserOperator PenggabunganOperator KondisionalRangkuman, Tantangan Operator3Sistem Bilangan
Representasi BinerBilangan BerukuranBilangan Tanpa UkuranBilangan NegatifNilai Khusus X dan ZRingkasan: Format Bilangan6Modul
Struktur ModulPort Input dan OutputPort InoutInstansiasi ModulPemetaan Port Berdasarkan NamaPemetaan Port Berdasarkan UrutanRangkuman: Bangun Modul9Blok Prosedural
Blok alwaysBlok initialDaftar SensitivitasPenugasan BlockingPenugasan Non-BlockingRangkuman: always vs initial15Pengendali Lampu Lalu Lintas
Menentukan StatusLogika Mesin StatusLatihan sendiri: Compiler Verilog online