Najtańsze układy FPGA? [Zamknięte]

44

Jak tanie są FPGA? Wiem, że są one droższe niż mikroprocesory o porównywalnych możliwościach, ale zastanawiam się, czy istnieją układy FPGA, które mogłyby zawierać miękki rdzeń Microblaze z systemem Linux, pozostawiając jednocześnie bramy umożliwiające wdrożenie funkcji DSP (na przykład kodeków medialnych) w cenie konkurencyjnej w porównaniu z , powiedzmy, Cortex A8 (20-30 USD w ilości ~ 100).

(Przepraszamy, jeśli moja terminologia nie jest idiomatyczna, tj. Jest niepoprawna. Proszę o komentarz z poprawkami lub bezpośrednią edycję).

pingswept
źródło
(bezwstydna wtyczka) radio GNU (USRP2) wykorzystuje AEMB w pakiecie z szeregiem bloków DSP. Naprawdę dobrze programuje radio zdefiniowane programowo - aeste.my/node/29
sybreon
@sybreon Dziwne, że używam USRP2 w moim projekcie Senior Design - Nicea
onaclov2000
powiązane: „Cheap FPGA dev board”
Davidcary

Odpowiedzi:

23

Niedawno wziąłem udział w internetowej konferencji poświęconej układom FPGA, której hasłem przewodnim było „Czy twój następny procesor będzie układem FPGA”

FPGA ma sens w każdej aplikacji, która wymaga wysoce równoległych strumieni roboczych, na przykład analizowano obrazy Full HD w celu znalezienia na przykład pieszych.

Należy pamiętać, że należy inicjalizować układ FPGA za każdym razem, gdy się włącza. Myślę, że Xilinx z układem FPGA (z rdzeniem ARM na chipie) to dobra opcja, ale prawdopodobnie droga. Przydatne może być również sprawdzenie Actela z wbudowanym układem flash.

Jeśli chodzi o wydajność, firma BDTI przeprowadziła testy porównawcze w wysoce równoległych obliczeniach, w których zaobserwowała około 40-krotny wzrost wydajności przejścia na układ FPGA. Interesujące jest to, że porównali układy o podobnych kosztach (wydaje mi się, że 23 $ vs 28 $).

Oto linki, które mogą Cię zainteresować:

Kieszonkowy przewodnik po wyborze procesora

Archiwum konferencji FPGA (darmowa rejestracja, ale dostępna tylko przez około 6 miesięcy po tej odpowiedzi)

Naprawdę nie można porównać wydajności systemów opartych na FPGA opartych na statystykach MIPS lub Mhz. Sposób, w jaki FPGA jest wykorzystywany do przetwarzania niektórych zadań, jest po prostu zbyt różny od mikrokontrolera. Projektowanie oprogramowania układowego dla FPGA jest czymś, co musisz zrobić, używając na przykład VHDL, który jest podobny do asemblera. Poziom transferu rejestru (RTL) abstrakcji. Niektóre środowiska są tworzone w celu zapewnienia większej abstrakcji, ale wciąż są one często specyficzne dla dostawców. Wikipedia ma niezły przegląd języków dostępnych do programowania kodu FPGA:

Wikipedia: Programowanie FPGA

Wikipedia: Projektowanie układów cyfrowych

Jeśli masz pieniądze na spalenie, możesz na przykład użyć systemów LabView do budowy systemów pomiaru czasu rzeczywistego opartych na FPGA. Potrzebne do tego urządzenia mają zupełnie inną cenę (1500 $ i więcej), ale otwierają projekt FPGA dla znacznie szerszej publiczności dzięki programowaniu graficznemu.

Coraz więcej sprzedawców oferuje płyty, które łączą mikrokontrolery, takie jak układ ARM z układem FPGA, aby zapewnić określone dodatkowe funkcje i moc przetwarzania równoległego. Przykład takich produktów można znaleźć tutaj: EmbeddedARM: seria FPGA

Wouter Simons
źródło
23

Jak tanie są FPGA? Według Newark, najtańsze układy FPGA wynoszą około 10 USD (najniższy cykl Altera i najniższy Xilinx Spartan). Mogą mieć wystarczającą pojemność, aby uruchomić prosty 8-bitowy procesor.

Jak można się spodziewać, nawet proste (tj. Bez MMU) 32-bitowe procesory wymagają około 4 razy więcej zasobów FPGA niż 8-bitowy procesor. Procesory FPGA z ledwie wystarczającymi zasobami do obsługi tak prostego 32-bitowego procesora kosztują około 14 USD. Rozumiem, że uCLinux został przeniesiony na niektóre z tych miękkich procesorów FPGA (takich jak NIOS II / e) - może się okazać, że uClinux jest odpowiedni do twoich celów.

Pełnoprawny Linux wymaga procesora z MMU (np. NIOS II / f). 32-bitowy procesor z MMU wymaga około 4 razy więcej zasobów FPGA niż 32-bitowy procesor bez MMU - przyczyny tego nie są tak oczywiste.

O ile wiem na stronie Microblaze Xilinx , miękki procesor Microblaze działa tylko na FPGA Xilinx.

Linux został już przeniesiony na kilka innych miękkich procesorów. Jeśli chcesz uruchomić Linuksa na FPGA innej firmy, możesz spojrzeć na porty Linux wymienione w „Miękkich rdzeniach procesorów dla FPGA” .

Kilka z tych miękkich procesorów - w tym MMU - zmieści się na Xilinx Spartan XC3S400A (17 USD od Avnet).

Słyszałem, że niektóre 32-bitowe miękkie procesory - w tym MMU - można łatwo ustawić jako „dwurdzeniowy” na układzie FPGA o wartości 20 USD. Ci, którzy śledzą „Jan's Razor”, mogą zamiast tego spróbować wcisnąć kilkanaście 8-bitowych procesorów na tym samym układzie.

Davidcary
źródło
1
Istnieją implementacje Microblaze typu open source (takie jak aeMB - opencores.org/project,aemb ), które powinny przenosić się na inne układy FPGA (inne niż Xilinx).
mrkj
(bezwstydna wtyczka) AEMB jest także znany z uruchamiania uC / OS-II w Altera FPGA - aeste.my/node/7
sybreon
11

Zasadniczo układ FPGA będzie kosztował znacznie więcej niż to samo urządzenie zaimplementowane w krzemie, ponieważ ze względu na możliwość ponownej konfiguracji istnieje duże obciążenie. Więc nie, nie znajdziesz układu FPGA za 20-30 USD, który ma taką samą moc jak procesor ARM, który kosztuje 20-30 USD. Teraz możesz znaleźć układ FPGA za 20-30 USD, który może wykonywać określone zadania znacznie szybciej niż ARM 20-30 USD, ale nie będzie w stanie pokonać go w ogólnych zadaniach obliczeniowych.

Właśnie dlatego ludzie często przyklejają mikrokontroler i układ FPGA do tej samej płyty. ARM i PPC to dwa najczęściej łączone z FPGA.

davr
źródło
4
Rozumiem, że nie znajdę układu FPGA, który przewyższałby mikro kosztem i wydajnością, ale wydaje się, że może istnieć układ FPGA, który przewyższałby koszt układu micro + FPGA, zapewniając jednocześnie podobną wydajność, wszystko w jednym układzie. Czy to ma sens?
pingswept
10

Kupując układ FPGA, nie zapomnij wziąć pod uwagę kosztu pamięci Flash, która zawiera program FPGA. Łatwo to zapomnieć.

Jako projektant obwodów drukowanych układy FPGA są miliony razy łatwiejsze do rozłożenia, ponieważ możesz zmienić układ styków w dowolny sposób, nawet po wykonaniu płyty. Istnieją potencjalne oszczędności kosztów związane z mniejszą liczbą warstw potrzebnych do trasowania układu FPGA.

Dla innych, którzy kupują układy FPGA w porównaniu do wydajności procesora, zgadzam się do pewnego stopnia. Rzeczywisty procesor będzie szybszy w wykonywaniu rzeczywistych czynności niż procesor FPGA zaprogramowany do działania jak procesor.

Nie jest to jednak tak uczciwe wobec układu FPGA. Procesory są „ograniczone czasowo”; jeśli chcesz wykonać więcej pracy, potrzebujesz więcej czasu lub szybszego procesora. Układy FPGA są zwykle „ograniczone do obszaru”; jeśli chcesz wykonać więcej pracy, potrzebujesz większej FPGA.

Załóżmy na przykład, że wykonujesz analizator spektralny, który obsługuje monofoniczny sygnał audio. Załóżmy, że zajmuje to 70% czasu procesora, a procesor jest już tak szybki, jak to możliwe. Nie można dodać obsługi stereo, ponieważ procesor po prostu nie jest wystarczająco szybki, aby wykonać drugi kanał, zanim będzie musiał ponownie obsłużyć pierwszy kanał. Ale jeśli używasz 70% FPGA, możesz po prostu kupić większy FPGA i upuścić drugi kanał. Nie musi iść szybciej.

Teraz, jeśli przeniosłeś problem do domeny Digital Design, używając skończonych maszyn stanu i ścieżek danych zamiast procesora, postawiłbym dolary na pesos, że FPGA zmiażdży procesor, kosztem rosnącej złożoności projektu.

ajs410
źródło
1
Istnieją również układy FPGA oparte na pamięci flash (ACTEL) i niektóre oparte na pamięci SRAM z wbudowaną pamięcią flash (Xilinx Spartan3AN, LatticeXP).
sybreon
Możesz też po prostu kupić szybszy procesor i wpuścić drugi kanał. Niezbyt dobre porównanie.
user253751
@immibis To, co mówisz, jest w istocie tym samym, co punkt ajs410: FPGA nie musi być szybsza , musi być większa . Jeśli chcesz korzystać z procesorów, możesz przynieść drugi procesor, o ile charakter przetwarzania jest równoległy.
Johan Boulé
7

Xilinx zawarł ostatnio umowę z ARM, która umożliwi im umieszczanie rdzeni ARM na FPGA. Niestety będą one dostępne tylko dla najlepszych urządzeń Virtex.

Leon Heller
źródło
3
Bardzo ciekawe
pingswept
2
Myślę, że mylisz się co do rdzeni ARM pojawiających się tylko w urządzeniach Virtex. Informacja prasowa nie mówi zbyt wiele i nie sądzę, że można wywnioskować to z faktu, że rdzenie PPC pojawiają się tylko w częściach V2P, V4FX i V5FXT. Witryna Xilinx wspomina, że ​​urządzenia są optymalizowane pod kątem „wydajności, kosztów i mocy” (patrz xilinx.com/technology/roadmap/processing-platform.htm ); zauważysz, że koszt nigdy nie jest wektorem optymalizacyjnym dla serii Virtex.
mrkj
1
Ponadto ARM nigdy nie jest wspomniany w ogłoszeniu o FPGA z serii 7 ( xilinx.com/technology/roadmap/7-series-fpgas.htm ) i nie ma części V6 ani V7 z PPC. Uważam, że odchodzą od wbudowanych procesorów w częściach o wysokiej wydajności.
mrkj
3
Myślę, że wynikiem tej umowy jest Zynq ?
Janus Troelsen,
4

Ceny FPGA są dziwne - kiedy rozmawiasz z franczyzowym dystrybutorem, okazuje się, że ceny podane w Digikey, Mouser itp. Mogą być kilkakrotnie wyższe niż to, za co można je uzyskać. Najtańsza, o której wiem, to krata EC1 w QFP100 za nieco poniżej 3 GBP w ilościach w zasobniku. Dodaj około 0,40 GBP dla pamięci flash SPI.

Umieszczenie procesorów w tkaninie FPGA nie jest ogólnie dobrą wartością pod względem kosztu krzemu, ale inne czynniki, takie jak ścisłe sprzężenie procesora z FPGA, i zmniejszona liczba pakietów mogą zmienić optymalny kompromis w stosunku do używania oddzielnego procesora.

mikeselectricstuff
źródło
2
Niezwykle dobry punkt. Zobacz także ten post [ element14.com/community/thread/2434] od pracownika Farnell sugerujący, że żetony Altera Cyclone IV są dostępne już za 3 USD, podczas gdy najtańsza cena Farnell na ich stronie internetowej jest dla nich bliższa 20 USD. Najwyraźniej większość ludzi nie zamierza kupować w ilości 250 000, ale prawdopodobnie dystrybutorzy tak robią i mogą chcieć handlować za nieco mniej niż 566% znaczników ...
Jules
3

Moje najlepsze przypuszczenie do tej pory to coś w rodzaju Xilinx XC3S400A, który kosztuje około 16 USD, ale nie jestem pewien, czy poradziłby sobie z MicroBlaze.

pingswept
źródło
3
Z szybkiego przeglądu online, rdzeń mikroblazy wykorzystałby około połowy komórek logicznych w XC3S400A. Ponadto Cortex A8 działałby z częstotliwością 600 MHz - 800 MHz, podczas gdy mikropłysk na FPGA działałby z częstotliwością 200 MHz - 300 MHz.
davr
Byłoby to około 3 razy wolniejsze (zakładając, że twój system jest związany z procesorem), ale porównywalny koszt, pozostawiając nadmiar bramek na coś innego.
pingswept
1
To tylko porównanie częstotliwości, najbardziej podstawowy sposób porównywania faktycznej prędkości przetwarzania. Nie mam wystarczającej wiedzy na ten temat, ale możliwe jest na przykład, że przy tej samej częstotliwości zegara ARM jest dwa razy szybszy niż Microblaze
davr
1
Tak, w porządku. To chyba pierwsze przybliżenie.
pingswept
3

Wiele zależy od twojej aplikacji. Idealna aplikacja tutaj składałaby się z niewielkiej części kontrolnej (która pasuje do mikroblazy / NIOS), ale części obliczeniowej, która może skorzystać z ogromnej równoległości niestandardowego sprzętu. W takich przypadkach nawet niewielki układ FPGA (Spartan lub równoważny) może z łatwością wyprzedzić dowolny procesor ogólnego przeznaczenia. Ale to najlepszy przypadek (chociaż bardzo możliwy do osiągnięcia w wielu aplikacjach w świecie rzeczywistym), jeśli twoja aplikacja ma znaczną część kontrolną lub nie łatwo mapuje na sprzęt, wydawanie pieniędzy na stały sprzęt (tj. ARM) jest prawdopodobnie lepiej.

Wim
źródło
3

Jeśli potrzebujesz płyty zamiast układu, oto dwie najnowsze opcje z 2013 roku:

Janus Troelsen
źródło
0

Ponieważ wiele obecnych CPLD Altera to układy FPGA z wbudowaną pamięcią konfiguracyjną, można je uzyskać na stronie http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp

Brian Carlton
źródło
0

przede wszystkim chcesz uruchomić Linux na rdzeniu. Co powiesz na uruchomienie go na ARM, podobnie jak inne sugestie w tym wątku. MCU są dobre w systemie operacyjnym, ale marnowanie zasobów FPGA na budowę MCU jest marnowane. Jednostki MCU mogą się zmieścić w znacznie mniejszym obszarze krzemowym, jeśli są specjalnie zaprojektowane do tego, a zatem mogą być produkowane taniej. Są też inne wyjaśnienia, że ​​układy FPGA są naprawdę dobre w przetwarzaniu równoległym - to prawda, chociaż operacje logiczne nie mają ochoty na dokładne przetwarzanie. Jak zauważyłeś, potężne układy FPGA są drogie i rzeczywiście wymagają dużej mocy. Tak więc tania platforma, na której można uruchomić system Linux i DSP, wymagający korzyści z równoległości dla szybkiego IO itp. Spójrz na procesor równoległy XMOS

Pete Tasker
źródło