intel-logoFPGA SDK voor OpenCL
Gebruikershandleiding

UG-OCL009
2017.05.08
Laatst bijgewerkt voor Intel® Quartus® Prime Design Suite: 17.0

RENPHO RF FM059HS WiFi Smart Foot Massager - pictogram 5Abonneren
SAMSUNG SM A136UZKZAIO Galaxy A13 5G Smartphone - pictogram 12Feedback verzenden

Intel® FPGA SDK voor OpenCL™ Intel® Cyclone®V SoC Development Kit Referentieplatformpoortgids

V SoC Development Kit Reference Platform Porting Guide beschrijft het hardware- en softwareontwerp van de Intel Cyclone V SoC Development Kit Reference Platform (c5soc) voor gebruik met de Intel Software Development Kit (SDK) voor OpenCL De Intel ® FPGA SDK voor OpenCL ™ Intel Cyclone ® . Voordat u begint, raadt Intel u ten zeerste aan om vertrouwd te raken met de inhoud van de volgende documenten:

  1. Intel FPGA SDK voor OpenCLIntel Cyclone V SoC Aan de slag-handleiding
  2. Intel FPGA SDK voor OpenCL Custom Platform Toolkit Gebruikershandleiding
  3. Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual Raadpleeg daarnaast de pagina Cyclone V SoC Development Kit en SoC Embedded Design Suite van de Altera website voor meer informatie. 1 2

Aandacht: Intel gaat ervan uit dat u een diepgaande kennis heeft van de Intel FPGA SDK voor OpenCL Custom Platform Toolkit Gebruikershandleiding. De Cyclone V SoC Development Kit Reference Platform Porting Guide beschrijft niet het gebruik van de Custom Platform Toolkit van de SDK om een ​​aangepast platform voor de Cyclone V SoC Development Kit te implementeren. Het beschrijft alleen de verschillen tussen de SDK-ondersteuning op de Cyclone V SoC Development Kit en een generieke Intel FPGA SDK voor OpenCL Custom Platform.

Gerelateerde links

  • Intel FPGA SDK voor OpenCL Cyclone V SoC Aan de slag-handleiding
  • Intel FPGA SDK voor OpenCL Custom Platform Toolkit Gebruikershandleiding
  • Cyclone V-apparaathandboek, deel 3: technische referentiehandleiding van het harde processorsysteem
  • Cyclone V SoC Development Kit en SoC Embedded Design Suite-pagina op de Altera webplaats
  1. OpenCL en het OpenCL-logo zijn handelsmerken van Apple Inc. gebruikt met toestemming van de Khronos Group™.
  2. De Intel FPGA SDK voor OpenCL is gebaseerd op een gepubliceerde Khronos-specificatie en heeft het Khronos-conformiteitstestproces doorstaan. De huidige conformiteitsstatus is te vinden op www.khronos.org/conformance.

Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo, de woorden en logo's van Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus en Stratix zijn handelsmerken van Intel Corporation of haar dochterondernemingen in de VS en/of andere landen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen.
*Andere namen en merken kunnen eigendom van anderen zijn.

1.1.1 Cyclone V SoC Development Kit Referentieplatformbordvarianten
De Intel FPGA SDK voor OpenCL Cyclone V SoC Development Kit Reference Platform bevat twee bordvarianten.

  • c5soc-bord
    Dit standaardbord biedt toegang tot twee DDR-geheugenbanken. De HPS DDR is toegankelijk via zowel de FPGA als de CPU. De FPGA DDR is alleen toegankelijk via de FPGA.
  • c5soc_shareonly bord
    Deze bordvariant bevat alleen HPS DDR-connectiviteit. De FPGA DDR is niet toegankelijk. Deze bordvariant is ruimte-efficiënter omdat er minder hardware nodig is om één DDR-geheugenbank te ondersteunen. Het c5soc_sharedonly-bord is ook een goed prototypeplatform voor een definitief productiebord met een enkele DDR-geheugenbank.
    Om deze boardvariant te targeten bij het compileren van uw OpenCL-kernel, neemt u de optie -board c5soc_sharedonly op in uw aoc-opdracht.
    Voor meer informatie over het –bord optie van de aoc-opdracht, raadpleeg de Intel FPGA SDK voor OpenCL Programming Guide.

Gerelateerde links
Een kernel samenstellen voor een specifiek FPGA-bord (–board )
1.1.2 Inhoud van het Cyclone V SoC Development Kit-referentieplatform
Het Cyclone V SoC Development Kit-referentieplatform bestaat uit het volgende files en mappen:

File of Adresboek Beschrijving
board_env.xml uitbreidbare opmaaktaal (XML) file dat c5soc beschrijft voor de Intel FPGA SDK voor OpenCL.
linux_sd_card_image.tgz Gecomprimeerd SD-flashkaartbeeld file die alles bevat wat een SDK-gebruiker nodig heeft om de Cyclone V SoC Development Kit met de SDK te gebruiken.
arm32 Directory die het volgende bevat:

1.1.3 Relevante kenmerken van de Cyclone V SoC Development Kit

De volgende lijst belicht de componenten en functies van de Cyclone V SoC Development Kit die relevant zijn voor de Intel FPGA SDK voor OpenCL:

  • Dual-core ARM Cortex-A9 CPU met 32-bits Linux.
  • Advanced eXtensible Interface (AXI)-bus tussen de HPS en de FPGA-kernstructuur.
  • Twee geharde DDR-geheugencontrollers, elk verbonden met een 1 gigabyte (GB) DDR3 SDRAM.
    — Eén DDR-controller is alleen toegankelijk voor de FPGA-kern (dat wil zeggen FPGA DDR).
    — De andere DDR-controller is toegankelijk voor zowel de HPS als de FPGA (dat wil zeggen HPS DDR). Deze gedeelde controller maakt het gratis delen van geheugen tussen de CPU en de FPGA-kern mogelijk.
  • De CPU kan de FPGA-kernstructuur opnieuw configureren.

1.1.3.1 Ontwerpdoelen en beslissingen van het Cyclone V SoC Development Kit-referentieplatform Intel baseert de implementatie van het Cyclone V SoC Development Kit-referentieplatform op verschillende ontwerpdoelen en -beslissingen. Intel raadt u aan deze doelen en beslissingen in overweging te nemen wanneer u dit referentieplatform naar uw SoC FPGA-bord porteert.
Hieronder staan ​​de ontwerpdoelen van c5soc:

  1. Zorg voor de hoogst mogelijke bandbreedte tussen kernels op de FPGA en de DDR-geheugensystemen.
  2. Zorg ervoor dat berekeningen op de FPGA (dat wil zeggen OpenCL-kernels) niet interfereren met andere CPU-taken, waaronder mogelijk het onderhoud van randapparatuur.
  3. Laat zoveel mogelijk FPGA-bronnen over voor kernelberekeningen in plaats van interfacecomponenten.

Hieronder staan ​​de ontwerpbeslissingen op hoog niveau die de directe gevolgen zijn van de ontwerpdoelen van Intel:

  1. Het Referentieplatform maakt alleen gebruik van harde DDR-geheugencontrollers met de breedst mogelijke configuratie (256 bits).
  2. De FPGA communiceert rechtstreeks met de HPS DDR-geheugencontroller, zonder tussenkomst van de AXI-bus en de L3-switch in de HPS. De directe communicatie biedt de best mogelijke bandbreedte voor DDR en zorgt ervoor dat FPGA-berekeningen de communicatie tussen de CPU en de randapparatuur niet verstoren.
  3. Scatter-gather directe geheugentoegang (SG-DMA) maakt geen deel uit van de FPGA-interfacelogica. In plaats van grote hoeveelheden gegevens tussen DDR-geheugensystemen over te dragen, kunt u de gegevens opslaan in de gedeelde HPS DDR. Directe toegang tot CPU-geheugen door de FPGA is efficiënter dan DMA. Het bespaart hardwarebronnen (dat wil zeggen, FPGA-gebied) en vereenvoudigt het Linux-kernelstuurprogramma.
    Waarschuwing: Geheugenoverdracht tussen het gedeelde HPS DDR-systeem en het DDR-systeem dat alleen toegankelijk is voor de FPGA is erg traag. Als u daarvoor kiest
    Als u op deze manier geheugen overdraagt, gebruik het dan alleen voor zeer kleine hoeveelheden gegevens.
  4. De host en het apparaat voeren onderling niet-DMA-gegevensoverdracht uit via de HPS-naar-FPGA (H2F)-brug, waarbij slechts één 32-bits poort wordt gebruikt. De reden is dat de Linux-kernel zonder DMA slechts één enkel 32-bits lees- of schrijfverzoek kan afgeven, dus het is niet nodig om een ​​bredere verbinding te hebben.
  5. De host stuurt besturingssignalen naar het apparaat via een lichtgewicht H2F (LH2F) brug.
    Omdat besturingssignalen van de host naar het apparaat signalen met een lage bandbreedte zijn, is een LH2F-brug ideaal voor deze taak.

1.2 Het referentieplatform overbrengen naar uw SoC FPGA-bord
Om het Cyclone V SoC Development Kit Reference Platform naar uw SoC FPGA-bord te porten, voert u de volgende taken uit:

  1. Selecteer de versie met één DDR-geheugen of de versie met twee DDR-geheugens van het c5soc-referentieplatform als uitgangspunt van uw ontwerp.
  2. Update de pinlocaties in de ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, waarbij ALTERAOCLSDKROOT het pad is naar de locatie van de Intel FPGA SDK voor OpenCL-installatie, en is de mapnaam van de bordvariant. De map c5soc_sharedonly is voor de bordvariant met één DDR-geheugensysteem. De c5soc-directory is voor de bordvariant met twee DDR-geheugensystemen.
  3.  Update de DDR-instellingen voor de HPS- en/of FPGA SDRAM-blokken in de ALTERAOCLSDKROOT/board/c5soc/ /systeem.qsys file.
    4. Alle Intel FPGA SDK voor OpenCL voorkeursbordontwerpen moeten een gegarandeerde timingafsluiting bereiken. Als zodanig moet de plaatsing van het ontwerp timing-schoon zijn. Om de c5soc-bordpartitie (acl_iface_partition.qxp) naar uw SoC FPGA-bord te porten, voert u de volgende taken uit:
    Voor gedetailleerde instructies over het wijzigen en behouden van de bordpartitie raadpleegt u Quartus
    Hoofdstuk Prime Incrementele compilatie voor hiërarchisch en teamgebaseerd ontwerp van het Quartus Prime Standard Edition-handboek.
    A. Verwijder de acl_iface_partition.qxp uit de map ALTERAOCLSDKROOT/board/c5soc/c5soc.
    B. Schakel de acl_iface_region LogicLock™-regio in door de Tcl-opdracht set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region te wijzigen in set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
    C. Compileer een OpenCL-kernel voor je board.
    D. Pas indien nodig de grootte en locatie van de LogicLock-regio aan.
    e. Als u tevreden bent dat de plaatsing van uw ontwerp timing schoon is, exporteert u die partitie als de acl_iface_partition.qxp Quartus Prime geëxporteerde partitie File.
    Zoals beschreven in de sectie Establishing Guaranteed Timing Flow van de AIntel FPGA SDK voor OpenCL Custom Platform Toolkit User Guide, door dit .qxp-bestand te importeren  file in het ontwerp op het hoogste niveau voldoet u aan de eis om een ​​bordontwerp te bieden met een gegarandeerde timing-sluitstroom.
    Voor factoren die van invloed kunnen zijn op de kwaliteit van de resultaten (QoR) van uw geëxporteerde partitie, raadpleegt u de sectie Algemene kwaliteit van resultatenoverwegingen voor de geëxporteerde bordpartitie in de Intel FPGA SDK voor OpenCL Custom Platform Toolkit Gebruikershandleiding.
    F. Schakel de acl_iface_region LogicLock-regio uit door de opdracht in stap 2 terug te zetten naar set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region.
  4. Als uw SoC FPGA-bord verschillende pinnen en periferieën van het HPS-blok gebruikt, regenereert u de preloader en de apparaatboombron (DTS) opnieuw file. Als u de instellingen van de HPS DDR-geheugencontroller wijzigt, moet u de preloader opnieuw genereren.
  5. Maak de afbeelding van de SD-flashkaart.
  6. Creëer uw eigen platform, inclusief de afbeelding van de SD-flashkaart.
  7. Overweeg om een ​​runtime-omgevingsversie van uw aangepaste platform te maken voor gebruik met de Intel FPGA Runtime Environment (RTE) voor OpenCL. De RTE-versie van uw Custom Platform bevat geen hardwaremappen en de SD-flashkaartimage. Dit aangepaste platform wordt op het SoC FPGA-systeem geladen zodat hostapplicaties kunnen worden uitgevoerd. De SDK-versie van het Custom Platform is daarentegen nodig om de SDK OpenCL-kernels te laten compileren.
    Tip: U kunt voor de RTE de SDK-versie van uw Custom Platform gebruiken. Opslaan
    ruimte, verwijdert u de SD-flashkaartafbeelding uit de RTE-versie van uw aangepaste platform.
  8. Test uw aangepast platform.
    Raadpleeg het gedeelte Testing the Hardware Design van de Intel FPGA SDK voor OpenCL Custom Platform Toolkit Gebruikershandleiding voor meer informatie.

Gerelateerde links

  • Het hardwareontwerp testen
  • Quartus Prime Incrementele compilatie voor hiërarchisch en teamgebaseerd ontwerp
  • Het tot stand brengen van een gegarandeerde timingflow
  • Algemene overwegingen voor de kwaliteit van de resultaten voor de geëxporteerde bordpartitie

1.2.1 Een geporteerd referentieplatform bijwerken
In de huidige versie van het Cyclone V SoC Development Kit Reference Platform bevindt het HPS-blok zich binnen de partitie die alle niet-kernellogica definieert. U kunt de HPS echter niet exporteren als onderdeel van de .qxp file. Om een ​​bestaand aangepast platform bij te werken dat u hebt gewijzigd ten opzichte van een eerdere versie van c5soc, implementeert u de QXP-behoudstroom, werkt u de SD-flashkaartimage bij om de nieuwste runtime-omgeving te verkrijgen en werkt u board_spec.xml bij. file om automatisering mogelijk te maken.
De Altera® SDK voor OpenCL versie 14.1 en hoger onderzoekt de board_spec.xml file voor boardinformatie en implementeert automatische updates. Omdat je de
ontwerp door de QXP-behoudstroom te implementeren, moet u board_spec.xml bijwerken file naar het formaat in de huidige versie. Het bijwerken van de file Hiermee kan de SDK onderscheid maken tussen niet-bewaarde aangepaste platforms en de huidige op QXP gebaseerde aangepaste platforms. Raadpleeg Aangepaste platformautomigratie voor voorwaartse compatibiliteit in de Intel FPGA SDK voor OpenCL Custom Platform Toolkit Gebruikershandleiding voor meer informatie.

  1. Om de QXP-behoudstroom te implementeren in een Cyclone V SoC FPGA-hardwareontwerp dat is geporteerd vanuit een eerdere versie van c5soc, voert u de volgende stappen uit om een ​​subpartitie te maken om de HPS uit te sluiten van de .qxp file:
    A. Voordat u een partitie maakt rond de niet-kernellogica, maakt u een partitie rond de HPS in de .qsf Quartus Prime-instellingen File.
    Bijvoorbeeldampon:
    # Partitioneer handmatig de instance die de HPS-specifieke I/O set_instance_assignment -name PARTITION_HIERARCHY borde_18261 -modelleert naar “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”
    # Stel de partitie in als een HPS_PARTITION-type om correct te worden verwerkt door de rest van Quartus
    set_global_assignment -name PARTITION_TYPE HPS_PARTITION -section_id “system_acl_iface_hps_0_hps_io_border:border”
    quartus_cdb top -c top
    –incremental_compilation_export=acl_iface_partition.qxp
    –incrementele_compilatie_export_partitie_naam=acl_iface_partitie
    –incremental_compilation_export_post_synth=aan
    –incremental_compilation_export_post_fit=aan
    –incremental_compilation_export_routing=aan
    –incremental_compilation_export_flatten=uit
    Nadat u de HPS hebt uitgesloten van de partitie, kunt u de .qxp importeren file en stel je ontwerp samen.
  2. Werk de SD-flashkaartimage bij met de huidige versie van Intel FPGA RTE voor OpenCL door de volgende taken uit te voeren:
    A. Monteer de file toewijzingstabel (fat32) en uitgebreid file systeempartities (ext3) in de bestaande image als loop-back-apparaten. Voor gedetailleerde instructies raadpleegt u stap 2 in Een SD-flashkaartimage maken.
    B. Verwijder in de map /home/root/opencl_arm32_rte het files van de vorige versie van de RTE.
    C. Download en pak de huidige versie van de RTE uit in de map /home/root/opencl_arm32_rte.
    D. In de /driver/versie.h file van uw aangepaste platform, update dan de ACL_DRIVER_VERSION-toewijzing naar . (bijvoorbeeldample, 16.1.x, waarbij 16.1 de SDK-versie is en x de driverversie is die u instelt).
    e. Bouw het stuurprogramma opnieuw op.
    F. Verwijder de hardwaremap(pen) van uw Custom Platform. Kopieer het aangepaste platform, samen met het bijgewerkte stuurprogramma, naar de map /home/root/opencl_arm_rte/board.
    G. Kopieer de Altera.icd file uit de map /home/root/opencl_arm32_rte en voeg deze toe aan de map /etc/OpenCL/vendors.
    H. Ontkoppel en test de nieuwe afbeelding. Raadpleeg stap 8 tot en met 11 in Een SD-flashkaartbeeld maken voor gedetailleerde instructies.

Gerelateerde links

  • Een SD-flashkaartafbeelding maken op pagina 14
    U hebt ook de mogelijkheid om een ​​nieuwe SD-flashkaartimage te maken.
  • Aangepaste platformautomigratie voor voorwaartse compatibiliteit

1.3 Softwareondersteuning voor gedeeld geheugen
Gedeeld fysiek geheugen tussen FPGA en CPU is het voorkeursgeheugen voor OpenCL-kernels die op SoC FPGA's draaien. Omdat de FPGA toegang heeft tot gedeeld fysiek geheugen, in tegenstelling tot gedeeld virtueel geheugen, heeft deze geen toegang tot de paginatabellen van de CPU die virtuele gebruikersadressen toewijzen aan fysieke paginaadressen.
Met betrekking tot de hardware hebben OpenCL-kernels toegang tot gedeeld fysiek geheugen via een directe verbinding met de HPS DDR harde geheugencontroller. Met betrekking tot de software houdt ondersteuning voor gedeeld fysiek geheugen de volgende overwegingen in:

  1. Typische software-implementaties voor het toewijzen van geheugen op de CPU (bijvample, de malloc() functie) kan geen geheugengebied toewijzen dat de FPGA mag gebruiken.
    Geheugen dat door de functie malloc() wordt toegewezen, is aaneengesloten in de adresruimte van het virtuele geheugen, maar het is onwaarschijnlijk dat onderliggende fysieke pagina's fysiek aaneengesloten zijn. Als zodanig moet de host fysiek aaneengesloten geheugengebieden kunnen toewijzen. Deze mogelijkheid bestaat echter niet in toepassingen voor gebruikersruimte op Linux. Daarom moet het Linux-kernelstuurprogramma de toewijzing uitvoeren.
  2. Het OpenCL SoC FPGA Linux-kernelstuurprogramma bevat de mmap()-functie om gedeeld fysiek geheugen toe te wijzen en toe te wijzen aan de gebruikersruimte. De mmap()-functie gebruikt de standaard Linux-kernelaanroep dma_alloc_coherent() om fysiek aaneengesloten geheugengebieden aan te vragen om te delen met een apparaat.
  3. In de standaard Linux-kernel wijst dma_alloc_coherent() geen fysiek aaneengesloten geheugen toe dat groter is dan 0.5 megabytes (MB). Om dma_alloc_coherent() toe te staan ​​grote hoeveelheden fysiek aaneengesloten geheugen toe te wijzen, schakelt u de CMA-functie (contiguous memory allocator) van de Linux-kernel in en compileert u vervolgens de Linux-kernel opnieuw.
    Voor het Cyclone V SoC Development Kit Reference Platform beheert CMA 512 MB uit 1 GB fysiek geheugen. U kunt deze waarde verhogen of verlagen, afhankelijk van de hoeveelheid gedeeld geheugen die de toepassing nodig heeft. De aanroep dma_alloc_coherent() kan mogelijk niet de volledige 512 MB fysiek aaneengesloten geheugen toewijzen; het kan echter routinematig ongeveer 450 MB geheugen verkrijgen.
  4. De CPU kan geheugen in de cache opslaan dat door de aanroep dma_alloc_coherent() wordt toegewezen. Met name schrijfbewerkingen vanuit de hosttoepassing zijn niet zichtbaar voor de OpenCL-kernels. De mmap()-functie in het OpenCL SoC FPGA Linux-kernelstuurprogramma bevat ook aanroepen naar de functie pgprot_noncached() of remap_pf_range() om caching voor dit geheugengebied expliciet uit te schakelen.
  5. Nadat de functie dma_alloc_coherent() het fysiek aaneengesloten geheugen heeft toegewezen, retourneert de functie mmap() het virtuele adres naar het begin van het bereik, wat de adresreeks is van het geheugen dat u toewijst. De hosttoepassing heeft dit virtuele adres nodig om toegang te krijgen tot het geheugen. Aan de andere kant hebben de OpenCL-kernels fysieke adressen nodig. Het Linux-kernelstuurprogramma houdt de virtueel-fysieke adrestoewijzing bij. U kunt de fysieke adressen die mmap() retourneert, toewijzen aan daadwerkelijke fysieke adressen door een query aan het stuurprogramma toe te voegen.
    De aocl_mmd_shared_mem_alloc() MMD Application Programming Interface (API)-aanroep bevat de volgende vragen:
    A. De functie mmap() die geheugen toewijst en het virtuele adres retourneert.
    B. De extra query die het geretourneerde virtuele adres toewijst aan het fysieke adres.
    De aocl_mmd_shared_mem_alloc() MMD API-aanroep retourneert vervolgens twee adressen
    —het daadwerkelijk geretourneerde adres is het virtuele adres en het fysieke adres gaat naar device_ptr_out.
    Opmerking: Het stuurprogramma kan alleen de virtuele adressen die de mmap()-functie retourneert, toewijzen aan fysieke adressen. Als u het fysieke adres van een andere virtuele aanwijzer opvraagt, retourneert het stuurprogramma een NULL-waarde.

Waarschuwing: De Intel FPGA SDK voor OpenCL runtime-bibliotheken gaan ervan uit dat het gedeelde geheugen het eerste geheugen is dat wordt vermeld in board_spec.xml file. Met andere woorden: het fysieke adres dat de Linux-kerneldriver verkrijgt, wordt het Avalon®-adres dat de OpenCL-kernel doorgeeft aan de HPS SDRAM.
Met betrekking tot de runtime-bibliotheek gebruikt u de aanroep clCreateBuffer() om het gedeelde geheugen op de volgende manier toe te wijzen als een apparaatbuffer:

  • Voor de variant met twee DDR-kaarten met zowel gedeeld als niet-gedeeld geheugen wijst clCreateBuffer() gedeeld geheugen toe als u de vlag CL_MEM_USE_HOST_PTR opgeeft. Het gebruik van andere vlaggen zorgt ervoor dat clCreateBuffer() buffer toewijst in het niet-gedeelde geheugen.
  • Voor de variant met één DDR-kaart met alleen gedeeld geheugen wijst clCreateBuffer() gedeeld geheugen toe, ongeacht welke vlag u opgeeft.
    Momenteel bepaalt 32-bits Linux-ondersteuning op ARM CPU de omvang van gedeelde geheugenondersteuning in de SDK-runtimebibliotheken. Met andere woorden: runtimebibliotheken die zijn gecompileerd naar andere omgevingen (bijvoorbeeldample, x86_64 Linux of 64-bit Windows) ondersteunen geen gedeeld geheugen.
    C5soc heeft om de volgende redenen geen heterogeen geheugen geïmplementeerd om onderscheid te maken tussen gedeeld en niet-gedeeld geheugen:
    1. Geschiedenis: heterogene geheugenondersteuning was niet beschikbaar toen gedeelde geheugenondersteuning oorspronkelijk werd gecreëerd.
    2. Uniforme interface – Omdat OpenCL een open standaard is, handhaaft Intel de consistentie tussen leveranciers van heterogene computerplatforms. Daarom wordt dezelfde interface als de architecturen van andere kaartleveranciers gebruikt om gedeeld geheugen toe te wijzen en te gebruiken.

1.4 FPGA-herconfiguratie
Voor SoC FPGA's kan de CPU de FPGA-kernstructuur opnieuw configureren zonder de werking van de CPU te onderbreken. Het hardwareblok van de FPGA Manager dat zich over de HPS en de kern-FPGA bevindt, voert de herconfiguratie uit. De Linux-kernel bevat een stuurprogramma dat gemakkelijke toegang tot de FPGA Manager mogelijk maakt.

  • Naar view de status van de FPGA-kern, roep het cat /sys/class/fpga/fpga0/ status commando aan.
    Het Intel FPGA SDK voor OpenCL-programmahulpprogramma dat beschikbaar is bij het Cyclone V SoC Development Kit Reference Platform gebruikt deze interface om de FPGA te programmeren. Bij het herprogrammeren van een FPGA-kern met een draaiende CPU voert het programmahulpprogramma alle volgende taken uit:
    1. Schakel vóór het herprogrammeren alle communicatiebruggen tussen de FPGA en de HPS uit, zowel de H2F- als de LH2F-bruggen.
    Schakel deze bruggen weer in nadat de herprogrammering is voltooid.
    Let op: Het OpenCL-systeem maakt geen gebruik van de FPGA-naar-HPS (F2H) bridge. Raadpleeg het gedeelte HPS-FPGA-interfaces in het Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual voor meer informatie.
    2. Zorg ervoor dat de link tussen de FPGA en de HPS DDR-controller tijdens het herprogrammeren is uitgeschakeld.
    3. Zorg ervoor dat de FPGA-interrupts op de FPGA tijdens het herprogrammeren zijn uitgeschakeld.
    Informeer de bestuurder ook dat hij eventuele interrupts van de FPGA tijdens het herprogrammeren moet weigeren.

Raadpleeg de broncode van het programmahulpprogramma voor details over de daadwerkelijke implementatie.

Waarschuwing: Wijzig de configuratie van de HPS DDR-controller niet wanneer de CPU actief is.
Als u dit wel doet, kan dit een fatale systeemfout veroorzaken, omdat u mogelijk de configuratie van de DDR-controller wijzigt als er openstaande geheugentransacties van de CPU zijn. Dit betekent dat wanneer de CPU draait, u de FPGA-kern niet mag herprogrammeren met een image die HPS DDR in een andere configuratie gebruikt.
Houd er rekening mee dat het OpenCL-systeem en het Golden Hardware-referentieontwerp dat beschikbaar is bij de Intel SoC FPGA Embedded Design Suite (EDS), de HPS DDR in een enkele 256-bits modus zet.
CPU-systeemonderdelen zoals de branch-voorspeller of de paginatabelprefetcher kunnen DDR-opdrachten geven, zelfs als het erop lijkt dat er niets op de CPU draait.
Daarom is de opstarttijd het enige veilige moment om de configuratie van de HPS DDR-controller in te stellen.
Dit impliceert ook dat U-boot een onbewerkt binair bestand moet hebben file (.rbf) afbeelding om in het geheugen te laden. Anders schakelt u mogelijk de HPS DDR in met ongebruikte poorten op de FPGA en wijzigt u mogelijk daarna de poortconfiguraties. Om deze reden bevat het OpenCL Linux-kernelstuurprogramma niet langer de logica die nodig is om de HPS DDR-controllerconfiguratie in te stellen.
De SW3 dual in-line package (DIP)-schakelaars op de Cylone V SoC Development Kit regelen de verwachte vorm van de .rbf-afbeelding (dat wil zeggen of de file is gecomprimeerd en/of gecodeerd). C5soc en het Golden Hardware Reference Design dat beschikbaar is bij de SoC EDS, bevatten gecomprimeerde maar niet-gecodeerde .rbf-afbeeldingen. De SW3 DIP-switchinstellingen die worden beschreven in de Intel FPGA SDK voor OpenCL Cyclone V SoC Getting Started Guide komen overeen met deze .rbf-imageconfiguratie.

Gerelateerde links

  • HPS-FPGA-interfaces
  • De SW3-schakelaars configureren

1.4.1 Details van de FPGA-systeemarchitectuur
Ondersteuning voor het Cyclone V SoC Development Kit Reference Platform is gebaseerd op het Stratix® V Reference Platform (s5_ref), beschikbaar met de Intel FPGA SDK voor OpenCL.
De algehele organisatie van het c5soc Qsys-systeem en het kernelstuurprogramma lijken sterk op die in s5_ref.
De volgende FPGA-kerncomponenten zijn hetzelfde in zowel c5soc als s5_ref:

  • VERSION_ID blok
  • Rust mechanisme
  • Geheugenbankverdeler
  • Cache snoop-interface
  • Kernel klok
  • Beheer registertoegangsblokken (CRA).

1.5 Een SD-flashkaartimage opbouwen
Omdat de Cyclone V SoC FPGA een volledig systeem op een chip is, bent u verantwoordelijk voor het leveren van de volledige definitie van het systeem. Intel raadt u aan deze aan te leveren in de vorm van een SD-flashkaartimage. De Intel FPGA SDK voor OpenCL-gebruiker kan de afbeelding eenvoudig naar de micro SD-flashkaart schrijven en het SoC FPGA-bord is klaar voor gebruik.
Een bestaande SD-flashkaartafbeelding wijzigen op pagina 13
Intel raadt u aan eenvoudigweg de afbeelding aan te passen die beschikbaar is met het Cyclone V SoC Development Kit Reference Platform. U hebt ook de mogelijkheid om een ​​nieuwe SD-flashkaartimage te maken.
Een SD-flashkaartafbeelding maken op pagina 14
U hebt ook de mogelijkheid om een ​​nieuwe SD-flashkaartimage te maken.

1.5.1 Een bestaande SD-flashkaartafbeelding wijzigen
Intel raadt aan dat u eenvoudigweg de afbeelding wijzigt die beschikbaar is met de Cyclone V SoC
Referentieplatform voor ontwikkelkits. U hebt ook de mogelijkheid om een ​​nieuwe SD-flashkaartimage te maken.
De c5soc linux_sd_card_image.tgz-afbeelding file is beschikbaar in de map ALTERAOCLSDKROOT/board/c5soc, waar ALTERAOCLSDKROOT verwijst naar het pad van de Intel FPGA SDK voor de installatiemap van OpenCL.

Aandacht: Om de afbeelding van de SD-flashkaart te wijzigen, moet u root- of sudo-privileges hebben.

  1. Om $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz te decomprimeren file, voer de opdracht tar xvfzlinux_sd_card_image.tgz uit.
  2. Compileer de hello_world OpenCL example ontwerp met behulp van uw Custom Platform-ondersteuning. Hernoem de .rbf file dat de Intel FPGA SDK voor OpenCL Offline Compiler genereert als opencl.rbf, en plaats deze op de fat32-partitie binnen de SD-flashkaartimage.
    Je kunt de hello_world example-ontwerp van de OpenCL Design Examples pagina op de Altera webplaats.
  3. Plaats de .rbf file in de fat32-partitie van de flashkaartafbeelding.
    Aandacht: De fat32-partitie moet zowel de zImage file en de .rbf file. Zonder een .rbf file, zal er een fatale fout optreden wanneer u het stuurprogramma plaatst.
  4. Nadat u de SD-kaartimage hebt gemaakt, schrijft u deze naar een micro SD-kaart door de volgende opdracht aan te roepen: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. Voer de volgende taken uit om uw SD-flashkaartbeeld te testen:
    A. Plaats de micro SD-flashkaart in het SoC FPGA-bord.
    B. Zet het bord aan.
    C. Roep de opdracht aocl diagnose utility aan.

1.5.2 Een SD-flashkaartafbeelding maken
U hebt ook de mogelijkheid om een ​​nieuwe SD-flashkaartimage te maken. Generieke instructies voor het bouwen van een nieuwe SD-flashkaartimage en het opnieuw opbouwen van een bestaande SD-flashkaartimage zijn beschikbaar op de GSRD v14.0.2 – SD-kaartpagina van RocketBoards.org webplaats.
De onderstaande stappen beschrijven de procedure voor het maken van de linux_sd_card_image.tgz-afbeelding van de Golden System Reference Design (GSRD) SD-flashkaartafbeelding:
Opmerking:
Om de afbeelding van de c5soc-afbeelding te maken, voert u alle van toepassing zijnde taken uit die in deze procedure worden beschreven.

  1. Download en pak de GSRD SD-flashkaart-imageversie 14.0 uit van Rocketboards.org.
  2. Monteer de file toewijzingstabel (fat32) en uitgebreid file systeempartities (ext3) in deze afbeelding als loop-back-apparaten. Voer de volgende stappen uit om een ​​partitie te koppelen:
    A. Bepaal het bytebegin van de partitie binnen de image door de /sbin/fdisk -lu image_ aan te roepenfile commando.
    Bijvoorbeeldample, partitie nummer 1 van het type W95 FAT heeft een blokoffset van 2121728. Met 512 bytes per blok is de byteoffset 512 bytes x 2121728 = 1086324736 bytes.
    B. Identificeer een apparaat met vrije lus (bijvample, /dev/loop0) door de opdracht loosetup -f te typen.
    C. Ervan uitgaande dat /dev/loop0 het free loop device is, wijs je flash card image toe aan het loop block device door de losetup /dev/loop0 image_ aan te roepenfile -0 1086324736 opdracht.
    D. Koppel het lusapparaat aan door de opdracht mount /dev/loop0 /media/disk1 op te roepen.
    Binnen het beeld file, /media/disk1 is nu een aangekoppelde fat32-partitie.
    e. Herhaal stappen a tot en met d voor de ext3-partitie.
  3. Download de Cyclone V SoC FPGA-versie van het Intel FPGA Runtime Environment voor OpenCL-pakket vanuit het Downloadcentrum op de Altera webplaats.
    A. Klik op de knop Downloaden naast de Quartus Prime-softwareeditie.
    B. Geef de releaseversie, het besturingssysteem en de downloadmethode op.
    C. Klik op het tabblad Extra software en selecteer om Intel FPGA te downloaden
    Runtimeomgeving voor OpenCL Linux Cyclone V SoC TGZ.
    D. Nadat u de aocl-rte- .arm32.tgz file, pak het uit
    een map waarvan u de eigenaar bent.
  4. Plaats de uitgepakte aocl-rte- .arm32 map naar de /home/root/opencl_arm32_rte map op de ext3 partitie van de image file.
  5. Verwijder de hardwaremap(pen) van uw aangepaste platform en plaats het aangepaste platform vervolgens in de board-submap van /home/root/opencl_arm32_rte.
  6. Maak de init_opencl.sh aan file in de map /home/root met de volgende inhoud: export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte export AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ export PATH=$ALTERAOCLSDKROOT/bin:$PATH export LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    De SDK-gebruiker voert de opdracht source ./init_opencl.sh uit om de omgevingsvariabelen en het OpenCL Linux-kernelstuurprogramma te laden.
  7. Als u de preloader moet bijwerken, wordt de DTS files, of de Linux-kernel, heb je de arm-linux-gnueabihf-gcc-compiler van de SoC EDS nodig. Volg de instructies in de Intel SoC FPGA Embedded Design Suite-gebruikershandleiding om de software aan te schaffen, deze opnieuw te compileren en de relevante updates bij te werken. files op de aangekoppelde fat32-partitie.
    Aandacht: Het is zeer waarschijnlijk dat u de preloader moet updaten als uw Custom Platform een ​​ander pingebruik heeft dan die in c5soc.
    Onthoud: als u de Linux-kernel opnieuw compileert, compileer dan het Linux-kernelstuurprogramma opnieuw met dezelfde Linux-kernelbron fileS. Als er een mismatch is tussen het Linux-kernelstuurprogramma en de Linux-kernel, wordt het stuurprogramma niet geladen. U moet ook de CMA inschakelen.
    Raadpleeg De Linux-kernel opnieuw compileren voor meer informatie.
  8. Compileer de hello_world OpenCL example ontwerp met behulp van uw Custom Platform-ondersteuning. Hernoem de .rbf file dat de Intel FPGA SDK voor OpenCL Offline Compiler genereert als opencl.rbf, en plaats deze op de fat32-partitie binnen de SD-flashkaartimage.
    Je kunt de hello_world example-ontwerp van de OpenCL Design Examples pagina op de Altera webplaats.
    9. Nadat u al het benodigde hebt opgeslagen files op de afbeelding van de flashkaart, roept u de volgende opdrachten op:
    A. synchroniseren
    B. ontkoppel /media/disk1
    C. ontkoppelen waar is de mapnaam die u gebruikt voor het koppelen van de ext3-partitie in 3 op pagina 3 (bijvoorbeeldampbestand, /media/disk2).
    D. lostup -d /dev/loop0
    e. lostup -d /dev/loop1
  9. Comprimeer de afbeelding van de SD-flashkaart door de volgende opdracht uit te voeren: tar cvfz .tgz linux_sd_card_image
  10. Lever de .tgz file in de hoofdmap van uw Custom Platform.
  11. Voer de volgende taken uit om uw SD-flashkaartbeeld te testen:
    A. Schrijf de resulterende ongecomprimeerde afbeelding op een micro SD-flashkaart.
    B. Plaats de micro SD-flashkaart in het SoC FPGA-bord.
    C. Zet het bord aan.
    D. Roep de opdracht aocl diagnostic utility op.

Gerelateerde links

  • Intel SoC FPGA Embedded Design Suite-gebruikershandleiding
  • OpenCL-ontwerp bijvamples pagina op de Altera webplaats
  • De Linux-kernel opnieuw compileren op pagina 16
    Om de CMA in te schakelen, moet u eerst de Linux-kernel opnieuw compileren.
  • De apparaatnaam van uw FPGA-bord opvragen (diagnose)

1.6 De Linux-kernel compileren voor Cyclone V SoC FPGA
Voordat u OpenCL-applicaties op het Cyclone V SoC FPGA-bord uitvoert, moet u de Linux-kernelbron compileren en het OpenCL Linux-kernelstuurprogramma compileren en installeren.

  1. De Linux-kernel opnieuw compileren op pagina 16
    Om de CMA in te schakelen, moet u eerst de Linux-kernel opnieuw compileren.
  2. Het OpenCL Linux-kernelstuurprogramma compileren en installeren op pagina 17 Compileer het OpenCL Linux-kernelstuurprogramma met de gecompileerde kernelbron.

1.6.1 De Linux-kernel opnieuw compileren
Om de CMA in te schakelen, moet u eerst de Linux-kernel opnieuw compileren.

  1. Klik op de GSRD v14.0 – Compiling Linux link op de Resources-pagina van RocketBoards.org website voor instructies over het downloaden en opnieuw opbouwen van de broncode van de Linux-kernel.
    Voor gebruik met de™ Intel FPGA SDK voor OpenCL geeft u socfpga-3.13-rel14.0 op als .
  2. Opmerking: tijdens het bouwproces wordt het bestand arch/arm/configs/socfpga_defconfig file. Dit file specificeert de instellingen voor de standaardconfiguratie van socfpga.
    Voeg de volgende regels toe aan de onderkant van het bestand arch/arm/configs/socfpga_defconfig file.
    CONFIG_MEMORY_ISOLATION=j
    CONFIG_CMA=j
    CONFIG_DMA_CMA=j
    CONFIG_CMA_DEBUG=j
    CONFIG_CMA_SIZE_MBYTES=512
    CONFIG_CMA_SIZE_SEL_MBYTES=j
    CONFIG_CMA_ALIGNMENT=8
    CONFIG_CMA_AREAS=7
    De configuratiewaarde CONFIG_CMA_SIZE_MBYTES stelt de bovengrens in voor het totale aantal fysiek aaneengesloten geheugen dat beschikbaar is. U kunt deze waarde verhogen als u meer geheugen nodig heeft.
  3. Aandacht: De totale hoeveelheid fysiek geheugen die beschikbaar is voor de ARM-processor op het SoC FPGA-bord is 1 GB. Intel raadt u af de CMA-manager in de buurt van 1 GB in te stellen.
  4. Voer de opdracht make mrproper uit om de huidige configuratie op te schonen.
  5. Voer de opdracht make ARCH=arm socfpga_deconfig uit.
    ARCH=arm geeft aan dat u de ARM-architectuur wilt configureren.
    socfpga_defconfig geeft aan dat u de standaard socfpga-configuratie wilt gebruiken.
  6. Voer de export CROSS_COMPILE=arm-linux-gnueabihf- opdracht uit.
    Met deze opdracht wordt de omgevingsvariabele CROSS_COMPILE ingesteld om het voorvoegsel van de gewenste gereedschapsketen op te geven.
  7. Voer de opdracht make ARCH=arm zImage uit. De resulterende afbeelding is beschikbaar in de arch/arm/boot/zImage file.
  8. Plaats de zImage file in de fat32-partitie van de flashkaartimage. Voor gedetailleerde instructies raadpleegt u de Cyclone V SoC FPGA-specifieke GSRD-gebruikershandleiding op Rocketboards.org.
  9. Opmerking: Om het OpenCL Linux-kernelstuurprogramma correct in te voegen, laadt u eerst een SDKgenerated.rbf file op de FPGA.
    Om het .rbf-bestand te maken file, compileer een SDK-ontwerp, bijvoorbeeldampbestand met het Cyclone V SoC Development Kit Reference Platform als het beoogde aangepaste platform.
    9. Plaats de .rbf file in de fat32-partitie van de flashkaartafbeelding.
    Let op: De fat32-partitie moet zowel de zImage file en de .rbf file. Zonder een .rbf file, zal er een fatale fout optreden wanneer u het stuurprogramma plaatst.
  10. Plaats de geprogrammeerde micro SD-kaart, die de SD-kaartafbeelding bevat die u eerder hebt gewijzigd of gemaakt, in de Cyclone V SoC Development Kit en schakel vervolgens het SoC FPGA-bord in.
  11. Controleer de versie van de geïnstalleerde Linux-kernel door de opdracht uname -r uit te voeren.
  12. Om te verifiëren dat je de CMA met succes in de kernel hebt ingeschakeld, terwijl het SoC FPGA-bord is ingeschakeld, voer je de opdracht grep init_cma /proc/kallsyms uit.
    CMA is ingeschakeld als de uitgang niet leeg is.
  13. Om de opnieuw gecompileerde Linux-kernel met de SDK te gebruiken, compileert en installeert u het Linux-kernelstuurprogramma.

Gerelateerde links

  • Golden System Reference Design (GSRD)-gebruikershandleidingen
  • Een SD-flashkaartimage maken op pagina 13
    Omdat de Cyclone V SoC FPGA een volledig systeem op een chip is, bent u verantwoordelijk voor het leveren van de volledige definitie van het systeem.

1.6.2 Het OpenCL Linux Kernel-stuurprogramma compileren en installeren
Compileer het OpenCL Linux-kernelstuurprogramma met de gecompileerde kernelbron.

De driverbron is beschikbaar in de Cyclone V SoC FPGA-versie van de Intel FPGA Runtime Environment voor OpenCL. Zorg er bovendien voor dat u een Intel FPGA SDK voor door OpenCL gegenereerde .rbf hebt geladen file in de FPGA om onjuiste installatie van de Linux-kernelmodule te voorkomen.

  1. Download de Cyclone V SoC FPGA-versie van het Intel FPGA Runtime Environment voor OpenCL-pakket vanuit het Downloadcentrum op de Altera webplaats.
    A. Klik op de knop Downloaden naast de Quartus Prime-softwareeditie.
    B. Geef de releaseversie, het besturingssysteem en de downloadmethode op.
    C. Klik op het tabblad Extra software en selecteer om Intel FPGA te downloaden
    Runtimeomgeving voor OpenCL Linux Cyclone V SoC TGZ.
    D. Nadat u de aocl-rte- .arm32.tgz file, pak het uit
    een map waarvan u de eigenaar bent.
    De stuurprogrammabron bevindt zich in de aocl-rte- .arm32/board/c5soc/ drivermap.
  2. Om de OpenCL Linux-kerneldriver opnieuw te compileren, stelt u de KDIR-waarde in in Make van de driverfile naar de map met de broncode van de Linux-kernel files.
  3. Voer de opdracht export CROSS_COMPILE=arm-linux-gnueabihf- uit om het voorvoegsel van uw gereedschapsketen aan te geven.
  4. Voer de opdracht make clean uit.
  5. Voer de opdracht make uit om het bestand aclsoc_drv.ko te maken file.
  6. Breng de map opencl_arm32_rte over naar het Cyclone V SoC FPGA-bord.
    Voer de scp -r uit root@uw-ipadres: opdracht plaatst de runtime-omgeving in de map/home/root.
  7. Voer het script init_opencl.sh uit dat u hebt gemaakt toen u de SD-kaartimage bouwde.
  8.  Roep de opdracht aocl diagnose utility op. Het diagnosehulpprogramma retourneert een positief resultaat nadat u init_opencl.sh met succes hebt uitgevoerd.

1.7 Bekende problemen
Momenteel zijn er bepaalde beperkingen op het gebruik van de Intel FPGA SDK voor OpenCL met het Cyclone V SoC Development Kit Reference Platform.

  1. U kunt de leveranciers- en bordnamen die worden gerapporteerd door de CL_DEVICE_VENDOR- en CL_DEVICE_NAME-tekenreeksen van de clGetDeviceInfo()-aanroep niet overschrijven.
  2. Als de host constant geheugen toewijst in een gedeeld DDR-systeem (dat wil zeggen HPS DDR) en het constante geheugen wijzigt na uitvoering van de kernel, kunnen de gegevens in het geheugen verouderd raken. Dit probleem doet zich voor omdat de FPGA-kern niet kan snuffelen in CPU-naar-HPS DDR-transacties.
    Implementeer een van de volgende tijdelijke oplossingen om te voorkomen dat volgende kerneluitvoeringen toegang krijgen tot verouderde gegevens:
    • Wijzig het constante geheugen niet na de initialisatie.
    • Als u meerdere __constante gegevenssets nodig hebt, maakt u meerdere constante geheugenbuffers.
    • Wijs, indien beschikbaar, constant geheugen toe in de FPGA DDR op uw acceleratorkaart.
  3. Het SDK-hulpprogramma op ARM ondersteunt alleen de programma- en diagnosehulpprogramma's.
    De opdrachten flash, install en uninstall zijn om de volgende redenen niet van toepassing op de Cyclone V SoC Development Kit:
    A. Het installatieprogramma moet het aclsoc_drv Linux-kernelstuurprogramma compileren en inschakelen op de SoC FPGA. De ontwikkelmachine moet de compilatie uitvoeren; het bevat echter al Linux-kernelbronnen voor de SoC FPGA. De Linux-kernelbronnen voor de ontwikkelmachine zijn anders dan die voor de SoC FPGA. De locatie van de Linux-kernelbronnen voor de SoC FPGA is waarschijnlijk onbekend voor de SDK-gebruiker. Op dezelfde manier is het verwijderhulpprogramma ook niet beschikbaar voor de Cyclone V SoC Development Kit.
    Ook is het leveren van aclsoc_drv aan het SoC-bord een uitdaging omdat de standaarddistributie van de Cyclone V SoC Development Kit geen Linux-kernel bevat files of de GNU Compiler Collection-compiler (GCC).
    B. Het flash-hulpprogramma vereist het plaatsen van een .rbf file van een OpenCL-ontwerp op de FAT32-partitie van de micro SD-flashkaart. Momenteel wordt deze partitie niet aangekoppeld wanneer de SDK-gebruiker het bord inschakelt. Daarom is de beste manier om de partitie bij te werken het gebruik van een flashkaartlezer en de ontwikkelmachine.
  4. Bij het schakelen tussen het uitvoerbare bestand Intel FPGA SDK voor OpenCL Offline Compiler files (.aocx) die overeenkomen met verschillende bordvarianten (dat wil zeggen c5soc en c5soc_sharedonly), moet u het programmahulpprogramma van de SDK gebruiken om de .aocx te laden file voor de eerste keer voor de nieuwe bordvariant. Als u de hosttoepassing eenvoudigweg met een nieuwe bordvariant uitvoert, maar de FPGA de afbeelding van een andere bordvariant bevat, kan er een fatale fout optreden.
  5. De .qxp file omvat niet de interfacepartitietoewijzingen omdat de Quartus Prime-software consequent voldoet aan de timingvereisten van deze partitie.
  6. Wanneer u het bord inschakelt, wordt het MAC-adres (Media Access Control) ingesteld op een willekeurig getal. Als uw LAN-beleid dit gedrag niet toestaat, stelt u het MAC-adres in door de volgende taken uit te voeren:
    A. Druk tijdens het opstarten van U-Boot op een willekeurige toets om de opdrachtprompt van U-Boot te openen.
    B. Typ setenv ethaddr 00:07:ed:00:00:03 bij de opdrachtprompt.
    U kunt elk MAC-adres kiezen.
    C. Typ de opdracht saveenv.
    D. Start het bord opnieuw op.

1.8 Documentrevisiegeschiedenis
Tabel 1.
Documentrevisiegeschiedenis van de Intel FPGA SDK voor OpenCL Cyclone V SoC
Development Kit Referentieplatform Portinggids

Datum Versie Wijzigingen
17 mei 2017.05.08 •Onderhoudsvrijgave.
Oktoberboer 2016 2016.10.31 •Omgedoopt tot Altera SDK voor OpenCL naar Intel FPGA SDK voor OpenCL.
•Omgedoopt tot Altera Offline Compiler naar Intel FPGA SDK voor OpenCL Offline Compiler.
16 mei 2016.05.02 •Gewijzigde instructies voor het bouwen en wijzigen van een SD-flashkaartimage.
•Gewijzigde instructies voor het opnieuw compileren van de Linux-kernel en het OpenCL Linux-kernelstuurprogramma.
15 november 2015.11.02 •Onderhoudsrelease en gewijzigde instances van Quartus II naar Quartus Prime.
15 mei 15.0.0 •In FPGA-herconfiguratie is de instructie verwijderd om de FPGA-kern opnieuw te programmeren
met een . rbf-afbeelding door de kat aan te roepen filenaam>. rbf
> /dev/fpga0 omdat deze methode niet wordt aanbevolen.
december-14 14.1.0 •Hernoemde het document tot Altera Cyclone V SoC Development Kit Reference Platform Porting Guide.
•Het herprogrammatiehulpprogramma bijgewerkt naar het aocl-programmafilenaam>.aocx hulpprogramma-opdracht.
•Het diagnostische hulpprogramma bijgewerkt naar aocl diagnostic en aocl diagnostic hulpprogramma opdracht.
•De procedure in de sectie Het referentieplatform naar uw SoC-bord overbrengen bijgewerkt met instructies voor het overzetten en wijzigen van de c5soc-bordpartitie om een ​​timing-clean-partitie te maken voor de gegarandeerde timing-sluitingsstroom.
•Het onderwerp Updaten van een geporteerd referentieplatform is ingevoegd om de procedures voor de volgende taken te beschrijven:
1. Exclusief het hardprocessorsysteem (HPS)-blok in de bordpartitie
2. De afbeelding van de SD-flashkaart bijwerken
•De sectie Een SD-flashkaartafbeelding maken bijgewerkt. Aanbevolen om versie 14.0 van de Golden System Reference Design (GSRD)-image als uitgangspunt te gebruiken in plaats van de afbeelding die beschikbaar is met SoC Embedded Design Suite (EDS).
•Het gedeelte Opnieuw compileren van de Linux-kernel en het OpenCL Linux Kernel-stuurprogramma bijgewerkt:
1. Instructies toegevoegd om de CROSS COMPILE-variabele in te stellen.
2.De opdracht die u uitvoert, is gewijzigd om te verifiëren dat de CMA met succes is ingeschakeld.
Juli-14 14.0.0 •Eerste uitgave.

Documenten / Bronnen

Intel FPGA SDK voor OpenCL [pdf] Gebruikershandleiding
FPGA SDK voor OpenCL, FPGA SDK, SDK voor OpenCL, SDK

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *