Xilinx Spartan 3E - Digilent BASYS2 Clock Kullanımı

Merhabalar Arkadaşlar,

     Digilent BASYS2 geliştirme kiti üzerinde 2 adet osilatör girişi mevcuttur. Bunlardan ilki JP4 jumper'ı üzerindedir. Diğer osilatör girişi ise IC6 soketidir. IC6 soketinde kart üzerinde tanımlanmış bir osilatör yoktur. Pinlere uygun bir osilatör seçerek bu sokete takabilirsiniz. IC6 soketi boş olduğu için şuanlık orada bir işlem gerçekleştirmeyeceğiz. JP4 pini üzerinden gidecek olursak; kullanıcı tarafından oluşturulabilen 3 adet clock sinyali vardır. Bunlar 25,50 ve 100 MHz'dir. Lehimle birlikte bu osilatör değerlerini elde edebilirsiniz. JP4 de belirtilen pinlere jumper takarak bu işlem gerçekleştirilebilir. JP4 jumper'ına hiç dokunmazsanız üretici tarafından oluşturulan 50 MHz'lik clock sinyalini kullanmış olursunuz. Yani hiçbir işlem yapmazsanız bu jumper'a 50 MHz sinyaliniz olur.


    
 Eğer bana 50 Mhz yetmez yada 100 MHz gibi diğer sinyallerde çalışmak istiyorum derseniz yukarıda şekli dikkate almanız gerekiyor. 25 MHz için yukarıda gösterildiği gibi 2 pini lehimlemeniz gereklidir. 100 MHz için ise alttaki gibi 2 pini lehimlemeniz gereklidir. 50 MHz için hiç birşey yapmanıza gerek yoktur. Ben bu anlatımda 50 MHz üzerinden gideceğim.

     İlk basit bir uygulama olarak led yakıp söndürme işlemini gerçekleyelim. Bu işlem clock ayarı için oldukça basit bir başlangıç. Bu uygulama kavrandıktan sonra daha üst seviyelerde işlemlere geçilebilir. Herşey anlatılarak öğrenilmiyor o yüzden araştırıp kurcalamak gereklidir. En önemlisi de sabretmektir :). 

     Xilinx ISE WebPack 14.7 programına girdiğimizde yeni bir proje oluşturuyoruz. Bu aşamaları önceki yazılarımda yazdığım için şuanda yüzeysel geçiyorum. Önceki yazılarımdan proje ortamı oluşturma adımlarına bakabilirsiniz. 

     50 MHz bir sinyal oldukça yüksektir. Bu sinyali led yakıp sönmesini görmek için düşürmemiz gereklidir. Bir bitlik bir counter 2 adet değer alabilir. Bu counter'ın en yüksek bitli ucundan bağlantı alırsak 50 MHz'lik sinyali 2'ye bölmüş oluruz. Yani yeni sinyalimiz 25 MHz olur. Eğer 2 bitlik bir counter alırsak ise sinyali 4'e bölmüş oluruz. Buda 12,5 MHz demek oluyor. Bu şekilde counter bitini artırarak istediğimiz clock sinyaline ulaşabiliriz. 

     Yukarıdaki bilgileri verdikten sonra şimdi işlem basamaklarına geçelim. Önce projemize bir schematic dosyası ekliyoruz. Sonra symbols sekmesine geliyoruz malzeme almak için. Buradan CB4CE yazarak 4 bitlik bir counter alıyoruz. Bu counter'dan 6 adet schematic alanımıza koyuyoruz. Tüm counter'ların CE ucunu Vcc'ye bağlamanız gerekiyor. Vcc'ye nerden ulaşabilirim derseniz yine symbols sekmesinde General başlığı altında mevcut. Buradan alıp kullanabilirsiniz. Aynı şekilde General başlığı altında GND bağlantısı da mevcuttur. Sonra tüm counter'ların CLR bacağını GND'ye bağlıyoruz. İlk counter'ın C ucuna 50 MHz sinyal girişini bağlıyoruz. Bu bağlantıdan sonra ilk counter'ın Q3 çıkışını ikinci counter'ın C bacağına bağlıyoruz. Bu şekilde sırayla 6 counter'a aynı işlemi yapıyoruz. Son counter'da ise Q3 pinini led'e veriyoruz. Sonrasında işlemimiz tamamdır.




     Yukarıda bağlantı şeklini görebilirsiniz. Burada 50 MHz sinyali her counter'da 16'ya bölüyoruz. 6. counter sonunda ise 2.980232 Hz sinyal çıkışımız oluyor. Yani saniyede yaklaşık 3 Hz clock sinyali oluyor. Burada 1 Hz sinyal olsa led saniyede 1 kez yanacaktı. Ancak 3 Hz sinyalde led 0.3 sn gibi bir sürede yanıp söner. Daha sonra bu şematiğe bir .ucf dosyası atıyoruz. Bu dosyaya yazmamız gereken veriler şunlar ;

NET "CLK"   LOC = "B8";
NET "Q"        LOC = "M5";

     Yukarıdaki kodu yazıyoruz. Burada bunu yazmamızın anlamı şudur. CLK pinine B8'i uygula yani 50 MHz sinyali uygula. Q pinine ise M5'deki ledi bağla diyoruz. Bunlardan sonra programı derliyoruz ve .bit uzantılı dosyayı kitimiz yüklüyoruz. Hiçbir adımda hata yapmadıysanız ledinizin yanıp söndüğünü görürsünüz. 

     Bir sonraki yazımda görüşmek üzere. İyi çalışmalar dilerim. Umarım faydalı olmuştur. Sonra olarak eklemem gereken bir not. Vatanını en çok seven görevini en iyi yapandır. 

Yorumlar

Bu blogdaki popüler yayınlar

Basit Bir EKG Nasıl Yapılır?

Digilent BASYS2 7 Segment Kullanımı

Yapay Zeka ile Kalp Krizi Teşhisi Part 1 - Matlab