intel - logoFPGA SDK OpenCL-ի համար
Օգտագործողի ուղեցույց

UG-OCL009
2017.05.08
Վերջին թարմացումը Intel® Quartus® Prime Design Suite-ի համար՝ 17.0

RENPHO RF FM059HS WiFi Smart Foot Massager - պատկերակ 5Բաժանորդագրվել
SAMSUNG SM A136UZKZAIO Galaxy A13 5G սմարթֆոն - պատկերակ 12Ուղարկել կարծիք

Intel® FPGA SDK OpenCL™-ի համար Intel® Cyclone®V SoC մշակման հավաքածուի տեղեկատու հարթակի տեղափոխման ուղեցույց

V SoC Development Kit Reference Platform-ի տեղափոխման ուղեցույցը նկարագրում է Intel Cyclone V SoC Development Kit Reference Platform-ի (c5soc) ապարատային և ծրագրային դիզայնը՝ OpenCL-ի համար Intel Software Development Kit (SDK) հետ օգտագործելու համար Intel ® FPGA SDK OpenCL ™ Intel Cyclone-ի համար: ® . Նախքան սկսելը, Intel-ը խստորեն խորհուրդ է տալիս ծանոթանալ հետևյալ փաստաթղթերի բովանդակությանը.

  1. Intel FPGA SDK OpenCLIntel Cyclone V SoC-ի համար Սկսելու ուղեցույց
  2. Intel FPGA SDK OpenCL Custom Platform Toolkit-ի օգտագործման ուղեցույց
  3. Cyclone V Սարքի ձեռնարկ, հատոր 3. Կոշտ պրոցեսորային համակարգի տեխնիկական տեղեկատու ձեռնարկ Բացի այդ, տեսեք Cyclone V SoC մշակման հավաքածուն և SoC ներդրված դիզայնի փաթեթը Altera-ում: webկայքը լրացուցիչ տեղեկությունների համար: 1 2

Ուշադրություն. Intel-ը ենթադրում է, որ դուք խորը պատկերացում ունեք Intel FPGA SDK-ի մասին OpenCL Custom Platform Toolkit Օգտագործողի ուղեցույցի համար: Cyclone V SoC Development Kit Reference Platform Porting Guide-ը չի նկարագրում SDK-ի Պատվերով պլատֆորմի գործիքակազմի օգտագործումը Cyclone V SoC մշակման հավաքածուի համար հատուկ հարթակ իրականացնելու համար: Այն նկարագրում է միայն Cyclone V SoC Development Kit-ի SDK-ի աջակցության և OpenCL Custom Platform-ի ընդհանուր Intel FPGA SDK-ի միջև եղած տարբերությունները:

Առնչվող հղումներ

  • Intel FPGA SDK OpenCL Cyclone V SoC-ի համար Սկսելու ուղեցույց
  • Intel FPGA SDK OpenCL Custom Platform Toolkit-ի օգտագործման ուղեցույց
  • Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference ձեռնարկ
  • Cyclone V SoC Development Kit և SoC Embedded Design Suite էջը Altera-ում webկայք
  1. OpenCL-ը և OpenCL լոգոն Apple Inc. ապրանքանիշերն են, որոնք օգտագործվում են Khronos Group™-ի թույլտվությամբ:
  2. OpenCL-ի համար Intel FPGA SDK-ն հիմնված է հրապարակված Khronos սպեցիֆիկացիայի վրա և անցել է Khronos-ի համապատասխանության փորձարկման գործընթացը: Ընթացիկ համապատասխանության կարգավիճակը կարելի է գտնել այստեղ www.khronos.org/conformance.

Intel կորպորացիա. Բոլոր իրավունքները պաշտպանված են: Intel-ը, Intel-ի լոգոն, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus և Stratix բառերն ու լոգոները Intel Corporation-ի կամ նրա դուստր ձեռնարկությունների ապրանքային նշաններն են ԱՄՆ-ում և/կամ այլ երկրներում: Intel-ը երաշխավորում է իր FPGA-ի և կիսահաղորդչային արտադրանքների կատարումը ընթացիկ բնութագրերի համաձայն՝ համաձայն Intel-ի ստանդարտ երաշխիքի, սակայն իրեն իրավունք է վերապահում փոփոխություններ կատարել ցանկացած ապրանքի և ծառայությունների մեջ ցանկացած պահի առանց նախազգուշացման: Intel-ը չի ստանձնում ոչ մի պատասխանատվություն կամ պատասխանատվություն, որը բխում է սույն հոդվածում նկարագրված որևէ տեղեկատվության, արտադրանքի կամ ծառայության կիրառումից կամ օգտագործումից, բացառությամբ այն դեպքերի, որոնց մասին հստակ գրավոր համաձայնեցված է Intel-ի կողմից: Intel-ի հաճախորդներին խորհուրդ է տրվում ձեռք բերել սարքի տեխնիկական բնութագրերի վերջին տարբերակը՝ նախքան որևէ հրապարակված տեղեկատվության վրա հիմնվելը և ապրանքների կամ ծառայությունների պատվերներ կատարելը:
*Այլ անուններ և ապրանքանիշեր կարող են պահանջվել որպես ուրիշների սեփականություն:

1.1.1 Cyclone V SoC Development Kit Reference Platform Board-ի տարբերակները
Intel FPGA SDK-ն OpenCL Cyclone V SoC Development Kit Reference Platform-ի համար ներառում է տախտակի երկու տարբերակ:

  • c5soc տախտակ
    Այս լռելյայն տախտակն ապահովում է մուտք դեպի երկու DDR հիշողության բանկ: HPS DDR-ը հասանելի է ինչպես FPGA-ի, այնպես էլ պրոցեսորի կողմից: FPGA DDR-ը հասանելի է միայն FPGA-ի կողմից:
  • c5soc_sharedonly տախտակ
    Այս տախտակի տարբերակը պարունակում է միայն HPS DDR միացում: FPGA DDR-ը հասանելի չէ: Տախտակի այս տարբերակն ավելի արդյունավետ է տարածքի վրա, քանի որ ավելի քիչ սարքավորում է անհրաժեշտ մեկ DDR հիշողության բանկ աջակցելու համար: C5soc_sharedonly տախտակը նաև լավ նախատիպային հարթակ է մեկ DDR հիշողության բանկով վերջնական արտադրության տախտակի համար:
    Ձեր OpenCL միջուկը կազմելիս տախտակի այս տարբերակը թիրախավորելու համար ձեր aoc հրամանում ներառեք -board c5soc_sharedonly տարբերակը:
    Տախտակի վերաբերյալ լրացուցիչ տեղեկությունների համար aoc հրամանի տարբերակը, տես Intel FPGA SDK-ը՝ OpenCL ծրագրավորման ուղեցույցի համար:

Առնչվող հղումներ
Կազմել միջուկ հատուկ FPGA խորհրդի համար (–տախտակ )
1.1.2 Cyclone V SoC Development Kit Reference Platform-ի բովանդակությունը
Cyclone V SoC Development Kit Reference Platform-ը բաղկացած է հետևյալից fileներ և գրացուցակներ.

File կամ տեղեկատու Նկարագրություն
board_env.xml Ընդլայնվող նշագրման լեզու (XML) file որը նկարագրում է c5soc-ը Intel FPGA SDK-ին OpenCL-ի համար:
linux_sd_card_image.tgz Սեղմված SD ֆլեշ քարտի պատկեր file որը պարունակում է այն ամենը, ինչ անհրաժեշտ է SDK օգտագործողին՝ Cyclone V SoC Development Kit-ը SDK-ի հետ օգտագործելու համար:
arm32 Տեղեկատու, որը պարունակում է հետևյալը.

1.1.3 Cyclone V SoC մշակման հավաքածուի համապատասխան առանձնահատկությունները

Հետևյալ ցանկը ընդգծում է Cyclone V SoC Development Kit բաղադրիչներն ու առանձնահատկությունները, որոնք վերաբերում են OpenCL-ի Intel FPGA SDK-ին:

  • Երկմիջուկ ARM Cortex-A9 պրոցեսոր, որն աշխատում է 32-բիթանոց Linux-ով:
  • Ընդլայնված ընդարձակվող ինտերֆեյս (AXI) ավտոբուս HPS-ի և FPGA-ի հիմնական գործվածքի միջև:
  • Երկու կարծրացած DDR հիշողության կարգավորիչներ, որոնցից յուրաքանչյուրը միանում է 1 գիգաբայթ (ԳԲ) DDR3 SDRAM-ին:
    — Մեկ DDR կարգավորիչ հասանելի է միայն FPGA միջուկին (այսինքն՝ FPGA DDR):
    — Մյուս DDR կարգավորիչը հասանելի է և՛ HPS-ին, և՛ FPGA-ին (այսինքն՝ HPS DDR-ին): Այս ընդհանուր կարգավորիչը թույլ է տալիս անվճար հիշողության փոխանակում CPU-ի և FPGA միջուկի միջև:
  • Պրոցեսորը կարող է վերակազմավորել FPGA հիմնական գործվածքը:

1.1.3.1 Cyclone V SoC Development Kit Reference Platform Design-ի նպատակները և որոշումները Intel-ը հիմնում է Cyclone V SoC Development Kit Reference Platform-ի ներդրումը մի քանի նախագծային նպատակների և որոշումների վրա: Intel-ը խորհուրդ է տալիս հաշվի առնել այս նպատակներն ու որոշումները, երբ տեղափոխում եք այս հղումային հարթակը ձեր SoC FPGA տախտակին:
Ստորև բերված են c5soc նախագծման նպատակները.

  1. Տրամադրեք առավելագույն հնարավոր թողունակություն FPGA-ի և DDR հիշողության համակարգ(ների) միջուկների միջև:
  2. Համոզվեք, որ FPGA-ի (այսինքն՝ OpenCL միջուկների) վրա կատարված հաշվարկները չեն խանգարում CPU-ի այլ առաջադրանքներին, որոնք կարող են ներառել ծայրամասային սարքերի սպասարկում:
  3. Ինտերֆեյսի բաղադրիչների փոխարեն հնարավորինս շատ FPGA ռեսուրսներ թողեք միջուկի հաշվարկների համար:

Ստորև ներկայացված են դիզայնի բարձր մակարդակի որոշումները, որոնք Intel-ի նախագծային նպատակների անմիջական հետևանքն են.

  1. Հղման հարթակը օգտագործում է միայն կոշտ DDR հիշողության կարգավորիչներ՝ ամենալայն հնարավոր կոնֆիգուրացիայով (256 բիթ):
  2. FPGA-ն ուղղակիորեն շփվում է HPS DDR հիշողության կարգավորիչի հետ՝ առանց HPS-ի ներսում AXI ավտոբուսի և L3 անջատիչի ներգրավման: Ուղղակի հաղորդակցությունն ապահովում է DDR-ի հնարավոր լավագույն թողունակությունը և թույլ չի տալիս FPGA-ի հաշվարկները խանգարել պրոցեսորի և դրա ծայրամասի միջև հաղորդակցությանը:
  3. Scatter-gather-ի ուղղակի հիշողության հասանելիությունը (SG-DMA) FPGA ինտերֆեյսի տրամաբանության մաս չէ: DDR հիշողության համակարգերի միջև մեծ քանակությամբ տվյալներ փոխանցելու փոխարեն, տվյալները պահեք ընդհանուր HPS DDR-ում: FPGA-ի կողմից պրոցեսորի հիշողության անմիջական մուտքն ավելի արդյունավետ է, քան DMA-ն: Այն խնայում է ապարատային ռեսուրսները (այսինքն՝ FPGA տարածքը) և հեշտացնում է Linux միջուկի դրայվերը։
    Զգուշացում. Հիշողության փոխանցումը ընդհանուր HPS DDR համակարգի և DDR համակարգի միջև, որը հասանելի է միայն FPGA-ին, շատ դանդաղ է ընթանում: Եթե ​​դուք ընտրում եք
    փոխանցեք հիշողությունը այս կերպ, օգտագործեք այն միայն շատ փոքր քանակությամբ տվյալների համար:
  4. Հոսթը և սարքը կատարում են ոչ DMA տվյալների փոխանցում միմյանց միջև HPS-to-FPGA (H2F) կամրջի միջոցով՝ օգտագործելով միայն մեկ 32-բիթանոց պորտ: Պատճառն այն է, որ առանց DMA-ի, Linux միջուկը կարող է թողարկել միայն մեկ 32-բիթանոց կարդալու կամ գրելու հարցում, ուստի ավելի լայն կապ ունենալն ավելորդ է:
  5. Հյուրընկալողը հսկիչ ազդանշաններ է ուղարկում սարքին թեթև H2F (LH2F) կամրջի միջոցով:
    Քանի որ հյուրընկալողից սարքի կառավարման ազդանշանները ցածր թողունակության ազդանշաններ են, LH2F կամուրջը իդեալական է առաջադրանքի համար:

1.2 Հղման հարթակի տեղափոխում ձեր SoC FPGA տախտակին
Cyclone V SoC Development Kit Reference Platform-ը ձեր SoC FPGA տախտակ տեղափոխելու համար կատարեք հետևյալ առաջադրանքները.

  1. Որպես ձեր դիզայնի մեկնարկային կետ, ընտրեք c5soc Reference Platform-ի մեկ DDR հիշողությունը կամ երկու DDR հիշողությունների տարբերակը:
  2. Թարմացրեք փին վայրերը ALTERAOCLSDKROOT/board/c5soc/-ում /top.qsf file, որտեղ ALTERAOCLSDKROOT-ը OpenCL-ի տեղադրման համար Intel FPGA SDK-ի գտնվելու վայրի ուղին է, և տախտակի տարբերակի գրացուցակի անվանումն է: C5soc_sharedonly գրացուցակը նախատեսված է մեկ DDR հիշողության համակարգով տախտակի տարբերակի համար: C5soc գրացուցակը նախատեսված է երկու DDR հիշողության համակարգերով տախտակի տարբերակի համար:
  3.  Թարմացրեք DDR կարգավորումները HPS և/կամ FPGA SDRAM բլոկների համար ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
    4. Բոլոր Intel FPGA SDK-ները OpenCL-ի նախընտրելի տախտակների դիզայնի համար պետք է հասնեն երաշխավորված ժամանակի փակման: Որպես այդպիսին, դիզայնի տեղադրումը պետք է լինի ժամանակի մաքուր: C5soc տախտակի բաժանումը (acl_iface_partition.qxp) ձեր SoC FPGA տախտակ տեղափոխելու համար կատարեք հետևյալ առաջադրանքները.
    Տախտակի միջնորմը փոփոխելու և պահպանելու վերաբերյալ մանրամասն հրահանգների համար տես Quartus-ը
    «Quartus Prime Standard Edition» ձեռնարկի «Prime Incremental Compilation» հիերարխիկ և թիմային ձևավորման համար գլխում:
    ա. Հեռացրեք acl_iface_partition.qxp-ը ALTERAOCLSDKROOT/board/c5soc/c5soc գրացուցակից:
    բ. Միացնել acl_iface_region LogicLock™ տարածաշրջանը՝ փոխելով Tcl հրամանը set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region:
    գ. Կազմեք OpenCL միջուկ ձեր տախտակի համար:
    դ. Անհրաժեշտության դեպքում կարգավորեք LogicLock տարածաշրջանի չափը և գտնվելու վայրը:
    ե. Երբ դուք գոհ եք, որ ձեր դիզայնի տեղադրումը ժամանակի համար մաքուր է, արտահանեք այդ բաժանումը որպես acl_iface_partition.qxp Quartus Prime Exported Partition File.
    Ինչպես նկարագրված է AIntel FPGA SDK-ի «OpenCL Custom Platform Toolkit» Օգտագործողի ուղեցույցի «Guaranteed Timing Flow» բաժնում՝ ներմուծելով այս .qxp  file վերին մակարդակի նախագծման մեջ դուք կատարում եք տախտակի դիզայն ապահովելու պահանջը երաշխավորված ժամանակի փակման հոսքով:
    Գործոնների համար, որոնք կարող են ազդել ձեր արտահանված բաժանման արդյունքների որակի (QoR) վրա, տեսեք Արդյունքների ընդհանուր որակի նկատառումները Արտահանված տախտակի բաժանման բաժնի համար Intel FPGA SDK-ի համար OpenCL Custom Platform Toolkit-ի Օգտագործողի ուղեցույցում:
    զ. Անջատեք acl_iface_region LogicLock շրջանը՝ վերադարձնելով 2-րդ քայլի հրամանը set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region:
  4. Եթե ​​ձեր SoC FPGA տախտակը օգտագործում է HPS բլոկի տարբեր կապանքներ և ծայրամասեր, վերականգնեք նախաբեռնիչը և սարքի ծառի աղբյուրը (DTS) file. Եթե ​​փոխում եք HPS DDR հիշողության կարգավորիչի կարգավորումները, վերականգնեք նախաբեռնիչը:
  5. Ստեղծեք SD ֆլեշ քարտի պատկեր:
  6. Ստեղծեք ձեր անհատական ​​հարթակը, որը ներառում է SD ֆլեշ քարտի պատկերը:
  7. Մտածեք ստեղծել ձեր Պատվերով պլատֆորմի գործարկման միջավայրի տարբերակը՝ OpenCL-ի համար Intel FPGA Runtime Environment (RTE) հետ օգտագործելու համար: Ձեր Պատվերով հարթակի RTE տարբերակը չի ներառում ապարատային գրացուցակներ և SD ֆլեշ քարտի պատկեր: Այս հարմարեցված հարթակը բեռնվում է SoC FPGA համակարգում՝ հյուրընկալող հավելվածներին թույլ տալու համար: Ի հակադրություն, Custom Platform-ի SDK տարբերակը անհրաժեշտ է SDK-ին՝ OpenCL միջուկներ կազմելու համար:
    Հուշում. RTE-ի համար կարող եք օգտագործել ձեր հատուկ հարթակի SDK տարբերակը: Փրկելու համար
    տարածություն, հեռացրեք SD ֆլեշ քարտի պատկերը ձեր Պատվերով հարթակի RTE տարբերակից:
  8. Փորձարկեք ձեր հարմարեցված հարթակը:
    Լրացուցիչ տեղեկությունների համար տե՛ս Intel FPGA SDK-ի ապարատային դիզայնի փորձարկում բաժինը OpenCL Custom Platform Toolkit-ի օգտագործման ուղեցույցի համար:

Առնչվող հղումներ

  • Սարքավորումների դիզայնի փորձարկում
  • Quartus Prime հավելյալ հավաքածու հիերարխիկ և թիմային ձևավորման համար
  • Երաշխավորված ժամանակային հոսքի հաստատում
  • Արդյունքների ընդհանուր որակի նկատառումներ արտահանվող խորհրդի բաժանման համար

1.2.1 Տեղափոխված տեղեկատու հարթակի թարմացում
Cyclone V SoC Development Kit Reference Platform-ի ընթացիկ տարբերակում HPS բլոկը գտնվում է միջնորմի ներսում, որը սահմանում է ոչ միջուկային ողջ տրամաբանությունը: Այնուամենայնիվ, դուք չեք կարող արտահանել HPS-ը որպես .qxp-ի մաս file. Գոյություն ունեցող անհատական ​​պլատֆորմը թարմացնելու համար, որը դուք փոփոխել եք c5soc-ի նախորդ տարբերակից, կիրառեք QXP-ի պահպանման հոսքը, թարմացրեք SD ֆլեշ քարտի պատկերը՝ վերջին գործարկման միջավայրը ստանալու համար և թարմացրեք board_spec.xml-ը: file ավտոմատ միգրացիան հնարավոր դարձնելու համար:
Altera® SDK-ն OpenCL տարբերակի 14.1-ի և դրանից դուրս զոնդերի համար board_spec.xml file խորհրդի տեղեկատվության համար և իրականացնում է ավտոմատ թարմացումներ: Քանի որ դուք փոփոխում եք
նախագծելով QXP պահպանման հոսքը, դուք պետք է թարմացնեք board_spec.xml-ը file իր ձևաչափին ընթացիկ տարբերակում: Թարմացվում է file թույլ է տալիս SDK-ին տարբերակել չպահպանված մաքսային հարթակները և ներկայիս QXP-ի վրա հիմնված մաքսային հարթակները: Լրացուցիչ տեղեկությունների համար տե՛ս Custom Platform Automigration for Forward Compatibility in Intel FPGA SDK for OpenCL Custom Platform Toolkit Օգտագործողի ուղեցույցը:

  1. QXP-ի պահպանման հոսքը Cyclone V SoC FPGA ապարատային նախագծում իրականացնելու համար, որը տեղափոխված է c5soc-ի նախորդ տարբերակից, կատարեք հետևյալ քայլերը՝ ստորաբաժանում ստեղծելու համար՝ HPS-ը .qxp-ից բացառելու համար: file:
    ա. Նախքան ոչ միջուկային տրամաբանության շուրջ բաժանում ստեղծելը, .qsf Quartus Prime Settings-ում ստեղծեք բաժանում HPS-ի շուրջ: File.
    Նախampլե:
    # Ձեռքով բաժանեք այն օրինակը, որը մոդելավորում է HPS-ին հատկացված I/O set_instance_assignment -name PARTITION_HIERARCHY borde_18261 - «system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hpsacl_iface_hps_0:hpsacl_iface_hps_0:hpsacl:0_ipsy| system_acl_iface_hps_0_hps_io_border:border» -section_id «system_acl_iface_hps_XNUMX_hps_io_border:border»
    # Սահմանեք բաժանումը որպես HPS_PARTITION տեսակ, որը ճիշտ կմշակվի Quartus-ի մնացած մասերի կողմից
    set_global_assignment -name PARTITION_TYPE HPS_PARTITION -section_id «system_acl_iface_hps_0_hps_io_border:border»
    quartus_cdb վերեւ -c վերեւ
    –incremental_compilation_export=acl_iface_partition.qxp
    –incremental_compilation_export_partition_name=acl_iface_partition
    –incremental_compilation_export_post_synth=on
    –incremental_compilation_export_post_fit=on
    –incremental_compilation_export_routing=միացված
    –incremental_compilation_export_flatten=անջատված
    HPS-ը բաժանումից հեռացնելուց հետո կարող եք ներմուծել .qxp file և կազմիր քո դիզայնը։
  2. Թարմացրեք SD ֆլեշ քարտի պատկերը OpenCL-ի համար Intel FPGA RTE-ի ընթացիկ տարբերակով՝ կատարելով հետևյալ առաջադրանքները.
    ա. Տեղադրեք file հատկացման աղյուսակ (fat32) և ընդլայնված file համակարգի (ext3) միջնորմները գոյություն ունեցող պատկերում որպես շրջադարձային սարքեր: Մանրամասն հրահանգների համար տե՛ս Քայլ 2-ը SD ֆլեշ քարտի պատկեր ստեղծելու մեջ:
    բ. /home/root/opencl_arm32_rte գրացուցակում հեռացրեք files RTE-ի նախորդ տարբերակից:
    գ. Ներբեռնեք և հանեք RTE-ի ընթացիկ տարբերակը /home/root/opencl_arm32_rte գրացուցակում:
    դ. -ում /driver/version.h file ձեր հատուկ հարթակի վրա, թարմացրեք ACL_DRIVER_VERSION հանձնարարությունը . (նախկինample, 16.1.x, որտեղ 16.1-ը SDK verison-ն է, իսկ x-ը ձեր սահմանած վարորդի տարբերակն է):
    ե. Վերակառուցեք վարորդը:
    զ. Ջնջեք ձեր անհատական ​​հարթակի ապարատային թղթապանակ(ներ): Պատճենեք Custom Platform-ը թարմացված դրայվերի հետ միասին /home/root/opencl_arm_rte/board գրացուցակում:
    է. Պատճենեք Altera.icd-ը file /home/root/opencl_arm32_rte գրացուցակից և ավելացրեք այն /etc/OpenCL/vendors գրացուցակում:
    հ. Ապամոնտաժեք և փորձարկեք նոր պատկերը: Մանրամասն հրահանգների համար տես 8-ից 11-րդ քայլերը SD ֆլեշ քարտի պատկեր ստեղծելու մեջ:

Առնչվող հղումներ

  • SD ֆլեշ քարտի պատկերի ստեղծում 14-րդ էջում
    Դուք նաև ունեք SD ֆլեշ քարտի նոր պատկեր ստեղծելու հնարավորություն:
  • Պատվերով պլատֆորմի ավտոմատ միգրացիա՝ առաջ համատեղելիության համար

1.3 Ծրագրային ապահովում ընդհանուր հիշողության համար
FPGA-ի և CPU-ի միջև ընդհանուր ֆիզիկական հիշողությունը նախընտրելի հիշողությունն է SoC FPGA-ով աշխատող OpenCL միջուկների համար: Քանի որ FPGA-ն մուտք է գործում ընդհանուր ֆիզիկական հիշողություն, ի տարբերություն ընդհանուր վիրտուալ հիշողության, այն չունի մուտք դեպի պրոցեսորի էջերի աղյուսակները, որոնք գծագրում են օգտվողի վիրտուալ հասցեները ֆիզիկական էջի հասցեներին:
Ինչ վերաբերում է ապարատային, OpenCL միջուկները հասանելի են ընդհանուր ֆիզիկական հիշողությանը՝ HPS DDR կոշտ հիշողության կարգավորիչին ուղղակի միացման միջոցով: Ծրագրային ապահովման հետ կապված՝ ընդհանուր ֆիզիկական հիշողության աջակցությունը ներառում է հետևյալ նկատառումները.

  1. Տիպիկ ծրագրային իրականացումներ՝ պրոցեսորի վրա հիշողություն հատկացնելու համար (օրինակample, malloc() ֆունկցիան չի կարող հատկացնել հիշողության շրջան, որը FPGA-ն կարող է օգտագործել:
    Հիշողությունը, որը հատկացնում է malloc() ֆունկցիան, հարակից է վիրտուալ հիշողության հասցեների տարածության մեջ, սակայն հիմքում ընկած ֆիզիկական էջերը դժվար թե ֆիզիկապես հարակից լինեն: Որպես այդպիսին, հյուրընկալողը պետք է կարողանա հատկացնել ֆիզիկապես հարակից հիշողության շրջաններ: Այնուամենայնիվ, այս հնարավորությունը գոյություն չունի Linux-ի օգտատերերի տարածության հավելվածներում: Հետևաբար, Linux միջուկի դրայվերը պետք է կատարի տեղաբաշխումը:
  2. OpenCL SoC FPGA Linux միջուկի դրայվերը ներառում է mmap() ֆունկցիան՝ ընդհանուր ֆիզիկական հիշողությունը հատկացնելու և այն օգտագործողի տարածքում քարտեզագրելու համար: mmap() ֆունկցիան օգտագործում է ստանդարտ Linux միջուկի կանչը dma_alloc_coherent()՝ սարքի հետ կիսվելու համար ֆիզիկապես հարակից հիշողության շրջաններ պահանջելու համար:
  3. Լինուքսի լռելյայն միջուկում dma_alloc_coherent()-ը չի հատկացնում 0.5 մեգաբայթից ավելի (ՄԲ) չափով ֆիզիկապես հարակից հիշողություն: Որպեսզի dma_alloc_coherent()-ին հատկացնի մեծ քանակությամբ ֆիզիկապես հարակից հիշողություն, միացրեք Linux միջուկի հարակից հիշողության բաշխիչ (CMA) հատկությունը, այնուհետև նորից կազմեք Linux միջուկը:
    Cyclone V SoC Development Kit Reference Platform-ի համար CMA-ն կառավարում է 512 ՄԲ 1 ԳԲ ֆիզիկական հիշողությունից: Դուք կարող եք ավելացնել կամ նվազեցնել այս արժեքը՝ կախված հավելվածի պահանջվող ընդհանուր հիշողության քանակից: dma_alloc_coherent() զանգը կարող է չկարողանալ հատկացնել ֆիզիկապես հարակից հիշողության ամբողջական 512 ՄԲ; սակայն, այն կարող է սովորաբար ձեռք բերել մոտավորապես 450 ՄԲ հիշողություն:
  4. CPU-ն կարող է քեշավորել հիշողությունը, որը հատկացնում է dma_alloc_coherent() զանգը: Մասնավորապես, հյուրընկալող հավելվածից գրելու գործողությունները տեսանելի չեն OpenCL միջուկների համար: OpenCL SoC FPGA Linux միջուկի դրայվերում mmap() ֆունկցիան նաև պարունակում է զանգեր pgprot_noncached() կամ remap_pf_range() ֆունկցիաներին՝ հիշողության այս տարածաշրջանի համար քեշավորումը հստակորեն անջատելու համար:
  5. Այն բանից հետո, երբ dma_alloc_coherent() ֆունկցիան հատկացնում է ֆիզիկապես հարակից հիշողությունը, mmap() ֆունկցիան վերադարձնում է վիրտուալ հասցեն տիրույթի սկզբին, որը ձեր հատկացրած հիշողության հասցեային տիրույթն է: Հյուրընկալող հավելվածը պահանջում է այս վիրտուալ հասցեն հիշողություն մուտք գործելու համար: Մյուս կողմից, OpenCL միջուկները պահանջում են ֆիզիկական հասցեներ: Linux միջուկի վարորդը հետևում է վիրտուալ-ֆիզիկական հասցեների քարտեզագրմանը: Դուք կարող եք քարտեզագրել այն ֆիզիկական հասցեները, որոնք mmap()-ը վերադարձնում է իրական ֆիզիկական հասցեներին՝ վարորդին հարցում ավելացնելով:
    aocl_mmd_shared_mem_alloc() MMD հավելվածի ծրագրավորման ինտերֆեյսի (API) զանգը ներառում է հետևյալ հարցումները.
    ա. mmap() ֆունկցիան, որը հատկացնում է հիշողությունը և վերադարձնում վիրտուալ հասցեն:
    բ. Լրացուցիչ հարցում, որը քարտեզագրում է վերադարձված վիրտուալ հասցեն ֆիզիկական հասցեին:
    aocl_mmd_shared_mem_alloc() MMD API զանգը այնուհետև վերադարձնում է երկու հասցե
    — փաստացի վերադարձված հասցեն վիրտուալ հասցեն է, իսկ ֆիզիկական հասցեն գնում է device_ptr_out:
    Նշում. Վարորդը կարող է քարտեզագրել միայն այն վիրտուալ հասցեները, որոնք mmap() ֆունկցիան վերադարձնում է ֆիզիկական հասցեներին: Եթե ​​որևէ այլ վիրտուալ ցուցիչի ֆիզիկական հասցե եք պահանջում, վարորդը վերադարձնում է NULL արժեք:

Զգուշացում. OpenCL գործարկման գրադարանների համար Intel FPGA SDK-ն ենթադրում է, որ ընդհանուր հիշողությունը board_spec.xml-ում թվարկված առաջին հիշողությունն է: file. Այլ կերպ ասած, ֆիզիկական հասցեն, որը ստանում է Linux միջուկի դրայվերը, դառնում է Avalon® հասցեն, որը OpenCL միջուկը փոխանցում է HPS SDRAM-ին:
Ինչ վերաբերում է գործարկման ժամանակի գրադարանին, օգտագործեք clCreateBuffer() զանգը՝ համատեղ հիշողությունը որպես սարքի բուֆեր հատկացնելու համար հետևյալ կերպ.

  • Երկու DDR տախտակի տարբերակի՝ ինչպես ընդհանուր, այնպես էլ ոչ համօգտագործվող հիշողությամբ, clCreateBuffer()-ը հատկացնում է համօգտագործվող հիշողություն, եթե նշեք CL_MEM_USE_HOST_PTR դրոշակը: Այլ դրոշների օգտագործումը ստիպում է clCreateBuffer()-ին բուֆեր հատկացնել չհամօգտագործվող հիշողության մեջ:
  • Մեկ DDR տախտակի տարբերակի համար, որն ունի միայն ընդհանուր հիշողություն, clCreateBuffer()-ը հատկացնում է ընդհանուր հիշողություն՝ անկախ նրանից, թե որ դրոշն եք դուք նշել:
    Ներկայումս ARM պրոցեսորի վրա Linux-ի 32-բիթանոց աջակցությունը կարգավորում է ընդհանուր հիշողության աջակցության չափը SDK գործարկման ժամանակի գրադարաններում: Այլ կերպ ասած, աշխատաժամանակի գրադարանները կազմված են այլ միջավայրերում (օրինակample, x86_64 Linux կամ 64-bit Windows) չեն աջակցում ընդհանուր հիշողություն:
    C5soc-ը չի ներդրել տարասեռ հիշողություն՝ տարբերակելու ընդհանուր և ոչ համօգտագործվող հիշողությունը հետևյալ պատճառներով.
    1. Պատմություն – Տարասեռ հիշողության աջակցությունը հասանելի չէր, երբ սկզբնապես ստեղծվեց ընդհանուր հիշողության աջակցությունը:
    2. Միատեսակ ինտերֆեյս. Քանի որ OpenCL-ը բաց ստանդարտ է, Intel-ը պահպանում է հետևողականությունը տարասեռ հաշվողական հարթակ վաճառողների միջև: Հետևաբար, նույն ինտերֆեյսը, ինչ մյուս տախտակների վաճառողների ճարտարապետությունները, օգտագործվում է ընդհանուր հիշողությունը հատկացնելու և օգտագործելու համար:

1.4 FPGA-ի վերակազմավորում
SoC FPGA-ների համար պրոցեսորը կարող է վերակազմավորել FPGA հիմնական գործվածքը՝ առանց պրոցեսորի աշխատանքը ընդհատելու: FPGA Manager ապարատային բլոկը, որը տարածվում է HPS-ի վրա, իսկ հիմնական FPGA-ն իրականացնում է վերակազմավորումը: Linux միջուկը ներառում է վարորդ, որը հնարավորություն է տալիս հեշտությամբ մուտք գործել FPGA կառավարիչ:

  • Դեպի view FPGA միջուկի կարգավիճակը, կանչեք cat /sys/class/fpga/fpga0/ կարգավիճակի հրամանը:
    Intel FPGA SDK-ը OpenCL ծրագրային օգտակար հավելվածի համար, որը հասանելի է Cyclone V SoC Development Kit Reference Platform-ի հետ, օգտագործում է այս ինտերֆեյսը FPGA-ի ծրագրավորման համար: Գործող պրոցեսորով FPGA միջուկը վերածրագրավորելիս ծրագրի կոմունալը կատարում է հետևյալ բոլոր առաջադրանքները.
    1. Նախքան վերածրագրավորումը, անջատեք բոլոր կապի կամուրջները FPGA-ի և HPS-ի միջև, և՛ H2F, և՛ LH2F կամուրջները:
    Նորից միացրեք այս կամուրջները վերածրագրավորման ավարտից հետո:
    Ուշադրություն. OpenCL համակարգը չի օգտագործում FPGA-to-HPS (F2H) կամուրջը: Լրացուցիչ տեղեկությունների համար տես Cyclone V սարքի ձեռնարկի HPS-FPGA միջերեսներ բաժինը, հատոր 3. Կոշտ պրոցեսորային համակարգի տեխնիկական տեղեկատու ձեռնարկ:
    2. Համոզվեք, որ FPGA-ի և HPS DDR կարգավորիչի միջև կապն անջատված է վերածրագրավորման ժամանակ:
    3. Համոզվեք, որ FPGA-ի ընդհատումները FPGA-ում անջատված են վերածրագրավորման ընթացքում:
    Նաև տեղեկացրեք վարորդին վերածրագրավորման ընթացքում FPGA-ի ցանկացած ընդհատումներից հրաժարվելու մասին:

Փաստացի իրականացման մանրամասների համար դիմեք ծրագրի օգտակար ծրագրի աղբյուրի կոդը:

Զգուշացում. Մի փոխեք HPS DDR կարգավորիչի կոնֆիգուրացիան, երբ պրոցեսորն աշխատում է:
Դա կարող է հանգեցնել համակարգի ճակատագրական սխալի, քանի որ դուք կարող եք փոխել DDR կարգավորիչի կազմաձևը, երբ CPU-ից հիշողության չմարված գործարքներ կան: Սա նշանակում է, որ երբ պրոցեսորն աշխատում է, դուք չեք կարող վերածրագրավորել FPGA միջուկը պատկերով, որն օգտագործում է HPS DDR-ն այլ կազմաձևով:
Հիշեք, որ OpenCL համակարգը և Golden Hardware-ի հղման դիզայնը, որը հասանելի է Intel SoC FPGA ներդրված դիզայնի հավաքակազմով (EDS), դնում է HPS DDR-ը մեկ 256-բիթանոց ռեժիմի մեջ:
CPU համակարգի մասերը, ինչպիսիք են ճյուղի կանխատեսիչը կամ էջի աղյուսակի նախածանցիչը, կարող են DDR հրամաններ տալ նույնիսկ այն ժամանակ, երբ թվում է, թե պրոցեսորի վրա ոչինչ չի աշխատում:
Հետևաբար, բեռնման ժամանակը միակ անվտանգ ժամանակն է HPS DDR կարգավորիչի կազմաձևումը սահմանելու համար:
Սա նաև ենթադրում է, որ U-boot-ը պետք է ունենա հում երկուական file (.rbf) պատկեր՝ հիշողության մեջ բեռնելու համար: Հակառակ դեպքում, դուք կարող եք միացնել HPS DDR-ը չօգտագործված նավահանգիստներով FPGA-ի վրա, իսկ հետո հնարավոր է փոխել պորտի կազմաձևերը: Այս պատճառով, OpenCL Linux միջուկի դրայվերն այլևս չի ներառում HPS DDR կարգավորիչի կոնֆիգուրացիան սահմանելու համար անհրաժեշտ տրամաբանությունը:
SW3 երկակի ներգծային փաթեթը (DIP) միացնում է Cylone V SoC Development Kit-ը վերահսկում է .rbf պատկերի ակնկալվող ձևը (այսինքն՝ արդյոք file սեղմված է և/կամ կոդավորված): C5soc-ը և Golden Hardware Reference Design-ը, որը հասանելի է SoC EDS-ով, ներառում են սեղմված, բայց չգաղտնագրված .rbf պատկերներ: SW3 DIP անջատիչի կարգավորումները, որոնք նկարագրված են Intel FPGA SDK-ում OpenCL Cyclone V SoC Սկսնակ ձեռնարկի համար, համապատասխանում են այս .rbf պատկերի կազմաձևմանը:

Առնչվող հղումներ

  • HPS-FPGA ինտերֆեյս
  • SW3 անջատիչների կարգավորում

1.4.1 FPGA համակարգի ճարտարապետության մանրամասներ
Cyclone V SoC Development Kit Reference Platform-ի աջակցությունը հիմնված է Stratix® V Reference հարթակի վրա (s5_ref), որը հասանելի է OpenCL-ի համար Intel FPGA SDK-ով:
c5soc Qsys համակարգի և միջուկի դրայվերի ընդհանուր կազմակերպումը շատ նման է s5_ref-ի կազմակերպմանը:
Հետևյալ FPGA հիմնական բաղադրիչները նույնն են ինչպես c5soc-ում, այնպես էլ s5_ref-ում.

  • VERSION_ID արգելափակում
  • Հանգստի մեխանիզմ
  • Հիշողության բանկի բաժանարար
  • Cache snoop ինտերֆեյս
  • Միջուկային ժամացույց
  • Վերահսկել ռեգիստրի մուտքի (CRA) բլոկները

1.5 SD ֆլեշ քարտի պատկերի ստեղծում
Քանի որ Cyclone V SoC FPGA-ն ամբողջական համակարգ է չիպի վրա, դուք պատասխանատու եք համակարգի ամբողջական սահմանումը մատուցելու համար: Intel-ը խորհուրդ է տալիս այն մատուցել SD ֆլեշ քարտի պատկերի տեսքով: OpenCL օգտագործողի համար Intel FPGA SDK-ն կարող է պարզապես պատկերը գրել micro SD ֆլեշ քարտի վրա, և SoC FPGA տախտակը պատրաստ է օգտագործման:
Փոփոխել գոյություն ունեցող SD ֆլեշ քարտի պատկերը 13-րդ էջում
Intel-ը խորհուրդ է տալիս պարզապես փոփոխել պատկերը, որը հասանելի է Cyclone V SoC Development Kit Reference Platform-ով: Դուք նաև ունեք SD ֆլեշ քարտի նոր պատկեր ստեղծելու հնարավորություն:
SD ֆլեշ քարտի պատկերի ստեղծում 14-րդ էջում
Դուք նաև ունեք SD ֆլեշ քարտի նոր պատկեր ստեղծելու հնարավորություն:

1.5.1 Գոյություն ունեցող SD ֆլեշ քարտի պատկերի փոփոխություն
Intel-ը խորհուրդ է տալիս պարզապես փոփոխել պատկերը, որը հասանելի է Cyclone V SoC-ով
Զարգացման հավաքածուի տեղեկատու հարթակ: Դուք նաև ունեք SD ֆլեշ քարտի նոր պատկեր ստեղծելու հնարավորություն:
c5soc linux_sd_card_image.tgz պատկերը file հասանելի է ALTERAOCLSDKROOT/board/c5soc գրացուցակում, որտեղ ALTERAOCLSDKROOT-ը ցույց է տալիս Intel FPGA SDK-ի ուղին OpenCL-ի տեղադրման գրացուցակի համար:

Ուշադրություն. SD ֆլեշ քարտի պատկերը փոփոխելու համար դուք պետք է ունենաք root կամ sudo արտոնություններ:

  1. $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz-ը ապասեղմելու համար file, գործարկեք tar xvfzlinux_sd_card_image.tgz հրամանը։
  2. Կազմել hello_world OpenCL նախկինampԴիզայն՝ օգտագործելով ձեր Պատվերով հարթակի աջակցությունը: Վերանվանել .rbf-ը file որ Intel FPGA SDK-ն OpenCL Offline Compiler-ի համար ստեղծում է որպես opencl.rbf և տեղադրում է fat32 միջնորմի վրա SD ֆլեշ քարտի պատկերի մեջ:
    Դուք կարող եք ներբեռնել hello_world նախկինampԴիզայն OpenCL Design-ից Examples էջ Altera-ում webկայք։
  3. Տեղադրեք .rbf file ֆլեշ քարտի պատկերի fat32 բաժանման մեջ:
    Ուշադրություն. Fat32 բաժանումը պետք է պարունակի երկու zImage-ը file իսկ .rbf file. Առանց .rbf file, վարորդը տեղադրելիս ճակատագրական սխալ կառաջանա:
  4. SD քարտի պատկերը ստեղծելուց հետո այն գրեք միկրո SD քարտի վրա՝ կանչելով հետևյալ հրամանը՝ sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. Ձեր SD ֆլեշ քարտի պատկերը ստուգելու համար կատարեք հետևյալ առաջադրանքները.
    ա. Տեղադրեք micro SD ֆլեշ քարտը SoC FPGA տախտակի մեջ:
    բ. Միացրեք տախտակը:
    գ. Զանգահարեք aocl ախտորոշման օգտակար հրահանգը:

1.5.2 SD ֆլեշ քարտի պատկերի ստեղծում
Դուք նաև ունեք SD ֆլեշ քարտի նոր պատկեր ստեղծելու հնարավորություն: SD ֆլեշ քարտի նոր պատկեր ստեղծելու և գոյություն ունեցող SD ֆլեշ քարտի պատկերը վերակառուցելու ընդհանուր հրահանգները հասանելի են RocketBoards.org-ի GSRD v14.0.2 – SD քարտի էջում: webկայք։
Ստորև բերված քայլերը նկարագրում են linux_sd_card_image.tgz պատկերի ստեղծման կարգը Golden System Reference Design (GSRD) SD ֆլեշ քարտի պատկերից.
Նշում.
C5soc պատկերից պատկեր ստեղծելու համար կատարեք այս ընթացակարգում նշված բոլոր կիրառելի առաջադրանքները:

  1. Ներբեռնեք և բացեք GSRD SD ֆլեշ քարտի պատկերի տարբերակը 14.0 Rocketboards.org-ից:
  2. Տեղադրեք file հատկացման աղյուսակ (fat32) և ընդլայնված file համակարգի (ext3) միջնորմները այս պատկերում որպես շրջադարձային սարքեր: Բաժանմունք տեղադրելու համար կատարեք հետևյալ քայլերը.
    ա. Որոշեք պատկերի միջնորմի բայթ սկիզբը՝ կանչելով /sbin/fdisk -lu image_file հրաման.
    Նախample, W1 FAT տիպի միջնորմ 95-ն ունի 2121728 բլոկի օֆսեթ: Բլոկում 512 բայթով, բայթի օֆսեթը կազմում է 512 բայթ x 2121728 = 1086324736 բայթ:
    բ. Բացահայտեք ազատ հանգույց սարքը (օրինակample, /dev/loop0)՝ մուտքագրելով losttup -f հրամանը:
    գ. Ենթադրելով, որ /dev/loop0-ը անվճար հանգույց սարքն է, նշանակեք ձեր ֆլեշ քարտի պատկերը հանգույցի բլոկ սարքին` կանչելով losetup /dev/loop0 image_-ը:file -0 1086324736 հրաման.
    դ. Տեղադրեք հանգույց սարքը` կանչելով mount /dev/loop0 /media/disk1 հրամանը:
    Պատկերի ներսում file, /media/disk1-ն այժմ տեղադրված fat32 միջնորմ է:
    ե. Կրկնեք a-ից d քայլերը ext3 բաժանման համար:
  3. Ներբեռնեք Cyclone V SoC FPGA տարբերակը Intel FPGA Runtime Environment-ի OpenCL փաթեթի համար Altera-ի Ներբեռնման կենտրոնից webկայք։
    ա. Կտտացրեք Ներբեռնման կոճակը Quartus Prime ծրագրաշարի հրատարակության կողքին:
    բ. Նշեք թողարկման տարբերակը, օպերացիոն համակարգը և ներբեռնման եղանակը:
    գ. Կտտացրեք «Լրացուցիչ ծրագրակազմ» ներդիրին և ընտրեք Intel FPGA-ն ներբեռնելու համար
    Runtime Environment OpenCL Linux Cyclone V SoC TGZ-ի համար:
    դ. aocl-rte-ը ներբեռնելուց հետո .arm32.tgz file, ապափաթեթավորեք այն
    գրացուցակ, որը պատկանում է ձեզ:
  4. Տեղադրեք չփաթեթավորված aocl-rte- .arm32 գրացուցակը պատկերի ext32 բաժանման /home/root/opencl_arm3_rte գրացուցակում file.
  5. Ջնջեք ձեր Պատվերով պլատֆորմի ապարատային թղթապանակ(ներ)ը և այնուհետև տեղադրեք Պատվերով պլատֆորմը /home/root/ opencl_arm32_rte-ի տախտակի ենթագրքում:
  6. Ստեղծեք init_opencl.sh file հետևյալ բովանդակությամբ /home/root գրացուցակում՝ արտահանել ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte արտահանել AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ արտահանել PATH=$ALTERAOCLSDKROOT/bin:$PATH արտահանել LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    SDK օգտագործողը գործարկում է աղբյուրի ./init_opencl.sh հրամանը՝ շրջակա միջավայրի փոփոխականները և OpenCL Linux միջուկի դրայվերը բեռնելու համար:
  7. Եթե ​​Ձեզ անհրաժեշտ է թարմացնել նախաբեռնիչը, ապա DTS-ը files կամ Linux միջուկը, ձեզ անհրաժեշտ է arm-linux-gnueabihf-gcc կոմպիլյատոր SoC EDS-ից: Հետևեք Intel SoC FPGA Embedded Design Suite Օգտագործողի ուղեցույցում նշված հրահանգներին՝ ծրագրակազմը ձեռք բերելու, դրանք վերակոմպիլացնելու և համապատասխան թարմացման համար։ files տեղադրված fat32 միջնորմի վրա:
    Ուշադրություն. Ամենայն հավանականությամբ, դուք պետք է թարմացնեք նախաբեռնիչը, եթե ձեր Պատվերով պլատֆորմը տարբեր փին ունի, քան c5soc-ում:
    Հիշեք. Եթե դուք վերակոմպիլացնում եք Linux միջուկը, նորից կազմեք Linux միջուկի դրայվերը նույն Linux միջուկի աղբյուրով։ fileս. Եթե ​​Linux միջուկի վարորդի և Linux միջուկի միջև անհամապատասխանություն կա, վարորդը չի բեռնվի: Բացի այդ, դուք պետք է միացնեք CMA-ն:
    Լրացուցիչ տեղեկությունների համար տե՛ս Linux միջուկի վերակազմավորումը:
  8. Կազմել hello_world OpenCL նախկինampԴիզայն՝ օգտագործելով ձեր Պատվերով հարթակի աջակցությունը: Վերանվանել .rbf-ը file որ Intel FPGA SDK-ն OpenCL Offline Compiler-ի համար ստեղծում է որպես opencl.rbf և տեղադրում է fat32 միջնորմի վրա SD ֆլեշ քարտի պատկերի մեջ:
    Դուք կարող եք ներբեռնել hello_world նախկինampԴիզայն OpenCL Design-ից Examples էջ Altera-ում webկայք։
    9. Հետո դուք պահել բոլոր անհրաժեշտ files ֆլեշ քարտի պատկերի վրա, կանչեք հետևյալ հրամանները.
    ա. համաժամեցում
    բ. ապամոնտաժել /media/disk1-ը
    գ. ապամոնտաժել որտեղ այն գրացուցակի անունն է, որն օգտագործում եք ext3 բաժանումը 3-ում տեղադրելու համար 3-րդ էջում (օրինակample, /media/disk2):
    դ. losttup -d /dev/loop0
    ե. losttup -d /dev/loop1
  9. Սեղմեք SD ֆլեշ քարտի պատկերը՝ կանչելով հետևյալ հրամանը՝ tar cvfz .tgz linux_sd_card_image
  10. Առաքել .թգզ file ձեր Պատվերով պլատֆորմի արմատային գրացուցակի ներսում:
  11. Ձեր SD ֆլեշ քարտի պատկերը ստուգելու համար կատարեք հետևյալ առաջադրանքները.
    ա. Ստացված չսեղմված պատկերը գրեք միկրո SD ֆլեշ քարտի վրա:
    բ. Տեղադրեք micro SD ֆլեշ քարտը SoC FPGA տախտակի մեջ:
    գ. Միացրեք տախտակը:
    դ. Զանգահարեք aocl ախտորոշման օգտակար հրահանգը:

Առնչվող հղումներ

  • Intel SoC FPGA Embedded Design Suite Օգտագործողի ուղեցույց
  • OpenCL դիզայն Examples էջ Altera-ում webկայք
  • Linux միջուկի վերակազմավորում 16-րդ էջում
    CMA-ն ակտիվացնելու համար նախ պետք է վերակազմավորել Linux միջուկը:
  • Ձեր FPGA տախտակի սարքի անվան հարցում (ախտորոշում)

1.6 Կազմել Linux միջուկը Cyclone V SoC FPGA-ի համար
Նախքան OpenCL հավելվածները Cyclone V SoC FPGA տախտակի վրա գործարկելը, դուք պետք է կազմեք Linux միջուկի աղբյուրը և կազմեք և տեղադրեք OpenCL Linux միջուկի դրայվերը:

  1. Linux միջուկի վերակազմավորում 16-րդ էջում
    CMA-ն ակտիվացնելու համար նախ պետք է վերակազմավորել Linux միջուկը:
  2. OpenCL Linux միջուկի դրայվերի հավաքում և տեղադրում էջ 17 Կազմեք OpenCL Linux միջուկի դրայվերը կազմված միջուկի աղբյուրի դեմ:

1.6.1 Linux միջուկի վերակազմավորում
CMA-ն ակտիվացնելու համար նախ պետք է վերակազմավորել Linux միջուկը:

  1. Սեղմեք GSRD v14.0 – Կազմում Linux հղումը RocketBoards.org-ի ռեսուրսների էջում: webկայք՝ Linux միջուկի սկզբնական կոդը ներբեռնելու և վերակառուցելու հրահանգներին մուտք գործելու համար:
    OpenCL-ի համար Intel FPGA SDK-ի հետ օգտագործելու համար նշեք socfpga-3.13-rel14.0 որպես .
  2. Նշում. Շինարարական գործընթացը ստեղծում է arch/arm/configs/socfpga_defconfig file. Սա file սահմանում է socfpga լռելյայն կազմաձևման կարգավորումները:
    Ավելացնել հետևյալ տողերը 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
    CONFIG_CMA_SIZE_MBYTES կազմաձևման արժեքը սահմանում է ֆիզիկապես հարակից հիշողության ընդհանուր թվի վերին սահմանը: Դուք կարող եք ավելացնել այս արժեքը, եթե ավելի շատ հիշողություն է պահանջվում:
  3. Ուշադրություն. SoC FPGA տախտակի վրա ARM պրոցեսորին հասանելի ֆիզիկական հիշողության ընդհանուր քանակը 1 ԳԲ է: Intel-ը խորհուրդ չի տալիս CMA կառավարիչը մոտեցնել 1 ԳԲ-ին:
  4. Գործարկեք make mrproper հրամանը՝ ընթացիկ կոնֆիգուրացիան մաքրելու համար:
  5. Գործարկեք make ARCH=arm socfpga_deconfig հրամանը:
    ARCH=arm ցույց է տալիս, որ ցանկանում եք կարգավորել ARM ճարտարապետությունը:
    socfpga_defconfig-ը ցույց է տալիս, որ ցանկանում եք օգտագործել լռելյայն socfpga կոնֆիգուրացիան:
  6. Գործարկեք արտահանման CROSS_COMPILE=arm-linux-gnueabihf- հրամանը:
    Այս հրամանը սահմանում է CROSS_COMPILE միջավայրի փոփոխականը՝ նշելու ցանկալի գործիքների շղթայի նախածանցը:
  7. Գործարկեք make ARCH=arm zImage հրամանը: Ստացված պատկերը հասանելի է arch/arm/boot/zImage-ում file.
  8. Տեղադրեք zImage-ը file ֆլեշ քարտի պատկերի fat32 բաժանման մեջ: Մանրամասն հրահանգների համար տես Cyclone V SoC FPGA-ին հատուկ GSRD Օգտագործողի ձեռնարկը Rocketboards.org կայքում:
  9. Նշում. OpenCL Linux միջուկի դրայվերը ճիշտ տեղադրելու համար նախ բեռնեք SDKgenerated.rbf file FPGA-ի վրա:
    .rbf-ը ստեղծելու համար file, կազմել SDK դիզայնի նախկինample Cyclone V SoC Development Kit Reference Platform-ի հետ որպես նպատակային մաքսային հարթակ:
    9. Տեղադրեք .rbf file ֆլեշ քարտի պատկերի fat32 բաժանման մեջ:
    Ուշադրություն. fat32 միջնորմը պետք է պարունակի և՛ zImage file իսկ .rbf file. Առանց .rbf file, վարորդը տեղադրելիս ճակատագրական սխալ կառաջանա:
  10. Տեղադրեք ծրագրավորված micro SD քարտը, որը պարունակում է ձեր նախկինում փոփոխված կամ ստեղծած SD քարտի պատկերը, Cyclone V SoC Development Kit-ի մեջ և այնուհետև միացրեք SoC FPGA տախտակը:
  11. Ստուգեք տեղադրված Linux միջուկի տարբերակը՝ գործարկելով uname -r հրամանը:
  12. Ստուգելու համար, որ CMA-ն հաջողությամբ միացրել եք միջուկում, երբ SoC FPGA տախտակը միացված է, գործարկեք grep init_cma /proc/kallsyms հրամանը:
    CMA-ն միացված է, եթե ելքը դատարկ չէ:
  13. Վերակազմակերպված Linux միջուկը SDK-ով օգտագործելու համար կազմեք և տեղադրեք Linux միջուկի դրայվերը:

Առնչվող հղումներ

  • Golden System Reference Design (GSRD) Օգտագործողի ձեռնարկներ
  • SD ֆլեշ քարտի պատկերի ստեղծում 13-րդ էջում
    Քանի որ Cyclone V SoC FPGA-ն ամբողջական համակարգ է չիպի վրա, դուք պատասխանատու եք համակարգի ամբողջական սահմանումը մատուցելու համար:

1.6.2 OpenCL Linux Kernel Driver-ի կազմում և տեղադրում
Կազմեք OpenCL Linux միջուկի դրայվերը կազմված միջուկի աղբյուրի դեմ:

Վարորդի աղբյուրը հասանելի է OpenCL-ի համար Intel FPGA Runtime Environment-ի Cyclone V SoC FPGA տարբերակում: Բացի այդ, համոզվեք, որ դուք բեռնել եք Intel FPGA SDK OpenCL-ի կողմից ստեղծված .rbf-ի համար file դեպի FPGA՝ Linux միջուկի մոդուլի սխալ տեղադրումը կանխելու համար:

  1. Ներբեռնեք Cyclone V SoC FPGA տարբերակը Intel FPGA Runtime Environment-ի OpenCL փաթեթի համար Altera-ի Ներբեռնման կենտրոնից webկայք։
    ա. Կտտացրեք Ներբեռնման կոճակը Quartus Prime ծրագրաշարի հրատարակության կողքին:
    բ. Նշեք թողարկման տարբերակը, օպերացիոն համակարգը և ներբեռնման եղանակը:
    գ. Կտտացրեք «Լրացուցիչ ծրագրակազմ» ներդիրին և ընտրեք Intel FPGA-ն ներբեռնելու համար
    Runtime Environment OpenCL Linux Cyclone V SoC TGZ-ի համար:
    դ. aocl-rte-ը ներբեռնելուց հետո .arm32.tgz file, ապափաթեթավորեք այն
    գրացուցակ, որը պատկանում է ձեզ:
    Վարորդի աղբյուրը aocl-rte-ում է .arm32/board/c5soc/ վարորդների գրացուցակը:
  2. OpenCL Linux միջուկի դրայվերը վերակազմավորելու համար դրայվերի Make-ում սահմանեք KDIR արժեքըfile Linux միջուկի աղբյուրը պարունակող գրացուցակում files.
  3. Գործարկեք արտահանման CROSS_COMPILE=arm-linux-gnueabihf- հրամանը՝ ձեր գործիքների շղթայի նախածանցը նշելու համար:
  4. Գործարկեք make clean հրամանը:
  5. Գործարկեք make հրամանը՝ aclsoc_drv.ko-ն ստեղծելու համար file.
  6. Տեղափոխեք opencl_arm32_rte գրացուցակը Cyclone V SoC FPGA տախտակին:
    Աշխատում է scp -r-ը root@your-ipaddress: հրամանը տեղադրում է գործարկման միջավայրը/home/root գրացուցակում:
  7. Գործարկեք init_opencl.sh սկրիպտը, որը ստեղծել եք SD cardimage-ը կառուցելիս:
  8.  Զանգահարեք aocl ախտորոշման օգտակար հրահանգը: Init_opencl.sh-ը հաջողությամբ գործարկելուց հետո ախտորոշիչ ծրագիրը կվերադարձնի անցողիկ արդյունք:

1.7 Հայտնի խնդիրներ
Ներկայումս կան որոշակի սահմանափակումներ «Intel FPGA SDK»-ի օգտագործման համար OpenCL-ի համար Cyclone V SoC Development Kit Reference Platform-ի հետ:

  1. Դուք չեք կարող փոխարինել clGetDeviceInfo() զանգի CL_DEVICE_VENDOR և CL_DEVICE_NAME տողերի հաղորդած վաճառողի և տախտակների անունները:
  2. Եթե ​​հոսթը մշտական ​​հիշողություն է հատկացնում ընդհանուր DDR համակարգում (այսինքն՝ HPS DDR) և միջուկի գործարկումից հետո այն փոփոխում է մշտական ​​հիշողությունը, հիշողության մեջ եղած տվյալները կարող են հնացած դառնալ: Այս խնդիրն առաջանում է, քանի որ FPGA միջուկը չի կարող հետախուզել CPU-ի HPS DDR գործարքները:
    Որպեսզի միջուկի հետագա կատարումները չհասնեն հնացած տվյալներին, կատարեք հետևյալ լուծումներից մեկը.
    • Մի փոփոխեք մշտական ​​հիշողությունը դրա սկզբնավորումից հետո:
    • Եթե Ձեզ անհրաժեշտ է մի քանի __constant տվյալների հավաքածուներ, ստեղծեք բազմաթիվ մշտական ​​հիշողության բուֆերներ:
    • Եթե առկա է, ձեր արագացուցիչի տախտակի FPGA DDR-ում մշտական ​​հիշողություն հատկացրեք:
  3. ARM-ի SDK կոմունալն աջակցում է միայն ծրագրին և ախտորոշման հրամաններին:
    Flash, install and uninstall կոմունալ հրամանները կիրառելի չեն Cyclone V SoC Development Kit-ի համար հետևյալ պատճառներով.
    ա. Տեղադրման ծրագիրը պետք է կազմի aclsoc_drv Linux միջուկի դրայվերը և միացնի այն SoC FPGA-ում: Մշակման մեքենան պետք է կատարի կոմպիլյացիան. սակայն, այն արդեն պարունակում է Linux միջուկի աղբյուրներ SoC FPGA-ի համար: Զարգացման մեքենայի համար Linux միջուկի աղբյուրները տարբերվում են SoC FPGA-ի աղբյուրներից: SoC FPGA-ի համար Linux միջուկի աղբյուրների գտնվելու վայրը հավանաբար անհայտ է SDK օգտագործողին: Նմանապես, տեղահանման ծրագիրը նույնպես անհասանելի է Cyclone V SoC Development Kit-ի համար:
    Բացի այդ, aclsoc_drv-ի առաքումը SoC տախտակին դժվար է, քանի որ Cyclone V SoC Development Kit-ի լռելյայն բաշխումը չի պարունակում Linux միջուկ. files կամ GNU Compiler Collection (GCC) կոմպիլյատոր:
    բ. Ֆլեշ կոմունալը պահանջում է տեղադրել .rbf file OpenCL դիզայնը միկրո SD ֆլեշ քարտի FAT32 միջնորմի վրա: Ներկայումս այս բաժանումը տեղադրված չէ, երբ SDK օգտագործողը միացնում է տախտակը: Հետևաբար, միջնորմը թարմացնելու լավագույն միջոցը ֆլեշ քարտի ընթերցողի և մշակման մեքենայի օգտագործումն է:
  4. OpenCL Offline Compiler-ի համար Intel FPGA SDK-ի միջև անցում կատարելիս files (.aocx), որոնք համապատասխանում են տախտակի տարբեր տարբերակներին (այսինքն՝ c5soc և c5soc_sharedonly), դուք պետք է օգտագործեք SDK-ի ծրագրի օգտակար ծրագիրը՝ .aocx-ը բեռնելու համար: file առաջին անգամ տախտակի նոր տարբերակի համար: Եթե ​​դուք պարզապես գործարկում եք հյուրընկալող հավելվածը՝ օգտագործելով տախտակի նոր տարբերակ, բայց FPGA-ն պարունակում է տախտակի մեկ այլ տարբերակի պատկեր, կարող է ճակատագրական սխալ առաջանալ:
  5. .qxp file չի ներառում ինտերֆեյսի բաժանման հանձնարարությունները, քանի որ Quartus Prime ծրագրակազմը հետևողականորեն համապատասխանում է այս բաժանման ժամանակային պահանջներին:
  6. Երբ միացնում եք տախտակը, դրա մեդիա մուտքի վերահսկման (MAC) հասցեն դրվում է պատահական թվի: Եթե ​​ձեր LAN քաղաքականությունը թույլ չի տալիս այս վարքագիծը, սահմանեք MAC հասցեն՝ կատարելով հետևյալ առաջադրանքները.
    ա. U-Boot-ի միացման ժամանակ սեղմեք ցանկացած ստեղն՝ U-Boot հրամանի տող մուտքագրելու համար:
    բ. Հրամանի տողում մուտքագրեք setenv ethaddr 00:07:ed:00:00:03:
    Դուք կարող եք ընտրել ցանկացած MAC հասցե:
    գ. Մուտքագրեք saveenv հրամանը:
    դ. Վերագործարկեք տախտակը:

1.8 Փաստաթղթերի վերանայման պատմություն
Աղյուսակ 1.
OpenCL Cyclone V SoC-ի համար Intel FPGA SDK-ի փաստաթղթերի վերանայման պատմություն
Զարգացման հավաքածուի տեղեկատու հարթակի տեղափոխման ուղեցույց

Ամսաթիվ Տարբերակ Փոփոխություններ
մայիսի-17 2017.05.08 •Տեխսպասարկման թողարկում:
Հոկտեմբեր 2016 2016.10.31 •Փոխադրվել է Altera SDK-ն OpenCL-ի համար Intel FPGA SDK-ի OpenCL-ի համար:
•Փոխադրվել է Altera Offline Compiler-ը Intel FPGA SDK-ի OpenCL Offline Compiler-ի համար:
մայիսի-16 2016.05.02 •Փոփոխված հրահանգներ SD ֆլեշ քարտի պատկեր ստեղծելու և փոփոխելու վերաբերյալ:
•Փոփոխված հրահանգներ Linux միջուկի և OpenCL Linux միջուկի դրայվերի վերակոմպիլյացիայի վերաբերյալ:
Նոյեմբեր -15 2015.11.02 •Պահպանման թողարկում և Quartus II-ի դեպքերը փոխվել են Quartus Prime-ի:
մայիսի-15 15.0.0 •FPGA Reconfiguration-ում հեռացվեց FPGA միջուկը վերածրագրավորելու հրահանգը
հետ . rbf պատկեր՝ կանչելով կատվին fileանունը>. rbf
> /dev/ fpga0 հրամանը, քանի որ այս մեթոդը խորհուրդ չի տրվում:
Դեկտեմբեր -14 թվականներին 14.1.0 •Փաստաթուղթը վերանվանվել է որպես Altera Cyclone V SoC Development Kit Reference Platform Porting Guide:
•Թարմացվել է reprogram կոմունալը aocl ծրագրինfilename>.aocx կոմունալ հրաման.
•Թարմացվել է ախտորոշիչ ծրագիրը aocl ախտորոշման և aocl ախտորոշման համար կոմունալ հրաման.
•Թարմացվել է Տեղեկատվական հարթակի տեղափոխումը ձեր SoC տախտակ բաժնում՝ ներառելու հրահանգներ c5soc տախտակի միջնորմը տեղափոխելու և փոփոխելու վերաբերյալ, որպեսզի ստեղծվի ժամանակի մաքուր միջնորմ երաշխավորված ժամանակի փակման հոսքի համար:
•Տեղադրել է «Փոխադրված տեղեկատու հարթակի թարմացում» թեման՝ հետևյալ առաջադրանքների ընթացակարգերը նախանշելու համար.
1. Բացառելով կոշտ պրոցեսորային համակարգի (HPS) բլոկը տախտակի միջնորմում
2. SD ֆլեշ քարտի պատկերի թարմացում
•Թարմացվել է Build an SD Flash Card Image բաժինը: Առաջարկվում է օգտագործել Golden System Reference Design (GSRD) պատկերի 14.0 տարբերակը՝ որպես ելակետ՝ SoC Embedded Design Suite (EDS) հետ հասանելի պատկերի փոխարեն:
•Թարմացվել է Linux Kernel-ի և OpenCL Linux Kernel Driver-ի վերակոմպիլինգ բաժինը.
1.Ավելացվել է CROSS COMPILE փոփոխականը սահմանելու հրահանգ:
2.Փոխել է ձեր գործարկած հրամանը՝ ստուգելու, որ CMA-ն հաջողությամբ միացված է:
հուլիսի-14 14.0.0 •Նախնական թողարկում:

Փաստաթղթեր / ռեսուրսներ

Intel FPGA SDK OpenCL-ի համար [pdf] Օգտագործողի ուղեցույց
FPGA SDK OpenCL-ի համար, FPGA SDK, SDK OpenCL-ի համար, SDK

Հղումներ

Թողնել մեկնաբանություն

Ձեր էլփոստի հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են *