fpganedir.com'da ara

fpganedir mail

 * While Döngüsü

 * For Döngüsü

  * Shift Register

SHIFT REGISTER

Labview C dili gibi yazılım dillerinin grafiksel olarak sunulmuş halidir. Bu yüzden C dilinde gerçekleştirilen çoğu ifadeleri Labview'de de gerçekleştirebiliriz.

Örneğin

int sayici=0;

for(i=0;i<10;i++)
   sayici+=1;

ifadesini ele alalım. Yukarıdaki ifade ile 10 kadar sayan bir sayici tasarlamış oluruz. Bunu ise döngü sayısı 10 olan bir for loop ile sağlarız. sayici+=1; ifadesi ile sayicinin bir önceki değeri ile 1 sayısını toplayıp, tekrar sayici'ya ekleyip, sayici değişkenin şu anki değerini hesaplarız.

Bu yüzden yukarıdaki ifadeyi Labview'de gerçekleme için sayici değerinin bir önceki değerini tutmamız gerekir. Bunu ise Labview'de shift register yapılarını kullanarak sağlarız.

Register kısmımıza bir örnek ile devam edelim. For döngüsü kısmında yaptığımız sayıcı örneğini shift register kullanarak yapalım. Bunun için for döngüsünün tunnel kısmına gelip, sağ tıklayalım. Açılan menüde "Replace with Shift Register" ifadesini seçelim

Bu işlem ile tunnel kısmının simgesine dönüştüğünü görürsünüz. For döngüsünün karşı duvarında ise simgesinin oluştuğunu görürsünüz.  Program bağlantılarını aşağıdaki gibi değiştirelim.

simgesi sayıcının bir önceki değerini tutacak. Program ilk döngüde iken sayıcının ilk değeri olmayacağı için bu değere bir ilk değer ataması yapacağız. Bu atamayı bu simgeye sağ tıklayıp, açılan menüden Create > Constant'ı seçerek yapabiliriz. Biz ilk değer olarak 0 değerini verdik.

İlk döngüde değeri 0+1 = 1 olur. İkinci döngüye geçildiği zaman değeri aktarılır. Böylece değeri 1 olur. Toplama işlemi yapıldığında değeri 2 ye (1+1) çıkar. Bu işlem döngü bitene kadar devam eder.

Shift register'in çalışma prensibini görebilmek için blok diyagramının menü çubuğunda Ampul simgesini tıklayıp, programı koşturalım.

Shift register'ı genişletebilir ve bir değerin tutulan geçmiş değerlerini artırabiliriz. Örneğin sayıcının geçmiş 4 değerini tutabiliriz. Bunun için simgesinin altını fare ile tutup uzatalım. Ardından herbir register'a bir ilk değer atayalım. Register'lardaki değerleri görebilmek için herbirine bir indikatör ekleyelim. Register'lar üzerindeki değişimi gözlemleyebilmek için döngüye bir gecikme bloğu ekleyelim.

Programı koşturduğumuz zaman aşağıdaki Tablo ile karşılaşırız.

iyi eğlenceler.

 

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.