SDK FPGA dla OpenCL
Instrukcja użytkownika
UG-OCL009
2017.05.08
Ostatnia aktualizacja pakietu Intel® Quartus® Prime Design Suite: 17.0
Subskrybować
Wyślij opinię
Zestaw referencyjny zestawu deweloperskiego Intel® FPGA SDK dla OpenCL™ Intel® Cyclone®V SoC — przewodnik dotyczący przenoszenia platform
Przewodnik dotyczący przenoszenia platformy referencyjnej zestawu deweloperskiego V SoC opisuje projekt sprzętu i oprogramowania platformy referencyjnej zestawu deweloperskiego Intel Cyclone V SoC (c5soc) do użytku z zestawem Intel Software Development Kit (SDK) dla OpenCL. Intel ® FPGA SDK dla OpenCL ™ Intel Cyclone ® . Przed rozpoczęciem firma Intel zdecydowanie zaleca zapoznanie się z treścią następujących dokumentów:
- Intel FPGA SDK dla OpenCLIntel Cyclone V SoC Przewodnik wprowadzający
- Podręcznik użytkownika zestawu narzędzi Intel FPGA SDK dla platformy niestandardowej OpenCL
- Podręcznik urządzenia Cyclone V, tom 3: Podręcznik techniczny systemu z twardym procesorem. Ponadto należy zapoznać się z zestawem rozwojowym Cyclone V SoC Development Kit i stroną pakietu SoC Embedded Design Suite w Altera webwitrynę, aby uzyskać więcej informacji. 1 2
Uwaga: Firma Intel zakłada, że posiadasz dogłębną wiedzę na temat podręcznika użytkownika pakietu Intel FPGA SDK for OpenCL Custom Platform Toolkit. Przewodnik dotyczący przenoszenia platformy referencyjnej zestawu rozwojowego Cyclone V SoC nie opisuje użycia zestawu narzędzi platformy niestandardowej pakietu SDK do wdrożenia platformy niestandardowej dla zestawu rozwojowego Cyclone V SoC. Opisuje jedynie różnice między obsługą SDK w zestawie rozwojowym Cyclone V SoC a ogólnym zestawem SDK Intel FPGA dla platformy niestandardowej OpenCL.
Powiązane linki
- Intel FPGA SDK dla OpenCL Cyclone V SoC Przewodnik wprowadzający
- Podręcznik użytkownika zestawu narzędzi Intel FPGA SDK dla platformy niestandardowej OpenCL
- Podręcznik urządzenia Cyclone V, tom 3: Podręcznik techniczny systemu procesora twardego
- Strona zestawu rozwojowego Cyclone V SoC i pakietu SoC Embedded Design Suite w Altera webstrona
- OpenCL i logo OpenCL są znakami towarowymi Apple Inc. używanymi za zgodą Khronos Group™.
- Zestaw Intel FPGA SDK dla OpenCL jest oparty na opublikowanej specyfikacji Khronos i przeszedł proces testowania zgodności Khronos. Aktualny stan zgodności można sprawdzić pod adresem www.khronos.org/conformance.
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus i Stratix, słowa i logo są znakami towarowymi firmy Intel Corporation lub jej oddziałów w USA i/lub innych krajach. Firma Intel gwarantuje działanie swoich produktów FPGA i produktów półprzewodnikowych zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym momencie i bez powiadomienia. Firma Intel nie przyjmuje żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, chyba że zostało to wyraźnie uzgodnione na piśmie przez firmę Intel. Klientom firmy Intel zaleca się uzyskanie najnowszej wersji specyfikacji urządzenia przed skorzystaniem z jakichkolwiek opublikowanych informacji i złożeniem zamówienia na produkty lub usługi.
*Inne nazwy oraz marki mogą być własnością osób trzecich.
1.1.1 Zestaw deweloperski Cyclone V SoC Warianty płytek platformy referencyjnej
Zestaw Intel FPGA SDK dla platformy referencyjnej zestawu deweloperskiego OpenCL Cyclone V SoC obejmuje dwa warianty płytek.
- płyta c5soc
Ta domyślna płyta zapewnia dostęp do dwóch banków pamięci DDR. Pamięć HPS DDR jest dostępna zarówno przez układ FPGA, jak i procesor. FPGA DDR jest dostępna tylko przez FPGA. - płyta c5soc_sharedonly
Ten wariant płyty obsługuje wyłącznie łączność HPS DDR. FPGA DDR nie jest dostępna. Ten wariant płyty jest bardziej wydajny obszarowo, ponieważ do obsługi jednego banku pamięci DDR potrzeba mniej sprzętu. Płyta c5soc_sharedonly jest także dobrą platformą do prototypowania końcowej płyty produkcyjnej z jednym bankiem pamięci DDR.
Aby podczas kompilacji jądra OpenCL kierować się na ten wariant płyty, dołącz opcję -board c5soc_sharedonly w poleceniu aoc.
Więcej informacji na tablicy – opcji polecenia aoc można znaleźć w podręczniku Intel FPGA SDK for OpenCL Programming Guide.
Powiązane linki
Kompilowanie jądra dla określonej płytki FPGA (–board )
1.1.2 Zawartość platformy referencyjnej zestawu rozwojowego Cyclone V SoC
Platforma referencyjna zestawu rozwojowego Cyclone V SoC składa się z następujących elementów files i katalogi:
File lub Katalog | Opis |
tablica_env.xml | rozszerzalny język znaczników (XML) file który opisuje c5soc w zestawie SDK Intel FPGA dla OpenCL. |
linux_sd_card_image.tgz | Skompresowany obraz karty flash SD file który zawiera wszystko, czego potrzebuje użytkownik SDK, aby korzystać z zestawu rozwojowego Cyclone V SoC z SDK. |
ramię32 | Katalog zawierający następujące informacje: |
1.1.3 Istotne cechy zestawu rozwojowego Cyclone V SoC
Na poniższej liście wymieniono komponenty i funkcje zestawu rozwojowego Cyclone V SoC, które są istotne dla pakietu Intel FPGA SDK dla OpenCL:
- Dwurdzeniowy procesor ARM Cortex-A9 z 32-bitowym systemem Linux.
- Magistrala Advanced eXtensible Interface (AXI) pomiędzy HPS a rdzeniem FPGA.
- Dwa wzmocnione kontrolery pamięci DDR, każdy podłączony do 1 gigabajta (GB) pamięci DDR3 SDRAM.
— Jeden kontroler DDR jest dostępny tylko dla rdzenia FPGA (tzn. FPGA DDR).
— Drugi kontroler DDR jest dostępny zarówno dla HPS, jak i FPGA (tzn. HPS DDR). Ten współdzielony kontroler umożliwia swobodne współdzielenie pamięci pomiędzy procesorem a rdzeniem FPGA. - Procesor może zmienić konfigurację rdzenia FPGA.
1.1.3.1 Platforma referencyjna zestawu rozwojowego Cyclone V SoC Cele i decyzje projektowe Intel opiera wdrożenie platformy referencyjnej zestawu rozwojowego Cyclone V SoC na kilku celach projektowych i decyzjach. Firma Intel zaleca rozważenie tych celów i decyzji podczas przenoszenia tej platformy referencyjnej na kartę SoC FPGA.
Poniżej znajdują się cele projektowe c5soc:
- Zapewnij najwyższą możliwą przepustowość pomiędzy jądrami układu FPGA i systemami pamięci DDR.
- Upewnij się, że obliczenia na FPGA (czyli jądrach OpenCL) nie kolidują z innymi zadaniami procesora, które mogą obejmować obsługę urządzeń peryferyjnych.
- Zostaw jak najwięcej zasobów FPGA do obliczeń jądra zamiast komponentów interfejsu.
Poniżej znajdują się decyzje projektowe wysokiego poziomu, które są bezpośrednimi konsekwencjami celów projektowych firmy Intel:
- Platforma referencyjna wykorzystuje wyłącznie twarde kontrolery pamięci DDR o najszerszej możliwej konfiguracji (256 bitów).
- Układ FPGA komunikuje się bezpośrednio z kontrolerem pamięci HPS DDR, bez angażowania magistrali AXI i przełącznika L3 wewnątrz HPS. Bezpośrednia komunikacja zapewnia najlepszą możliwą przepustowość pamięci DDR i zapobiega zakłócaniu obliczeń FPGA w komunikacji pomiędzy procesorem a jego urządzeniami peryferyjnymi.
- Bezpośredni dostęp do pamięci typu scatter-gather (SG-DMA) nie jest częścią logiki interfejsu FPGA. Zamiast przesyłać duże ilości danych pomiędzy systemami pamięci DDR, przechowuj dane we współdzielonym dysku HPS DDR. Bezpośredni dostęp do pamięci procesora przez układ FPGA jest wydajniejszy niż DMA. Oszczędza zasoby sprzętowe (czyli obszar FPGA) i upraszcza sterownik jądra Linuksa.
Ostrzeżenie: Transfer pamięci pomiędzy współdzielonym systemem HPS DDR a systemem DDR dostępnym tylko dla FPGA jest bardzo powolny. Jeśli tak zdecydujesz
przesyłaj w ten sposób pamięć, używaj jej tylko do bardzo małych ilości danych. - Host i urządzenie wykonują między sobą transfer danych w trybie innym niż DMA za pośrednictwem mostu HPS-to-FPGA (H2F), korzystając tylko z jednego 32-bitowego portu. Powodem jest to, że bez DMA jądro Linuksa może wysłać tylko jedno 32-bitowe żądanie odczytu lub zapisu, więc szersze połączenie nie jest konieczne.
- Host wysyła sygnały sterujące do urządzenia za pośrednictwem lekkiego mostu H2F (LH2F).
Ponieważ sygnały sterujące przesyłane z hosta do urządzenia mają niską przepustowość, most LH2F idealnie nadaje się do tego zadania.
1.2 Przenoszenie platformy referencyjnej na płytkę SoC FPGA
Aby przenieść platformę referencyjną zestawu rozwojowego Cyclone V SoC na płytkę SoC FPGA, wykonaj następujące zadania:
- Wybierz jedną lub dwie pamięci DDR platformy referencyjnej c5soc jako punkt wyjścia dla swojego projektu.
- Zaktualizuj lokalizacje pinów w ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, gdzie ALTERAOCLSDKROOT to ścieżka do lokalizacji pakietu Intel FPGA SDK do instalacji OpenCL, oraz to nazwa katalogu wariantu płytki. Katalog c5soc_sharedonly jest przeznaczony dla wariantu płyty z jednym systemem pamięci DDR. Katalog c5soc dotyczy wariantu płyty z dwoma systemami pamięci DDR.
- Zaktualizuj ustawienia DDR dla bloków HPS i/lub FPGA SDRAM w pliku ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
4. Wszystkie preferowane projekty płyt Intel FPGA SDK dla OpenCL muszą zapewniać gwarantowane zamknięcie czasowe. W związku z tym rozmieszczenie projektu musi być zgodne z harmonogramem. Aby przenieść partycję płyty c5soc (acl_iface_partition.qxp) na kartę SoC FPGA, wykonaj następujące zadania:
Szczegółowe instrukcje dotyczące modyfikacji i konserwacji partycji płyty znajdują się w instrukcji Quartus
Kompilacja przyrostowa Prime dla projektowania hierarchicznego i zespołowego w podręczniku Quartus Prime Standard Edition.
A. Usuń plik acl_iface_partition.qxp z katalogu ALTERAOCLSDKROOT/board/c5soc/c5soc.
B. Włącz region_acl_iface_region LogicLock™, zmieniając polecenie Tcl set_global_przypisanie -name LL_ENABLED OFF -section_id acl_iface_region na set_global_przypisanie -name LL_ENABLED ON -section_id acl_iface_region
C. Skompiluj jądro OpenCL dla swojej płyty.
D. W razie potrzeby dostosuj rozmiar i lokalizację regionu LogicLock.
mi. Po upewnieniu się, że rozmieszczenie projektu jest zgodne z harmonogramem, wyeksportuj tę partycję jako partycję wyeksportowaną acl_iface_partition.qxp Quartus Prime File.
Zgodnie z opisem w sekcji Ustanawianie gwarantowanego przepływu synchronizacji w podręczniku użytkownika zestawu narzędzi AIIntel FPGA SDK dla OpenCL Custom Platform Toolkit, importując ten plik .qxp file w projekt najwyższego poziomu, spełniasz wymóg zapewnienia projektu płytki z gwarantowanym przepływem zamknięcia czasowego.
Informacje na temat czynników, które mogą mieć wpływ na jakość wyników (QoR) wyeksportowanej partycji, można znaleźć w sekcji Ogólne uwagi na temat jakości wyników dla wyeksportowanej partycji płyty w podręczniku użytkownika zestawu narzędzi Intel FPGA SDK dla platformy niestandardowej OpenCL.
F. Wyłącz region_acl_iface_region LogicLock, przywracając polecenie z kroku 2 z powrotem do set_global_przypisanie -nazwa LL_ENABLED OFF identyfikator_sekcji region_iface_acl. - Jeśli Twoja płyta SoC FPGA wykorzystuje różne piny i peryferia bloku HPS, zregeneruj moduł wstępnego ładowania i źródło drzewa urządzeń (DTS) file. Jeśli zmienisz ustawienia kontrolera pamięci HPS DDR, zregeneruj moduł wstępnego ładowania.
- Utwórz obraz karty flash SD.
- Utwórz platformę niestandardową, która zawiera obraz karty flash SD.
- Rozważ utworzenie wersji środowiska uruchomieniowego platformy niestandardowej do użytku ze środowiskiem wykonawczym Intel FPGA Runtime Environment (RTE) dla OpenCL. Wersja RTE platformy niestandardowej nie zawiera katalogów sprzętowych ani obrazu karty flash SD. Ta niestandardowa platforma ładuje się do systemu SoC FPGA, aby umożliwić działanie aplikacji hosta. Natomiast wersja platformy niestandardowej SDK jest niezbędna, aby zestaw SDK mógł kompilować jądra OpenCL.
Wskazówka: możesz używać wersji SDK swojej platformy niestandardowej dla RTE. Zapisać
spacji, usuń obraz karty flash SD z wersji RTE platformy niestandardowej. - Przetestuj swoją platformę niestandardową.
Więcej informacji można znaleźć w sekcji Testowanie projektu sprzętu w podręczniku użytkownika zestawu narzędzi Intel FPGA SDK dla platformy niestandardowej OpenCL.
Powiązane linki
- Testowanie projektu sprzętu
- Kompilacja przyrostowa Quartus Prime do projektowania hierarchicznego i zespołowego
- Ustalenie gwarantowanego przepływu czasu
- Ogólne rozważania dotyczące jakości wyników dla wyeksportowanej partycji płytowej
1.2.1 Aktualizacja przeniesionej platformy referencyjnej
W aktualnej wersji platformy referencyjnej Cyclone V SoC Development Kit blok HPS znajduje się wewnątrz partycji, która definiuje całą logikę inną niż jądro. Nie można jednak eksportować HPS jako części pliku .qxp file. Aby zaktualizować istniejącą platformę niestandardową, którą zmodyfikowałeś w stosunku do poprzedniej wersji c5soc, zaimplementuj proces konserwacji QXP, zaktualizuj obraz karty flash SD, aby uzyskać najnowsze środowisko wykonawcze, i zaktualizuj plik board_spec.xml file aby umożliwić automatyczną migrację.
Altera® SDK dla OpenCL w wersji 14.1 i nowszych bada specyfikacja_płyty.xml file w celu uzyskania informacji o zarządzie i wdraża automatyczne aktualizacje. Ponieważ modyfikujesz plik
projektu poprzez wdrożenie przepływu konserwacji QXP, należy zaktualizować plik board_spec.xml file do formatu w aktualnej wersji. Aktualizowanie file umożliwia pakietowi SDK rozróżnienie pomiędzy niezachowanymi platformami niestandardowymi a bieżącymi platformami niestandardowymi opartymi na QXP. Aby uzyskać więcej informacji, zobacz temat Automatyzacja platformy niestandardowej w celu zapewnienia kompatybilności z poprzednimi wersjami w podręczniku użytkownika pakietu Intel FPGA SDK dla zestawu narzędzi platformy niestandardowej OpenCL.
- Aby zaimplementować przepływ konserwacji QXP w projekcie sprzętowym Cyclone V SoC FPGA przeniesionym z poprzedniej wersji c5soc, wykonaj następujące kroki, aby utworzyć podpartycję w celu wykluczenia HPS z pliku .qxp file:
A. Przed utworzeniem partycji wokół logiki innej niż jądro utwórz partycję wokół HPS w ustawieniach .qsf Quartus Prime File.
Na przykładampna:
# Ręcznie podziel na partycje instancję modelującą dedykowane wejścia/wyjścia dla HPS zestaw_instancji_przypisanie -name PARTITION_HIERARCHY borde_18261 -to „system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps_0_hps_io:hps_io| system_acl_iface_hps_0_hps_io_border:border” -section_id “system_acl_iface_hps_0_hps_io_border:border”
# Ustaw partycję typu HPS_PARTITION, aby była poprawnie przetwarzana przez resztę Quartusa
set_global_przypisanie -name PARTITION_TYPE HPS_PARTITION -section_id "system_acl_iface_hps_0_hps_io_border:border"
quartus_cdb góra -c góra
–eksport_kompilacji_inkrementalnej=acl_iface_partition.qxp
–kompilacja_inkrementalna_nazwa_eksportu_partycji=partycja_acl_iface
–kompilacja_inkrementalna_eksport_post_synth=wł
–inkrementalna_kompilacja_eksport_post_fit=wł
–inkrementalna_kompilacja_eksportu_routing=wł
–inkrementalna_kompilacja_eksportu_flatten=wyłączone
Po wykluczeniu HPS z partycji możesz zaimportować plik .qxp file i skompiluj swój projekt. - Zaktualizuj obraz karty flash SD za pomocą aktualnej wersji Intel FPGA RTE dla OpenCL, wykonując następujące zadania:
A. Zamontuj file tabela alokacji (fat32) i rozszerzona file partycje systemowe (ext3) w istniejącym obrazie jako urządzenia pętli zwrotnej. Szczegółowe instrukcje można znaleźć w kroku 2 w Tworzenie obrazu karty SD Flash.
B. W katalogu /home/root/opencl_arm32_rte usuń plik files z poprzedniej wersji RTE.
C. Pobierz i rozpakuj aktualną wersję RTE do katalogu /home/root/opencl_arm32_rte.
D. w /sterownik/wersja.h file swojej platformy niestandardowej zaktualizuj przypisanie ACL_DRIVER_VERSION do . (na przykładample, 16.1.x, gdzie 16.1 to wersja pakietu SDK, a x to ustawiona wersja sterownika).
mi. Odbuduj sterownik.
F. Usuń foldery sprzętowe platformy niestandardowej. Skopiuj platformę niestandardową wraz ze zaktualizowanym sterownikiem do katalogu /home/root/opencl_arm_rte/board.
G. Skopiuj plik Altera.icd file z katalogu /home/root/opencl_arm32_rte i dodaj go do katalogu /etc/OpenCL/vendors.
H. Odmontuj i przetestuj nowy obraz. Szczegółowe instrukcje można znaleźć w krokach od 8 do 11 w Tworzenie obrazu karty SD Flash.
Powiązane linki
- Tworzenie obrazu karty SD Flash na stronie 14
Masz także możliwość utworzenia nowego obrazu karty flash SD. - Automatyczna migracja platformy niestandardowej w celu zapewnienia kompatybilności z przyszłymi wersjami
1.3 Wsparcie programowe dla pamięci współdzielonej
Współdzielona pamięć fizyczna pomiędzy FPGA i procesorem jest preferowaną pamięcią dla jąder OpenCL działających na układach SoC FPGA. Ponieważ układ FPGA uzyskuje dostęp do współdzielonej pamięci fizycznej, a nie do współdzielonej pamięci wirtualnej, nie ma dostępu do tablic stron procesora, które odwzorowują wirtualne adresy użytkowników na adresy stron fizycznych.
Jeśli chodzi o sprzęt, jądra OpenCL uzyskują dostęp do współdzielonej pamięci fizycznej poprzez bezpośrednie połączenie z kontrolerem pamięci twardej HPS DDR. Jeśli chodzi o oprogramowanie, obsługa współdzielonej pamięci fizycznej wiąże się z następującymi kwestiami:
- Typowe implementacje oprogramowania do alokacji pamięci na procesorze (npample, funkcja malloc()) nie może przydzielić obszaru pamięci, którego może używać układ FPGA.
Pamięć przydzielana przez funkcję malloc() jest ciągła w przestrzeni adresowej pamięci wirtualnej, ale jest mało prawdopodobne, aby jakiekolwiek podstawowe strony fizyczne były fizycznie ciągłe. W związku z tym host musi mieć możliwość przydzielenia fizycznie sąsiadujących ze sobą obszarów pamięci. Jednak taka możliwość nie istnieje w aplikacjach przestrzeni użytkownika w systemie Linux. Dlatego sterownik jądra systemu Linux musi przeprowadzić alokację. - Sterownik jądra OpenCL SoC FPGA dla systemu Linux zawiera funkcję mmap() służącą do alokacji współdzielonej pamięci fizycznej i mapowania jej w przestrzeni użytkownika. Funkcja mmap() wykorzystuje standardowe wywołanie jądra Linuksa dma_alloc_coherent() w celu zażądania fizycznie sąsiadujących obszarów pamięci w celu udostępnienia urządzeniu.
- W domyślnym jądrze Linuksa funkcja dma_alloc_coherent() nie przydziela fizycznie ciągłej pamięci o rozmiarze większym niż 0.5 megabajta (MB). Aby umożliwić dma_alloc_coherent() alokację dużych ilości fizycznie ciągłej pamięci, włącz funkcję alokatora pamięci ciągłej (CMA) w jądrze Linuksa, a następnie przekompiluj jądro Linuksa.
W przypadku platformy referencyjnej zestawu rozwojowego Cyclone V SoC firma CMA zarządza 512 MB z 1 GB pamięci fizycznej. Możesz zwiększyć lub zmniejszyć tę wartość, w zależności od ilości pamięci współdzielonej wymaganej przez aplikację. Wywołanie dma_alloc_coherent() może nie być w stanie przydzielić pełnych 512 MB fizycznie sąsiadującej pamięci; jednakże może rutynowo uzyskać około 450 MB pamięci. - Procesor może buforować pamięć przydzielaną przez wywołanie dma_alloc_coherent(). W szczególności operacje zapisu z aplikacji hosta nie są widoczne dla jąder OpenCL. Funkcja mmap() w sterowniku jądra OpenCL SoC FPGA Linux zawiera także wywołania funkcji pgprot_noncached() lub remap_pf_range(), aby jawnie wyłączyć buforowanie dla tego obszaru pamięci.
- Gdy funkcja dma_alloc_coherent() przydziela fizycznie ciągłą pamięć, funkcja mmap() zwraca adres wirtualny na początek zakresu, który jest zakresem adresów alokowanej pamięci. Aplikacja hosta wymaga tego adresu wirtualnego, aby uzyskać dostęp do pamięci. Z drugiej strony jądra OpenCL wymagają adresów fizycznych. Sterownik jądra Linuksa śledzi mapowanie adresów wirtualnych na fizyczne. Możesz mapować adresy fizyczne zwracane przez mmap() na rzeczywiste adresy fizyczne, dodając zapytanie do sterownika.
Wywołanie interfejsu programowania aplikacji (API) aocl_mmd_shared_mem_alloc() MMD obejmuje następujące zapytania:
A. Funkcja mmap(), która przydziela pamięć i zwraca adres wirtualny.
B. Dodatkowe zapytanie mapujące zwrócony adres wirtualny na adres fizyczny.
Wywołanie API aocl_mmd_shared_mem_alloc() MMD zwraca następnie dwa adresy
—rzeczywisty zwrócony adres jest adresem wirtualnym, a adres fizyczny trafia do urządzenia_ptr_out.
Notatka: Sterownik może mapować tylko adresy wirtualne, które funkcja mmap() zwraca na adresy fizyczne. Jeśli zażądasz adresu fizycznego dowolnego innego wirtualnego wskaźnika, sterownik zwróci wartość NULL.
Ostrzeżenie: Biblioteki wykonawcze Intel FPGA SDK dla bibliotek wykonawczych OpenCL zakładają, że pamięć współdzielona jest pierwszą pamięcią wymienioną w pliku board_spec.xml file. Innymi słowy, adres fizyczny uzyskiwany przez sterownik jądra Linuksa staje się adresem Avalon®, który jądro OpenCL przekazuje do pamięci HPS SDRAM.
W odniesieniu do biblioteki wykonawczej użyj wywołania clCreateBuffer(), aby przydzielić pamięć współdzieloną jako bufor urządzenia w następujący sposób:
- W przypadku wariantu z dwiema płytami DDR, zarówno z pamięcią współdzieloną, jak i niewspółdzieloną, clCreateBuffer() przydziela pamięć współdzieloną, jeśli określisz flagę CL_MEM_USE_HOST_PTR. Użycie innych flag powoduje, że clCreateBuffer() przydziela bufor w pamięci niewspółdzielonej.
- W przypadku wariantu z jedną płytą DDR i tylko pamięcią współdzieloną, clCreateBuffer() przydziela pamięć współdzieloną niezależnie od wybranej flagi.
Obecnie obsługa 32-bitowego systemu Linux na procesorze ARM reguluje zakres obsługi pamięci współdzielonej w bibliotekach wykonawczych zestawu SDK. Innymi słowy, biblioteki wykonawcze skompilowane do innych środowisk (npample, x86_64 Linux lub 64-bitowy Windows) nie obsługują pamięci współdzielonej.
C5soc nie zaimplementował pamięci heterogenicznej, aby rozróżnić pamięć współdzieloną i niewspółdzieloną z następujących powodów:
1. Historia — obsługa pamięci heterogenicznej nie była dostępna, kiedy pierwotnie stworzono obsługę pamięci współdzielonej.
2. Jednolity interfejs — ponieważ OpenCL jest otwartym standardem, firma Intel utrzymuje spójność pomiędzy heterogenicznymi dostawcami platform obliczeniowych. Dlatego do przydzielania i używania pamięci współdzielonej używany jest ten sam interfejs, co architektury innych dostawców płytek.
1.4 Rekonfiguracja FPGA
W przypadku układów SoC FPGA procesor może rekonfigurować rdzeń FPGA bez przerywania pracy procesora. Blok sprzętowy Menedżera FPGA, który łączy HPS i rdzeń FPGA, przeprowadza rekonfigurację. Jądro Linuksa zawiera sterownik umożliwiający łatwy dostęp do Menedżera FPGA.
- Do view status rdzenia FPGA, wywołaj komendę cat /sys/class/fpga/fpga0/status.
Narzędzie programowe Intel FPGA SDK dla OpenCL dostępne w platformie referencyjnej zestawu Cyclone V SoC Development Kit wykorzystuje ten interfejs do programowania układu FPGA. Podczas przeprogramowywania rdzenia FPGA przy działającym procesorze narzędzie programu wykonuje wszystkie następujące zadania:
1. Przed przeprogramowaniem wyłącz wszystkie mostki komunikacyjne pomiędzy FPGA a HPS, zarówno H2F, jak i LH2F.
Włącz ponownie te mosty po zakończeniu przeprogramowania.
Uwaga: System OpenCL nie wykorzystuje mostka FPGA-to-HPS (F2H). Więcej informacji można znaleźć w sekcji Interfejsy HPS-FPGA w podręczniku urządzenia Cyclone V, tom 3: Podręcznik techniczny systemu procesora twardego.
2. Upewnij się, że podczas przeprogramowania połączenie pomiędzy FPGA i kontrolerem HPS DDR jest wyłączone.
3. Upewnij się, że przerwania FPGA w FPGA są wyłączone podczas przeprogramowania.
Powiadom także sterownik, aby podczas przeprogramowania odrzucał wszelkie przerwania z układu FPGA.
Aby uzyskać szczegółowe informacje na temat rzeczywistej implementacji, zapoznaj się z kodem źródłowym narzędzia programu.
Ostrzeżenie: Nie zmieniaj konfiguracji kontrolera HPS DDR, gdy procesor jest uruchomiony.
Może to spowodować krytyczny błąd systemu, ponieważ możesz zmienić konfigurację kontrolera DDR, gdy istnieją zaległe transakcje pamięci z procesora. Oznacza to, że gdy procesor jest uruchomiony, nie można przeprogramować rdzenia FPGA za pomocą obrazu wykorzystującego HPS DDR w innej konfiguracji.
Należy pamiętać, że system OpenCL i projekt referencyjny Golden Hardware dostępny w pakiecie Intel SoC FPGA Embedded Design Suite (EDS) ustawiają pamięć HPS DDR w pojedynczym trybie 256-bitowym.
Części systemu procesora, takie jak predyktor rozgałęzień lub moduł pobierania tabeli stron, mogą wydawać polecenia DDR nawet wtedy, gdy wydaje się, że na procesorze nic nie działa.
Dlatego też czas rozruchu jest jedynym bezpiecznym momentem na ustawienie konfiguracji kontrolera HPS DDR.
Oznacza to również, że U-boot musi mieć surowy plik binarny file (.rbf) obraz do załadowania do pamięci. W przeciwnym razie możesz włączyć HPS DDR z nieużywanymi portami w FPGA, a następnie potencjalnie zmienić konfiguracje portów. Z tego powodu sterownik jądra OpenCL Linux nie zawiera już logiki niezbędnej do ustawienia konfiguracji kontrolera HPS DDR.
Podwójny pakiet liniowy (DIP) SW3 włącza zestaw deweloperski Cylone V SoC, który kontroluje oczekiwaną formę obrazu .rbf (to znaczy, czy file jest skompresowany i/lub zaszyfrowany). C5soc i Golden Hardware Reference Design dostępne w SoC EDS zawierają skompresowane, ale niezaszyfrowane obrazy .rbf. Ustawienia przełącznika DIP SW3 opisane w podręczniku wprowadzającym dla pakietu Intel FPGA SDK dla OpenCL Cyclone V SoC odpowiadają tej konfiguracji obrazu .rbf.
Powiązane linki
- Interfejsy HPS-FPGA
- Konfigurowanie przełączników SW3
1.4.1 Szczegóły architektury systemu FPGA
Obsługa platformy referencyjnej zestawu rozwojowego Cyclone V SoC jest oparta na platformie referencyjnej Stratix® V (s5_ref), dostępnej z pakietem Intel FPGA SDK dla OpenCL.
Ogólna organizacja systemu c5soc Qsys i sterownika jądra są bardzo podobne do tych w s5_ref.
Następujące komponenty rdzenia FPGA są takie same zarówno w c5soc, jak i s5_ref:
- Blok VERSION_ID
- Mechanizm spoczynkowy
- Dzielnik banku pamięci
- Interfejs podglądu pamięci podręcznej
- Zegar jądra
- Bloki dostępu do rejestru kontrolnego (CRA).
1.5 Tworzenie obrazu karty SD Flash
Ponieważ Cyclone V SoC FPGA to pełny system na chipie, jesteś odpowiedzialny za dostarczenie pełnej definicji systemu. Firma Intel zaleca dostarczenie go w postaci obrazu karty flash SD. Użytkownik pakietu Intel FPGA SDK dla OpenCL może po prostu zapisać obraz na karcie flash micro SD i płyta SoC FPGA jest gotowa do użycia.
Modyfikowanie istniejącego obrazu karty SD Flash na stronie 13
Firma Intel zaleca po prostu zmodyfikowanie obrazu dostępnego w ramach platformy referencyjnej zestawu deweloperskiego Cyclone V SoC. Masz także możliwość utworzenia nowego obrazu karty flash SD.
Tworzenie obrazu karty SD Flash na stronie 14
Masz także możliwość utworzenia nowego obrazu karty flash SD.
1.5.1 Modyfikowanie istniejącego obrazu karty SD Flash
Firma Intel zaleca po prostu zmodyfikowanie obrazu dostępnego w układzie Cyclone V SoC
Platforma referencyjna zestawu rozwojowego. Masz także możliwość utworzenia nowego obrazu karty flash SD.
Obraz c5soc linux_sd_card_image.tgz file jest dostępny w katalogu ALTERAOCLSDKROOT/board/c5soc, gdzie ALTERAOCLSDKROOT wskazuje ścieżkę do katalogu instalacyjnego pakietu Intel FPGA SDK dla OpenCL.
Uwaga: Aby zmodyfikować obraz karty flash SD, musisz mieć uprawnienia roota lub sudo.
- Aby zdekompresować plik $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, uruchom komendę tar xvfzlinux_sd_card_image.tgz.
- Skompiluj hello_world OpenCL exampzaprojektuj plik, korzystając ze wsparcia platformy niestandardowej. Zmień nazwę pliku .rbf file który kompilator Intel FPGA SDK dla OpenCL Offline Compiler generuje jako opencl.rbf i umieszcza go na partycji fat32 w obrazie karty flash SD.
Możesz pobrać hello_world exampprojekt pliku z OpenCL Design Examples na stronie Altera webstrona. - Umieść plik .rbf file na partycję Fat32 obrazu karty flash.
Uwaga: Partycja fat32 musi zawierać zarówno plik zImage file i plik .rbf file. Bez .rbf file, podczas instalowania sterownika wystąpi błąd krytyczny. - Po utworzeniu obrazu karty SD zapisz go na karcie micro SD, wywołując następujące polecenie: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- Aby przetestować obraz karty flash SD, wykonaj następujące czynności:
A. Włóż kartę flash micro SD do płytki SoC FPGA.
B. Włącz tablicę.
C. Wywołaj polecenie narzędzia aocl zdiagnozować.
1.5.2 Tworzenie obrazu karty SD Flash
Masz także możliwość utworzenia nowego obrazu karty flash SD. Ogólne instrukcje dotyczące tworzenia nowego obrazu karty flash SD i odbudowy istniejącego obrazu karty flash SD są dostępne na stronie GSRD v14.0.2 – Karta SD na stronie RocketBoards.org webstrona.
Poniższe kroki opisują procedurę tworzenia obrazu linux_sd_card_image.tgz z obrazu karty flash SD Golden System Reference Design (GSRD):
Notatka:
Aby utworzyć obraz z obrazu c5soc, wykonaj wszystkie odpowiednie zadania opisane w tej procedurze.
- Pobierz i rozpakuj obraz karty flash SD GSRD w wersji 14.0 z Rocketboards.org.
- Zamontuj file tabela alokacji (fat32) i rozszerzona file partycje systemowe (ext3) na tym obrazie jako urządzenia pętli zwrotnej. Aby zamontować partycję, wykonaj następujące kroki:
A. Określ początek bajtu partycji w obrazie, wywołując komendę /sbin/fdisk -lu image_file rozkaz.
Na przykładample, partycja nr 1 typu W95 FAT ma przesunięcie bloku wynoszące 2121728. Przy 512 bajtach na blok przesunięcie bajtów wynosi 512 bajtów x 2121728 = 1086324736 bajtów.
B. Zidentyfikuj urządzenie z swobodną pętlą (npample, /dev/loop0), wpisując polecenie losetup -f.
C. Zakładając, że /dev/loop0 jest urządzeniem z swobodną pętlą, przypisz obraz karty flash do urządzenia blokującego pętlę, wywołując obraz Lostup /dev/loop0_file -0 1086324736 polecenie.
D. Zamontuj urządzenie pętlowe, wywołując polecenie mount /dev/loop0 /media/disk1.
W obrębie obrazu file, /media/disk1 jest teraz zamontowaną partycją Fat32.
mi. Powtórz kroki od a do d dla partycji ext3. - Pobierz wersję Cyclone V SoC FPGA pakietu Intel FPGA Runtime Environment for OpenCL z Centrum pobierania na Altera webstrona.
A. Kliknij przycisk Pobierz obok wersji oprogramowania Quartus Prime.
B. Określ wersję wydania, system operacyjny i metodę pobierania.
C. Kliknij kartę Dodatkowe oprogramowanie i wybierz opcję pobrania Intel FPGA
Środowisko wykonawcze dla OpenCL Linux Cyclone V SoC TGZ.
D. Po pobraniu pliku aocl-rte- .arm32.tgz file, rozpakuj go do
katalog, którego jesteś właścicielem. - Umieść rozpakowany plik aocl-rte- .arm32 do katalogu /home/root/opencl_arm32_rte na partycji ext3 obrazu file.
- Usuń folder(y) sprzętowy swojej platformy niestandardowej, a następnie umieść platformę niestandardową w podkatalogu płyty /home/root/opencl_arm32_rte.
- Utwórz plik init_opencl.sh file w katalogu /home/root o następującej zawartości: eksport ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte eksport AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ eksport PATH=$ALTERAOCLSDKROOT/bin:$PATH eksport LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
Użytkownik SDK uruchamia komendę source ./init_opencl.sh, aby załadować zmienne środowiskowe i sterownik jądra OpenCL Linux. - Jeśli chcesz zaktualizować program ładujący, plik DTS files lub jądro Linuksa, potrzebujesz kompilatora arm-linux-gnueabihf-gcc z SoC EDS. Postępuj zgodnie z instrukcjami zawartymi w Podręczniku użytkownika pakietu Intel SoC FPGA Embedded Design Suite, aby nabyć oprogramowanie, skompilować je ponownie i zaktualizować odpowiednie files na zamontowanej partycji Fat32.
Uwaga: Najprawdopodobniej będziesz musiał zaktualizować moduł wstępnego ładowania, jeśli Twoja platforma niestandardowa ma inne użycie pinów niż w c5soc.
Pamiętaj: Jeśli rekompilujesz jądro Linuksa, skompiluj ponownie sterownik jądra Linuksa z tym samym źródłem jądra Linuksa fileS. Jeśli występuje niezgodność pomiędzy sterownikiem jądra Linuksa i jądrem Linuksa, sterownik nie zostanie załadowany. Musisz także włączyć CMA.
Więcej informacji można znaleźć w artykule Rekompilacja jądra systemu Linux. - Skompiluj hello_world OpenCL exampzaprojektuj plik, korzystając ze wsparcia platformy niestandardowej. Zmień nazwę pliku .rbf file który kompilator Intel FPGA SDK dla OpenCL Offline Compiler generuje jako opencl.rbf i umieszcza go na partycji fat32 w obrazie karty flash SD.
Możesz pobrać hello_world exampprojekt pliku z OpenCL Design Examples na stronie Altera webstrona.
9. Po przechowywaniu wszystkich niezbędnych files na obraz karty flash, wywołaj następujące polecenia:
A. synchronizacja
B. odmontuj /media/dysk1
C. odmontuj Gdzie to nazwa katalogu, którego używasz do montowania partycji ext3 w 3 na stronie 3 (npampplik, /media/dysk2).
D. losetup -d /dev/loop0
mi. losetup -d /dev/loop1 - Skompresuj obraz karty flash SD, wywołując następujące polecenie: tar cvfz .tgz linux_sd_card_image
- Dostarcz .tgz file w katalogu głównym platformy niestandardowej.
- Aby przetestować obraz karty flash SD, wykonaj następujące czynności:
A. Zapisz powstały nieskompresowany obraz na karcie flash micro SD.
B. Włóż kartę flash micro SD do płytki SoC FPGA.
C. Włącz tablicę.
D. Wywołaj polecenie narzędzia aocl zdiagnozować.
Powiązane linki
- Podręcznik użytkownika pakietu Intel SoC FPGA Embedded Design Suite
- Projekt OpenCL npamples na stronie Altera webstrona
- Ponowna kompilacja jądra Linuksa na stronie 16
Aby włączyć CMA, musisz najpierw przekompilować jądro Linuksa. - Zapytanie o nazwę urządzenia płytki FPGA (diagnoza)
1.6 Kompilowanie jądra Linuksa dla Cyclone V SoC FPGA
Przed uruchomieniem aplikacji OpenCL na płycie Cyclone V SoC FPGA należy skompilować źródło jądra Linux oraz skompilować i zainstalować sterownik jądra OpenCL Linux.
- Ponowna kompilacja jądra Linuksa na stronie 16
Aby włączyć CMA, musisz najpierw przekompilować jądro Linuksa. - Kompilowanie i instalowanie sterownika jądra OpenCL Linux na stronie 17 Skompiluj sterownik jądra OpenCL Linux w oparciu o skompilowane źródło jądra.
1.6.1 Ponowna kompilacja jądra Linuksa
Aby włączyć CMA, musisz najpierw przekompilować jądro Linuksa.
- Kliknij link GSRD v14.0 – Kompilacja Linuksa na stronie Zasoby RocketBoards.org webwitrynę, w której można uzyskać dostęp do instrukcji dotyczących pobierania i odbudowywania kodu źródłowego jądra Linuksa.
Aby używać z pakietem™ Intel FPGA SDK dla OpenCL, określ socfpga-3.13-rel14.0 jako . - Uwaga: proces budowania tworzy plik arch/arm/configs/socfpga_defconfig file. Ten file określa ustawienia domyślnej konfiguracji socfpga.
Dodaj następujące wiersze na dole pliku arch/arm/configs/socfpga_defconfig file.
CONFIG_MEMORY_ISOLATION=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_CMA_DEBUG=y
CONFIG_CMA_SIZE_MBYTES=512
CONFIG_CMA_SIZE_SEL_MBYTES=y
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
Wartość konfiguracyjna CONFIG_CMA_SIZE_MBYTES ustawia górny limit całkowitej liczby dostępnej fizycznie ciągłej pamięci. Możesz zwiększyć tę wartość, jeśli potrzebujesz więcej pamięci. - Uwaga: Całkowita ilość pamięci fizycznej dostępnej dla procesora ARM na płycie SoC FPGA wynosi 1 GB. Firma Intel nie zaleca ustawiania menedżera CMA w pobliżu 1 GB.
- Uruchom komendę make mrproper, aby wyczyścić bieżącą konfigurację.
- Uruchom komendę make ARCH=arm socfpga_deconfig.
ARCH=arm wskazuje, że chcesz skonfigurować architekturę ARM.
socfpga_defconfig wskazuje, że chcesz użyć domyślnej konfiguracji socfpga. - Uruchom komendę eksport CROSS_COMPILE=arm-linux-gnueabihf-.
To polecenie ustawia zmienną środowiskową CROSS_COMPILE w celu określenia przedrostka żądanego łańcucha narzędzi. - Uruchom polecenie make ARCH=arm zImage. Wynikowy obraz jest dostępny w pliku arch/arm/boot/zImage file.
- Umieść obraz z file na partycję Fat32 obrazu karty flash. Szczegółowe instrukcje można znaleźć w instrukcji obsługi GSRD Cyclone V SoC FPGA specyficznej dla Rocketboards.org.
- Uwaga: Aby poprawnie wstawić sterownik jądra OpenCL Linux, najpierw załaduj plik SDKgenerated.rbf file na FPGA.
Aby utworzyć plik .rbf file, skompiluj projekt SDK, npample z platformą referencyjną zestawu rozwojowego Cyclone V SoC jako docelową platformą niestandardową.
9. Umieść plik .rbf file na partycję Fat32 obrazu karty flash.
Uwaga: Partycja Fat32 musi zawierać zarówno plik zImage file i plik .rbf file. Bez .rbf file, podczas instalowania sterownika wystąpi błąd krytyczny. - Włóż zaprogramowaną kartę micro SD, która zawiera zmodyfikowany lub utworzony wcześniej obraz karty SD, do zestawu rozwojowego Cyclone V SoC, a następnie włącz płytę SoC FPGA.
- Sprawdź wersję zainstalowanego jądra Linuksa, uruchamiając komendę uname -r.
- Aby sprawdzić, czy pomyślnie włączono CMA w jądrze, przy włączonej płycie SoC FPGA, uruchom polecenie grep init_cma /proc/kallsyms.
CMA jest włączone, jeśli dane wyjściowe nie są puste. - Aby użyć ponownie skompilowanego jądra systemu Linux z pakietem SDK, skompiluj i zainstaluj sterownik jądra systemu Linux.
Powiązane linki
- Podręczniki użytkownika projektu referencyjnego Golden System (GSRD).
- Tworzenie obrazu karty SD Flash na stronie 13
Ponieważ Cyclone V SoC FPGA to pełny system na chipie, jesteś odpowiedzialny za dostarczenie pełnej definicji systemu.
1.6.2 Kompilowanie i instalowanie sterownika jądra OpenCL Linux
Skompiluj sterownik jądra OpenCL Linux względem skompilowanego źródła jądra.
Źródło sterownika jest dostępne w wersji Cyclone V SoC FPGA środowiska Intel FPGA Runtime Environment for OpenCL. Ponadto upewnij się, że załadowałeś pakiet Intel FPGA SDK dla plików .rbf generowanych przez OpenCL file do FPGA, aby zapobiec nieprawidłowej instalacji modułu jądra Linuksa.
- Pobierz wersję Cyclone V SoC FPGA pakietu Intel FPGA Runtime Environment for OpenCL z Centrum pobierania na Altera webstrona.
A. Kliknij przycisk Pobierz obok wersji oprogramowania Quartus Prime.
B. Określ wersję wydania, system operacyjny i metodę pobierania.
C. Kliknij kartę Dodatkowe oprogramowanie i wybierz opcję pobrania Intel FPGA
Środowisko wykonawcze dla OpenCL Linux Cyclone V SoC TGZ.
D. Po pobraniu pliku aocl-rte- .arm32.tgz file, rozpakuj go do
katalog, którego jesteś właścicielem.
Źródło sterownika znajduje się w aocl-rte- .arm32/board/c5soc/ katalog sterowników. - Aby ponownie skompilować sterownik jądra OpenCL Linux, ustaw wartość KDIR w pliku Make sterownikafile do katalogu zawierającego źródło jądra Linuksa files.
- Uruchom komendę eksport CROSS_COMPILE=arm-linux-gnueabihf-, aby wskazać przedrostek łańcucha narzędzi.
- Uruchom polecenie make clean.
- Uruchom komendę make, aby utworzyć plik aclsoc_drv.ko file.
- Przenieś katalog opencl_arm32_rte na płytkę FPGA Cyclone V SoC.
Uruchamianie scp -r root@twój-adres: polecenie umieszcza środowisko wykonawcze w katalogu/home/root. - Uruchom skrypt init_opencl.sh utworzony podczas tworzenia obrazu karty SD.
- Wywołaj polecenie narzędzia aocl zdiagnozować. Narzędzie diagnostyczne zwróci pozytywny wynik po pomyślnym uruchomieniu init_opencl.sh.
1.7 Znane problemy
Obecnie istnieją pewne ograniczenia w używaniu pakietu Intel FPGA SDK dla OpenCL z platformą referencyjną Cyclone V SoC Development Kit.
- Nie można zastąpić nazw dostawców i płytek zgłaszanych przez ciągi CL_DEVICE_VENDOR i CL_DEVICE_NAME wywołania clGetDeviceInfo().
- Jeśli host przydziela stałą pamięć we współdzielonym systemie DDR (czyli HPS DDR) i modyfikuje stałą pamięć po wykonaniu jądra, dane w pamięci mogą stać się nieaktualne. Ten problem powstaje, ponieważ rdzeń FPGA nie może podglądać transakcji DDR CPU-to-HPS.
Aby zapobiec dostępowi do nieaktualnych danych w kolejnych wykonaniach jądra, zastosuj jedno z następujących obejść:
• Nie modyfikuj pamięci stałej po jej inicjalizacji.
• Jeśli potrzebujesz wielu __stałych zestawów danych, utwórz wiele stałych buforów pamięci.
• Jeśli to możliwe, przydziel stałą pamięć w FPGA DDR na karcie akceleratora. - Narzędzie SDK na ARM obsługuje tylko polecenia programu i narzędzia diagnostycznego.
Polecenia narzędzia flash, instalacji i dezinstalacji nie mają zastosowania do zestawu rozwojowego Cyclone V SoC z następujących powodów:
A. Narzędzie instalacyjne musi skompilować sterownik jądra aclsoc_drv Linux i włączyć go na SoC FPGA. Maszyna programistyczna musi przeprowadzić kompilację; jednakże zawiera już źródła jądra Linuksa dla SoC FPGA. Źródła jądra Linuksa dla maszyny programistycznej różnią się od źródeł dla SoC FPGA. Lokalizacja źródeł jądra Linuksa dla SoC FPGA jest prawdopodobnie nieznana użytkownikowi SDK. Podobnie narzędzie do dezinstalacji jest również niedostępne dla zestawu rozwojowego Cyclone V SoC.
Ponadto dostarczenie aclsoc_drv do płyty SoC jest trudne, ponieważ domyślna dystrybucja zestawu rozwojowego Cyclone V SoC nie zawiera jądra Linuksa, w tym files lub kompilator GNU Compiler Collection (GCC).
B. Narzędzie flash wymaga umieszczenia pliku .rbf file projektu OpenCL na partycję FAT32 karty flash micro SD. Obecnie ta partycja nie jest montowana, gdy użytkownik SDK włącza płytę. Dlatego najlepszym sposobem aktualizacji partycji jest użycie czytnika kart flash i maszyny programistycznej. - Podczas przełączania między plikiem wykonywalnym Intel FPGA SDK dla OpenCL Offline Compiler files (.aocx), które odpowiadają różnym wariantom płytki (tj. c5soc i c5soc_sharedonly), musisz użyć narzędzia programu SDK, aby załadować plik .aocx file po raz pierwszy dla nowego wariantu płyty. Jeśli po prostu uruchomisz aplikację hosta przy użyciu nowego wariantu płytki, ale układ FPGA zawiera obraz z innego wariantu płytki, może wystąpić błąd krytyczny.
- Plik .qxp file nie obejmuje przypisań partycji interfejsu, ponieważ oprogramowanie Quartus Prime konsekwentnie spełnia wymagania taktowania tej partycji.
- Po włączeniu zasilania płyty jej adres kontroli dostępu do multimediów (MAC) jest ustawiany na liczbę losową. Jeśli zasady Twojej sieci LAN nie pozwalają na takie zachowanie, ustaw adres MAC, wykonując następujące czynności:
A. Podczas uruchamiania U-Boot naciśnij dowolny klawisz, aby wejść do wiersza poleceń U-Boot.
B. Wpisz setenv ethaddr 00:07:ed:00:00:03 w wierszu poleceń.
Możesz wybrać dowolny adres MAC.
C. Wpisz polecenie savenv.
D. Zrestartuj płytę.
1.8 Historia wersji dokumentu
Tabela 1.
Dokument historii wersji pakietu Intel FPGA SDK dla OpenCL Cyclone V SoC
Przewodnik przenoszenia platformy referencyjnej zestawu rozwojowego
Data | Wersja | Zmiany |
17 maja | 2017.05.08 | •Zwolnienie konserwacyjne. |
Październik 2016 | 2016.10.31 | •Zmieniono nazwę Altera SDK dla OpenCL na Intel FPGA SDK dla OpenCL. •Zmieniono nazwę kompilatora Offline Altera na Intel FPGA SDK dla kompilatora Offline OpenCL. |
16 maja | 2016.05.02 | •Zmodyfikowane instrukcje dotyczące tworzenia i modyfikowania obrazu karty flash SD. •Zmodyfikowane instrukcje dotyczące rekompilacji jądra Linuksa i sterownika jądra OpenCL Linux. |
15 listopada | 2015.11.02 | • Wersja konserwacyjna i zmieniono instancje Quartus II na Quartus Prime. |
15 maja | 15.0.0 | •W rekonfiguracji FPGA usunięto instrukcję przeprogramowania rdzenia FPGA z . rbf, wywołując kota fileimię>. rbf > /dev/ fpga0, ponieważ ta metoda nie jest zalecana. |
grudzień-14 | 14.1.0 | •Zmieniono nazwę dokumentu na Przewodnik przenoszenia platformy referencyjnej Altera Cyclone V SoC Development Kit. • Zaktualizowano narzędzie do przeprogramowania do programu aoclfilenazwa> polecenie narzędzia .aocx. • Zaktualizowano narzędzie diagnostyczne do diagnostyki aocl i diagnozy aocl polecenie narzędzia. • Zaktualizowano procedurę w sekcji Przenoszenie platformy referencyjnej na płytkę SoC, aby uwzględnić instrukcje dotyczące przenoszenia i modyfikowania partycji płyty c5soc w celu utworzenia partycji czystej taktowania dla gwarantowanego przepływu zamknięcia taktowania. • Dodano temat Aktualizacja przeniesionej platformy referencyjnej, aby przedstawić procedury dotyczące następujących zadań: 1. Z wyłączeniem bloku systemu procesora twardego (HPS) w partycji płyty 2.Aktualizacja obrazu karty flash SD • Zaktualizowano sekcję Tworzenie obrazu karty SD Flash. Zalecane jest użycie wersji 14.0 obrazu Golden System Reference Design (GSRD) jako punktu wyjścia zamiast obrazu dostępnego w pakiecie SoC Embedded Design Suite (EDS). • Zaktualizowano sekcję Rekompilacja jądra systemu Linux i sterownika jądra systemu Linux OpenCL: 1. Dodano instrukcję ustawiania zmiennej CROSS COMPILE. 2. Zmieniono polecenie uruchamiane w celu sprawdzenia, czy CMA zostało pomyślnie włączone. |
14 lipca | 14.0.0 | •Pierwsze wydanie. |
Dokumenty / Zasoby
![]() |
Intel FPGA SDK dla OpenCL [plik PDF] Instrukcja użytkownika FPGA SDK dla OpenCL, FPGA SDK, SDK dla OpenCL, SDK |