Konu
:
Verilog İnitial Ve Always
Yalnız Mesajı Göster
Verilog İnitial Ve Always
08-20-2012
#
1
Prof. Dr. Sinsi
Verilog İnitial Ve Always
Initial ve Always
Verilog işlemini belirtmek için iki tane farklı anahtar kelime bulunmaktadır
Bunlar "always" ve "initial" anahtar kelimeleridir
"Always" sözcüğü durum kontrolü
(@)
ifadesiyle tetiklenen serbest çalışan işlemleri ifade eder
"Initial" anahtar sözcüğü sadece bir kere yürütülen işlemler için kullanılır
Her ikiside benzetimlik zamanının 0 anında "begin" yapısını kurar ve blok sonuna kadar yürütülür
Blok sona ulaştığında tekrar sıraya alınır
Genel düşünce "initial" bloğunun, "always'den" önce yürütüleceğinin varsayılmasıdır fakat "initial" bloğunun "always" bloğunun sadece bir kere çalıştıktan sonra duran özel bir durumu olarak düşünülmesi daha doğrudur
//Örnekler:
initial
begin
a = 1; // zaman 0 anında reg tipi değişkene değer ata
#1; // 1 birim zaman bekle
b = a; // reg a'yı reg b'ye ata
end
always @(a or b) // a veya b değiştiğinde aşağıdaki ifadeleri gerçekleştir
begin
if (a)
c = b;
else
d = ~b;
end // Bu blokla işlem bittiğinde tekrar yukarı dön (@ durum kontrolü)
always @(posedge a)// reg a pozitif kenar değeri aldığında çalıştır
a <= b;
Bunlar iki anahtar kelimenin klasik kullanımıdır
Bunun dışında iki tane ek kullanım özelliği bulunmaktadır
"Always" anahtar sözcüğünü @() duyarlılık listesini eklemeden de kullanabiliriz
Örneğin:
always
begin // 0 zamanında yürütmeye başla ve hiçbir zaman durma
clk = 0;
#1; // 1 birim zaman bekle
clk = 1;
#1;
end // Yürütmeye devam ediyor - yukarıdan tekrar başlar
"Initial" kullanımının bir diğer kullanımı ise "forever" anahtar sözcüğü ile kullanımdır
Aşağıdaki örnek işlemsel olarak yukarıdaki "always" örneği ile aynıdır
initial forever // 0 zamanında başla ve begin/end'i sürekli tekrarla
begin
clk = 0;
#1;
clk = 1;
#1;
end
Kaynak : Wikipedia
Prof. Dr. Sinsi
Kullanıcının Profilini Göster
Prof. Dr. Sinsi Kullanıcısının Web Sitesi
Prof. Dr. Sinsi tarafından gönderilmiş daha fazla mesaj bul