Son Yazılar

Verilog'da Conditional(Koşullu) Operatörler





"Verilog'da Conditional(Koşullu) Operators nedir, nasıl kullanılır?" sorularına yanıt arayacağımız bu yazı dizimizde öncelikle bu operatörlerin işlevlerinden bahsedip sonrasında Verilog kodları üzerinden bir örnekle konunun pekişmesini sağlayacağız.

İsminden de anlaşılacağı üzeri koşullu ifadeleri kullanmanın bir yolu olan Conditional Operators, logic operatörlerden faydalanılarak oluşturulmaktadır. Lakin, burada iki temel syntax farklılığı vardır. Bunlar "?" ve ":" kullanımıdır. 

Soru işaretinin anlamı, kendinden önce gelen ifadenin doğruluğu ile ilgilidir. Yani, "?"den önce gelen ifade doğru ise "?"den sonra gelen ifade gerçekleşecektir. İki noktanın kullanımı da bununla ilgilidir. İki nokta, "?" işaretinden sonra gelen ifadenin devamına yerleştirilir. Eğer, "?"den önce gelen ifade yanlışsa ":"dan sonra yeni bir işlem bloğu açılarak programdan bu işlemin gerçekleştirilmesi beklenir. 

Bu ifadeyi daha iyi anlayabilmek için birçoğunuzun aşina olduğu "XOR" logic kapısından yararlanalım:

assign C=(A==1'b0)&&(B==1'b0) ? 1'b0:
             (A==1'b0)&&(B==1'b1) ? 1'b1:
             (A==1'b1)&&(B==1'b0) ? 1'b1:
             (A==1'b1)&&(B==1'b1) ? 1'b0: 1'b0;

Bildiğiniz üzere bir XOR logic gate, bitleri farklı değerler aldığında çıkışı "1" olarak vermektedir. Örneğin, A==1 ve B==0 veya A==0 ve B==1 durumlarının outputları bizim için "1" olacaktır. 

Örneğin öncesinde anlattığımız gibi && (and logic operatörü) kullanılarak istenilen durumlar belirlendi Ardından "?,:" ifadeleriyle de istenilen sonuçlar belirlendi. Programın sonunda da üsttekilerin sağlanmaması durumunda çıkıştan "0" değeri alınsın denildi. Bu şekilde programı tamamlamış bulunmaktayız. 

Burada kullanılan "assign" ifadesi "wire" türünden değişkenlere değer atamada yararlandığımız bir ifadedir. Bu ifade ve Verilog ile ilgili daha fazla yazı kısa süre içerisinde bu blog içinde paylaşılacaktır. 

Yazıyı okuduğunuz için teşekkürler...

İyi çalışmalar...

Hiç yorum yok