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ę).
Odpowiedzi:
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
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
Jeśli potrzebujesz płyty zamiast układu, oto dwie najnowsze opcje z 2013 roku:
źródło
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
źródło
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
źródło