Menu
Coddy logo textTech

If - Else

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 53 / 90.

if-else ifadesi, bir koşula bağlı olarak iki farklı eylem arasında seçim yapmanıza olanak tanır. Koşul doğruysa bir blok çalışır. Yanlışsa diğer blok çalışır.

if-else ifadesi kodunuza bir karar noktası sağlar: koşul doğruysa bir şeyi yapın, koşul yanlışsa başka bir şeyi yapın.

Sözdizimi:

if (condition) begin
  // Koşul doğru (1) olduğunda yürütülür
end else begin
  // Koşul yanlış (0) olduğunda yürütülür
end

Basit Örnek

if (reset) begin
  count = 0;
end else begin
  count = count + 1;
end
  • Eğer reset 1 ise → count 0 olur
  • Eğer reset 0 ise → count 1 artar

Birden Fazla İfade

Birden fazla ifadeniz olduğunda begin ve end kullanın:

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

Çoklu Koşullu If-Else

if-else ifadelerini zincirleyebilirsiniz:

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a;  // a ve b eşittir
end

Önemli Kurallar

KuralAçıklama
else isteğe bağlıdırelse olmadan if kullanabilirsiniz
else en yakın if ifadesine aittirİç içe yerleştirme (nesting) konusunda dikkatli olun
Birden fazla ifade için begin/end kullanınBirden fazla satır için gereklidir
challenge icon

Görev

Ne yapmalı:

  1. Bunun çalışması için eksik olan if-else ifadesini ekleyin.
  2. enable değeri 1 olduğunda, out değeri a & b değerine eşit olmalıdır.
  3. enable değeri 0 olduğunda, out değeri a | b değerine eşit olmalıdır.

Kopya kağıdı

if-else ifadesi, bir koşula bağlı olarak iki bloktan birini yürütür:

if (condition) begin
  // Koşul doğru (1) olduğunda yürütülür
end else begin
  // Koşul yanlış (0) olduğunda yürütülür
end

else if ile birden fazla koşulu zincirleyin:

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a; // a ve b eşittir
end
  • else isteğe bağlıdır
  • Bir blokta birden fazla ifade olduğunda begin/end kullanın
  • else her zaman en yakın if ifadesine aittir

Kendin dene

module ifelse_challenge;
  reg a, b, enable;
  reg out;
  
  initial begin
    a = 1;
    b = 0;
    enable = 1;
    
    // TODO: if-else ifadesi ekleyin
    // Eğer enable 1 ise: out = a & b
    // Değilse: out = a | b
    
    $display("out = %d (should be 0 because 1&0=0)", out);
    $finish;
  end
endmodule
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler