FPGA

FPGA-TASARIM SOYUTLAMA SEVIYELERI #2

FPGA tasarımında HDL dilleri kullanır. HDL klasik programlamadan tamamen farklı, donanım tasarlama için geliştirilmiş dillerdir. Örneğin bir C programında yazılan kod satır satır işlenir ve her şey sırasıyla gerçekleşir. HDL dilinde yazdığınız kod ise bir fiziksel yapı olşturur ve işleyiş tamamen bu yapının nasıl tasarlandığı ile ilgilidir. Kodun yazım sırası ile işleyisi arasında direk bir ilişki yoktur. Asıl akış sistemin nasıl tasarlandığıyla ilgilidir.

Yazılım ile donanım tasarımında çeşitli soyutlama seviyeleri vardır. Bu seviyeler programcının tercihine ve ihtiyaçlara göre farklılık gösterebilir.

  1. Layout Level: En temel tasarım seviyesidir. Bu seviyede programcılar transistörlerin layoutlarından başlayarak tasarım yaparlar. Bu seviyede programlama için yüksek bir elektronik bilgisi gerekir. Her bir transistör gerçek dünyada oluşturulacağı gibi programlanır. ASIC tasarımlarında kısmi olarak kullanır ancak büyük çaplı projeler için kullanışsız kalabilir.
    Diopsis
  2. Gate Level: Bu seviyede tasarımlar lojik kapılar seviyesinde yapılır. Tüm tasarım blokları kapı seviyesinden inşa edilerek ana modül oluşturulur. Bu seviyede büyük çalışmaların takibi yine zor olsa da donanım seviyesinde transistörlerin oluşturulmasıyla ilgilenilmez. Bu yüzden lojik tasarımı doğru aktarmak sistemin çalışması için yeterli olur.
    Bu seviyede netlist ler ve kapı yapıları kullanılır.
    Breadboard_complex
  3. Data Flow Level(Veri Akış Seviyesi): Bu seviyede programcı donanımdan biraz daha soyutlanır. Donanımdan bağımsız tasarım yapabilir. Bu kısımda önemli olan tasarımdaki veri akışıdır. Bu seviyede register, clock, logic block gibi kavramlar kullanılmaya başlanır.
    Aşağıdaki görselde bu seviyede tasarlanmış bir yapının RTL gösterimi yer alır.
    RISC_PROCESSOR_1
  4. Behavioural Level(Davranışsal Seviye): Davranışsal seviyede lojik blokların nasıl davranacağı programlanır. Algoritma seviyesinde program yazılır. Lojik kapılar seviyesine çok nadir olarak gereken yerlerde inilir ancak gerekli durumlar hariç algoritma seviyesinde yazılan programlar donanımı tasarlamak için yeterli olur. Davranışsal seviye donanım programlama için bu gün için en üst seviyedir.
    C++ ile yazılan kodların donanıma çevrilmesi ile ilgili çeşitli çalışmalar ve uygulamalar da bulunmaktadır.
    FPGA-development-the-good-the-bad-the-ugly-1-1024x518graal
Kategorisiz

FPGA-NEDIR? #1

FPGA (Field Programmable Gate Array) Sahada Programlanabilir Kapı Dizileri olarak türkçeleştirilebilir. Biraz daha açmak gerekirse FPGA devre üzerinde iç yapısı programlanabilir lojik devreler serisidir.

swvvifhq558

FPGA’lerin tasarım kolaylığı ve paralel işlem yapabilme gücü tercih sebeplerinin başında gelir. FPGA ile birçok işlemi eş zamanlı yapabilirsiniz. Bu sizin yazacağınız donanım kodlamasına bağlıdır. FPGA ile paralel işlemler yapan çeşitli IP ler tasarlayabileceğiniz gibi bir mikroişlemci tasarımı da yapabilirsiniz.

FPGA’ler HDL denilen dillerle programlanmakdır. Bunların başlıcaları Verilog ve VHDL dilleridir. Basit bir benzetme yapacak olursak Verilog C, VHDL assembly gibi anılır ancak kesinlikle ve kesinlikle geleneksel programlama ile donanım programlama dilleri tamamen farklıdır. Klasik programlamada program işleyişini düzenlerken, HDL programlamada donanım yapısını tasarlıyorsunuz.

Virtex7_200t-Substratec1omp-1d

FPGA bir çok alanda kullanılmaktadır. Bunların başını savunma, medikal ve ölçüm sektörleri yer alır. FPGA firmaları ASIC tasarımı yapmadan ve çeşitli lojik entegrelerin kombinasyonlarıyla uğraşmadan donanım tasarımı yapılmasına izin verir. Örnek vermek gerekirse uygulamaya özel DSP tasarımı yapmak FPGA ile sadece yazılım üzerinden gerçekleştirilebilir.

pciev4base-nah-virtex4-fpga

İlk FPGA üreticisi Xilinx firmasıdır. Halen bu konuda başı çeken firmalar arasındadır. Aynı seviyede bugün Altera da bu alanda öncü firmalardandır. Altera yakın zamanda Intel tarafından satın alınmıştır. Pazarın büyük kısmı bu iki firmadadır.

board_front21