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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir