FPGA ile tasarım yapmaya karar verdiniz ve kullanacağınız üreticiyi seçmek istiyorsunuz. Üretici seçimini yaparken dikkat etmeniz gereken önemli unsurlardan biri de üreticinin size sunduğu yazılımlar ve IP'ler (Intellectual Property'ler) olacaktır. IP'nin kısaca anlamı FPGA'e yükleyip kullanabileceğiniz hazır devre tasarımıdır. Bu tasarımlar VHDL ve Verilog kodu olabileceği gibi sadece hazırlayan firmanın FPGA'lerine uyabilecek sentezlenmiş de olabilirler.
Bunlardan bahsetmeden önce FPGA üretimi yapan ana firmaların isimlerini vereyim:
Xilinx ve Altera pazar payının büyük bir kısmını uzun süredir elinde bulunduran firmalardır (Kaynak: EEtimes 1, 2). Bu yüzden kendi yazılımları ve IP'leri diğerlerine nazaran çok daha fazladır. Bunun için bu iki şirketin araçlarını ele almaya çalışacağım. Diğer FPGA firmalarının kullandığı yazılım araçları genellikle third party
denilen başka firmalar tarafından hazırlanmaktadır. Ama bu şirketlerin de kendi sundukları IP'ler vardır.
Aşağıda Xilinx ve Altera'nın sunduğu araçları kısaca açıklamaya çalışacağım. Bu kısa açıklamaların giriş için yeterli olacağını ve FPGA araçlarının ne işe yaradığı (nedir, ne değildir) hakkında fikir vereceğini düşünüyorum.
Xilinx FPGA'leri ile tasarım yapmak için gerekli ana yazılım ISE Design Suite'dir. Ana amacı devreyi verilen tasarımı (şematik, vhdl, verilog) FPGA'e yüklenecek kod haline getirmektir. Bunun için verilen tasarım dört aşamadan geçer (synthesize, map, place&route, bitstream generation).
Bu işlemleri ISE otomatik olarak yapar. Basit bir tasarım için bu aşamalara müdahale etmek çok gerekli değildir. Ama bu aşamaların neler olduğunu öğrenmek FPGA'in çalışma mantığını anlamak açısından faydalı olacaktır. Çok kısaca bu aşamalar şöyle açıklanabilir:
Synthesize: VHDL, Verilog tasarımı anlamlı bir devre haline getirir (Çıktısı şematik gibi düşünülebilir).
Map: Üretilen devrenin FPGA içerisindeki kaynaklar cinsinden ifade edilmesini sağlar. Mesela bir VE kapısının (OR), LUT içerisine gireceğine karar verilir.
Place & Route: Map işleminden geçen devrenin elemanlarının FPGA içerisinde tam olarak nereye geleceği belirlenir. Burada tasarım artık FPGA'e yerleştirilmiş olur.
Bitstream Generation: Bu aşamada kullanıcı müdehalesi neredeyse hiç gerekmez. Translate aşamasında hazırlanmış tasarımın, FPGA yüklenecek bir formatta dosyaya (*.bit) yazılmasıdır.
ISE tasarım araçları ile birlikte satın alınabilen bir benzetim (simulasyon) programıdır. Yazılan kodların FPGA'e yüklenmeden önce nasıl davranacağını öğrenmek için simulasyon çok gereklidir. Yapılan devre tasarımı ISE Simulator'a verilecek Testbench vasıtasıyla test edilebilir.
Xilinx firmasının ISE'den ayrı olarak sattığı bir programdır. Bilgisyarınızı Lojik Gözlemleyici (Logic Analyzer) olarak kullanmanızı sağlar. FPGA üzerine eklenecek devrelerle FPGA çalışırken kaydettiği verileri bilgisayarınıza gönderir. Böylece hiçbir ekstra donanım olmadan kartın üstünde FPGA'e bağlı sinyaller gözlemlenebilir. Ayrıca asıl önemli tarafı FPGA içerisinde çalışan devrelerin iç sinyallerini gözlemeye imkan verir. Böylece FPGA'e yüklenenen devre içerisindeki bir sorun çok hızlı bir şekilde tespit edilebilir.
ISE programı ile birlikte gelen bir programdır. Program JTAG Chain'i içerisinde olan entegreleri programlamaya yarar. Bunun için uygun bir programlayıcının bilgisayara bağlı olması gerekmektedir.
EDK(Embedded Development Kit) ile FPGA içerisine işlemci konularak, işlemcinin ve çevre birimlerinin yönetilmesini sağlayan yazılımdır. EDK'da yönetilebilen iki işlemci vardır, bunlar Microblaze ve PowerPC'dir.
Microblaze işlemcilerin çalışma frekansları 150 MHz'e kadar çıkabilmekteyken, PowerPC işlemcileri 500 MHz'lerde çalışabilmektedir.