FPGA Projelerim

Bu bölümde FPGA hakkında ufak bilgiler vereceğim:

FPGA (Field Programmable Gate Array) programlanabilen bir yongadır (entegre veya çipdir). Türkçesine Alan Programlanabilir Kapı Dizini denmektedir.

FPGA'lerin içerisinde sayısal(dijital) devre yapabilmek için birçok eleman bulunur. Mesela Flip-flop, VE, VEYA kapıları … Bunlar VHDL veya Verilog gibi donanım tanımlama dilleri kullanılarak birbirine bağlanır. Böylece istenilen sayısal devre sadece bir FPGA kullanılarak oluşturulabilir.

Ayrıca birçok FPGA tekrar tekrar programlanabilir. Yani siz devrenizi tasarlarsınız, simulasyonunu yaparsınız ve FPGA'e yüklersiniz. Eğer yüklediğiniz kod çalışmazsa , o zaman tasarladığınız devreyi değiştirip yeni tasarımınızı tekrar FPGA'e yükleyebilirsiniz. Onun için bazı entegre üreticileri tasarımlarını önce FPGA ile denerler ve son aşamada ASIC üretip piyasaya sunarlar.

FPGA chipleri genelde paralel işlem gerektiren, özel işler için kullanılmaktadır. Mesela DSP için idealdir. Ama işiniz sıralı bir iş ise işlemci kullanmak daha mantıklı olacaktır. İşlemcilerde kodu değiştirmek ve test etmek çok zor olmazken FPGA'lerde tüm donanım değiştiğinden yapılan değişiklikleri test etmek daha zahmetli bir iştir.

Ayrıca FPGA üreticilerinin şematik programları da vardır. Şematik ile tasarım yapılarak FPGA'e giriş yapılabilir.

Opencores sitesinde birçok açık kaynak kodlu proje bulunmaktadır. Mesela birçok işlemci projesi vardır. Bunlar VHDL veya Verilogla yazılmış ve birçoğu tamamlanmış projelerdir ve tüm kodlar açık olarak sunulmaktadır.

FPGA ile yeni uğraşmaya başladıysanız şu sorular ve cevapları işinize yarayabilir:
1) Hangi starter kiti önerirsiniz (kodu ve sipariş verebileceğimiz internet sitesi)?

→ Ucuz olduğu için Spartan serisi FPGA'lerin bulunduğu kitlere bakmalısın. Bunlar genelde 55$'dan başlar ama üzerinde yeterli sayıda deneme devresi olanlar yaklaşık 100-150$ a bulunabilir. Xilinx'e starter kit üreten Digilent firmasının kitleri var: http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,400&Cat=10 (Ben buradan D2SB'yi almıştım, sorunsuz elime ulaştı).

2) Kullanılanılacak Ücretsiz Yazılım Araçları (derleyici , IDE , simülasyon programları) nelerdir?

→ Xilinx çok büyük kapasitede olmayan FPGA'lerinde kullanılmak üzere ISE Webpack yazılımını ücretsiz veriyor. Aşağıdaki adresten indirebilirsin: http://www.xilinx.com/ise/logic_design_prod/webpack.htm

simulasyon içinde Modelsim'in ücretsiz ama giriş için fazlasıyla yeterli olacak programını kullanabilirsin:

http://www.xilinx.com/ise/optional_prod/mxe.htm

Ayrıca FPGA üreticileri ve Yazılım Araçları bölümününden üreticilerin diğer yazılımlarının neler olduğunu öğrenebilirsin.

3) Verilog ve VHDL aynı dil mi, yani aynı şeyler mi?

→Verilog ve VHDL iki farklı dil ama ikisinin de FPGA üzerinde kullanım amacı aynı. Yani ikisi ile de RTL devresi tanımlayabiliyorsun.

4) Hangi dil ile başlamalıyız (VHDL, Verilog)?

→ Ben VHDL kullanıyorum. Ama size VHDL kullanın diyemem. Çünkü iki dilinde birbirine göre avantajı dezavantajları var. Mesela VHDL'in daha büyük tasarımlar için kullanıldığını biliyorum, ama Verilog C'ye daha yakın bir dil. Bu avantajlar ve dezavantajlar yüzünden iki dilden birisi diğerini yokedebilmiş değil.

Şu sitede ikisini kıyaslamış: http://www.fpgarelated.com/showarticle/19.php

bu kıyaslamayı okuyup hangisinin size daha uygun olduğuna karar verebilirsiniz.

Bir de şunu not etmekte fayda var; Bölgesel kullanım insanların tercihinde çok etkili oluyor. Genellemek gerekirse Avrupa'da VHDL, Amerika ve Uzakdoğu'da ise Verilog kullanılıyor. Bir de Amerika'da devletin koyduğu standart gereği devlete yapılan tüm projeler VHDL ile yapılıyor. Bunun için Amerika'da savunma sanayi alanındaki projelerin VHDL ile yapıldığını görebilirsiniz. Aynı şekilde Avrupa'da ESA (European Space Agency) VHDL kullanımını teşvik ettiği için Avrupa'da sıkça VHDL kullanıldığını görebilirsiniz. Uzakdoğu'lu firmaların Verilog tercih etmeleri ve ASIC pazarına hakim olmaları nedeniyle, ASIC üretimine ilişkin araçların Verilog'u daha çok destekleği görülüyor.

Türkiye'ye bakacak olursak; FPGA işinin öncülerden olan Aselsan, VHDL kullandığı için VHDL'in daha yaygın olarak kullanıldığını söylemek mümkün olabilir. Fakat Verilog'un da kullanıldığı farklı şirketler bulunduğunu biliyorum.

Özetle eğer öğrenciyken bu işi öğrenmek ve FPGA alanında bir işe girmek istiyorsanız, ikisinde de birşeyler tasarlayıp çalıştırabilir hale gelmek faydalı olur. Daha sonra çalıştığınız şirketin kullandığı dil ile kendinizi geliştirebilirsiniz. Eğer kendiniz bu işte profesyonelleşmek istiyorsanız avantaj ve dezavantajları detaylı olarak okuyarak size uygun olanı seçmenizi tavsiye edebilirim.

Nejat Tükenmez, 2016/12/06 00:49

İyi Günler Hocam, FBGA ile 4 tane Brushless DC motor kontrolü yapmam gerekiyor. İnsansız Hava Aracı kontrolünü yapmak için. Bu konuda yardımcı olabilir misiniz?

Cem alptekinoğlu, 2015/04/15 09:34

Merhaba,

Elimde 2 adet aynı özellikte elektronik kart var biri sağlam biri Arızalı. Arızalı olanda altera epm3032a entegre var entegre değiştirdim yanlız entegre Programlı entegre olduğu için kart çalışmadı kartın üzerinde jtag girişi var şu altera usb blaster soketi girebileği gibi ben şimdi sağlam karttan usb blaster ile programı Alıp boş olan entegre üzerine bunla yazabilmiyim teşekkürler

Vedat SAKARYA, 2015/03/17 03:54

Merhaba hocam,

Ben elektronik kart tamiri yapıyorum. Sorunum: XILINX XC3020A PC68BKJ0101 XILINX XC3030A PC68BKJ0401 entegrelerinden sağlam programı yedekleyip, programı bozuk gelen karttaki entegreye yazmak istiyorum.

Bu tür entegrelerden veriyi okuyup yedekleyebilirmiyim? Nasıl ?

Programın bozolup bozulmadığını anlayabilirmiyim? Nasıl?

Programı bozulmuş olan entegreyi silip, sağlam veriyi tekrar yazabilirmiyim ? Nasıl?

Bu işlemler için ne tür bir cihaz yada program kullanmalıyım ?

ilginiz için şimdiden teşekkür ederim.

fatma, 2014/03/18 13:17

merhaba,ben de fpga ve görüntü işleme ile ilgili döküman aramaktayım,fpga ile ilgili alakam lisans tez aşamasında bitirme projemdi (dc motor pi kontrolörlü tasarımı) ama ben vhdl dilinde zayıfım ve görüntü işleme gibi bir projede ne yapmam gerektiği konusunda pek bi fikrim yok,makale toplamak dışında,acaba nasıl bi adım takip etmem gerektiği konusunda bana yardım edebilir misiniz?

Damun KAZANCI, 2014/02/20 13:47

Merhaba. FPGA ile hangi devreleri tasarlayabilirim? Ornegin 20DIO 10AIO uzerinde 6” touch screen bir kontrol kart tasarlamak icin, sizce MCU ile mi tasarlamak daha iyi yoksa FPGA ile mi? amacim FPGA v eMCU arasindaki farki ogrenmek ve ona yonelmektir. FPGA nin kullanim alanlari hangileridir?

Onceden gostermis oldugunuz ilgi, emek ve bilginiz icin tesekkur ederim.

Damun

Dernell, 2013/06/07 07:00

You make things so clear. Thanks for tkanig the time!

Kaan Aksoy, 2013/04/22 15:52

Hocam Merhaba, Okulda almış olduğum bir ders için FPGA ile proje geliştirmemizi istediler. ama benim FPGA hakkında en ufak bilgim yok. proje konusu istenilen bir şeyin(saat olabilir,ad soyad olabilir vs.) LED ekranda yazdırılması bununla ilgili kaynak kod önerebileceğiniz bir yer var mı? Yardımcı olursanız sevinirim. Her şey için Sağolun.

Nanncy, 2013/03/12 14:58

Hi,I'm new to hdl. I just designed a RAM based state macihne and need to simulate it in ISim. I prepared the verilog test fixture and simulated my design but it gives X' on all outbuts of the RAM. Can you provide me the copy of your Testbench file (VHDL or Verilog) so that I can debug my test fixture. I think I have not declared the UUT properly as I do not see the RAM file under the Testbench file in the Design Hierarchy window in ISE. And the strange thing is that the same testbench file works fine with another ROM module. I would appreciate if you could mail me your testbench file to Kaushik_r_lathia (at) yahoo (dot) com. Thanks

HALİL İBRAHİM DENİZ, 2013/02/26 04:05

Merhabalar hocam.Ben FPGA ile görüntü işleme yapmak istiyorum.VHDL dili kullanıyorum.Görüntü işleme mantığını Matlab dan biliyorum ama görüntü işlemeyi nasıl VHDL ile yazacağım hakkında çok fikrim yok.Yardımcı olabilirseniz çok sevinirim.

gaye güngör, 2013/06/12 01:20

Bu konuda benim de yardıma ihtiyacım var. Cevap yazabilirseniz çok sevinirim.

Aydin Coskuner, 2013/08/03 21:04

Merhaba,

Görüntü işlemeyi FPGA üzerinde yapmak istiyorsanız ve VHDL hakkında derinlemesine bilgi birikiminiz yoksa size önerim Matlab Simulink üzerinden geliştirme yapmanız olacaktır. Bunun için Simulink'e FPGA üreticilerinin sağladığı toolbox'lar var. Örneğin Xilinx System Generator, Altera DSP Builder gibi (Ayrıca Synopsys'ın Symphony HLS yazılımı var). Bunları kullanarak hem Matlab Simulink üzerinde simulasyonlar yapıp tasarımınızı doğrulayabilir hem de çalıştırdığınız tasarımları FPGA kodlarına (VHDL, Verilog) otomatik dönüştürebilirsiniz. Böylece bit bit algoritmanızın çalışıp çalışmadığını FPGA simulasyon programlarında debug etmenize gerek kalmaz.

Kolay gelsin…

Shatlyk, 2012/12/18 12:23

Geri beslemeli DC motor kontrolü projesini FPGA ile tasarlamam lazım. Bana yardım edebilirmisiniz.

Aydin Coskuner, 2013/02/25 14:25

Nasıl bir yardıma ihtiyaç duyduğunuzu daha detaylı anlatabilirseniz yardımcı olmaya çalışırım.

Çağatay CANBAZ, 2012/10/02 07:09

Merhaba hocam .Benim bir sorum olacaktı.Bir proje aldım .FPGA ile herhangi bir şey tasarlayıp uygulayacağım. Ancak bir türlü ne yapacağımı bulamadım. Bana yardımcı olabilirseniz sevinirim. Şimdiden teşekkür ederim…

Aydin Coskuner, 2013/02/25 00:56

Merhaba,

FPGA'lerin ana kullanım amacı yüksek işlem gücü gerektiren uygulamaların paralel olarak yapılmasıdır. Ayrıca en önemli özelliklerinden ihtiyacınıza özel yapıları geliştirerek size özel donanım geliştirmenize imkan tanımasıdır. Örneğin FPGA üzerinde kendi işlemcinizi tasarlayarak çalıştırabilirsiniz veya sistemde birçok seri port ihtiyacınız varsa bunların hepsini tek bir FPGA üzerine yükleyeceğiniz UART modülleri ile sağlayabilirsiniz.

Buna göre geliştireceğiniz uygulamanın mikrokontrolör yerine FPGA üzerinde yapılmasının daha uygun olduğu bir proje seçmenizi öneririm. Örneğin bir şifreleme algoritması olan AES'i geliştirebilirsiniz veya FPGA tasarımına yeni başlıyorsanız UART geliştirebilirsiniz.

Kolay gelsin…

Şehmus Fidan, 2012/08/27 04:01

Merhaba hocam model_sim ile yazdıklarımızı doğrudan test edebilirmiyiz yoksa illaki geliştirme kartımı gerekir. Saygılarımla

Aydin Coskuner, 2013/02/25 00:37

Merhaba,

Geliştirdiğiniz FPGA kodlarını (VHDL, Verilog) yazdığınız testbench ile doğrudan Modelsim, Active HDL veya Xilinx ISIM kullanarak test edebilirsiniz. Bu testbench'leri de yine VHDL veya Verilog ile yazabilirsiniz. Yapacağınız hiçbir simülasyonda elinizde gerçek donanımın bulunmasına ihtiyaç olmaz. Ama simulasyonları gerçek ortamda denemek isterseniz tabii ki bir aşamada geliştirme kitini alıp kodları buna yüklemeniz gerekecektir.

Benim bu konuda tavsiyem öncelikle simulasyonlar yaparak tasarımınızı belli bir aşamaya getirmeniz ve sonra tasarımınızın ihtiyacını karşılayacak FPGA kitini almanızdır.

Kolay gelsin…

Yorumunuzu girin:
253 +3 = 
 
  • projelerim/elektronik/fpga.txt
  • Son değiştirilme: 2019/05/08 21:25
  • (Dışarıdan düzenle)