Menu
Coddy logo textTech

Devre Dışı Bırakma İfadesi

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

disable ifadesi, isimlendirilmiş bir bloğun (forever döngüsü, begin-end bloğu veya bir task gibi) yürütülmesini durdurur. Aksi takdirde sonsuza kadar çalışacak olan döngülerden çıkmak için kullanışlıdır.

Sözdizimi:

disable block_name;

Blok bir isimle etiketlenmelidir.

Forever Döngüsü ile Devre Dışı Bırakma

begin : counter // counter, bloğa counter adını verir.
  forever begin
    #10 count = count + 1;
    if (count == 5) begin
      disable counter;   // disable counter, isimlendirilmiş bloğun tamamını durdurur.
    end
  end
end

forever döngüsü, counter adlı isimlendirilmiş bir bloğun içindedir. disable counter ifadesi döngünün içine yerleştirilmiştir. count 5'e ulaştığında, disable counter çalışır ve tüm counter bloğunu durdurur — bu da aynı zamanda forever döngüsünü de anında durdurur.

Ayrı Bir Blokta Devre Dışı Bırakma

begin : counter
  forever begin
    #10 count = count + 1;
  end
end

initial begin
  #50;
  disable counter;   // Sayaç bloğunu dışarıdan durdurur
end

Burada, forever döngüsü counter adlı bloğun içinde sürekli olarak çalışır. disable counter ifadesi ayrı bir initial bloğuna yerleştirilmiştir. 50 zaman birimi sonra, disable counter yürütülür ve counter bloğunu durdurur — bu da forever döngüsünü dışarıdan sonlandırır.

Önemli Kurallar

KuralAçıklama
Blok isimlendirilmelidirbegin : block_name
Disable yürütmeyi anında durdururKod o anda durur
Her yerden kullanılabilirModüldeki herhangi bir bloktan
forever döngülerini durdurmak için kullanışlıdırAksi takdirde asla durmazlar
challenge icon

Görev

Sonsuza kadar çalışan bir sayaca sahip bir modül size verilmiştir. 

Ne yapmalı:

Her bir yorumu doğru kodla değiştirerek boş bloğu tamamlayın:

  1. 50 zaman birimi beklemek için #50; ekleyin
  2. Sayaç bloğunu durdurmak için disable counter; ekleyin
  3. Mesajı yazdırmak için $display("Counter stopped"); ekleyin
  4. Simülasyonu sonlandırmak için $finish; ekleyin

Kopya kağıdı

disable ifadesi, isimlendirilmiş bir bloğun (örneğin, forever döngüsü) yürütülmesini durdurur. Blok, begin : block_name kullanılarak etiketlenmelidir.

Bloğun içinden devre dışı bırakma:

begin : counter
  forever begin
    #10 count = count + 1;
    if (count == 5) disable counter;
  end
end

Ayrı bir bloktan devre dışı bırakma:

begin : counter
  forever begin
    #10 count = count + 1;
  end
end

initial begin
  #50;
  disable counter; // isimlendirilmiş bloğu dışarıdan durdurur
end

Kendin dene

module disable_challenge;
  integer count;
  
  initial begin
    count = 0;
    fork
      begin : counter
        forever begin
          #10 count = count + 1;
          $display("count = %d", count);
        end
      end
      
      begin
        // Adım 1: 50 zaman birimi bekle
        
        // Adım 2: counter bloğunu devre dışı bırak (disable)
        
        // Adım 3: "Counter stopped" yazdır
        
        // Adım 4: Simülasyonu sonlandır
        
      end
    join
  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