Herkese merhabalar, bu yazımda miniSpartan6+ geliştirme kartı ile FPGA programlama yapmaya çalışacağım.miniSpartan6+ geliştirme kartı açık kaynak olarak oluşturulmuş.FPGA programlamanın mikrodenetleyici konularının üzerinde olması göz önünde bulundurulursa bu geliştirme kartının küçük ve açık kaynak olması tasarımlarda kolaylık sağlamakta.Gerek Xilinx ISE programı ile yada Scarab IDE ile tasarımlar yapılabiliniyor.Aslında bu geliştirme kartı, henüz yeni bir kavram olan açık kaynak FPGA alanında yalnız değil.Bir diğer geliştirme kartı olan Papilio serisi ile de tasarımlar yapmak mümkün.Papilio FPGA geliştirme kartı Arduino IDE kullanılarak programlanabiliniyor.Papilio ile ilgili detaylı bilgiye buradan ulaşabilirsiniz.Open source FPGA konusuna kısaca giriş yapmaya çalıştım.Şimdi minispartan6+ geliştirme kartının özelliklerine bakalım.

                                                                            miniSpartan6+ Özellikleri

   Xilinx Spartan-6 LX9 FPGA                     2 Mb SDRAM

   64 Mbit SPI Flash                                         FT2232 FTDI

   12 bit ADC                                                        USB 2.0 Port

    HDMI Giriş                                                     HDMI Output

    Audio output Jack                                      MikroSD kart socket

    4 Anahtar                                                        8 Led

    64 I/O port

 minispartan6+İlk uygulmayı şematik tasarım kullanarak 1 bitlik yarım toplayıcı (half adder) olarak tasarlayacağım.Kullandığımız araçlar, işletim sistemi windows,Xilinx ISE 14.1, derlediğimiz program sonucunda oluşturduğumuz  .bit dosyasını karta yüklememizi sağlayan xc3prog adlı program.Bir bitlik toplayıcı bildiğiniz gibi FPGA uylamalarının ilki sayılabilecek bir tasarım.

yarim_toplayici Burada A ve B girişlerini kart üzerinde bulunan iki anahtara,S ve Cout çıkışlarını  led0 ve led1’e atayacağız.Doğruluk tablosu ve çıkış fonksiyonları aşağıdaki gibi olacak.

dogruluk_tablosu

                                                                Xilinx ile proje oluşturalım ve şematik dosya ekleyelim.

Project_wizard  New_sourceDesign

.ucf dosyası pin atamaları aşağıdaki gibi olacak.

# Anahtar
NET "A" LOC="L1" | IOSTANDARD=LVTTL | PULLUP;
NET "B" LOC="L3" | IOSTANDARD=LVTTL | PULLUP;
#LED
NET "S"       LOC="P11" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
NET "Cout" LOC="N9"  | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;

                                                   Derleme sonunda oluşan half_adder.bit dosyasını karta yükleyelim.

xc3sprog_bit_download

 Uygulamanın Çalışması

Yazının başında Arduino benzeri olan  Scarab IDE’den bahsetmiştim. Java platform kullanılarak oluşturulmuş.Windows ve Linux sürümü mevcut. Yalnız tüm fonksiyonlarının çalışmayabileceği belirtilmiş Windows ortamında stabil çalıştığını söyleyemem Linux üzerinde test ettim. Java ile tekrar geliştirmek, yeni özellikler eklemek mümkün. Linux üzerinde bir örnek yapalım ve sonuçlarını görelim.Scarab IDE indirme linki,tanıtım sayfası .

Scarab IDE ile verilog ve vhdl tasarım yapmak mümkün,verilog ile basit bir giriş,çıkış,clock modülü tasarlayıp blink uygulaması yapacağım.

Uygulamanın kodları

  1. module top(
  2. input CLK50,
  3. output [7:3] LEDS
  4. );
  5.  
  6. reg [31:0] counter = 0;
  7. always @(posedge CLK50) counter <= counter+1;
  8. assign LEDS[7:3] = counter[22];
  9.  
  10. endmodule

                                                                    Terminal ekranından Scarab IDE açalım

Screenshot from 2015-03-09 20:26:15

                                                 Scarab IDE ekranında File > New Project ile proje oluşturalım.

New_Project                                      Kodları yazdıktan sonra sol üst köşedeki çark sembolüne tıklayıp projeyi derleyelim.

IDE_code                Proje derlendikten sonra yine sol üst köşedeki ok sembolüne tıklayıp .bit uzantılı dosyayı karta yükleyelim.

compile

Uygulamanın çalışması