![]() |
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.