និមិត្តសញ្ញា IntelFPGA SDK សម្រាប់ OpenCL
ការណែនាំអ្នកប្រើប្រាស់

UG-OCL009
2017.05.08
អាប់ដេតចុងក្រោយសម្រាប់ Intel® Quartus® Prime Design Suite: 17.0

RENPHO RF FM059HS WiFi Smart Foot Massager - រូបតំណាង ៩ជាវ
ស្មាតហ្វូន SAMSUNG SM A136UZKZAIO Galaxy A13 5G - រូបតំណាង 12ផ្ញើមតិកែលម្អ

Intel® FPGA SDK សម្រាប់ OpenCL™ Intel® Cyclone®V SoC Development Kit Reference Platform Porting Guide

V SoC Development Kit Reference Porting Guide ពិពណ៌នាអំពីការរចនាផ្នែករឹង និងផ្នែកទន់នៃ Intel Cyclone V SoC Development Kit Reference Platform (c5soc) សម្រាប់ប្រើជាមួយ Intel Software Development Kit (SDK) សម្រាប់ OpenCL The Intel ® FPGA SDK for 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 Development Kit និង SoC Embedded Design Suite ទំព័ររបស់ Altera webគេហទំព័រសម្រាប់ព័ត៌មានបន្ថែម។ ១២

យកចិត្តទុកដាក់៖ Intel សន្មត់ថាអ្នកមានការយល់ដឹងស៊ីជម្រៅអំពី Intel FPGA SDK សម្រាប់ OpenCL Custom Platform Toolkit User Guide។ Cyclone V SoC Development Kit Reference Guide Porting Platform មិនពិពណ៌នាអំពីការប្រើប្រាស់ Custom Platform Toolkit របស់ SDK ដើម្បីអនុវត្ត Custom Platform សម្រាប់ Cyclone V SoC Development Kit។ វាពណ៌នាតែភាពខុសគ្នារវាងការគាំទ្រ SDK នៅលើ Cyclone V SoC Development Kit និង Intel FPGA SDK ទូទៅសម្រាប់ OpenCL Custom Platform ។

តំណភ្ជាប់ដែលពាក់ព័ន្ធ

  • Intel FPGA SDK សម្រាប់ OpenCL Cyclone V SoC ការណែនាំអំពីការចាប់ផ្តើម
  • Intel FPGA SDK សម្រាប់ OpenCL Custom Platform Toolkit មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់
  • សៀវភៅដៃឧបករណ៍ Cyclone V វគ្គទី 3៖ សៀវភៅណែនាំបច្ចេកទេសអំពីប្រព័ន្ធដំណើរការរឹង
  • Cyclone V SoC Development Kit និង SoC Embedded Design Suite ទំព័រនៅលើ Altera webគេហទំព័រ
  1. OpenCL និងនិមិត្តសញ្ញា OpenCL គឺជាពាណិជ្ជសញ្ញារបស់ Apple Inc. ដែលប្រើដោយការអនុញ្ញាតពី Khronos Group™។
  2. Intel FPGA SDK សម្រាប់ OpenCL គឺផ្អែកលើការបញ្ជាក់របស់ Khronos ដែលបានបោះពុម្ពផ្សាយ ហើយបានឆ្លងកាត់ដំណើរការសាកល្បងការអនុលោមតាម Khronos ។ ស្ថានភាពអនុលោមតាមបច្ចុប្បន្នអាចរកបាននៅ www.khronos.org/conformance.

សាជីវកម្ម Intel ។ រក្សា​រ​សិទ្ធ​គ្រប់យ៉ាង។ Intel, ស្លាកសញ្ញា Intel, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus និង Stratix ពាក្យ និងនិមិត្តសញ្ញាគឺជាពាណិជ្ជសញ្ញារបស់ Intel Corporation ឬក្រុមហ៊ុនបុត្រសម្ព័ន្ធរបស់ខ្លួននៅសហរដ្ឋអាមេរិក និង/ឬប្រទេសផ្សេងទៀត។ Intel ធានាការអនុវត្តផលិតផល FPGA និង semiconductor របស់ខ្លួនទៅនឹងលក្ខណៈបច្ចេកទេសបច្ចុប្បន្នស្របតាមការធានាស្តង់ដាររបស់ Intel ប៉ុន្តែរក្សាសិទ្ធិក្នុងការផ្លាស់ប្តូរផលិតផល និងសេវាកម្មណាមួយនៅពេលណាមួយដោយមិនមានការជូនដំណឹងជាមុន។ Intel សន្មត់ថាគ្មានទំនួលខុសត្រូវ ឬការទទួលខុសត្រូវដែលកើតចេញពីកម្មវិធី ឬការប្រើប្រាស់ព័ត៌មាន ផលិតផល ឬសេវាកម្មណាមួយដែលបានពិពណ៌នានៅទីនេះ លើកលែងតែមានការយល់ព្រមជាលាយលក្ខណ៍អក្សរដោយ Intel ។ អតិថិជនរបស់ Intel ត្រូវបានណែនាំឱ្យទទួលបានកំណែចុងក្រោយបំផុតនៃលក្ខណៈបច្ចេកទេសឧបករណ៍ មុនពេលពឹងផ្អែកលើព័ត៌មានដែលបានបោះពុម្ពផ្សាយណាមួយ និងមុនពេលធ្វើការបញ្ជាទិញផលិតផល ឬសេវាកម្ម។
*ឈ្មោះ និងម៉ាកផ្សេងទៀតអាចត្រូវបានទាមទារជាកម្មសិទ្ធិរបស់អ្នកដទៃ។

1.1.1 Cyclone V SoC Development Kit Reference Board Platform Variants
Intel FPGA SDK សម្រាប់ OpenCL Cyclone V SoC Development Kit Reference Platform រួមមានក្តារបន្ទះពីរ។

  • ក្រុមប្រឹក្សាភិបាល c5soc
    បន្ទះលំនាំដើមនេះផ្តល់នូវការចូលទៅកាន់ធនាគារអង្គចងចាំ DDR ពីរ។ HPS DDR អាចចូលប្រើបានដោយទាំង FPGA និង CPU ។ FPGA DDR អាចចូលប្រើបានតែដោយ FPGA ប៉ុណ្ណោះ។
  • c5soc_sharedonly board
    វ៉ារ្យ៉ង់ក្តារនេះមានតែការភ្ជាប់ HPS DDR ប៉ុណ្ណោះ។ FPGA DDR មិនអាចចូលប្រើបានទេ។ វ៉ារ្យ៉ង់ក្តារនេះមានប្រសិទ្ធភាពជាង ដោយសារផ្នែករឹងតិចគឺចាំបាច់ដើម្បីគាំទ្រធនាគារអង្គចងចាំ DDR មួយ។ ក្រុមប្រឹក្សាភិបាល c5soc_sharedonly ក៏ជាវេទិកាគំរូដ៏ល្អសម្រាប់ក្រុមប្រឹក្សាភិបាលផលិតកម្មចុងក្រោយជាមួយនឹងធនាគារអង្គចងចាំ DDR តែមួយ។
    ដើម្បីកំណត់គោលដៅវ៉ារ្យ៉ង់ក្តារនេះនៅពេលចងក្រងខឺណែល OpenCL របស់អ្នក រួមបញ្ចូលជម្រើស -board c5soc_sharedonly នៅក្នុងពាក្យបញ្ជា aoc របស់អ្នក។
    សម្រាប់ព័ត៌មានបន្ថែមនៅលើ -board ជម្រើសនៃពាក្យបញ្ជា aoc សូមមើល Intel FPGA SDK សម្រាប់ការណែនាំកម្មវិធី OpenCL ។

តំណភ្ជាប់ដែលពាក់ព័ន្ធ
ការចងក្រងខឺណែលសម្រាប់ក្រុមប្រឹក្សាភិបាល FPGA ជាក់លាក់ (–board )
1.1.2 ខ្លឹមសារនៃ Cyclone V SoC Development Kit Reference Platform
Cyclone V SoC Development Kit Reference Platform មានដូចខាងក្រោម files និងថត៖

File ឬថតឯកសារ ការពិពណ៌នា
board_env.xml ភាសាសម្គាល់ eXtensible (XML) file ដែលពិពណ៌នាអំពី c5soc ទៅ Intel FPGA SDK សម្រាប់ OpenCL ។
linux_sd_card_image.tgz បង្រួមរូបភាពកាត SD file ដែលមានអ្វីគ្រប់យ៉ាងដែលអ្នកប្រើប្រាស់ SDK ត្រូវការដើម្បីប្រើ Cyclone V SoC Development Kit ជាមួយ SDK ។
អាវុធ ៣២ ថតដែលមានដូចខាងក្រោម៖

1.1.3 លក្ខណៈពិសេសពាក់ព័ន្ធនៃ Cyclone V SoC Development Kit

បញ្ជីខាងក្រោមបង្ហាញពីសមាសធាតុ Cyclone V SoC Development Kit និងលក្ខណៈពិសេសដែលពាក់ព័ន្ធទៅនឹង Intel FPGA SDK សម្រាប់ OpenCL៖

  • ស៊ីភីយូ dual-core ARM Cortex-A9 ដំណើរការលីនុច 32 ប៊ីត។
  • Advanced eXtensible Interface (AXI) bus រវាង HPS និង FPGA core fabric ។
  • ឧបករណ៍បញ្ជាអង្គចងចាំ 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 Goals and Decisions Intel ផ្អែកលើការអនុវត្តនៃ Cyclone V SoC Development Kit Reference Platform លើគោលដៅរចនា និងការសម្រេចចិត្តជាច្រើន។ Intel ណែនាំឱ្យអ្នកពិចារណាលើគោលដៅ និងការសម្រេចចិត្តទាំងនេះ នៅពេលអ្នកបញ្ចូលវេទិកាយោងនេះទៅកាន់ក្រុមប្រឹក្សាភិបាល SoC FPGA របស់អ្នក។
ខាងក្រោមនេះជាគោលដៅរចនា c5soc៖

  1. ផ្តល់កម្រិតបញ្ជូនខ្ពស់បំផុតដែលអាចធ្វើទៅបានរវាងខឺណែលនៅលើ FPGA និងប្រព័ន្ធអង្គចងចាំ DDR ។
  2. ត្រូវប្រាកដថាការគណនានៅលើ FPGA (នោះគឺជាខឺណែល OpenCL) មិនជ្រៀតជ្រែកជាមួយកិច្ចការស៊ីភីយូផ្សេងទៀតដែលអាចរាប់បញ្ចូលទាំងសេវាគ្រឿងកុំព្យូទ័រ។
  3. ទុកធនធាន FPGA ឱ្យបានច្រើនតាមដែលអាចធ្វើទៅបានសម្រាប់ការគណនាខឺណែលជំនួសឱ្យសមាសធាតុចំណុចប្រទាក់។

ខាងក្រោមនេះគឺជាការសម្រេចចិត្តរចនាកម្រិតខ្ពស់ដែលជាផលវិបាកផ្ទាល់នៃគោលដៅរចនារបស់ Intel៖

  1. វេទិកាឯកសារយោងប្រើតែឧបករណ៍បញ្ជាអង្គចងចាំរឹង DDR ជាមួយនឹងការកំណត់រចនាសម្ព័ន្ធដែលអាចធ្វើទៅបាន (256 ប៊ីត) ។
  2. FPGA ប្រាស្រ័យទាក់ទងជាមួយឧបករណ៍បញ្ជាអង្គចងចាំ HPS DDR ដោយផ្ទាល់ដោយមិនពាក់ព័ន្ធនឹងឡានក្រុង AXI និងកុងតាក់ L3 នៅខាងក្នុង HPS ។ ការប្រាស្រ័យទាក់ទងដោយផ្ទាល់ផ្តល់នូវកម្រិតបញ្ជូនល្អបំផុតដែលអាចធ្វើទៅបានទៅ DDR និងរក្សាការគណនា FPGA ពីការរំខានដល់ទំនាក់ទំនងរវាង CPU និងបរិក្ខាររបស់វា។
  3. Scatter-gather direct memory access (SG-DMA) មិនមែនជាផ្នែកនៃតក្កវិជ្ជាចំណុចប្រទាក់ FPGA ទេ។ ជំនួសឱ្យការផ្ទេរទិន្នន័យយ៉ាងច្រើនរវាងប្រព័ន្ធអង្គចងចាំ DDR រក្សាទុកទិន្នន័យនៅក្នុង HPS DDR ដែលបានចែករំលែក។ ការចូលប្រើអង្គចងចាំស៊ីភីយូដោយផ្ទាល់ដោយ FPGA មានប្រសិទ្ធភាពជាង DMA ។ វារក្សាទុកធនធានផ្នែករឹង (នោះគឺតំបន់ FPGA) និងសម្រួលកម្មវិធីបញ្ជាខឺណែលលីនុច។
    ការព្រមាន៖ ការផ្ទេរអង្គចងចាំរវាងប្រព័ន្ធ HPS DDR ដែលបានចែករំលែក និងប្រព័ន្ធ DDR ដែលអាចចូលប្រើបានតែ FPGA គឺយឺតណាស់។ ប្រសិនបើអ្នកជ្រើសរើស
    ផ្ទេរអង្គចងចាំតាមរបៀបនេះ ប្រើវាសម្រាប់តែទិន្នន័យតិចតួចប៉ុណ្ណោះ។
  4. ម៉ាស៊ីន និងឧបករណ៍ធ្វើការផ្ទេរទិន្នន័យដែលមិនមែនជា DMA រវាងគ្នាទៅវិញទៅមកតាមរយៈស្ពាន HPS-to-FPGA (H2F) ដោយប្រើតែច្រក 32 ប៊ីតតែមួយប៉ុណ្ណោះ។ ហេតុផលគឺដោយគ្មាន DMA ទេ ខឺណែលលីនុចអាចចេញសំណើរអាន ឬសរសេរ 32 ប៊ីតតែមួយ ដូច្នេះវាមិនចាំបាច់ក្នុងការមានការតភ្ជាប់កាន់តែទូលំទូលាយនោះទេ។
  5. ម៉ាស៊ីនបញ្ជូនសញ្ញាបញ្ជាទៅឧបករណ៍តាមរយៈស្ពាន H2F (LH2F) ទម្ងន់ស្រាល។
    ដោយសារតែសញ្ញាបញ្ជាពីម៉ាស៊ីនទៅឧបករណ៍គឺជាសញ្ញាកម្រិតបញ្ជូនទាប ស្ពាន LH2F គឺល្អសម្រាប់កិច្ចការ។

1.2 ការបញ្ជូនវេទិកាយោងទៅក្រុមប្រឹក្សាភិបាល SoC FPGA របស់អ្នក។
ដើម្បីបញ្ជូន Cyclone V SoC Development Kit Reference Platform ទៅកាន់ SoC FPGA board របស់អ្នក សូមអនុវត្តកិច្ចការខាងក្រោម៖

  1. ជ្រើសរើសអង្គចងចាំ DDR មួយ ឬកំណែអង្គចងចាំ DDR ពីរនៃវេទិកាយោង c5soc ជាចំណុចចាប់ផ្តើមនៃការរចនារបស់អ្នក។
  2. ធ្វើបច្ចុប្បន្នភាពទីតាំងម្ជុលនៅក្នុង ALTERAOCLSDKROOT/board/c5soc/ /top.qsf fileដែលជាកន្លែងដែល ALTERAOCLSDKROOT គឺជាផ្លូវទៅកាន់ទីតាំងរបស់ Intel FPGA SDK សម្រាប់ការដំឡើង OpenCL និង គឺ​ជា​ឈ្មោះ​ថត​នៃ​វ៉ារ្យ៉ង់​ក្តារ។ ថត c5soc_sharedonly គឺសម្រាប់វ៉ារ្យ៉ង់ក្តារដែលមានប្រព័ន្ធអង្គចងចាំ DDR មួយ។ ថត c5soc គឺសម្រាប់វ៉ារ្យ៉ង់ក្តារដែលមានប្រព័ន្ធអង្គចងចាំ DDR ពីរ។
  3.  ធ្វើបច្ចុប្បន្នភាពការកំណត់ DDR សម្រាប់ប្លុក HPS និង/ឬ FPGA SDRAM នៅក្នុង ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
    4. Intel FPGA SDK ទាំងអស់សម្រាប់ការរចនាក្តារដែលពេញចិត្ត OpenCL ត្រូវតែសម្រេចបាននូវការបិទពេលវេលាដែលមានការធានា។ ដូច្នេះ​ការ​ដាក់​រចនា​ត្រូវ​តែ​ស្អាត​តាម​ពេល​វេលា។ ដើម្បីច្រកភាគថាស c5soc board (acl_iface_partition.qxp) ទៅកាន់ SoC FPGA board របស់អ្នក សូមអនុវត្តកិច្ចការខាងក្រោម៖
    សម្រាប់សេចក្តីណែនាំលម្អិតស្តីពីការកែប្រែ និងរក្សាភាគថាសក្តារ សូមយោងទៅ Quartus
    ការចងក្រងបន្ថែមបឋមសម្រាប់ជំពូករចនាតាមឋានានុក្រម និងក្រុមផ្អែកលើសៀវភៅណែនាំបោះពុម្ពស្តង់ដារ Quartus Prime ។
    ក. យក 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 User Guide ដោយនាំចូល .qxp  file ទៅក្នុងការរចនាកម្រិតកំពូល អ្នកបំពេញតម្រូវការនៃការផ្តល់នូវការរចនាបន្ទះជាមួយនឹងលំហូរបិទពេលវេលាដែលបានធានា។
    សម្រាប់កត្តាដែលអាចប៉ះពាល់ដល់គុណភាពនៃលទ្ធផល (QoR) នៃភាគថាសដែលបាននាំចេញរបស់អ្នក សូមមើលការពិចារណាអំពីគុណភាពទូទៅនៃលទ្ធផលសម្រាប់ផ្នែកផ្នែកក្រុមប្រឹក្សាភិបាលដែលបាននាំចេញនៅក្នុង Intel FPGA SDK សម្រាប់ OpenCL Custom Platform Toolkit User Guide។
    f. បិទតំបន់ LogicLock acl_iface_region ដោយត្រឡប់ពាក្យបញ្ជាក្នុងជំហានទី 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. ពិចារណាបង្កើតកំណែបរិស្ថានពេលដំណើរការនៃវេទិកាផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ប្រើជាមួយ Intel FPGA Runtime Environment (RTE) សម្រាប់ OpenCL ។ កំណែ RTE នៃវេទិកាផ្ទាល់ខ្លួនរបស់អ្នកមិនរួមបញ្ចូលថតផ្នែករឹង និងរូបភាពកាត SD ទេ។ វេទិកាផ្ទាល់ខ្លួននេះផ្ទុកលើប្រព័ន្ធ SoC FPGA ដើម្បីអនុញ្ញាតឱ្យកម្មវិធីម៉ាស៊ីនដំណើរការ។ ផ្ទុយទៅវិញ កំណែ SDK នៃវេទិកាផ្ទាល់ខ្លួនគឺចាំបាច់សម្រាប់ SDK ដើម្បីចងក្រងខឺណែល OpenCL ។
    គន្លឹះ៖ អ្នកអាចប្រើកំណែ SDK នៃវេទិកាផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ RTE ។ ដើម្បី​រក្សា​ទុក
    ដករូបភាពកាត SD ចេញពីកំណែ RTE នៃវេទិកាផ្ទាល់ខ្លួនរបស់អ្នក។
  8. សាកល្បងវេទិកាផ្ទាល់ខ្លួនរបស់អ្នក។
    សូមមើលការសាកល្បងផ្នែករចនាផ្នែករឹងនៃ Intel FPGA SDK សម្រាប់ OpenCL Custom Platform Toolkit User Guide សម្រាប់ព័ត៌មានបន្ថែម។

តំណភ្ជាប់ដែលពាក់ព័ន្ធ

  • សាកល្បងការរចនាផ្នែករឹង
  • Quartus Prime Incremental Compilation សម្រាប់ការរចនាតាមឋានានុក្រម និងក្រុម
  • ការបង្កើតលំហូរពេលវេលាធានា
  • គុណភាពទូទៅនៃការពិចារណាលទ្ធផលសម្រាប់ភាគថាសក្រុមប្រឹក្សាភិបាលនាំចេញ

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 នៅក្នុង Intel FPGA SDK សម្រាប់ OpenCL Custom Platform Toolkit User Guide សម្រាប់ព័ត៌មានបន្ថែម។

  1. ដើម្បីអនុវត្តលំហូរការអភិរក្ស QXP នៅក្នុងការរចនាផ្នែករឹង Cyclone V SoC FPGA ដែលត្រូវបានបញ្ជូនពីកំណែមុនរបស់ c5soc សូមអនុវត្តជំហានខាងក្រោមដើម្បីបង្កើតភាគរងមួយដើម្បីដក HPS ចេញពី .qxp file:
    ក. មុននឹងបង្កើតភាគថាសជុំវិញតក្កវិជ្ជា nonnkernel សូមបង្កើតភាគថាសជុំវិញ HPS នៅក្នុងការកំណត់ .qsf Quartus Prime File.
    សម្រាប់អតីតampលេ៖
    # បែងចែកឧទាហរណ៍ដោយដៃដែលបង្កើតគំរូ I/O set_instance_assignment -name PARTITION_HIERARCHY borde_18261 - ទៅ “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_sp:iface_0|system_hp_0s_iface 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=បើក
    –incremental_compilation_export_post_fit=បើក
    –incremental_compilation_export_routing=បើក
    –incremental_compilation_export_flatten=បិទ
    បន្ទាប់ពីអ្នកដក HPS ចេញពីភាគថាស អ្នកអាចនាំចូល .qxp file និងចងក្រងការរចនារបស់អ្នក។
  2. អាប់ដេតរូបភាពកាត SD ជាមួយកំណែបច្ចុប្បន្ននៃ Intel FPGA RTE សម្រាប់ OpenCL ដោយអនុវត្តភារកិច្ចដូចខាងក្រោមៈ
    ក. ម៉ោន 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 ហើយ x គឺជាកំណែកម្មវិធីបញ្ជាដែលអ្នកបានកំណត់)។
    អ៊ី បង្កើតអ្នកបើកបរឡើងវិញ។
    f. លុបថត hardware នៃ Custom Platform របស់អ្នក។ ចម្លង Custom Platform រួមជាមួយនឹង Driver ដែលបានអាប់ដេតទៅកាន់ /home/root/opencl_arm_rte/board directory។
    g. ចម្លង Altera.icd file ពីថត /home/root/opencl_arm32_rte ហើយបន្ថែមវាទៅថត /etc/OpenCL/vendors ។
    h ផ្ដាច់ និងសាកល្បងរូបភាពថ្មី។ សម្រាប់ការណែនាំលម្អិត សូមមើលជំហានទី 8 ដល់ 11 ក្នុងការបង្កើតរូបភាព SD Flash Card ។

តំណភ្ជាប់ដែលពាក់ព័ន្ធ

  • ការបង្កើតរូបភាពកាត SD នៅទំព័រ 14
    អ្នកក៏មានជម្រើសដើម្បីបង្កើតរូបភាពកាត SD ថ្មី។
  • ស្វ័យប្រវត្តិកម្មវេទិកាផ្ទាល់ខ្លួនសម្រាប់ភាពឆបគ្នាឆ្ពោះទៅមុខ

1.3 កម្មវិធីជំនួយសម្រាប់អង្គចងចាំដែលបានចែករំលែក
អង្គចងចាំរូបវន្តដែលបានចែករំលែករវាង FPGA និង CPU គឺជាអង្គចងចាំដែលពេញចិត្តសម្រាប់ខឺណែល OpenCL ដែលដំណើរការលើ SoC FPGAs ។ ដោយសារតែ FPGA ចូលប្រើអង្គចងចាំរូបវន្តដែលបានចែករំលែក ផ្ទុយពីសតិនិម្មិតដែលបានចែករំលែក វាមិនមានសិទ្ធិចូលប្រើតារាងទំព័ររបស់ CPU ដែលផ្គូផ្គងអាសយដ្ឋាននិម្មិតរបស់អ្នកប្រើទៅកាន់អាសយដ្ឋានទំព័រជាក់ស្តែងនោះទេ។
ទាក់ទងទៅនឹងផ្នែករឹង ខឺណែល OpenCL ចូលប្រើអង្គចងចាំរូបវន្តដែលបានចែករំលែកតាមរយៈការតភ្ជាប់ដោយផ្ទាល់ទៅឧបករណ៍បញ្ជាអង្គចងចាំរឹង HPS DDR ។ ទាក់ទងទៅនឹងកម្មវិធី ការគាំទ្រសម្រាប់អង្គចងចាំរូបវ័ន្តដែលបានចែករំលែកពាក់ព័ន្ធនឹងការពិចារណាដូចខាងក្រោម៖

  1. ការអនុវត្តកម្មវិធីធម្មតាសម្រាប់បែងចែកអង្គចងចាំនៅលើ CPU (សម្រាប់ឧample, មុខងារ malloc()) មិនអាចបែងចែកតំបន់អង្គចងចាំដែល FPGA អាចប្រើបានទេ។
    អង្គចងចាំដែលអនុគមន៍ malloc() បែងចែកគឺជាប់គ្នាក្នុងចន្លោះអាសយដ្ឋានសតិនិម្មិត ប៉ុន្តែទំព័ររូបវន្តមូលដ្ឋានណាមួយទំនងជាមិនជាប់គ្នាទេ។ ដូច្នេះ ម្ចាស់ផ្ទះត្រូវតែអាចបែងចែកតំបន់សតិដែលជាប់គ្នាបាន។ ទោះយ៉ាងណាក៏ដោយ សមត្ថភាពនេះមិនមាននៅក្នុងកម្មវិធីលំហអ្នកប្រើប្រាស់នៅលើលីនុចទេ។ ដូច្នេះកម្មវិធីបញ្ជាខឺណែលលីនុចត្រូវតែអនុវត្តការបែងចែក។
  2. កម្មវិធីបញ្ជាខឺណែល OpenCL SoC FPGA លីនុច រួមបញ្ចូលមុខងារ mmap() ដើម្បីបែងចែកអង្គចងចាំរូបវ័ន្តដែលបានចែករំលែក និងគូសវាសទៅក្នុងចន្លោះអ្នកប្រើប្រាស់។ អនុគមន៍ mmap() ប្រើការហៅខឺណែលលីនុចស្តង់ដារ dma_alloc_coherent() ដើម្បីស្នើសុំតំបន់សតិដែលជាប់គ្នាសម្រាប់ចែករំលែកជាមួយឧបករណ៍។
  3. នៅក្នុងខឺណែលលីនុចលំនាំដើម dma_alloc_coherent() មិនបែងចែកអង្គចងចាំដែលជាប់គ្នាលើសពី 0.5 មេកាបៃ (MB) ក្នុងទំហំទេ។ ដើម្បីអនុញ្ញាតឱ្យ dma_alloc_coherent() បែងចែកទំហំធំនៃអង្គចងចាំជាប់គ្នា សូមបើកមុខងារកម្មវិធីបែងចែកអង្គចងចាំជាប់គ្នា (CMA) នៃខឺណែលលីនុច ហើយបន្ទាប់មកចងក្រងខឺណែលលីនុចឡើងវិញ។
    សម្រាប់ Cyclone V SoC Development Kit Reference Platform CMA គ្រប់គ្រង 512 MB ក្នុងចំណោមអង្គចងចាំរូបវ័ន្ត 1 GB។ អ្នកអាចបង្កើន ឬបន្ថយតម្លៃនេះ អាស្រ័យលើចំនួនអង្គចងចាំដែលបានចែករំលែកដែលកម្មវិធីទាមទារ។ ការហៅ dma_alloc_coherent() ប្រហែលជាមិនអាចបែងចែកអង្គចងចាំដែលជាប់គ្នាពេញ 512 MB បានទេ។ ទោះយ៉ាងណាក៏ដោយ វាអាចទទួលបានអង្គចងចាំប្រហែល 450 MB ជាប្រចាំ។
  4. ស៊ីភីយូអាចផ្ទុកអង្គចងចាំដែល dma_alloc_coherent() ហៅ បែងចែក។ ជាពិសេស ប្រតិបត្តិការសរសេរពីកម្មវិធីម៉ាស៊ីនមិនអាចមើលឃើញដោយខឺណែល OpenCL ទេ។ មុខងារ mmap() នៅក្នុងកម្មវិធីបញ្ជាខឺណែល OpenCL SoC FPGA លីនុចក៏មានការហៅទៅកាន់មុខងារ pgprot_noncached() ឬ remap_pf_range() ដើម្បីបិទដំណើរការឃ្លាំងសម្ងាត់សម្រាប់តំបន់នៃអង្គចងចាំនេះយ៉ាងច្បាស់លាស់។
  5. បន្ទាប់ពីអនុគមន៍ dma_alloc_coherent() បែងចែកអង្គចងចាំដែលជាប់គ្នា មុខងារ mmap() ត្រឡប់អាសយដ្ឋាននិម្មិតទៅដើមជួរ ដែលជាទំហំអាសយដ្ឋាននៃអង្គចងចាំដែលអ្នកបែងចែក។ កម្មវិធីម៉ាស៊ីនទាមទារអាសយដ្ឋាននិម្មិតនេះដើម្បីចូលប្រើអង្គចងចាំ។ ម្យ៉ាងវិញទៀត ខឺណែល OpenCL ទាមទារអាសយដ្ឋានរូបវន្ត។ កម្មវិធីបញ្ជាខឺណែលលីនុច តាមដានការគូសផែនទីអាសយដ្ឋាននិម្មិតទៅរូបវិទ្យា។ អ្នកអាចគូសផែនទីអាសយដ្ឋានរូបវន្តដែល mmap() ត្រឡប់ទៅអាសយដ្ឋានជាក់ស្តែងដោយបន្ថែមសំណួរទៅអ្នកបើកបរ។
    ចំណុចប្រទាក់កម្មវិធីកម្មវិធី aocl_mmd_shared_mem_alloc() MMD (API) ការហៅចូលរួមបញ្ចូលសំណួរខាងក្រោម៖
    ក. មុខងារ mmap() ដែលបែងចែកអង្គចងចាំ និងត្រឡប់អាសយដ្ឋាននិម្មិត។
    ខ. សំណួរបន្ថែមដែលផ្គូផ្គងអាសយដ្ឋាននិម្មិតដែលបានត្រឡប់មកវិញទៅជាអាសយដ្ឋានជាក់ស្តែង។
    ការហៅ aocl_mmd_shared_mem_alloc() MMD API បន្ទាប់មកត្រឡប់អាសយដ្ឋានពីរ
    -អាសយដ្ឋានដែលបានត្រឡប់មកវិញពិតប្រាកដគឺជាអាសយដ្ឋាននិម្មិត ហើយអាសយដ្ឋានរូបវន្តទៅកាន់ device_ptr_out។
    ចំណាំ៖ កម្មវិធីបញ្ជាអាចកំណត់តែអាសយដ្ឋាននិម្មិតដែលមុខងារ mmap() ត្រឡប់ទៅអាសយដ្ឋានរូបវន្ត។ ប្រសិនបើអ្នកស្នើសុំអាសយដ្ឋានរូបវន្តនៃទ្រនិចនិម្មិតផ្សេងទៀត អ្នកបើកបរនឹងត្រឡប់តម្លៃ NULL ។

ការព្រមាន៖ Intel FPGA SDK សម្រាប់បណ្ណាល័យពេលដំណើរការ OpenCL សន្មត់ថាអង្គចងចាំដែលបានចែករំលែកគឺជាអង្គចងចាំដំបូងដែលបានរាយក្នុង board_spec.xml file. ម្យ៉ាងវិញទៀត អាសយដ្ឋានរូបវន្តដែលកម្មវិធីបញ្ជាខឺណែលលីនុចទទួលបាន ក្លាយជាអាសយដ្ឋាន Avalon® ដែលខឺណែល OpenCL ឆ្លងទៅ HPS SDRAM ។
ទាក់ទងទៅនឹងបណ្ណាល័យពេលដំណើរការ សូមប្រើការហៅ clCreateBuffer() ដើម្បីបែងចែកអង្គចងចាំដែលបានចែករំលែកជាសតិបណ្ដោះអាសន្នឧបករណ៍ក្នុងលក្ខណៈដូចខាងក្រោម៖

  • សម្រាប់វ៉ារ្យ៉ង់បន្ទះពីរ-DDR ដែលមានទាំងអង្គចងចាំដែលបានចែករំលែក និងមិនចែករំលែក clCreateBuffer() បែងចែកអង្គចងចាំដែលបានចែករំលែក ប្រសិនបើអ្នកបញ្ជាក់ទង់ CL_MEM_USE_HOST_PTR ។ ការប្រើទង់ផ្សេងទៀតបណ្តាលឱ្យ clCreateBuffer() បែងចែកសតិបណ្ដោះអាសន្ននៅក្នុងអង្គចងចាំដែលមិនចែករំលែក។
  • សម្រាប់បំរែបំរួលក្តារបន្ទះតែមួយ DDR ដែលមានអង្គចងចាំដែលបានចែករំលែកតែប៉ុណ្ណោះ clCreateBuffer() បែងចែកអង្គចងចាំដែលបានចែករំលែកដោយមិនគិតពីទង់ណាមួយដែលអ្នកបញ្ជាក់។
    បច្ចុប្បន្ន ការគាំទ្រលីនុច 32 ប៊ីតនៅលើស៊ីភីយូ ARM គ្រប់គ្រងវិសាលភាពនៃការគាំទ្រអង្គចងចាំដែលបានចែករំលែកនៅក្នុងបណ្ណាល័យពេលវេលាដំណើរការ SDK ។ ម្យ៉ាង​ទៀត បណ្ណាល័យ​ពេល​រត់​បាន​ចងក្រង​ទៅ​នឹង​បរិស្ថាន​ផ្សេង​ទៀត (សម្រាប់​ឧample, x86_64 Linux ឬ Windows 64-bit) មិនគាំទ្រអង្គចងចាំដែលបានចែករំលែកទេ។
    C5soc មិន​បាន​អនុវត្ត​ការ​ចងចាំ​ខុស​គ្នា​ដើម្បី​បែងចែក​រវាង​ការ​ចងចាំ​ដែល​បាន​ចែក​រំលែក និង​មិន​ចែករំលែក​ដោយ​ហេតុផល​ដូច​ខាង​ក្រោម​នេះ​ទេ៖
    1. ប្រវត្តិ—ការ​គាំទ្រ​អង្គ​ចងចាំ​ខុស​គ្នា​មិន​អាច​ប្រើ​បាន​នៅ​ពេល​ដែល​ការ​គាំទ្រ​អង្គ​ចងចាំ​រួម​ត្រូវ​បាន​បង្កើត​ឡើង​ដំបូង​ឡើយ​។
    2. ចំណុចប្រទាក់ឯកសណ្ឋាន - ដោយសារ OpenCL គឺជាស្តង់ដារបើកចំហ Intel រក្សាភាពស៊ីសង្វាក់គ្នារវាងអ្នកលក់វេទិកាកុំព្យូទ័រផ្សេងៗគ្នា។ ដូច្នេះ ចំណុចប្រទាក់ដូចគ្នាទៅនឹងស្ថាបត្យកម្មរបស់អ្នកលក់ក្តារផ្សេងទៀតត្រូវបានប្រើដើម្បីបែងចែក និងប្រើប្រាស់អង្គចងចាំដែលបានចែករំលែក។

1.4 ការកំណត់រចនាសម្ព័ន្ធ FPGA ឡើងវិញ
សម្រាប់ SoC FPGAs ស៊ីភីយូអាចកំណត់រចនាសម្ព័ន្ធក្រណាត់ស្នូល FPGA ឡើងវិញដោយមិនរំខានដល់ប្រតិបត្តិការរបស់ស៊ីភីយូ។ ប្លុកផ្នែករឹងរបស់ FPGA Manager ដែលជាន់លើ HPS ហើយស្នូល FPGA ដំណើរការការកំណត់រចនាសម្ព័ន្ធឡើងវិញ។ ខឺណែលលីនុចរួមបញ្ចូលកម្មវិធីបញ្ជាដែលអនុញ្ញាតឱ្យចូលប្រើបានយ៉ាងងាយស្រួលទៅកាន់កម្មវិធីគ្រប់គ្រង FPGA ។

  • ទៅ view ស្ថានភាពនៃស្នូល FPGA ហៅពាក្យបញ្ជាស្ថានភាព cat /sys/class/fpga/fpga0/ ។
    Intel FPGA SDK សម្រាប់ឧបករណ៍ប្រើប្រាស់កម្មវិធី OpenCL ដែលមានជាមួយ Cyclone V SoC Development Kit Reference Platform ប្រើចំណុចប្រទាក់នេះដើម្បីរៀបចំកម្មវិធី FPGA ។ នៅពេល reprogramming ស្នូល FPGA ជាមួយ CPU ដែលកំពុងដំណើរការ ឧបករណ៍ប្រើប្រាស់កម្មវិធីនឹងបំពេញកិច្ចការទាំងអស់ដូចខាងក្រោម៖
    1. មុនពេលរៀបចំកម្មវិធីឡើងវិញ សូមបិទស្ពានទំនាក់ទំនងទាំងអស់រវាង FPGA និង HPS ទាំងស្ពាន H2F និង LH2F ។
    បើកដំណើរការស្ពានទាំងនេះឡើងវិញ បន្ទាប់ពីបញ្ចប់ការសរសេរកម្មវិធីឡើងវិញ។
    យកចិត្តទុកដាក់៖ ប្រព័ន្ធ OpenCL មិនប្រើស្ពាន FPGA-to-HPS (F2H) ទេ។ សូមមើលផ្នែកចំណុចប្រទាក់ HPS-FPGA នៅក្នុងសៀវភៅដៃឧបករណ៍ Cyclone V ភាគ 3៖ សៀវភៅណែនាំបច្ចេកទេសយោងប្រព័ន្ធដំណើរការរឹង សម្រាប់ព័ត៌មានបន្ថែម។
    2. ត្រូវប្រាកដថាតំណភ្ជាប់រវាង FPGA និងឧបករណ៍បញ្ជា HPS DDR ត្រូវបានបិទកំឡុងពេលសរសេរកម្មវិធីឡើងវិញ។
    3. ត្រូវប្រាកដថា FPGA រំខាននៅលើ FPGA ត្រូវបានបិទកំឡុងពេលរៀបចំកម្មវិធីឡើងវិញ។
    ដូចគ្នានេះផងដែរ ជូនដំណឹងដល់អ្នកបើកបរឱ្យបដិសេធការរំខានណាមួយពី FPGA កំឡុងពេលរៀបចំកម្មវិធីឡើងវិញ។

សូមពិគ្រោះជាមួយកូដប្រភពនៃឧបករណ៍ប្រើប្រាស់កម្មវិធីសម្រាប់ព័ត៌មានលម្អិតអំពីការអនុវត្តជាក់ស្តែង។

ការព្រមាន៖ កុំផ្លាស់ប្តូរការកំណត់រចនាសម្ព័ន្ធឧបករណ៍បញ្ជា HPS DDR នៅពេលដែលស៊ីភីយូកំពុងដំណើរការ។
ការធ្វើដូច្នេះអាចបណ្តាលឱ្យមានកំហុសប្រព័ន្ធធ្ងន់ធ្ងរ ពីព្រោះអ្នកអាចផ្លាស់ប្តូរការកំណត់រចនាសម្ព័ន្ធឧបករណ៍បញ្ជា DDR នៅពេលដែលមានប្រតិបត្តិការសតិសកម្មពីស៊ីភីយូ។ នេះមានន័យថា នៅពេលដែលស៊ីភីយូកំពុងដំណើរការ អ្នកប្រហែលជាមិនរៀបចំឡើងវិញនូវស្នូល FPGA ជាមួយនឹងរូបភាពដែលប្រើ HPS DDR នៅក្នុងការកំណត់រចនាសម្ព័ន្ធផ្សេងនោះទេ។
សូមចងចាំថាប្រព័ន្ធ OpenCL និងការរចនាសេចក្តីយោងផ្នែករឹងមាសដែលមានជាមួយ Intel SoC FPGA Embedded Design Suite (EDS) កំណត់ HPS DDR ទៅជារបៀប 256 ប៊ីតតែមួយ។
ផ្នែកប្រព័ន្ធស៊ីភីយូ ដូចជាអ្នកព្យាករណ៍សាខា ឬអ្នកនាំមុខតារាងទំព័រអាចចេញពាក្យបញ្ជា DDR ទោះបីជាវាបង្ហាញថាគ្មានអ្វីកំពុងដំណើរការលើស៊ីភីយូក៏ដោយ។
ដូច្នេះ ពេលវេលាចាប់ផ្ដើមគឺជាពេលវេលាសុវត្ថិភាពតែមួយគត់ដើម្បីកំណត់រចនាសម្ព័ន្ធឧបករណ៍បញ្ជា HPS DDR ។
នេះក៏បង្កប់ន័យថា U-boot ត្រូវតែមាន binary ឆៅ file រូបភាព (.rbf) ដើម្បីផ្ទុកទៅក្នុងអង្គចងចាំ។ បើមិនដូច្នេះទេ អ្នកប្រហែលជាកំពុងបើកដំណើរការ HPS DDR ជាមួយនឹងច្រកដែលមិនប្រើនៅលើ FPGA ហើយបន្ទាប់មកអាចផ្លាស់ប្តូរការកំណត់រចនាសម្ព័ន្ធច្រកនៅពេលក្រោយ។ សម្រាប់ហេតុផលនេះ កម្មវិធីបញ្ជាខឺណែល OpenCL Linux លែងរួមបញ្ចូលតក្កវិជ្ជាដែលចាំបាច់ក្នុងការកំណត់រចនាសម្ព័ន្ធឧបករណ៍បញ្ជា HPS DDR ទៀតហើយ។
SW3 dual in-line package (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 Switches

1.4.1 ព័ត៌មានលម្អិតអំពីស្ថាបត្យកម្មប្រព័ន្ធ FPGA
ការគាំទ្រសម្រាប់ Cyclone V SoC Development Kit Reference Platform គឺផ្អែកលើ Stratix® V Reference Platform (s5_ref) ដែលមានជាមួយ Intel FPGA SDK សម្រាប់ OpenCL ។
អង្គការទាំងមូលនៃប្រព័ន្ធ c5soc Qsys និងកម្មវិធីបញ្ជាខឺណែលគឺស្រដៀងគ្នាទៅនឹងប្រព័ន្ធ s5_ref ។
សមាសធាតុស្នូល FPGA ខាងក្រោមគឺដូចគ្នាទាំងនៅក្នុង c5soc និង s5_ref៖

  • ប្លុក VERSION_ID
  • យន្តការសម្រាក
  • ការបែងចែកធនាគារអង្គចងចាំ
  • ចំណុចប្រទាក់ snoop ឃ្លាំងសម្ងាត់
  • នាឡិកាខឺណែល។
  • ទប់ស្កាត់ការចូលដំណើរការចុះឈ្មោះ (CRA)

1.5 ការបង្កើតរូបភាពកាត SD
ដោយសារតែ Cyclone V SoC FPGA គឺជាប្រព័ន្ធពេញលេញនៅលើបន្ទះឈីប អ្នកទទួលខុសត្រូវក្នុងការផ្តល់នូវនិយមន័យពេញលេញនៃប្រព័ន្ធ។ ក្រុមហ៊ុន Intel ណែនាំឱ្យអ្នកចែកចាយវាក្នុងទម្រង់ជារូបភាពកាត SD ។ Intel FPGA SDK សម្រាប់អ្នកប្រើប្រាស់ OpenCL អាចសរសេររូបភាពទៅកាន់ micro SD flash card ហើយ SoC FPGA board គឺរួចរាល់សម្រាប់ការប្រើប្រាស់។
ការកែប្រែរូបភាពកាត 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 exampការរចនាដោយប្រើការគាំទ្រវេទិកាផ្ទាល់ខ្លួនរបស់អ្នក។ ប្តូរឈ្មោះ .rbf file ដែល Intel FPGA SDK សម្រាប់ OpenCL Offline Compiler បង្កើតជា opencl.rbf ហើយដាក់វានៅលើភាគថាស fat32 នៅក្នុងរូបភាព SD flash card ។
    អ្នកអាចទាញយក hello_world exampការរចនាពី OpenCL Design Exampទំព័រ les នៅលើ Altera webគេហទំព័រ។
  3. ដាក់ ​​.rbf file ចូលទៅក្នុងភាគថាស fat32 នៃរូបភាពកាតពន្លឺ។
    យកចិត្តទុកដាក់៖ ភាគថាស fat32 ត្រូវតែមានទាំង zImage file និង .rbf file. ដោយគ្មាន .rbf fileកំហុសធ្ងន់ធ្ងរនឹងកើតឡើងនៅពេលអ្នកបញ្ចូលកម្មវិធីបញ្ជា។
  4. បន្ទាប់​ពី​អ្នក​បង្កើត​រូបភាព​កាត SD សូម​សរសេរ​វា​ទៅ​កាត micro SD ដោយ​ហៅ​ពាក្យ​បញ្ជា​ដូច​ខាង​ក្រោម៖ sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. ដើម្បីសាកល្បងរូបភាពកាត SD របស់អ្នក សូមអនុវត្តកិច្ចការខាងក្រោម៖
    ក. បញ្ចូលកាត micro SD ទៅក្នុងបន្ទះ SoC FPGA ។
    ខ. បង្កើនថាមពលដល់ក្តារ។
    គ. ហៅពាក្យបញ្ជា aocl diagnose utility command ។

1.5.2 ការបង្កើតរូបភាពកាត SD
អ្នកក៏មានជម្រើសដើម្បីបង្កើតរូបភាពកាត SD ថ្មី។ ការណែនាំទូទៅអំពីការបង្កើតរូបភាពកាត SD ថ្មី និងការកសាងរូបភាពកាត SD ដែលមានស្រាប់ឡើងវិញមាននៅលើ GSRD v14.0.2 - ទំព័រកាត SD នៃ RocketBoards.org 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, លេខភាគទី 1 នៃប្រភេទ W95 FAT មានប្លុកអុហ្វសិត 2121728 ។ ជាមួយនឹង 512 បៃក្នុងមួយប្លុក បៃអុហ្វសិតគឺ 512 បៃ x 2121728 = 1086324736 បៃ។
    ខ. កំណត់ឧបករណ៍រង្វិលជុំឥតគិតថ្លៃ (សម្រាប់ឧample, /dev/loop0) ដោយវាយពាក្យបញ្ជា losetup -f ។
    គ. ដោយសន្មត់ថា /dev/loop0 គឺជាឧបករណ៍រង្វិលជុំឥតគិតថ្លៃ ផ្តល់រូបភាពកាតពន្លឺរបស់អ្នកទៅឧបករណ៍ប្លុករង្វិលជុំដោយហៅការបាត់បង់ /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 software edition។
    ខ. បញ្ជាក់កំណែចេញផ្សាយ ប្រព័ន្ធប្រតិបត្តិការ និងវិធីសាស្ត្រទាញយក។
    គ. ចុចផ្ទាំងកម្មវិធីបន្ថែម ហើយជ្រើសរើសដើម្បីទាញយក Intel FPGA
    បរិយាកាសពេលដំណើរការសម្រាប់ OpenCL Linux Cyclone V SoC TGZ ។
    ឃ. បន្ទាប់ពីអ្នកទាញយក aocl-rte- .arm32.tgz fileពន្លាវាទៅ
    ថតឯកសារដែលអ្នកមាន។
  4. ដាក់កញ្ចប់ aocl-rte- ថតឯកសារ .arm32 ទៅក្នុងថត /home/root/opencl_arm32_rte នៅលើភាគថាស ext3 នៃរូបភាព file.
  5. លុបថត hardware នៃ Custom Platform របស់អ្នក ហើយបន្ទាប់មកដាក់ Custom Platform ទៅក្នុង board subdirectory នៃ /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 ឬខឺណែលលីនុច អ្នកត្រូវការកម្មវិធីចងក្រង arm-linux-gnueabihf-gcc ពី SoC EDS ។ អនុវត្តតាមការណែនាំដែលមានចែងក្នុង Intel SoC FPGA Embedded Design Suite មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់ ដើម្បីទទួលបានកម្មវិធី ចងក្រងពួកវាឡើងវិញ និងធ្វើបច្ចុប្បន្នភាពដែលពាក់ព័ន្ធ។ files នៅលើភាគថាស fat32 ដែលបានម៉ោន។
    យកចិត្តទុកដាក់៖ វាទំនងជាថាអ្នកត្រូវធ្វើបច្ចុប្បន្នភាពកម្មវិធីផ្ទុកជាមុន ប្រសិនបើវេទិកាផ្ទាល់ខ្លួនរបស់អ្នកមានការប្រើប្រាស់ម្ជុលខុសៗគ្នាជាងនៅក្នុង c5soc។
    ចងចាំ៖ ប្រសិនបើអ្នកចងក្រងខឺណែលលីនុចឡើងវិញ សូមចងក្រងកម្មវិធីបញ្ជាខឺណែលលីនុចឡើងវិញជាមួយនឹងប្រភពខឺណែលលីនុចដូចគ្នា fileស. ប្រសិនបើមានភាពមិនស៊ីគ្នារវាងកម្មវិធីបញ្ជាខឺណែលលីនុច និងខឺណែលលីនុច នោះកម្មវិធីបញ្ជានឹងមិនផ្ទុកទេ។ ដូចគ្នានេះផងដែរអ្នកត្រូវតែបើក CMA ។
    សូមមើលការចងក្រងខឺណែលលីនុចឡើងវិញ សម្រាប់ព័ត៌មានបន្ថែម។
  8. ចងក្រង hello_world OpenCL exampការរចនាដោយប្រើការគាំទ្រវេទិកាផ្ទាល់ខ្លួនរបស់អ្នក។ ប្តូរឈ្មោះ .rbf file ដែល Intel FPGA SDK សម្រាប់ OpenCL Offline Compiler បង្កើតជា opencl.rbf ហើយដាក់វានៅលើភាគថាស fat32 នៅក្នុងរូបភាព SD flash card ។
    អ្នកអាចទាញយក hello_world exampការរចនាពី OpenCL Design Exampទំព័រ les នៅលើ Altera webគេហទំព័រ។
    9. បន្ទាប់ពីអ្នករក្សាទុកចាំបាច់ទាំងអស់។ files ទៅលើរូបភាព flash card ហៅពាក្យបញ្ជាខាងក្រោម៖
    ក. ធ្វើសមកាលកម្ម
    ខ. អាន់ម៉ោន /media/disk1
    គ. ផ្ដាច់ កន្លែងណា គឺ​ជា​ឈ្មោះ​ថត​ដែល​អ្នក​ប្រើ​សម្រាប់​ដំឡើង​ភាគថាស ext3 ក្នុង 3 នៅ​ទំព័រ 3 (សម្រាប់ example, /media/disk2) ។
    ឃ. បាត់បង់ -d /dev/loop0
    អ៊ី បាត់បង់ -d /dev/loop1
  9. បង្រួមរូបភាពកាត SD ដោយហៅពាក្យបញ្ជាខាងក្រោម៖ tar cvfz .tgz linux_sd_card_image
  10. ចែកចាយ .tgz file នៅខាងក្នុងថត root នៃវេទិកាផ្ទាល់ខ្លួនរបស់អ្នក។
  11. ដើម្បីសាកល្បងរូបភាពកាត SD របស់អ្នក សូមអនុវត្តកិច្ចការខាងក្រោម៖
    ក. សរសេររូបភាពដែលមិនបានបង្ហាប់លទ្ធផលទៅក្នុងកាត micro SD flash
    ខ. បញ្ចូលកាត micro SD ទៅក្នុងបន្ទះ SoC FPGA ។
    គ. បង្កើនថាមពលដល់ក្តារ។
    ឃ. ហៅពាក្យបញ្ជា aocl diagnose utility command ។

តំណភ្ជាប់ដែលពាក់ព័ន្ធ

  • មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់ Intel SoC FPGA Embedded Design Suite
  • OpenCL Design Exampទំព័រ les នៅលើ Altera webគេហទំព័រ
  • ការចងក្រងខឺណែលលីនុចឡើងវិញនៅទំព័រ 16
    ដើម្បីបើកដំណើរការ CMA ដំបូងអ្នកត្រូវតែចងក្រងខឺណែលលីនុចឡើងវិញ។
  • ការសាកសួរឈ្មោះឧបករណ៍នៃក្រុមប្រឹក្សាភិបាល FPGA របស់អ្នក (ធ្វើរោគវិនិច្ឆ័យ)

1.6 ការចងក្រង Linux Kernel សម្រាប់ Cyclone V SoC FPGA
មុនពេលដំណើរការកម្មវិធី OpenCL នៅលើក្រុមប្រឹក្សាភិបាល Cyclone V SoC FPGA អ្នកត្រូវតែចងក្រងប្រភពខឺណែលលីនុច ហើយចងក្រង និងដំឡើងកម្មវិធីបញ្ជាខឺណែល OpenCL Linux ។

  1. ការចងក្រងខឺណែលលីនុចឡើងវិញនៅទំព័រ 16
    ដើម្បីបើកដំណើរការ CMA ដំបូងអ្នកត្រូវតែចងក្រងខឺណែលលីនុចឡើងវិញ។
  2. ការចងក្រង និងដំឡើងកម្មវិធីបញ្ជាខឺណែល OpenCL Linux នៅលើទំព័រ 17 ចងក្រងកម្មវិធីបញ្ជាខឺណែល OpenCL Linux ប្រឆាំងនឹងប្រភពខឺណែលដែលបានចងក្រង។

1.6.1 ការចងក្រងខឺណែលលីនុចឡើងវិញ
ដើម្បីបើកដំណើរការ CMA ដំបូងអ្នកត្រូវតែចងក្រងខឺណែលលីនុចឡើងវិញ។

  1. ចុច GSRD v14.0 – ចងក្រងតំណលីនុចនៅលើទំព័រធនធាននៃ RocketBoards.org webគេហទំព័រដើម្បីចូលប្រើការណែនាំអំពីការទាញយក និងបង្កើតកូដប្រភពខឺណែលលីនុចឡើងវិញ។
    សម្រាប់ការប្រើប្រាស់ជាមួយ™ Intel FPGA SDK សម្រាប់ OpenCL សូមបញ្ជាក់ 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. យកចិត្តទុកដាក់៖ ចំនួនសរុបនៃអង្គចងចាំជាក់ស្តែងដែលមានសម្រាប់ដំណើរការ ARM នៅលើបន្ទះ SoC FPGA គឺ 1 GB ។ Intel មិនណែនាំឱ្យអ្នកកំណត់កម្មវិធីគ្រប់គ្រង CMA ជិត 1 GB ទេ។
  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 នៃរូបភាពកាតពន្លឺ។ សម្រាប់ការណែនាំលម្អិត សូមមើលសៀវភៅណែនាំអ្នកប្រើប្រាស់ GSRD ជាក់លាក់របស់ Cyclone V SoC FPGA នៅលើ Rocketboards.org។
  9. ចំណាំ៖ ដើម្បីបញ្ចូលកម្មវិធីបញ្ជាខឺណែល OpenCL លីនុចបានត្រឹមត្រូវ ដំបូងត្រូវផ្ទុក 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 board។
  11. ផ្ទៀងផ្ទាត់កំណែនៃខឺណែលលីនុចដែលបានដំឡើងដោយដំណើរការពាក្យបញ្ជា uname -r ។
  12. ដើម្បីផ្ទៀងផ្ទាត់ថាអ្នកបើក CMA ដោយជោគជ័យនៅក្នុងខឺណែល ដោយមាន SoC FPGA board ដំណើរការ សូមដំណើរការពាក្យបញ្ជា grep init_cma /proc/kallsyms ។
    CMA ត្រូវបានបើក ប្រសិនបើលទ្ធផលមិនទទេ។
  13. ដើម្បីប្រើខឺណែលលីនុចដែលបានចងក្រងឡើងវិញជាមួយ SDK សូមចងក្រង និងដំឡើងកម្មវិធីបញ្ជាខឺណែលលីនុច។

តំណភ្ជាប់ដែលពាក់ព័ន្ធ

  • សៀវភៅណែនាំអ្នកប្រើប្រាស់ Golden System Reference Design (GSRD)
  • ការបង្កើតរូបភាពកាត SD នៅទំព័រ 13
    ដោយសារតែ Cyclone V SoC FPGA គឺជាប្រព័ន្ធពេញលេញនៅលើបន្ទះឈីប អ្នកទទួលខុសត្រូវក្នុងការផ្តល់នូវនិយមន័យពេញលេញនៃប្រព័ន្ធ។

1.6.2 ការចងក្រង និងដំឡើងកម្មវិធីបញ្ជា OpenCL Linux Kernel
ចងក្រងកម្មវិធីបញ្ជាខឺណែល OpenCL Linux ប្រឆាំងនឹងប្រភពខឺណែលដែលបានចងក្រង។

ប្រភពកម្មវិធីបញ្ជាមាននៅក្នុងកំណែ Cyclone V SoC FPGA នៃ Intel FPGA Runtime Environment សម្រាប់ OpenCL ។ លើសពីនេះទៀត ត្រូវប្រាកដថាអ្នកបានផ្ទុក Intel FPGA SDK សម្រាប់ OpenCL-generated .rbf file ចូលទៅក្នុង FPGA ដើម្បីការពារការដំឡើងមិនត្រឹមត្រូវនៃម៉ូឌុលខឺណែលលីនុច។

  1. ទាញយកកំណែ Cyclone V SoC FPGA នៃ Intel FPGA Runtime Environment សម្រាប់កញ្ចប់ OpenCL ពីមជ្ឈមណ្ឌលទាញយកនៅលើ Altera webគេហទំព័រ។
    ក. ចុចប៊ូតុងទាញយកនៅក្បែរ Quartus Prime software edition។
    ខ. បញ្ជាក់កំណែចេញផ្សាយ ប្រព័ន្ធប្រតិបត្តិការ និងវិធីសាស្ត្រទាញយក។
    គ. ចុចផ្ទាំងកម្មវិធីបន្ថែម ហើយជ្រើសរើសដើម្បីទាញយក Intel FPGA
    បរិយាកាសពេលដំណើរការសម្រាប់ OpenCL Linux Cyclone V SoC TGZ ។
    ឃ. បន្ទាប់ពីអ្នកទាញយក aocl-rte- .arm32.tgz fileពន្លាវាទៅ
    ថតឯកសារដែលអ្នកមាន។
    ប្រភពអ្នកបើកបរគឺនៅក្នុង aocl-rte- .arm32/board/c5soc/ ថតកម្មវិធីបញ្ជា។
  2. ដើម្បីចងក្រងកម្មវិធីបញ្ជាខឺណែល OpenCL Linux ឡើងវិញ សូមកំណត់តម្លៃ KDIR នៅក្នុង Make របស់កម្មវិធីបញ្ជាfile ទៅថតដែលមានប្រភពខឺណែលលីនុច 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 ។
  8.  ហៅពាក្យបញ្ជា aocl diagnose utility command ។ ឧបករណ៍ប្រើប្រាស់វិនិច្ឆ័យនឹងត្រឡប់លទ្ធផលដែលឆ្លងកាត់បន្ទាប់ពីអ្នកដំណើរការ init_opencl.sh ដោយជោគជ័យ។

1.7 បញ្ហាដែលគេស្គាល់
បច្ចុប្បន្ននេះ មានដែនកំណត់មួយចំនួនលើការប្រើប្រាស់ Intel FPGA SDK សម្រាប់ OpenCL ជាមួយនឹងកម្មវិធី Cyclone V SoC Development Reference Platform។

  1. អ្នកមិនអាចបដិសេធអ្នកលក់ និងឈ្មោះក្រុមប្រឹក្សាភិបាលដែលបានរាយការណ៍ដោយខ្សែអក្សរ CL_DEVICE_VENDOR និង CL_DEVICE_NAME នៃការហៅទូរសព្ទ clGetDeviceInfo() នោះទេ។
  2. ប្រសិនបើម៉ាស៊ីនបែងចែកអង្គចងចាំថេរនៅក្នុងប្រព័ន្ធ DDR ដែលបានចែករំលែក (នោះគឺ HPS DDR) ហើយវាកែប្រែអង្គចងចាំថេរបន្ទាប់ពីការប្រតិបត្តិខឺណែល ទិន្នន័យនៅក្នុងអង្គចងចាំអាចនឹងហួសសម័យ។ បញ្ហានេះកើតឡើងដោយសារតែស្នូល FPGA មិនអាចចាប់យកប្រតិបត្តិការ CPU-to-HPS DDR បានទេ។
    ដើម្បីទប់ស្កាត់ការប្រតិបត្តិខឺណែលជាបន្តបន្ទាប់ពីការចូលប្រើទិន្នន័យហួសសម័យ សូមអនុវត្តវិធីដោះស្រាយមួយក្នុងចំណោមវិធីដោះស្រាយខាងក្រោម៖
    • កុំកែប្រែអង្គចងចាំថេរបន្ទាប់ពីការចាប់ផ្តើមរបស់វា។
    • ប្រសិនបើអ្នកត្រូវការសំណុំទិន្នន័យ __constant ច្រើន បង្កើតអង្គចងចាំថេរច្រើន។
    • ប្រសិនបើមាន សូមបែងចែកអង្គចងចាំថេរនៅក្នុង FPGA DDR នៅលើបន្ទះបង្កើនល្បឿនរបស់អ្នក។
  3. ឧបករណ៍ប្រើប្រាស់ SDK នៅលើ ARM គាំទ្រតែកម្មវិធី និងវិភាគពាក្យបញ្ជាឧបករណ៍ប្រើប្រាស់ប៉ុណ្ណោះ។
    ពាក្យបញ្ជាឧបករណ៍ប្រើប្រាស់ flash ដំឡើង និងលុបមិនត្រូវបានអនុវត្តចំពោះ Cyclone V SoC Development Kit សម្រាប់ហេតុផលខាងក្រោម៖
    ក. ឧបករណ៍ប្រើប្រាស់ដំឡើងត្រូវចងក្រងកម្មវិធីបញ្ជាខឺណែលលីនុច aclsoc_drv ហើយបើកវានៅលើ SoC FPGA ។ ម៉ាស៊ីនអភិវឌ្ឍន៍ត្រូវអនុវត្តការចងក្រង; ទោះយ៉ាងណាក៏ដោយ វាមានប្រភពខឺណែលលីនុចសម្រាប់ SoC FPGA រួចហើយ។ ប្រភពខឺណែលលីនុចសម្រាប់ម៉ាស៊ីនអភិវឌ្ឍន៍គឺខុសពីប្រភពសម្រាប់ SoC FPGA ។ ទីតាំងនៃប្រភពខឺណែលលីនុចសម្រាប់ SoC FPGA ទំនងជាមិនស្គាល់សម្រាប់អ្នកប្រើប្រាស់ SDK ។ ដូចគ្នាដែរ ឧបករណ៍​លុប​ដំឡើង​ក៏​មិន​មាន​សម្រាប់ Cyclone V SoC Development Kit ដែរ។
    ផងដែរ ការចែកចាយ aclsoc_drv ទៅកាន់ SoC board គឺមានការពិបាក ពីព្រោះការចែកចាយលំនាំដើមនៃ Cyclone V SoC Development Kit មិនមានខឺណែល Linux រួមបញ្ចូល files ឬកម្មវិធីចងក្រង GNU Compiler Collection (GCC) ។
    ខ. ឧបករណ៍ប្រើប្រាស់ពន្លឺតម្រូវឱ្យដាក់ .rbf file នៃការរចនា OpenCL នៅលើភាគថាស FAT32 នៃកាត micro SD ។ បច្ចុប្បន្ននេះ ភាគថាសនេះមិនត្រូវបានម៉ោនទេ នៅពេលដែលអ្នកប្រើប្រាស់ SDK បើកថាមពលលើក្តារ។ ដូច្នេះ វិធីល្អបំផុតដើម្បីធ្វើបច្ចុប្បន្នភាពភាគថាសគឺត្រូវប្រើកម្មវិធីអានកាតពន្លឺ និងម៉ាស៊ីនអភិវឌ្ឍន៍។
  4. នៅពេលប្តូររវាង Intel FPGA SDK សម្រាប់ OpenCL Offline Compiler អាចប្រតិបត្តិបាន។ 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 ។
ប្រវត្តិនៃការកែប្រែឯកសាររបស់ Intel FPGA SDK សម្រាប់ OpenCL Cyclone V SoC
មគ្គុទ្ទេសក៍ការបញ្ជូនឯកសារយោងវេទិកាអភិវឌ្ឍន៍កញ្ចប់

កាលបរិច្ឆេទ កំណែ ការផ្លាស់ប្តូរ
ឧសភា - 17 2017.05.08 •ការចេញផ្សាយការថែទាំ។
ខែតុលា ឆ្នាំ ២០១៦ 2016.10.31 • ប្តូរម៉ាក Altera SDK សម្រាប់ OpenCL ទៅ Intel FPGA SDK សម្រាប់ OpenCL ។
• ប្តូរម៉ាក Altera Offline Compiler ទៅ Intel FPGA SDK សម្រាប់ OpenCL Offline Compiler ។
ឧសភា - 16 2016.05.02 •ការណែនាំដែលបានកែប្រែលើការកសាង និងកែប្រែរូបភាពកាត SD ។
•ការណែនាំដែលបានកែប្រែលើការចងក្រងខឺណែលលីនុចឡើងវិញ និងកម្មវិធីបញ្ជាខឺណែល OpenCL Linux ។
ខែវិច្ឆិកា - 15 2015.11.02 •ការចេញផ្សាយការថែទាំ និងផ្លាស់ប្តូរឧទាហរណ៍នៃ Quartus II ទៅ Quartus Prime ។
ឧសភា - 15 15.0.0 •នៅក្នុង FPGA Reconfiguration បានដកចេញការណែនាំដើម្បីរៀបចំឡើងវិញនូវស្នូល FPGA
ជាមួយនឹង ។ រូបភាព rbf ដោយហៅឆ្មា fileឈ្មោះ > ។ rbf
> /dev/ fpga0 ពាក្យបញ្ជាព្រោះវិធីសាស្ត្រនេះមិនត្រូវបានណែនាំទេ។
ខែធ្នូ -២០១៨ 14.1.0 •បានប្តូរឈ្មោះឯកសារជា Altera Cyclone V SoC Development Kit Reference Platform Porting Guide។
•បានធ្វើបច្ចុប្បន្នភាពឧបករណ៍ប្រើប្រាស់ reprogram ទៅកម្មវិធី aoclfileឈ្មោះ>.aocx ពាក្យបញ្ជាឧបករណ៍ប្រើប្រាស់។
•បានអាប់ដេតឧបករណ៍ប្រើប្រាស់រោគវិនិច្ឆ័យទៅជា aocl diagnose និង aocl diagnose ពាក្យបញ្ជាឧបករណ៍ប្រើប្រាស់។
•បានធ្វើបច្ចុប្បន្នភាពនីតិវិធីក្នុងការបញ្ជូនវេទិកាឯកសារយោងទៅកាន់ផ្នែកក្រុមប្រឹក្សាភិបាល SoC របស់អ្នក ដើម្បីរួមបញ្ចូលការណែនាំអំពីការច្រក និងការកែប្រែភាគថាសក្រុមប្រឹក្សាភិបាល c5soc ដើម្បីបង្កើតភាគថាសពេលវេលាសម្អាតសម្រាប់លំហូរបិទពេលវេលាដែលបានធានា។
• បញ្ចូលប្រធានបទ ការធ្វើបច្ចុប្បន្នភាពវេទិកាឯកសារយោងដែលភ្ជាប់មកជាមួយ ដើម្បីរៀបរាប់អំពីនីតិវិធីសម្រាប់កិច្ចការខាងក្រោម៖
1. មិនរាប់បញ្ចូលប្លុកប្រព័ន្ធដំណើរការរឹង (HPS) នៅក្នុងភាគថាសក្តារ
2. អាប់ដេតរូបភាពកាត SD
• បានធ្វើបច្ចុប្បន្នភាពផ្នែករូបភាពកាត SD Flash ។ ត្រូវបានណែនាំដោយប្រើកំណែ 14.0 នៃរូបភាព Golden System Reference Design (GSRD) ជាចំណុចចាប់ផ្តើមជំនួសឱ្យរូបភាពដែលមានជាមួយ SoC Embedded Design Suite (EDS)។
•បានធ្វើបច្ចុប្បន្នភាពការចងក្រងឡើងវិញនូវខឺណែលលីនុច និងផ្នែកកម្មវិធីបញ្ជាខឺណែល OpenCL លីនុច៖
1. បានបន្ថែមការណែនាំដើម្បីកំណត់អថេរ CROSS COMPILE ។
2.បានផ្លាស់ប្តូរពាក្យបញ្ជាដែលអ្នកដំណើរការដើម្បីផ្ទៀងផ្ទាត់ថា CMA ត្រូវបានបើកដោយជោគជ័យ។
ខែកក្កដា - 14 14.0.0 •ចេញផ្សាយ​ដំបូង។

ឯកសារ/ធនធាន

Intel FPGA SDK សម្រាប់ OpenCL [pdf] ការណែនាំអ្នកប្រើប្រាស់
FPGA SDK សម្រាប់ OpenCL, FPGA SDK, SDK សម្រាប់ OpenCL, SDK

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *