FPGA,  paralel işlem yapabilen, kendine ait bir RAM’i olan ve I/O üniteleri tanımlayabildiğiniz bir çeşit gömülü sistemdir. Bu sistemin en önemli avantajı, paralel işlem yapabilme özelliğinin olmasıdır. Diğer bir avantajı ise içerisindeki devre tasarımının kullanıcı tarafından gerçekleştirilebilmesi olanağıdır.  Bu özellik PLC, mikrodenetleyici ve bilgisayar işlemcilerini içeren gömülü sistemlerde yoktur.  Paralel işlem yapabilme özelliği aynı anda birden fazla işlem yapabilme özelliği olduğundan doğal olarak veri işleme hızının kat kat fazla olması demektir.

Xilinks FPGA

Örneğin bilgisayar işlemcisi paralel işlem yapabilme özelliğine sahip olmadığından aynı anda en fazla bir işlem gerçekleştirebilir.  Eğer bilgisayar üzerinden birden fazla program çalıştırırsanız; bilgisayar, bu programları atıyorum saniyenin milyonda biri kadar süre ile paylaştırarak çalıştırır. Yani saniyenin milyonda birinde sadece bir programı diğer milyonda birinde öbür programı çalıştırır. Bu yüzden veri işleme konusunda FPGA ler bilgisayar işlemcisinin önüne geçmişlerdir.

FPGA’leri programlamak için HDL (Hardware Description Language-Donanım Tanımlama Dili) kullanılır. VHDL ile Verilog en yaygın kullanılan iki HDL türüdür. VHDL, Çok Yüksek Hızlı Entegre Devre Donanımı Tanımlama Dili anlamına gelen “Very High–Speed Integrated Circuit Hardware Description Language” ifadesinin kısaltması olup Verilog ile bir donanım parçasını modellemek için kullanılır. Bu arada  Xilink ise bir FPGA üretici firmasıdır.

FPGA’lerin kullanıma hazır hale getirilebilmesi için programlanmaları gerekir. (Xilinx’de derleyici program olarak ISE , Altera’da ise Quartus II programı kullanılır. )

FPGA programlamak için iki yöntem kullanılır.

  • Grafiksel tasarım
  • HDL

Grafiksel tasarımda tasarım, derleyici programın (ISE, Quartus vs) kütüphanesinde yer alan araç ve mantık kapıları kullanılarak yapılır.

Şimdi bir uygulama göstermek istiyorum.  Uygulama için Xilinks firmasının sitesinden ISE Design Suite 14.6 yı indirin. Lisansını zaten öğrenci ya da akademisyenseniz ücretsiz bir şekilde alabiliyorsunuz.  Programı kurduktan ve lisansını yaptıktan sonra programı açıyorsunuz ve

   FİLE>>New Project diyorsunuz karşınıza şöyle bir ekran çıkıyor;

FPGA Tutorial

 Bu pencereden hemen kaydedeceğiniz yeri ve projenizin ismini seçip HDL dili kullanacağınızı belirterek next diyorsunuz.

Adsı3

Burada kullandığınız FPGA in özelliklerini falan fistan seçmeniz gerekiyor.  Seçtikten sonra yine Next’e tıklıyorsunuz ve size şu şekilde bir özet çıkarıyor;

Adsı4

Finish diyorsunuz ve çalışma platformunuz açılıyor.   Şimdi tasarım yapabilmeniz için 2 seçeneğiniz mevcut. Şematik kullanarak bir tasarım yapabilirsiniz böylece kodlarını program kendisi yazacaktır. Ya da bir verilog programı yazabilirsiniz.  Bunun için new source sekmesine tıklayorsunuz ve çalışma alanı seçeceğiniz bir pencere açılıyor. Buradan Shematic ya da verilog module ü seçmeniz mümkün.

FPGA4

İlk önce bir shematic tasarım yapalım isterseniz. Bunun için shematic i seçiyorum ve karşıma bir çalışma alanı açılıyor.  Burada bir half adder devresi oluşturalım.  Yani toplama işlemi yapan bir logic devre.

 Bunun çin çalışma alanının sol tarafında çıkan tool ları kullanıyorum.

FPGA6

 Burada logic gate eklemek için kullanılan sekmenin üzerine tıklayıp kullanacağınız gate leri seçiyorsunuz. Biz bir Xor  ve bir and gate i kullandık. Bu gate lere I/O marker dan Input ve output ekliyorsunuz. Ve kabloları bireştirmek için Wire aracını kullanabiliyorsunuz.  İşte böylece toplama işlemi yapan bir devre dizayn etmiş olduk.  Bu devreyi isterseniz  Tools>>Symbol Wizard sekmesinden daha sonraları projelerinizde kullanmak için entegre haline getirmeniz mümkün. Şu şekilde;

FPGA7

 Eğer bunu bir program şeklinde yazmak isteseydik;  çalışma alanından yine add source sekmesini seçtiğimizde açılan pencereden  Verilog modülü seçmemiz gerekecekti.   Açılan pencerede input ve outputları belirledikten sonra şöyle bir program yazmamız gerekecekti;

Adsı8

  Yazdığımız programı simüle etmek iin test bench program yazmamız gerekiyor bu işlemi de aynı şekilde add source sekmesinden açılan pencereden seçip yazıyoruz. Ve programımızı compile edip FPGA ye gömüyoruz.   Aslında izlenmesi gereken flowchart şu şekilde oluyor;

flowchart

Kolay Gelsin…