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
endAlways 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)
endSıra önemlidir. Bu, birleşimsel mantık için uygundur.
Bloklayan ve Bloklamayan
Bloklayan (=) | Bloklamayan (<=) | |
|---|---|---|
| Yürütme | Art arda | Hepsi aynı anda |
| Sonraki satır bekler mi? | Evet | Hayır |
| Kullanım alanları | Kombinasyonel mantık | Sıralı mantık (flip-flop'lar) |
Önemli: Flip-Flop'lar İçin Bloklamayı Kullanmayın
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:
xdeğerinitempdeğişkenine atayın (x'i temp'te saklayın)ydeğerinixdeğişkenine atayın (y'yi x'e taşıyın)tempdeğeriniydeğ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
endmoduleBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi