İçindekiler

FPGA Projelerim

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

FPGA Nedir?

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.

FPGA Proje Kaynakları

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.

Sıkça Sorulan Sorular

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.