TOBB Ekonomi ve Teknoloji Üniversitesi BİL264L Mantıksal Devre Tasarımı Lab ! Verilog HDL Davranışsal Modelleme Koşullu İfadeler Verilog HDL ile Davranışsal Modelleme 2 (Koşullu İfadeler)$ Kapı seviyesinde tasarım yapılırken devrenin işlevi tamamen kapılar ile ifade edildiğinden koşullu ifadelere gerek yoktu. Fakat bir devrenin davranışını anlatırken bazı sinyallerin değerlerine göre bazı devrelerin farklı davranmasını isteyebiliriz. Verilog HDL kullanılırken koşullar 3 farklı şekilde ifade edilebilir. ! Üç Terimli Koşul (Ternary Operation)$ Kullanımı aynı C dilinde olduğu şekildedir: ! c = (a^b)? d|e : e&f; Bu ifadede koşul a^b yani a!=b olur. Eğer koşul doğruysa yani a xor b işleminin sonucu 1 ise c = d | e; değilse c = e & f işlemi yapılır. ! Bu kod gerçeklendiğinde 1 OR 1 AND 1 XOR kapısı ve 1 çoklayıcı kullanır. C gibi üst seviyeli dillerin aksine burada her ifade bir devre parçasına denk geldiğinden her iki değer de hesaplanır ve arasından tercih yapılır.! if - else if - else$ Üst seviye dillerde kullanıldığı gibi kullanılır ancak küme parantezi yerine begin-end yazılır. Örnek:! if ( a ^ b c = d end else if (a c = f end else begin c = h end ! ) begin | e; & b) begin & g; ^ ~i; case$ Bir wire veya reg’in farklı değerleri için oluşan koşulları göstermede kullanılır. Kullanımı şu şekildedir:! case (A) // A, 2 bitlik bir sayı olsun 2’b00: begin x = 0; y = 1; end 2’b11: begin x = 1; y = 0; end default: begin x = 0; y = 0; end endcase ! Örneklerde de görüldüğü şekilde case ve if-else yapısı birden fazla satırda yazılır. Bu yüzden bunları sadece always bloklarının içinde kullanabiliriz. 3 terimli koşul ifadesi ise tek satırda yazılabildiği için hem assign hem de always içinde kullanılabilir.
© Copyright 2024 Paperzz