En ucuz FPGA'lar? [kapalı]


44

FPGA'lar ne kadar ucuz? Karşılaştırma kabiliyetine sahip mikroişlemcilerden daha pahalı olduklarını biliyorum, ancak Linux çalıştıran bir Microblaze yumuşak çekirdeği içerebilecek FPGA'lar olup olmadığını merak ediyorum; bir Cortex A8 (miktar olarak 20-30 $, ~ 100).

(Terminolojimin idiomatik olmadığı, yani yanlış olduğu için özür dilerim. Lütfen düzeltmelerle yorum yapın veya doğrudan düzenleyin.)


(utanmaz fiş) GNU radyosu (USRP2), bir demet DSP bloğu ile birlikte verilen bir AEMB'yi kullanır. Yazılım tanımlı radyoyu gerçekten iyi yapıyor - aeste.my/node/29
sybreon

@sybreon Tuhaf bir şekilde Senior Design projemde USRP2 kullanıyorum - Güzel
onaclov2000


Yanıtlar:


23

Geçenlerde FPGA'lar üzerine çevrimiçi bir konferansa katıldım: “Bir sonraki işlemciniz FPGA mı?”

FPGA temel olarak yüksek derecede paralelleştirilebilir iş akışları gerektiren herhangi bir uygulamada anlamlıdır; kullanılan bir örnek, örneğin yayalar bulmak için Full HD görüntüleri analiz etmektir.

Hatırlamanız gereken şey, FPGA'nızı her açılışında başlatmanız gerektiği, FPGA'nın Xilinx'inin (çipte bir ARM çekirdeğine sahip olan) iyi bir seçenek olduğunu düşünüyorum, ancak muhtemelen pahalı. Çip üzerinde flaş bulunan Actel'lere bakmak da faydalı olabilir.

Performans açısından, BDTI şirketi, bir FPGA'ya geçerken yaklaşık 40x performans kazancı gördükleri son derece paralel hesaplamalarda bir kriter yaptı. İlginç olan, fişleri benzer maliyetlerle karşılaştırdıklarıdır (23 $ - 28 $ inanıyorum).

İşte ilginizi çekebilecek bağlantılar:

İşlemci seçimine yönelik cep rehberi

FPGA Konferans Arşivi (Ücretsiz kayıt, ancak yalnızca bu cevaptan yaklaşık 6 ay sonra kullanılabilir)

MIGA veya Mhz istatistiklerine göre FPGA tabanlı sistemlerin performansını gerçekten karşılaştıramazsınız. Bir FPGA'nın belirli görevleri yerine getirme şekli bir Mikrodenetleyiciden çok farklıdır. Bir FPGA için ürün yazılımı tasarımı, örneğin Montaj'a benzer VHDL kullanarak yapmanız gereken bir şeydir. Soyutlamanın kayıt aktarım seviyesi (RTL). Bazı ortamlar daha fazla soyutlama sağlamak için üretiliyor, ancak bunlar hala satıcıya özel. Wikipedia'da FPGA kodunu programlamak için uygun dillere genel bakış vardır:

Wikipedia: FPGA Programlama

Wikipedia: Dijital Devre Tasarımı

Yakacak paranız varsa, örneğin FPGA tabanlı gerçek zamanlı ölçüm sistemleri oluşturmak için LabView sistemlerini kullanabilirsiniz. Bunun için gereken bu cihazlar tamamen farklı bir fiyat aralığında (1500 $ ve üstü), ancak grafik programlama ile FPGA tasarımını daha geniş bir kitleye açıyor.

Gittikçe daha fazla tedarikçi, belirli ek özellikler ve paralel işlem gücü sağlamak için ARM çipi gibi mikro denetleyicileri FPGA ile birleştiren panolar sağlıyor. Bu tür ürünlere bir örnek burada bulunabilir: EmbeddedARM: FPGA series


23

FPGA'lar ne kadar ucuz? Newark'a göre, en ucuz FPGA'lar 10 $ civarında (en düşük seviye Altera Cyclone ve en düşük seviye Xilinx Spartan). Basit bir 8 bit işlemciyi çalıştırmak için yeterli kapasiteye sahip olabilirler.

Beklediğiniz gibi, basit (yani, bir MMU'suz) bile 32-bit CPU'lar 8-bit CPU'ların FPGA kaynaklarının yaklaşık 4 katı gerektirir. Bu kadar basit bir 32-bit işlemciyi çalıştırmak için yeterli kaynaklara sahip olmayan FPGA'ların maliyeti 14 dolar civarında. Anladığım kadarıyla, uCLinux'un bu FPGA yumuşak işlemcilerden bazılarına (NIOS II / e gibi) aktarıldığı, yani uClinux'u amaçlarınız için yeterli bulabilir.

Tam teşekküllü Linux, bir MMU'ya sahip bir CPU (NIOS II / f gibi) gerektirir. MMU içeren bir 32 bit CPU, MMU'suz bir 32 bit işlemcinin FPGA kaynaklarının yaklaşık 4 katı gerektirir - bunun nedenleri açık değildir.

Xilinx Microblaze sayfasından söyleyebileceğim kadarıyla , Microblaze soft CPU yalnızca Xilinx FPGA'larda çalışır.

Linux zaten birçok başka yumuşak işlemciye taşındı. Linux'u başka bir şirketin FPGA'larında çalıştırmak istiyorsanız, "FPGA için Soft CPU Cores" bölümünde listelenen Linux bağlantı noktalarına bakmak isteyebilirsiniz .

Bu yumuşak işlemcilerin birçoğu - bir MMU dahil - bir Xilinx Spartan XC3S400A'ya (Avnet'ten 17 $) sığacak.

Bir MMU dahil bazı 32-bit yumuşak işlemcilerin 20 dolarlık bir FPGA çipinde "çift çekirdekli" olarak ayarlanmasının oldukça kolay olduğunu duydum. "Jan's Razor" u takip edenler, aynı çipte bir düzine kadar 8-bit işlemcileri sıkmaya çalışabilirler.


1
Diğer (Xilinx olmayan) FPGA'lara açık olması gereken açık kaynaklı Microblaze uygulamaları (aeMB - opencores.org/project, aemb gibi ) vardır.
mrkj

(utanmaz fiş) AEMB'nin Altera FPGA'larda de uC / OS-II kullandığı bilinmektedir - aeste.my/node/7
sybreon

11

Genellikle FPGA, silikonda uygulanan aynı cihazdan çok daha pahalıya mal olur, çünkü yeniden yapılandırılabilirlik nedeniyle çok fazla ek yük vardır. Yani hayır, 20-30 dolarlık bir ARM CPU ile 20-30 dolarlık bir ARM CPU ile aynı güce sahip olan bulamazsınız. Şimdi, 20-30 ABD Doları için 20-30 ABD Dolarından çok daha hızlı belirli görevleri gerçekleştirebilen bir FPGA bulabilirsiniz, ancak genel bilgisayar işlemlerinde bunu başaramaz.

Bu yüzden insanların aynı panoya bir mikrodenetleyici ve bir FPGA taktığını görmek yaygındır. ARM ve PPC, FPGA ile en yaygın olarak birleştirilenlerdir.


4
Maliyet ve performansta mikro atım yapan bir FPGA bulamayacağımı biliyorum, ancak aynı performansı tek bir çipte sunarken, mikro + FPGA'nın maliyetini geçen bir FPGA varmış gibi görünüyor. bu mantıklı mı?
55'te pingwept

10

Bir FPGA satın alırken, FPGA programını içeren Flash belleğin maliyetini hesaba katmayı unutmayın. Unutması kolay.

Bir PCB tasarımcısı olarak FPGA'ların yerleştirilmesi milyon kat daha kolaydır, çünkü pinout'u yeniden düzenleyebilirsiniz, ancak pano yapıldıktan sonra bile istediğiniz şekilde düzenleyebilirsiniz. Bir FPGA yönlendirmek için gereken daha az katmanla ilişkili potansiyel maliyet tasarrufu vardır.

İşlemci performansına karşı FPGA poo-poo diğerlerine, bir ölçüde katılıyorum. Gerçek işlemci-işlem yapma işleminde, işlemci gibi davranması için programlanmış bir FPGA'dan daha hızlı gerçekleşir.

Bu aslında bir FPGA için adil değil. İşlemciler "zaman kısıtlıdır"; daha fazla iş yapmak istiyorsanız, daha fazla zamana veya daha hızlı bir işlemciye ihtiyacınız var. FPGA'lar genellikle "alan sınırlıdır"; daha fazla iş yapmak istiyorsanız, daha büyük bir FPGA'ya ihtiyacınız vardır.

Örneğin, mono ses sinyalini işleyen bir spektral analiz cihazı yaptığınızı varsayalım. Diyelim ki CPU zamanının% 70'ini alıyor ve zaten CPU'nun gidebileceği kadar hızlısın. Stereo destek ekleyemezsiniz, çünkü CPU, ilk kanalı tekrar kullanmadan önce ikinci kanalı yapacak kadar hızlı değildir. Ancak FPGA'nın% 70'ini kullanıyorsanız, daha büyük bir FPGA satın alabilir ve ikinci kanalı bırakabilirsiniz. Daha hızlı gitmesi gerekmez.

Bir CPU yerine Sonlu Devlet Makineleri ve ortak veri yolu kullanarak Sayısal Tasarım etki alanına sorunu, taşıdık Şimdi, eğer ben FPGA olacağı pezosuna dolar bahse girerim ezmek tasarımında artan karmaşıklık pahasına, CPU.


1
Ayrıca flaş tabanlı FPGA'lar (ACTEL) ve dahili flaşlı bazı SRAM tabanlı olanlar da vardır (Xilinx Spartan3AN, LatticeXP).
sybreon

Ayrıca sadece daha hızlı bir CPU satın alabilir ve ikinci kanalı devreye alabilirsiniz. İyi bir karşılaştırma değil.
user253751

@ immibis Söylediğiniz şey aslında ajs410'un anlamı ile aynı: FPGA'nın daha hızlı olması gerekmiyor, daha büyük olması gerekiyor . İşlemcilerle gitmek istiyorsanız, işlemin doğası paralelleştirilebildiği sürece yapabileceğiniz şey ikinci bir işlemciyi getirmek.
Johan Boulé

7

Xilinx geçtiğimiz günlerde ARM ile ARM çekirdeklerini FPGA'lere koymalarını sağlayacak bir anlaşma yaptı . Ne yazık ki, yalnızca sınıfının en iyisi Virtex cihazları için geçerli olacaklar.


3
Çok ilginç.
pingwept

2
Sanırım sadece Virtex cihazlarında görünen ARM çekirdekleri hakkında yanılıyorsunuz. Basın bülteni pek bir şey ifade etmiyor ve PPC çekirdeklerinin yalnızca V2P, V4FX ve V5FXT bölümlerinde görünmesinden kaynaklandığını sanmıyorum. Xilinx web sitesi "performans, maliyet ve güç" için optimize edilmiş cihazlardan bahsediyor (bkz. Xilinx.com/technology/roadmap/processing-platform.htm ); maliyetin asla Virtex serisi için bir optimizasyon vektörü olmadığını göreceksiniz.
mrkj

1
Ayrıca, 7 serisi FPGA'ların duyurusunda ( xilinx.com/technology/roadmap/7-series-fpgas.htm ) ARM'dan hiç bahsedilmez ve bir PPC ile V6 veya V7 kısmı yoktur. Tüm bunları benim üstlenmem, yüksek performanslı parçalara gömülü işlemcilerden uzaklaşmalarıdır.
mrkj

3
Sanırım bu anlaşmanın sonucu Zynq ?
Janus Troelsen

4

FPGA fiyatlandırması gariptir - bayili bir disti ile konuştuğunuzda, Digikey, Mouser vb. Fiyatlarında belirtilen fiyatların elde edilenden birkaç kat daha yüksek olduğunu görüyorsunuz. Farkında olduğum en ucuz tepsi Qty cinsinden GBP3'ün biraz altında QFP100'de bulunan Lattice EC1. SPI flash bellek için GBP0.40 veya daha fazlasını ekleyin.

CPU'ların FPGA dokusuna yerleştirilmesi genellikle silikon maliyeti açısından iyi bir değer değildir, ancak CPU ve FPGA arasında sıkı bağlantı ve diğer paketlerin azaltılması gibi diğer faktörler, ayrı bir CPU kullanmaya karşı optimum tradeoffayı değiştirebilir.


2
Son derece iyi nokta. Ayrıca , bir Farnell çalışanının Altera Cyclone IV yongalarının 3 $ kadar düşük olduğunu ve Farnell'in kendi sayfalarındaki en ucuz fiyatını 20 $ 'a yakın tuttuğunu öne süren bir Farnell çalışanından [ element14.com/community/thread/2434] adlı yazıya bakınız . Şimdi, açıkça, çoğu insan 250.000 adetten alım yapamayacak, ancak bu distribütörler muhtemelen% 566'dan daha düşük bir miktarla işlem yapmaya istekli olabilirler ...
Jules

3

Şimdiye kadarki en iyi tahminim 16 $ civarında olan Xilinx XC3S400A gibi bir şey, ancak bir MicroBlaze ile başa çıkabileceğinden emin değilim.


3
Hızlı bir bakış çevrimiçi, bir microblaze çekirdek bir XC3S400A içinde mantık hücrelerinin yaklaşık yarısını kullanır. Ek olarak, Cortex A8 600MHz - 800MHz'de çalışır, FPGA üzerindeki mikroblaze 200MHz - 300MHz'de çalışır.
davr

Bu yüzden (sisteminizin işlemciye bağlı olduğu varsayılırsa) ~ 3 kat daha yavaş olur, ancak başka bir şey için fazla kapılar bırakırken karşılaştırılabilir maliyet.
pingwept

1
Bu sadece gerçek frekansı karşılaştırmanın en temel yolu olan frekansı karşılaştırmak. Bu konuda yeterince bilgim yok, ancak aynı saat hızında, bir
ARM'in

1
Evet, yeterince adil. İlk yaklaşım, sanırım.
38'de pingwept

3

Uygulamanıza çok bağlı. Buradaki ideal uygulama, küçük bir kontrol parçasından (mikroblaze / NIOS'a uyar), ancak özel donanımın büyük paralellikten faydalanabileceği bir hesaplama kısmından oluşuyor. Bu durumlarda, mütevazı bir FPGA (Spartan veya muadili) bile herhangi bir genel amaçlı CPU'dan kolayca daha iyi performans gösterebilir. Ancak, uygulamanızın önemli bir kontrol bölümü varsa veya donanıma kolayca eşleştiremiyorsanız, paranızı sabit donanıma (yani bir ARM) harcamak, bu en iyi durumdur (birçok gerçek dünya uygulamasında çok ulaşılabilir olmasına rağmen) muhtemelen daha iyi.



0

Birçok Altera'nın mevcut CPLD'leri dahili konfigürasyon hafızasına sahip FPGA'lar olduğundan, onları http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp için alabilirsiniz.


0

her şeyden önce bir çekirdekte linux çalıştırmak istersiniz. Bu konudaki diğer bazı öneriler gibi bir ARM üzerinde çalıştırmaya ne dersiniz ? MCU işletim sistemi işletmede iyidir ancak bir MCU oluşturmak için FPGA kaynak israfına yol açmaktadır. MCU'lar, bunun için özel olarak tasarlandıklarında daha küçük bir silikon alana sığabilir ve böylece daha ucuza üretilebilirler. O zaman mantıksal işlemler tam olarak işlemeyi istemiyor olsa da, FPGA'ların paralel işlemede gerçekten iyi oldukları hakkında başka açıklamalar da var. Sizin de belirttiğiniz gibi, güçlü FPGA'lar pahalılaşıyor ve güç gerçekten aç. Bu yüzden hızlı IO vb. İçin paralellik avantajlarına ihtiyaç duyan linux ve DSP çalıştırabilen düşük maliyetli bir platform. XMOS paralel işlemciye bir göz atın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.