Fpga calisma prensibi

Başlatan yamak, 08 Kasım 2011, 18:05:18

yamak

merha arkadaslar. Bildiginiz gibi fpgalar uzerlerinde ram ya da flash hafiza gibi birimler barindirmiyolar disarindan baglaniyo en azindan benim bildiklerim oyle. bu yuzden programi yazip yukledigimizde bir kere o programa uygun donanim tasarlaniyo enerji kesildiginde de tasarlanan donanim gidiyo. peki diyelim programda bir dizi olusturduk bu dizini eleman degerleri icin registerlar mi olusuyo yoksa bu elemanlar disaridan baglanan flasda mi saklaniyo gerektiginde oradan mi cekiliyo. bu soruyu sormamin nedeni cok sayida eleman iceren bir dizi tanimlayacam en az 100000 elemanli. bunun icin harici flash in hafizasi mi onemli yoksa fpga nin kapi sayisi mi

electronious

sizin ihtiyacınızı karşılar mı bilmiyorum ama benim kullandığım xilinx spartan da prom var. oraya da birşeyler gömebiliyosunuz ama sizin bahsettiğiniz türden işe yarıyor mu bilmiyorum. prom u koymalarının sebebi elektrik gidince kaybolan sistemi kaydetmek.

berat23

bu çalışılan fpga'e göre değişir.öncelikle fpga'e program atılmaz,yazılan kodlar bilgisayarda sentezlenir ve netlist yüklenir.her fpga geçici hafızaya sahipde değildir.birçok flash hafızalı fpga var.bunun yanında mesela alterada seri programlama hafızaları var.böylece tasarlanan donanım her enerji verildiğinde baştan yükleniyor fpga'e.

fpga memory konusunda çok esnek.harici bir hafıza kullanabilirsiniz,kendi içinde hafıza blokarı vardır,her bir logic elementi bir bitlik reg olarak kullanabilirsiniz,logic elementlerin içindeki lookup table'ları sabitleri saklamak için kullanabilirsiniz. yani hafıza da kullanılabilir kapı da.

fatihinanc

@berat23'ün dediği gibi FPGA içerisinde hafıza birimi(memory block), lojik bloklar vs. birlikte bulunabiliyor. Bu FPGA'in modeline göre değişebilir. Temel olarak aşağıdaki gibi bir yapı;


Bu da Lattice marka gelişmiş bir FPGA'in iç yapısı;


Kullandığınız FPGA modelinde yer alan memory block lar yaklaşık olarak ne kadar byte a karşılık geliyorsa ona göre bir hesap yapıp tasarımınızı gerçekleştirebilirsiniz. Bildiğim kadarıyla bu hesap firmaya göre değişiyor. Mesela Xilinx lojik blokları LUT hesabı üzerinden verirken Altera Logic Element tabirini kullanıyor. Ve LUT ile Logic Element farklı büyüklüklere karşılık gelebiliyor. Aynı hesap memory blocklar için de geçerli galiba.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

hasaney

Eğer FPGA çalıştığında kendisi otomatik yapılandırılsın diyorsanız yaptığınız tasarımınızı bir belleğe yüklemeniz gerekir. FPGA bu bellekten açılış sırasında ayarları alır. Bilgisayardan alacağınız da ise belleğe ihtiyaç duyulmaz.
Her iki durumda da kesinlikle FPGA çipinin kapasitesi önemlidir ve oluşturulan tasarım kapasitenin üzerinde olmamalıdır.
Açılış sırasında yapılandırmayı kullanacaksanız da yaptığınız tasarım (sentezlediğiniz dosya) belleğe de sığmalıdır.

Ayrıca her iki durumda da tasarımların kapasiteyi aşması durumunda sentez programı (Xilinx ISE veya Altera Quartus) hata verir. 

muhendisbey

FPGA çalışma presnsibi olarak al tak kullan donanımı değildir zaten. FPGA da tasarladığını ASIC olarak ürettirip yada donanımını tasarlayıp kullanırsın. Yani ben Cyclone 3 yada spartan alayım kartıma basayım diye bir kullanım yeri yok. Bu tür kullanıma DS processorlar uygun. Çünkü FPGA birçok ek donanım gerektirir. Mesela Prom, eprom, flash.. vs bağlaman gerekir. FPGA'nın farklı beslemelere ihtiyacı var, 1.2V 3.3V vs gibi. Bunların her biri ekstra devre ekstra maliyet demek.

VHDL, Verilog, Abel gibi dillerle derlediğin dosya bir hafıza birimine atılır, ve FPGA enerjilendiğinde buradaki yol haritasını, üzerine yazar.

İçerisine register oluşturmak, hafıza oluşturmak, bunlar tamamen sana kalmış. Boş bir tarla düşün ve istediğini ekebilirsin (donanımı ve kapı sayısı kadar)

100000 elemanlı kapı sayısı senin donanımınla alakalı. Yani çok yada az denemez. Kullandığın geliştirme kartında kullanılan FPGA çekirdeğinin kapı miktarını bilmeden birşey denemez. Ancak yeni nesil bir kart kullanıyorsan neden gerçeklenemesin ki? Mesela Cyclone 4 te 150,000 lojik element mevcut. Hafıza sorun olmaz kanaatimce.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

yamak

Tamam arkadaslar tesekkurler sorun cozuldu.