Menu
Coddy logo textTech

If-else

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 53 z 90.

Instrukcja if-else pozwala wybrać między dwiema różnymi czynnościami w zależności od warunku. Jeśli warunek jest prawdziwy, wykonuje się jeden blok. Jeśli jest fałszywy, wykonuje się drugi blok.

Instrukcja if-else daje twojemu kodowi możliwość podjęcia decyzji: wykonaj jedną rzecz, jeśli warunek jest prawdziwy, a inną, jeśli warunek jest fałszywy.

Składnia:

if (condition) begin
  // Wykonuje się, gdy condition ma wartość true (1)
end else begin
  // Wykonuje się, gdy condition ma wartość false (0)
end

Prosty przykład

if (reset) begin
  count = 0;
end else begin
  count = count + 1;
end
  • Jeśli reset ma wartość 1 → count zmienia się na 0
  • Jeśli reset ma wartość 0 → count zwiększa się o 1

Wiele instrukcji

Użyj begin i end, gdy masz więcej niż jedną instrukcję:

if (enable) begin
  out = data_in;
  valid = 1;
end else begin
  out = 0;
  valid = 0;
end

If-Else z wieloma warunkami

Możesz łączyć instrukcje if-else:

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a;  // a i b są równe
end

Ważne zasady

ZasadaWyjaśnienie
else jest opcjonalneMożesz użyć if bez else
else należy do najbliższego ifZachowaj ostrożność przy zagnieżdżaniu
Użyj begin/end dla wielu instrukcjiWymagane przy więcej niż jednej linii
challenge icon

Wyzwanie

Co zrobić:

  1. Dodaj brakującą instrukcję if-else, aby to zadziałało.
  2. Gdy enable ma wartość 1, out powinno być równe a & b.
  3. Gdy enable ma wartość 0, out powinno być równe a | b.

Spróbuj swoich sił

module ifelse_challenge;
  reg a, b, enable;
  reg out;
  
  initial begin
    a = 1;
    b = 0;
    enable = 1;
    
    // TODO: Dodaj instrukcję if-else
    // Jeśli enable wynosi 1: out = a & b
    // W przeciwnym razie: out = a | b
    
    $display("out = %d (should be 0 because 1&0=0)", out);
    $finish;
  end
endmodule
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Verilog online