Plazma sayı 5, sayfa 28

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 28

FPGA ve CPLD'lerden söz açılmışken biraz bu çipler hakkında bilgi vermek istiyorum. FPGA ne demek? İngilizce açılımı Field-Programmable Gate Array olan bu çiplere Türkçe anlaşılabilir bir isim vermek biraz zor, ama programlanabilir çip diyebiliriz. Tabi böyle deyince yine kafada soru işaretleri oluşabilir, programlanabilir çip ne demek? Normal CPU'larda programlanmıyor mu? diyebilirsiniz. Ama burada bahsedilen programlama biraz farklı. Bunun farkını kavrayabilmek için biraz alt seviyeye inip ASIC olarak ifade edilen (belli uygulamalara özgü) çiplerin yapısını anlatmamız gerekiyor. Bu çipler belirli sayıda mantık kapılarının (AND, OR, NOT ve bunların kombinasyonları) dizimiyle oluşturuluyor. Ve üretildikten sonra bu yapı sabit kalıyor. Bu ne demek, yani bir 68000 işlemci üretildikten sonra ancak bir 68000 işlemci işlevini görüyor veya bir MPG decoder çipi sadece MPG çözüm işleminde kullanılabiliyor. Yeniden programlanabilir çipler ise kullanıcı tarafından konfigürasyonu değiştirilebilen mantık kapılarından oluşan bir yapıya sahip. Yani AND/OR/NOT kapıları ve bunların kombinasyonları yeniden programlanabilir çiplerde yeniden ayarlanabiliyor ve çip tamamen farklı bir işlev görebiliyor.

Peki bu FPGA'ler ne için kullanılıyor? Ne işe yarıyorlar? Öncelikle hardware tasarımı konusunda bir devrim anlamına geliyor, çünkü eskiden çok büyük ve hantal transistör plakalarıyla çip geliştirme işlemini, bir kibrit kutusu büyüklüğünde bir çip ile evde masa üstünde yapabiliyorsunuz. Mesela Amiga çipsetinin ilk tasarım aşamasında kullanılan sisteme bir bakalım:

Daphne ve Agnus Plakaları

Şekil 3.

Bu fotoğrafta gördüğünüz sağdaki üç plaka Agnus çipini oluşturuyor. Soldaki plakalar ise ilk Denise prototipi olan Daphne'ye ait. Dizaynda bir değişiklik yapmak gerektiğinde, bu plakalar üzerinde el ile gerekli değişiklik yapılıyor (atıyorum bir AND OR ile değişiyor, veya 85'inci AND kapısının çıkışı 37'inci XOR'un girişine bağlanıyor, gibi). FPGA'lerde ise bu tip işlemler tamamen software ile birkaç tuş darbesiyle yapılan bir değişikliğe dönüşüyor. HDL (hardware design language) denilen donanım tasarım dilleri ile yapmak istediğiniz değişikliği yapıp çipinize yüklüyorsunuz.

İlk Amiga Prototipi Lorraine ve 'custom chipset'

Şekil 4.

Burada ufak bir parantez açarak sizi 'Donanım tasarım dilleri' konusunda kısaca bilgilendirmek istiyorum. İlk donanım tasarım dili olan Verilog aslen 1985 yılında Gateway tarafından geliştirilmiş olan bir dil. Verilog'un en büyük alternatifi olan VHDL ise 1987 yılında ABD savunma bakanlığı tarafından geliştiriliyor. O dönemlerde programlanabilir çip teknolojisi fazla gelişmiş olmadığından bu diller daha çok simülasyon ortamında kullanılıyordu. İlk FPGA'lerin tasarımı Xilinx tarafından 1984 yılına dayanmasına rağmen ev kullanıcılarına hitap eden Spartan serisi FPGA'lerin geliştirilmesi 1998'i bulur. 2005'e gelindiğinde ise Spartan serisi 128 milyon satan, Xilinx'e yılda 1.2 milyon gelir getiren dev bir sektör haline gelmişti. 2005 Mart ayında Xilinx Spartan3E serisini piyasaya sürdü. Tam bu sıralarda ise Hollandalı Dennis Van Weeren, biraz da Commodore One projesinin etkisiyle Amiga çipsetinin FPGA üzerinde emüle edilip edilemeyeceğini düşünüyordu. Aynı sene içinde kendisine bir Spartan 3 başlangıç kiti alarak Verilog ile ilk kodlarını yazmaya başladı.

Klavyeyle gezinmek için ← ve → tuşları.