ForumSinsi - 2006 Yılından Beri

ForumSinsi - 2006 Yılından Beri (http://forumsinsi.com/index.php)
-   ForumSinsi Ansiklopedisi (http://forumsinsi.com/forumdisplay.php?f=476)
-   -   Verilog İnitial Ve Always (http://forumsinsi.com/showthread.php?t=497050)

Prof. Dr. Sinsi 08-20-2012 12:29 AM

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


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.