Osadzony Linux na FPGA

10

Mam bardzo ograniczone doświadczenie z układami FPGA (Altera - korzystałem tylko z narzędzi do projektowania wizualnego).

Planuję nowy projekt, w którym potrzebuję FPGA i mogłem wiele skorzystać z faktycznego linuxa działającego na tej samej płytce (głównie do komunikacji TCP, a także DSP).

Moje pytanie brzmi: czy istnieje zalecany układ FPGA z przygotowanym do niego obsługiwanym osadzonym linuksem? żadnych wymyślnych sterowników (tylko Ethernet, Wi-Fi może być plusem, ...). Wyobrażam sobie, że w FPGA będzie wbudowany mikrokontroler (oznacza to, że zjadłby dużo FPGA i potrzebowałbym większego FPGA).

Ali
źródło

Odpowiedzi:

15

Podręcznikowy 32-bitowy rdzeń procesora RISC, który może obsługiwać Linuksa w wersji bez mmu, tak naprawdę nie musi być tak duży - prawdziwym zasobem, którego potrzebujesz, jest znacznie więcej pamięci RAM (10s megabajtów) niż dostępne w jakimkolwiek FPGA, więc Prawdopodobnie będę chciał SDRAM na płycie i kontrolera do tego w FPGA.

To powiedziawszy, jeśli chcesz czegoś więcej niż trywialny poziom wydajności, prawdopodobnie potrzebujesz rdzenia z pewnymi optymalizacjami (potokowanie itp.), A to zaczyna nieco zwiększać rozmiar. Dodanie pełnego mmu sprawi, że alokacja pamięci będzie bardziej wydajna i umożliwi normalne zachowanie fork () kopiowania przy zapisie.

Obaj główni dostawcy FPGA mają miękkie rdzenie procesorów z dostępnymi portami Linux - Microblaze dla Xilinx, Nios II dla Altera. Prawdopodobnie powinieneś przeczytać ich dokumenty, aby uzyskać szczegółowe zalecenia dotyczące platformy, ponieważ jest to oczywiście cel, który porusza się z czasem. Konstrukcja rdzenia innej firmy może być nieco większa dla podobnej wydajności, jeśli jest napisana w bardziej przenośny sposób i nie jest specjalnie zoptymalizowana dla danej rodziny FPGA.

Historycznie dostępne były układy scalone, które łączyły zarówno twardy rdzeń procesora (często powerpc), jak i region konfigurowalnej tkaniny FPGA. Inną opcją jest osobny procesor (prawdopodobnie ARM) na tej samej płytce co FPGA.

Wiele decyzji będzie zależeć od tego, jak mocno trzeba połączyć procesor z FPGA. Jeśli możesz zredukować problem do rejestrów konfiguracji i strumienia danych, może być tak modułowy, jak zawieszenie karty FPGA z szybkim układem USB poza portem USB wbudowanej płyty linux, takiej jak BeagleBoard lub RasberryPi. Aby uzyskać ściślejszą integrację, możesz chcieć FPGA na tej samej płycie i umieszczonej na zewnętrznej szynie procesora. Lub przy niskich prędkościach transmisji danych, umieszczenie interfejsu rejestru SPI w FPGA jest banalne, a interfejsy UART są całkowicie wykonalne, choć nieco trudniejsze.

Wreszcie pojawia się pytanie, czy rzeczywiście potrzebujesz pełnego systemu operacyjnego, takiego jak Linux, czy też wbudowany stos TCP o większym rozmiarze „mikrokontrolera” rozwiązałby Twój problem, wymagając mniej pamięci.

Chris Stratton
źródło
6

Microblaze Xilinx dobrze działa z Linuksem, zakładając, że jest wystarczająco szybki do twoich celów - zrobi tylko kilka dziesiątek MIPS na tańszych urządzeniach, 100-200 MIPS w drogich rodzinach.

Xilinx ma repozytorium git lub istnieje kilka specyficznych dystrybucji Xilinx. Elastyczność FPGA może być zarówno bólem, jak i dobrodziejstwem, ponieważ mapa pamięci i mapowanie IRQ, a nawet dostępne peryferia mogą się zmieniać podczas opracowywania projektu.

Petalinux ma skrypty do zarządzania tego rodzaju rzeczami i aktualizowania bitów konfiguracji jądra, które mają znaczenie w oparciu o twój najnowszy i najlepszy projekt systemu.

Martin Thompson
źródło
4

Linia Virtex Xilinx ma wersje FPGA z twardymi rdzeniami PowerPC. Uruchomienie Linuksa na PowerPC jest dość łatwe, moi uczniowie zrobili to dla wielu starszych projektów. Nadal mają wiele konfigurowalnych tkanin do wypełnienia projektu sprzętu.

Deska Pro ocena Virtex2 było bardzo powszechne w projektach edukacyjnych i naukowych badań. Ponieważ Xilinx zrezygnował ze wsparcia dla tej wersji układu w swoich najnowszych narzędziach, możesz go kupić dość tanio. Uważam, że był obsługiwany do wersji 9.x lub mniej więcej. Hmm To było kilka lat temu, więc może jestem trochę nostalgiczny. W każdym razie nadal przekazuję te tablice zainteresowanym studentom, aby mogli robić z nimi wszystko, co chcą.

Bill Nace
źródło
1
Jeśli się nie mylę, nazywają się Virtex xilinx.com/onlinestore/v2pro_boards.htm
Ali
1
@Ali - Nie sądzę, że się mylisz i masz dość wiarygodne referencje na swoje stwierdzenie. Możesz zaproponować edycję w takich sytuacjach!
Kevin Vermeer
3

SmartFusion firmy Actel integruje układ FPGA z rdzeniem Cortex-M3 ARM o twardym IP i zaawansowanym silnikiem analogowym w jednym urządzeniu chipowym.

uClinux działa całkiem dobrze na rdzeniu Cortex-M3 SmartFusion. Sprawdź tę stronę, aby uzyskać więcej informacji.

Vladimir Khusainov
źródło
2

W zależności od ramy czasowej możesz również zajrzeć do nowej linii Zynq-7000 Xilinx, która łączy procesor ARM z Artix-7 lub Kintex-7. Xilinx twierdzi, że będzie wysyłał ilości produkcyjne w drugiej połowie 2012 roku.

Inni dostawcy mogą mieć podobne produkty. Nie wiem, czy i kiedy Xilinx zapewni wsparcie Zynq w bezpłatnym pakiecie ISE WebPack; teraz twierdzą, że potrzebujesz ISE Embedded Edition.

Mikołaj
źródło
Dlaczego stworzyłeś tę wiki wiki społeczności? To prawdopodobnie było niepotrzebne.
Kevin Vermeer