Menu
Coddy logo textTech

Bloklayıcı Atama

Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 49 / 90.

Verilog'da iki tür prosedürel atama vardır: bloklayıcı (=) ve bloklamayan (<=). Bu derste bloklayıcı atamaya odaklanıyoruz.

Bloklayan atama, = operatörünü kullanır. Mevcut atama tamamlanana kadar sonraki ifadenin yürütülmesini engellediği için "bloklayan" olarak adlandırılır. Kod, sırayla adım adım çalışır.

Sözdizimi:

variable = expression;

Engelleyici Atama Ne Zaman Kullanılır

Engelleyici atama (=), kombinasyonel mantık için kullanılır: girişler değiştiğinde çıkışların hemen değiştiği, saat sinyali ve bellek içermeyen devreler.

Kombinasyonel mantık örnekleri:

  • AND / OR / XOR kapıları
  • Toplayıcılar ve çıkarıcılar
  • Çoklayıcılar
  • Kod çözücüler

Verilog örneği:

always @(*) begin
  sum = a + b;      // Bloklayan atama
  carry = a & b;    // Bloklayan atama
end

Always Bloklarında Bloklayıcı Atamalar (Kombinasyonel Mantık)

always @(*) begin
  temp = a & b;    // Adım 1
  out = temp | c;  // Adım 2 (temp'i adım 1'den kullanır)
end

Sıra önemlidir. Bu, birleşimsel mantık için uygundur.

Bloklayan ve Bloklamayan

 Bloklayan (=)Bloklamayan (<=)
YürütmeArt ardaHepsi aynı anda
Sonraki satır bekler mi?EvetHayır
Kullanım alanlarıKombinasyonel mantıkSıralı mantık (flip-flop'lar)

Önemli: Flip-Flop'lar İçin Bloklamayı Kullanmayın

challenge icon

Görev

Geçici bir değişken kullanarak x ve y değerlerini değiştirmek için eksik blok atamalarını ekleyin.

Yapılacaklar:

  1. x değerini temp değişkenine atayın (x'i temp'te saklayın)
  2. y değerini x değişkenine atayın (y'yi x'e taşıyın)
  3. temp değerini y değişkenine atayın (saklanan x'i y'ye taşıyın)

Kendin dene

module swap;
  reg x, y;
  reg temp;
  
  initial begin
    x = 1;
    y = 0;
    
    $display("Before swap: x=%d, y=%d", x, y);
    
    // TODO: Adım 1 - x'i temp'e ata
    
    // TODO: Adım 2 - y'yi x'e ata
    
    // TODO: Adım 3 - temp'i y'ye ata
    
    $display("After swap: x=%d, y=%d", x, y);
    $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.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi