FPGA e neden gerek duyulur?

Başlatan mir_as82, 09 Mayıs 2014, 14:01:27

mir_as82

FPGA e neden gerek duyulur. Ve bunun arge sini yapacak olan firmalar FPGA ile ne yaparlar? Üstünlüğü nedir?

Recep METE

Alıntı yapılan: mir_as82 - 09 Mayıs 2014, 14:01:27
FPGA e neden gerek duyulur. Ve bunun arge sini yapacak olan firmalar FPGA ile ne yaparlar? Üstünlüğü nedir?
FPGA'NIN en büyük özelliği parelel çalışmasıdır. Aynı anda iki üç işi yapabilirsiniz
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

z

FPGA içinde donanım oluşturursun.

Mesela atıyorum içinde 100 tane USART birimi olan çipe ihtiyacın var. Kimse de böyle bir çip üretmemiş.

Kullanıcı olarak sen, FPGA içine bu donanımı kolayca oluşturabilirsin.

Kısacası FPGA, büyük ölçekte lojik devre tasarımı yapıp çip içine gömmene imkan tanıyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Tagli

Nasıl uygulamalarda buna ihtiyaç duyarız? Mesela hangi noktada RTOS yerine FPGA'ya yönelmek gerekir?
Gökçe Tağlıoğlu

kimlenbu

RTOS'ta işletim sistemi yazılımsal olarak işlemlerin paralel çalışmasını sağlar. misal 10sn bekle dediğinde işletim sistemi durmaz, gider diğer bekleyen işlemleri yapar, 10sn sonra da diğer işlemin kaldığı yerinden devam eder.

FPGA'da sen lojik kapılar kullanarak fiziksel bir donanım oluşturursun.

yamak

FPGA ile RTOS kıyaslanamaz aslında.İkisi farklı şeyler.
@z'nin söylediği alanlarda da kullanılır sinyal şleme gibi konularda da.Hatta en çok kullanıldığı alan sinyal işleme.
Mesela yazılımsal filtreler işlemciye büyük ölçüde yük bindirir.Bu sebeple gerçekle zamanlılık gerektiren bu tarz uygulamalarda kullanılabilir.
Ya da bir çok entegrenin yapacağı işi FPGA'ya yaptırıp devre daha anlaşılmaz hale getirelbilir.Böylece devrenin kopyalanması büyük ölçüde engellenir.

Ramiz

Alıntı yapılan: Tagli - 09 Mayıs 2014, 14:19:01
Nasıl uygulamalarda buna ihtiyaç duyarız? Mesela hangi noktada RTOS yerine FPGA'ya yönelmek gerekir?

rtos aslinda gercek zamanli calisiyormus gibi gozukur ama hicbir task fiziksel olarak ayni anda calisamaz. Fpga icinde, ayni anda calisabilen lojik devreleri dusun. Cok basidinden, iki bacak and islemine tabii tutulup, xx bacagindan cikis aliyorsunuz. Ayni anda fpga in baska bacaklarindanda or islemi yapiyorsunuz ve yy bacagindan cikis aliyorsunuz. iki islem ayni anda calisabilir ama mcu once birisini, sonra otekini yapar.

Umarim aciklayici olmustur.
Electrical & Electronics Engineering -> Step one

E_Kk

Evet @Tagli neden RTOS veya neden FPGA bu konuyu bende merak ediyorum. RTOS ve FPGA ile uğramış birilerinden cevap alırsak sevinirim.
Ben biraz FPGA kullandım. FPGA üzerinde istersek her işlerimizi birbirinden bağımsız, paralel ve gerçek zamanlı olarak yapabiliyoruz. Buna rağmen RTOS ile işlerimizi paralel değil paralelmis gibi yapıyoruz. Peki gerçekten paralel FPGA yerine neden RTOS u tercih edeyim? Maliyet veya Tasarım kolaylığı açısından mı? Ya da daha hızlı proje geliştirmek için mi?
"Meselâ: Hendese bir fendir. Onun hakikatı ve nokta-i müntehası, Cenab-ı Hakk'ın İsm-i Adl ve Mukaddir'ine yetişip, hendese âyinesinde o ismin hakîmane cilvelerini haşmetiyle müşahede etmektir."Sözler

picusta

"bekle" fonksyonunun implementation'nuna bagli. for döngüsü mü yoksa OS primitifini 'mi çagirmis ona bakilmali.
10 sn'lik islem gerektiren (örnegin hesaplama ) 2 islemi parallel yapamazsin. Ancak multicore islemcilerde oluyor.


iki gün önce bunu bizzat denedim: windows'ta görüntü isleme yaparken, bir dosyadaki bütün resimleri bir döngüde islemek yerine ,
Parallel.For each ile isleyince, 2 çekirdekli islemcide toplam zaman neredeyse yariya indi.

Tamamen konu disi :
Parallel .NET framework'unun sundugu bir özellik. Burada bir thread pool olusturuluyor (sinirili sayida ayni zamanda çalisacak görevler) yapilacak islemler de bu havuza teker teker dagitiliyor.

Konuya dönersek,
Bir ara forumdan birisi (Allah rahmet eylesin) "FPGA ile kart gelistirisem psikolojik read protect yapmis olurum, karti Türkiye'de kopyalayamazlar" demisti.
Tabii o zamandan bu zamana FPGA bilen ve kullanan kisi sayisi artti.

Z'nin dedigi gibi, sistemde very hard realtime (low latency) tepki gerekiyorsa veya spesifik bir donanimla baglanti gerekiyorsa FPGA kaçinilmaz oluyor.
Baska bir alternatif'te ayni karta bir ana islemci + bir veya birkaç MCU kullanmak.

yamak

#9
Her uygulama için FPGA kullanılmaz kullanılabilse bile gereksiz olur maliyet artar.
Her uygulamada paralleği ihtiyaç duymayız hatta tam aksine sıralı işlem olması gerekir.
Ama işlemlerin genellikle bir öncelik sırasına göre işlemesi genellikle tercih edilir.
İşte bu tarz yerlerde RTOS kullanırız ki tasklarımız bir öncelik sırasına göre çalışşın.

FPGA ise bir örnek üzerinde açıklarsak:
Diyelim ki kameradan gelen görüntü üzerinde kenar belirleme yapacaz ve işlenmiş görüntüyü de monitöre verecez.İşte bu tarz uygulamalar için FPGA biçilmiş kaftandır.
Kameradan görüntünün alınması,işlenmesi ve  işlenmiş görüntünün VGA vs portuna gönderilmesi aynı anda yapılabilir.
Bu işi bir MCU ile yapacak olasaydık ilk olarak kameradan görüntü okurduk(Tabi kamera interface i olmaya MCU'lardan bahsediyorum),işlerdik ve sonra da monitöre aktarırdık bu yüzden  de bu işlem gerçek zamanlı olmazdı.
Bu tarz örnekler çoğaltılabilr.FPGA genel olarak bu tarz ihtiyaçlarda kullanılır.

speak48

ihtiyaç duyacak bir projeye başladığınızda
yaw bunu yapabilcek birşey olmalı der
ve anlarsınız nerede kullanıcağınızı.

hasankara

multitasking ile multiprocess arasındaki fark gibi düşünülebilinir. Çok çekirdekli işlemciler ilk çıktığı zamanlar insanlar 2,4ghz nin tam olarak 4,8 ghz gibi performans vereceğini düşünebiliyordu. defalarca böyle olmadığı örneklerle açıklanmıştı. odaklanılması gereken nokta uygulama bazlı performans artışının çokça değişkenlik göstermesi.

Tagli

Arkadaşlar, FPGA ile RTOS'un aynı şey olmadığını ve karşılaştırılamayacağını biliyorum zaten. Ama her ne kadar çalışma mantığı ve performans olarak çok farklı olsalar da benzer amaca hizmet ediyorlar: Tek donanım üzerinde birden fazla iş yapmak. Yani ben soruyu görev açısında sordum. Olayın iki boyutu var aslında. Bunlardan biri gerçektan pek çok işi aynı anda yapmak. Diğeri işi ufak parçalara bölerek programlamayı kolaylaştırmak. RTOS sadece bu sonuncusunu yaparken FPGA ikisini de yapıyor. Yani sorum, hangi noktadan sonra RTOS bizi kurtarmaz ve işlerin gerçekten aynı anda paralel yapılmasına ihtiyaç duyarız? Piyasada hangi işler FPGA ile yapılıyor?
Gökçe Tağlıoğlu

yamak

Hocam mesela düşünün ki ses işleme yapacaksınız.
Gelen sinyali,filtereden geçirme,fourier ini alma vs tarzında işlemlere tabi tutacaksınız ve bunu arkasında da ses işleme algoritmasını çalıştıracaksanız ve bu uygulamanız gerçek zamanlı olacak.Bu tarz bi uygulamada FPGA kullanılabilir.RTOS bu tarz bi uygulamayı gerçek zamanlı hale getirmez.
Tabi illa FPGA kullanılacak diye bir şey yok DSP ile de halledilebilir belki.Zaten genelde uygulamalarda DSP mi FPGA mı diye seçim yapılır.
Fiyat performans oranına göre karar verilir.

speak48

#14
bir cpu nun bir tane alusu var ve
işlemlerinizi sadece burada yapabiliyorsunuz.
eğer yapılması gereken iş bu aluya döndüre döndüre yapmaya kalktığınızda
yinede işi zamanında halledemiyecek kadar zor bir işse.
burada ihtiyacınız olan donanım olacaktır.
fpga yı söyle farzedin cpunu 1 alusu var fpganın istediğiniz kadar "kapasitesi yettiğince"
tabi bu işlemsel yönü için , kontrol için düşünürsek.

hard hard hard real time çünkü hardware donanımın ta kendisi .
programlanabilir logic veya asic emulatörü de diyebiliriz.