intel - logoFPGA SDK no OpenCL
Ke alakaʻi hoʻohana

UG-OCL009
2017.05.08
Hōʻano hou ʻia no Intel® Quartus® Prime Design Suite: 17.0

RENPHO RF FM059HS WiFi Smart Foot Massager - ikona 5Kau inoa
SAMSUNG SM A136UZKZAIO Galaxy A13 5G Smartphone - ikona 12Hoʻouna Manaʻo

Intel® FPGA SDK no OpenCL™ Intel® Cyclone®V SoC Development Kit Reference Platform Porting Guide

Hōʻike ka V SoC Development Kit Reference Platform Porting Guide i ka hoʻolālā ʻana i ka lako a me ka lako polokalamu o ka Intel Cyclone V SoC Development Kit Reference Platform (c5soc) no ka hoʻohana ʻana me ka Intel Software Development Kit (SDK) no OpenCL ʻO ka Intel ® FPGA SDK no OpenCL ™ Intel Cyclone. ® . Ma mua o kou hoʻomaka ʻana, paipai ikaika ʻo Intel iā ʻoe e hoʻomaʻamaʻa iā ʻoe iho me nā ʻike o nā palapala aʻe:

  1. Intel FPGA SDK no OpenCLIntel Cyclone V SoC Ke alakaʻi hoʻomaka
  2. Intel FPGA SDK no OpenCL Custom Platform Toolkit Guide Guide
  3. Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual Eia kekahi, e nānā i ka Cyclone V SoC Development Kit a me SoC Embedded Design Suite ʻaoʻao o ka Altera webpaena no ka ʻike hou aku. 1 2

Nānā: Manaʻo ʻo Intel he ʻike hohonu kāu i ka Intel FPGA SDK no OpenCL Custom Platform Toolkit User Guide. ʻAʻole wehewehe ka Cyclone V SoC Development Kit Reference Platform Porting Guide i ka hoʻohana ʻana i ka Toolkit Platform Custom o SDK no ka hoʻokō ʻana i kahi Papahana Kūʻai no ka Cyclone V SoC Development Kit. Hōʻike wale ia i nā ʻokoʻa ma waena o ke kākoʻo SDK ma ka Cyclone V SoC Development Kit a me kahi generic Intel FPGA SDK no OpenCL Custom Platform.

Nā loulou pili

  • Intel FPGA SDK no OpenCL Cyclone V SoC Ke alakaʻi hoʻomaka
  • Intel FPGA SDK no OpenCL Custom Platform Toolkit Guide Guide
  • Cyclone V Device Handbook, Volume 3: Hard Processor System Reference Manual
  • ʻO Cyclone V SoC Development Kit a me SoC Embedded Design Suite ʻaoʻao ma ka Altera webpaena
  1. ʻO OpenCL a me ka hōʻailona OpenCL nā hōʻailona kūʻai Apple Inc. i hoʻohana ʻia e ka Khronos Group™.
  2. Hoʻokumu ʻia ka Intel FPGA SDK no OpenCL ma kahi Khronos Specification i paʻi ʻia, a ua hala i ka Khronos Conformance Testing Process. Hiki ke loaʻa ke kūlana conformance o kēia manawa ma www.khronos.org/conformance.

Huina Intel. Ua mālama ʻia nā kuleana āpau. ʻO Intel, ka Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus a me Stratix huaʻōlelo a me nā hōʻailona he mau hōʻailona o Intel Corporation a i ʻole kāna mau lālā ma US a/a i ʻole nā ​​ʻāina ʻē aʻe. Mālama ʻo Intel i ka hana o kāna mau huahana FPGA a me semiconductor i nā kikoʻī o kēia manawa e like me ka palapala hōʻoia maʻamau o Intel, akā aia ke kuleana e hoʻololi i nā huahana a me nā lawelawe i kēlā me kēia manawa me ka ʻole o ka hoʻolaha. ʻAʻole ʻo Intel i kuleana a i ʻole kuleana e puka mai ana mai ka noi a i ʻole ka hoʻohana ʻana i kekahi ʻike, huahana, a i ʻole lawelawe i wehewehe ʻia ma ʻaneʻi koe wale nō i ʻae ʻia ma ke kākau ʻana e Intel. Manaʻo ʻia nā mea kūʻai aku Intel e loaʻa i ka mana hou o nā kikoʻī o nā hāmeʻa ma mua o ka hilinaʻi ʻana i kekahi ʻike i paʻi ʻia a ma mua o ke kau ʻana i nā kauoha no nā huahana a i ʻole nā ​​​​lawelawe.
* Hiki ke koi ʻia nā inoa a me nā hōʻailona ʻē aʻe ma ke ʻano he waiwai o nā poʻe ʻē aʻe.

1.1.1 Cyclone V SoC Development Kit Reference Platform Board Nā ʻano like ʻole
Aia ka Intel FPGA SDK no OpenCL Cyclone V SoC Development Kit Reference Platform i ʻelua mau ʻano papa.

  • papa c5soc
    Hāʻawi kēia papa paʻamau i ke komo i ʻelua mau waihona hoʻomanaʻo DDR. Hiki ke loaʻa ka HPS DDR e ka FPGA a me ka CPU. ʻO ka FPGA DDR hiki ke loaʻa wale i ka FPGA.
  • c5soc_sharedonly papa
    Loaʻa i kēia ʻano papa ka hoʻohui HPS DDR wale nō. ʻAʻole hiki ke loaʻa ka FPGA DDR. ʻOi aku ka maikaʻi o kēia ʻano papa no ka mea ʻoi aku ka liʻiliʻi o ka lako pono e kākoʻo i hoʻokahi waihona hoʻomanaʻo DDR. ʻO ka papa c5soc_sharedonly kahi papahana prototyping maikaʻi no kahi papa hana hope me kahi waihona hoʻomanaʻo DDR hoʻokahi.
    No ka huli ʻana i kēia ʻano papa i ka wā e hoʻohui ai i kāu kernel OpenCL, e hoʻokomo i ka koho -board c5soc_sharedonly i kāu kauoha aoc.
    No ka ʻike hou aku ma ka –board koho o ke kauoha aoc, e nānā i ka Intel FPGA SDK no OpenCL Programming Guide.

Nā loulou pili
Hoʻopili i kahi Kernel no kahi Papa FPGA kikoʻī (–papa )
1.1.2 Maʻiʻo o ka Cyclone V SoC Development Kit Reference Platform
Aia ka Cyclone V SoC Development Kit Reference Platform i kēia mau mea files a me nā papa kuhikuhi:

File a i ʻole Papa kuhikuhi wehewehe
board_env.xml ʻŌlelo Mākaʻikaʻi hiki ke hoʻonui ʻia (XML) file e wehewehe ana i ka c5soc i ka Intel FPGA SDK no OpenCL.
linux_sd_card_image.tgz Kiʻi kāleka SD i hoʻopaʻa ʻia file Loaʻa i nā mea a pau e pono ai ka mea hoʻohana SDK e hoʻohana i ka Cyclone V SoC Development Kit me ka SDK.
lima32 Papa kuhikuhi i loaʻa kēia mau mea:

1.1.3 Nā hiʻohiʻona pili o ka Cyclone V SoC Development Kit

Hōʻike ka papa inoa ma lalo nei i nā ʻāpana Cyclone V SoC Development Kit a me nā hiʻohiʻona e pili ana i ka Intel FPGA SDK no OpenCL:

  • ʻO Dual-core ARM Cortex-A9 CPU e holo ana i ka 32-bit Linux.
  • Kaʻaahi eXtensible Interface (AXI) kiʻekiʻe ma waena o ka HPS a me ka lole kumu FPGA.
  • ʻElua mau mana hoʻomanaʻo DDR paʻakikī, e hoʻopili ana kēlā me kēia me kahi 1 gigabyte (GB) DDR3 SDRAM.
    - Hoʻokahi mea hoʻoponopono DDR hiki ke loaʻa i ka FPGA core wale nō (ʻo ia hoʻi, FPGA DDR).
    — Hiki ke loaʻa i ka HPS a me ka FPGA ka mea hoʻoponopono DDR ʻē aʻe (ʻo ia hoʻi, HPS DDR). Hāʻawi kēia mea hoʻoponopono kaʻana like i ka kaʻana hoʻomanaʻo manuahi ma waena o ka CPU a me ka FPGA core.
  • Hiki i ka CPU ke hoʻonohonoho hou i ka lole kumu FPGA.

1.1.3.1 Cyclone V SoC Development Kit Reference Platform Design Goals and Decisions Ua hoʻokumu ʻo Intel i ka hoʻokō ʻana o ka Cyclone V SoC Development Kit Reference Platform ma kekahi mau pahuhopu hoʻolālā a me nā hoʻoholo. Manaʻo ʻo Intel e noʻonoʻo ʻoe i kēia mau pahuhopu a me nā hoʻoholo i ka wā e kau ai ʻoe i kēia Reference Platform i kāu papa SoC FPGA.
Aia ma lalo iho nā pahuhopu hoʻolālā c5soc:

  1. Hāʻawi i ka bandwidth kiʻekiʻe loa ma waena o nā kernels ma ka FPGA a me ka ʻōnaehana hoʻomanaʻo DDR.
  2. E hōʻoia i ka helu ʻana ma ka FPGA (ʻo ia hoʻi, OpenCL kernels) ʻaʻole keʻakeʻa i nā hana CPU ʻē aʻe e pili ana i nā peripheral lawelawe.
  3. E waiho i nā kumu waiwai FPGA e like me ka hiki no ka helu kernel ma kahi o nā mea kikowaena.

Aia ma lalo iho nā hoʻoholo hoʻolālā kiʻekiʻe i nā hopena pololei o nā pahuhopu hoʻolālā o Intel:

  1. Hoʻohana wale ka Reference Platform i nā mea hoʻomanaʻo hoʻomanaʻo DDR paʻakikī me ka hoʻonohonoho ākea (256 bits).
  2. Hoʻopili pololei ka FPGA me ka HPS DDR memory controller, me ka ʻole o ka hoʻokomo ʻana i ka pahi AXI a me ka hoʻololi L3 i loko o ka HPS. Hāʻawi ke kamaʻilio pololei i ka bandwidth maikaʻi loa i DDR, a mālama i ka helu FPGA mai ka hoʻopili ʻana i nā kamaʻilio ma waena o ka CPU a me kona ʻaoʻao.
  3. ʻAʻole ʻo Scatter-gather hoʻomanaʻo hoʻomanaʻo pololei (SG-DMA) i ʻāpana o ka loiloi interface FPGA. Ma kahi o ka hoʻoili ʻana i nā ʻikepili nui ma waena o nā ʻōnaehana hoʻomanaʻo DDR, e mālama i ka ʻikepili ma ka HPS DDR kaʻana like. ʻOi aku ka maikaʻi o ke komo pololei ʻana i ka hoʻomanaʻo CPU e ka FPGA ma mua o DMA. Mālama ʻo ia i nā kumuwaiwai (ʻo ia hoʻi, FPGA wahi) a maʻalahi i ka mea hoʻokele kernel Linux.
    'Ōlelo Aʻo: ʻO ka hoʻololi hoʻomanaʻo ma waena o ka ʻōnaehana HPS DDR kaʻana like a me ka ʻōnaehana DDR hiki ke loaʻa wale i ka FPGA he lohi loa. Inā koho ʻoe
    e hoʻololi i ka hoʻomanaʻo ma kēia ʻano, e hoʻohana iā ia no nā ʻikepili liʻiliʻi loa.
  4. Hoʻohana ka mea hoʻokipa a me ka mea hana i ka hoʻoili ʻana i ka ʻikepili non-DMA ma waena o kekahi ma o ke alahaka HPS-to-FPGA (H2F), me ka hoʻohana ʻana i kahi awa 32-bit hoʻokahi. ʻO ke kumu, me ka ʻole o DMA, hiki i ka Linux kernel ke hoʻopuka i hoʻokahi 32-bit heluhelu a kākau paha noi, no laila ʻaʻole pono e loaʻa kahi pilina ākea.
  5. Hoʻouna ka mea hoʻokipa i nā hōʻailona mana i ka hāmeʻa ma o kahi alahaka H2F (LH2F) māmā.
    No ka mea, ʻo nā hōʻailona hoʻomalu mai ka mea hoʻokipa a i ka hāmeʻa he mau hōʻailona bandwidth haʻahaʻa, kūpono kahi alahaka LH2F no ka hana.

1.2 Ke lawe ʻana i ke kahua kuhikuhi i kāu Papa SoC FPGA
No ka lawe ʻana i ka Cyclone V SoC Development Kit Reference Platform i kāu papa SoC FPGA, e hana i kēia mau hana:

  1. E koho i ka hoʻomanaʻo DDR hoʻokahi a i ʻole nā ​​mana hoʻomanaʻo DDR ʻelua o ka c5soc Reference Platform ma ke ʻano he hoʻomaka o kāu hoʻolālā.
  2. Hōʻano hou i nā wahi pine ma ka ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, kahi ʻo ALTERAOCLSDKROOT ke ala i kahi o ka Intel FPGA SDK no ka hoʻokomo OpenCL, a ʻo ia ka inoa papa kuhikuhi o ka ʻano papa. ʻO ka papa kuhikuhi c5soc_sharedonly no ka ʻano papa me hoʻokahi ʻōnaehana hoʻomanaʻo DDR. ʻO ka papa kuhikuhi c5soc no ka ʻano papa me nā ʻōnaehana hoʻomanaʻo DDR ʻelua.
  3.  Hoʻohou i nā hoʻonohonoho DDR no nā poloka HPS a/a i ʻole FPGA SDRAM ma ka ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
    4. Pono nā Intel FPGA SDK a pau no nā papa papa makemake OpenCL e hoʻokō pono i ka pani manawa. No laila, pono e hoʻomaʻemaʻe ke kau ʻana o ka hoʻolālā. No ka lawe ʻana i ka ʻāpana papa c5soc (acl_iface_partition.qxp) i kāu papa SoC FPGA, e hana i kēia mau hana:
    No nā ʻōlelo kikoʻī e pili ana i ka hoʻololi ʻana a me ka mālama ʻana i ka ʻāpana papa, e nānā i ka Quartus
    ʻO ka Hui Hoʻohui Nui no ka Mokuna Hoʻolālā Hierarchical a me Team-Based Design o ka Quartus Prime Standard Edition Handbook.
    a. Wehe i ka acl_iface_partition.qxp mai ka papa kuhikuhi ALTERAOCLSDKROOT/board/c5soc/c5soc.
    b. E hoʻā i ka ʻāina acl_iface_region LogicLock™ ma ka hoʻololi ʻana i ke kauoha Tcl set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region e hoʻonoho i_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
    c. E hōʻuluʻulu i kahi kernel OpenCL no kāu papa.
    d. Inā pono, e hoʻololi i ka nui a me ka wahi o ka māhele LogicLock.
    e. Ke ʻoluʻolu ʻoe ua maʻemaʻe ke kau ʻana o kāu hoʻolālā, e hoʻokuʻu aku i kēlā ʻāpana e like me ka acl_iface_partition.qxp Quartus Prime Exported Partition. File.
    E like me ka wehewehe ʻana ma ka ʻāpana Establishing Guaranteed Time Flow o ka AIntel FPGA SDK no OpenCL Custom Platform Toolkit User Guide, ma ka lawe ʻana mai i kēia .qxp  file i loko o ka hoʻolālā kiʻekiʻe, hoʻokō ʻoe i ke koi o ka hāʻawi ʻana i kahi hoʻolālā papa me kahi kahe pani manawa paʻa.
    No nā mea e pili ana i ka maikaʻi o nā hualoaʻa (QoR) o kāu ʻāpana i lawe ʻia aku, e nānā i ka General Quality of Results Considerations for the Exported Board Partition section ma Intel FPGA SDK no OpenCL Custom Platform Toolkit User Guide.
    f. Hoʻopau i ka ʻāina acl_iface_region LogicLock ma ka hoʻihoʻi ʻana i ke kauoha ma ka ʻanuʻu 2 hoʻi i set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region.
  4. Inā hoʻohana kāu papa SoC FPGA i nā pine ʻokoʻa a me nā ʻaoʻao o ka poloka HPS, e hana hou i ka preloader a me ke kumu kumu lāʻau (DTS) file. Inā hoʻololi ʻoe i nā hoʻonohonoho hoʻonohonoho hoʻonohonoho hoʻomanaʻo hoʻomanaʻo HPS DDR, e hana hou i ka preloader.
  5. E hana i ke kiʻi kāleka flash SD.
  6. E hana i kāu Kūlana Kūlana, me ke kiʻi kāleka flash SD.
  7. E noʻonoʻo i ka hana ʻana i kahi mana holo kaiapuni o kāu Custom Platform no ka hoʻohana ʻana me ka Intel FPGA Runtime Environment (RTE) no OpenCL. ʻAʻole i loaʻa i ka mana RTE o kāu Custom Platform nā papa kuhikuhi lako a me ke kiʻi kāleka flash SD. Hoʻouka ʻia kēia Papahana Kūʻai ma luna o ka ʻōnaehana SoC FPGA e ʻae i nā noi hoʻokipa e holo. Ma ka hoʻohālikelike, pono ka SDK version o ka Custom Platform no ka SDK e hōʻuluʻulu i nā kernels OpenCL.
    Manaʻo kōkua: Hiki iā ʻoe ke hoʻohana i ka mana SDK o kāu Pūnaewele Kūʻai no ka RTE. E mālama
    wahi, e wehe i ke kiʻi kāleka flash SD mai ka mana RTE o kāu Papa Kūlana.
  8. E ho'āʻo i kāu Papahana Kūʻai.
    E nānā i ka ʻaoʻao hoʻāʻo ʻana i ka hoʻolālā ʻana o ka Hardware o ka Intel FPGA SDK no OpenCL Custom Platform Toolkit User Guide no ka ʻike hou aku.

Nā loulou pili

  • Ke ho'āʻo nei i ka Hoʻolālā Lako
  • Quartus Prime Incremental Compilation for Hierarchical and Team-Based Design
  • Hoʻokumu i ka holo ʻana o ka manawa
  • Noʻonoʻo ʻia ka maikaʻi o nā hopena no ka ʻāpana papa i lawe ʻia aku

1.2.1 Hoʻohou ʻana i kahi kahua kuhikuhi Ported Reference Platform
Ma ka mana o kēia manawa o ka Cyclone V SoC Development Kit Reference Platform, aia ka poloka HPS i loko o ka pā e wehewehe ana i nā loina nonkernel āpau. Eia naʻe, ʻaʻole hiki iā ʻoe ke hoʻokuʻu aku i ka HPS ma ke ʻano o ka .qxp file. No ka hōʻano hou ʻana i kahi Papahana Kūlana āu i hoʻololi ai mai kahi mana mua o c5soc, e hoʻokō i ke kahe mālama QXP, e hoʻohou i ke kiʻi kāleka flash SD no ka loaʻa ʻana o ke kaiapuni runtime hou, a hoʻohou i ka board_spec.xml file e hiki ai i ka neʻe ʻana.
ʻO ka Altera® SDK no ka OpenCL version 14.1 a ma waho aʻe o ka hoʻokolohua board_spec.xml file no ka ʻike papa, a hoʻokō i nā hōʻano hou. No ka mea, hoʻololi ʻoe i ka
hoʻolālā ma ka hoʻokō ʻana i ke kahe mālama QXP, pono ʻoe e hōʻano hou i ka board_spec.xml file i kona ʻano ma ka mana o kēia manawa. Hoʻohou i ka file hiki i ka SDK ke hoʻokaʻawale i waena o nā Papahana Kuʻuna i mālama ʻole ʻia a me nā Papahana Kūʻai Kūʻē QXP o kēia manawa. E nānā i ka Custom Platform Automigration forward Compatibility in the Intel FPGA SDK for OpenCL Custom Platform Toolkit User Guide no ka ʻike hou aku.

  1. No ka hoʻokō ʻana i ke kahe mālama QXP i loko o kahi hoʻolālā lako Cyclone V SoC FPGA i lawe ʻia mai kahi mana mua o c5soc, e hana i kēia mau ʻanuʻu e hana i kahi ʻāpana e kāpae i ka HPS mai ka .qxp file:
    a. Ma mua o ka hana ʻana i kahi ʻāpana a puni ka loiloi nonkernel, e hana i kahi pā a puni ka HPS ma ka .qsf Quartus Prime Settings File.
    No example:
    # E hoʻokaʻawale lima i ka laʻana e hoʻohālike ana i ka HPS i hoʻolaʻa ʻia I/O set_instance_assignment -inoa PARTITION_HIERARCHY borde_18261 -i “system: the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps|system_acl_iface_hps| system_acl_iface_hps_0_hps_io_border:palena” -section_id “system_acl_iface_hps_0_hps_io_border:palena”
    # E hoʻonohonoho i ka ʻāpana i kahi ʻano HPS_PARTITION e hana pono ʻia e ke koena o Quartus
    set_global_assignment -inoa PARTITION_TYPE HPS_PARTITION -section_id “system_acl_iface_hps_0_hps_io_border:border”
    quartus_cdb luna -c luna
    –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=on
    –incremental_compilation_export_flatten=off
    Ma hope o kou haʻalele ʻana i ka HPS mai ka ʻāpana, hiki iā ʻoe ke hoʻokomo i ka .qxp file a hoʻohui i kāu hoʻolālā.
  2. Hoʻohou i ke kiʻi kāleka flash SD me ka mana o kēia manawa o ka Intel FPGA RTE no OpenCL ma ka hana ʻana i kēia mau hana:
    a. E kau i ka file papa kuhikuhi (fat32) a hoʻonui file ʻōnaehana (ext3) ʻāpana i ke kiʻi i loaʻa ma ke ʻano he mau mea hoʻihoʻi. No nā kuhikuhi kikoʻī, e nānā i ka ʻanuʻu 2 i ke kūkulu ʻana i kahi kiʻi kāleka kāleka SD.
    b. Ma ka papa kuhikuhi /home/root/opencl_arm32_rte, wehe i ka files mai ka mana mua o ka RTE.
    c. Hoʻoiho a wehe i ka verison o kēia manawa o ka RTE i loko o ka papa kuhikuhi /home/root/opencl_arm32_rte.
    d. I ka /driver/version.h file o kāu Papahana Kuʻuna, hoʻohou i ka hana ACL_DRIVER_VERSION iā . (no ka example, 16.1.x, kahi ʻo 16.1 ka ʻaoʻao SDK, a ʻo x ka mana hoʻokele āu i hoʻonohonoho ai).
    e. Hana hou i ke kalaiwa.
    f. Holoi i ka waihona (mau) lako o kāu Papahana Kūmole. E kope i ka Custom Platform, me ka mea hoʻokele hou, i ka papa kuhikuhi /home/root/opencl_arm_rte/board.
    g. E kope i ka Altera.icd file mai ka papa kuhikuhi /home/root/opencl_arm32_rte a hoʻohui i ka papa kuhikuhi /etc/OpenCL/vendor.
    h. Wehe a hoʻāʻo i ke kiʻi hou. No nā kuhikuhi kikoʻī, e nānā i nā ʻanuʻu 8 a 11 i ke kūkulu ʻana i kahi kiʻi kāleka kāleka SD.

Nā loulou pili

  • Ke hana ʻana i kahi kiʻi kāleka SD Flash ma ka ʻaoʻao 14
    Loaʻa iā ʻoe ke koho e hana i kahi kiʻi kāleka kāleka SD hou.
  • ʻO ka hoʻoneʻe ʻana i ke kahua maʻamau no ka hoʻohālikelike ʻana i mua

1.3 Kākoʻo lako polokalamu no ka hoʻomanaʻo ʻana
ʻO ka hoʻomanaʻo kino kaʻana like ma waena o FPGA a me CPU ka hoʻomanaʻo i makemake ʻia no nā kernels OpenCL e holo ana ma SoC FPGAs. Ma muli o ka loaʻa ʻana o ka FPGA i ka hoʻomanaʻo kino like ʻole, ʻaʻole i loaʻa iā ia nā papa ʻaoʻao o ka CPU e kahakiʻi ana i nā helu kuhi o ka mea hoʻohana i nā ʻaoʻao ʻaoʻao kino.
E pili ana i ka lako lako, hiki i nā kernels OpenCL ke komo i ka hoʻomanaʻo kino ma o ka pilina pololei i ka HPS DDR hard memory controller. E pili ana i ka lako polokalamu, ʻo ke kākoʻo no ka hoʻomanaʻo kino like ʻana e pili ana i kēia mau manaʻo:

  1. Nā hoʻokō polokalamu maʻamau no ka hoʻokaʻawale ʻana i ka hoʻomanaʻo ma ka CPU (no ka exampʻAʻole hiki i ka malloc () hana) ke hoʻokaʻawale i kahi ʻāpana hoʻomanaʻo e hiki ai i ka FPGA ke hoʻohana.
    ʻO ka hoʻomanaʻo i hoʻokaʻawale ʻia e ka hana malloc() pili i ke kikowaena helu wahi hoʻomanaʻo virtual, akā ʻaʻole paha e pili kino nā ʻaoʻao kino. No laila, hiki i ka mea hoʻokipa ke hoʻokaʻawale i nā wahi hoʻomanaʻo pili kino. Eia naʻe, ʻaʻole i loaʻa kēia mana i nā noi hoʻohana-space ma Linux. No laila, pono e hana ka mea hoʻokele kernel Linux i ka hoʻokaʻawale.
  2. Aia ka mea hoʻokele kernel OpenCL SoC FPGA Linux i ka hana mmap() no ka hoʻokaʻawale ʻana i ka hoʻomanaʻo kino kino a palapala ʻia i loko o ka wahi mea hoʻohana. Ke hoʻohana nei ka hana mmap() i ke kelepona kernel Linux maʻamau dma_alloc_coherent() e noi i nā wahi hoʻomanaʻo pili kino no ke kaʻana like ʻana me kahi hāmeʻa.
  3. Ma ka Linux kernel paʻamau, dma_alloc_coherent() ʻaʻole i hoʻokaʻawale i ka hoʻomanaʻo pili kino ma mua o 0.5 megabytes (MB) ka nui. No ka ʻae ʻana iā dma_alloc_coherent() e hoʻokaʻawale i ka nui o ka hoʻomanaʻo pili kino, hiki i ka hiʻohiʻona contiguous memory allocator (CMA) o ka kernel Linux a laila hoʻohui hou i ka kernel Linux.
    No ka Cyclone V SoC Development Kit Reference Platform, mālama ʻo CMA i ka 512 MB mai ka 1 GB o ka hoʻomanaʻo kino. Hiki iā ʻoe ke hoʻonui a hoʻemi paha i kēia waiwai, ma muli o ka nui o ka hoʻomanaʻo like ʻana e pono ai ka noi. ʻAʻole hiki i ke kelepona dma_alloc_coherent() ke hoʻokaʻawale i ka 512 MB piha o ka hoʻomanaʻo pili kino; akā naʻe, hiki ke loaʻa ma kahi o 450 MB o ka hoʻomanaʻo.
  4. Hiki i ka CPU ke hūnā i ka hoʻomanaʻo i hoʻokaʻawale ʻia e ka dma_alloc_coherent(). ʻO ka mea kūikawā, ʻaʻole ʻike ʻia nā hana kākau mai ka palapala hoʻokipa e nā kernels OpenCL. ʻO ka hana mmap() ma ka OpenCL SoC FPGA Linux kernel mea hoʻokele i loaʻa nā kelepona i ka pgprot_noncached() a i ʻole remap_pf_range() hana e hoʻopau i ka hoʻopaʻa ʻana no kēia māhele o ka hoʻomanaʻo.
  5. Ma hope o ka hoʻokaʻawale ʻana o ka hana dma_alloc_coherent () i ka hoʻomanaʻo pili kino, e hoʻihoʻi ka hana mmap () i ka helu virtual i ka hoʻomaka ʻana o ka laulā, ʻo ia ka lōʻihi o ka helu o ka hoʻomanaʻo āu e hoʻokaʻawale ai. Pono ka palapala hoʻokipa i kēia helu virtual e komo i ka hoʻomanaʻo. Ma ka ʻaoʻao ʻē aʻe, pono nā kernels OpenCL i nā ʻōlelo kino. Mālama ka mea hoʻokele kernel Linux i ka palapala ʻāina helu virtual-to-physical. Hiki iā ʻoe ke palapala ʻāina i nā helu kino i hoʻihoʻi ʻia e mmap() i nā helu kino maoli ma ka hoʻohui ʻana i kahi nīnau i ka mea hoʻokele.
    Aia ka aocl_mmd_shared_mem_alloc() MMD application programming interface (API) i nā nīnau penei:
    a. ʻO ka hana mmap () e hoʻokaʻawale i ka hoʻomanaʻo a hoʻihoʻi i ka helu virtual.
    b. ʻO ka nīnau ʻē aʻe e palapala ʻāina i ka helu kuhi hewa i hoʻihoʻi ʻia i ka helu kino.
    A laila hoʻihoʻi ka aocl_mmd_shared_mem_alloc() MMD API i nā helu ʻelua
    —ʻo ka helu wahi i hoʻihoʻi ʻia ʻo ia ka helu virtual, a hele ka helu kino i device_ptr_out.
    Nānā: Hiki i ka mea hoʻokele kaʻa ke palapala ʻāina i nā ʻōlelo kikoʻī i hoʻihoʻi ʻia ka hana mmap() i nā helu kino. Inā ʻoe e noi i ka helu kino o kekahi mea kuhikuhi virtual, e hoʻihoʻi ka mea hoʻokele i kahi waiwai NULL.

'Ōlelo Aʻo: Manaʻo ka Intel FPGA SDK no nā hale waihona puke OpenCL runtime ʻo ka hoʻomanaʻo kaʻana like ka hoʻomanaʻo mua i helu ʻia ma ka board_spec.xml file. I nā huaʻōlelo ʻē aʻe, ʻo ka helu kino i loaʻa i ka mea hoʻokele kernel Linux e lilo i ka helu Avalon® i hāʻawi ʻia e ka OpenCL kernel i ka HPS SDRAM.
E pili ana i ka hale waihona puke runtime, e hoʻohana i ka clCreateBuffer() kelepona e hoʻokaʻawale i ka hoʻomanaʻo like ʻana ma ke ʻano he mea pale ma ke ʻano penei:

  • No ka ʻokoʻa papa ʻelua-DDR me ka hoʻomanaʻo kaʻana like ʻole a me ka hoʻomanaʻo ʻole, hoʻokaʻawale ʻo clCreateBuffer() i ka hoʻomanaʻo like inā ʻoe e kuhikuhi i ka hae CL_MEM_USE_HOST_PTR. ʻO ka hoʻohana ʻana i nā hae ʻē aʻe ke kumu o clCreateBuffer() e hoʻokaʻawale i ka buffer i ka hoʻomanaʻo ʻole.
  • No ka ʻokoʻa papa hoʻokahi-DDR me ka hoʻomanaʻo kaʻana like wale nō, hoʻokaʻawale ʻo clCreateBuffer() i ka hoʻomanaʻo kaʻana like ʻole me ka hae āu e kuhikuhi ai.
    I kēia manawa, ʻo ke kākoʻo Linux 32-bit ma ARM CPU e hoʻomalu i ka nui o ke kākoʻo hoʻomanaʻo like ʻana i nā hale waihona puke SDK runtime. I nā huaʻōlelo ʻē aʻe, ua hui ʻia nā hale waihona puke runtime i nā kaiapuni ʻē aʻe (no ka example, x86_64 Linux a i ʻole 64-bit Windows) ʻaʻole kākoʻo i ka hoʻomanaʻo like.
    ʻAʻole i hoʻokō ʻo C5soc i ka hoʻomanaʻo heterogeneous e hoʻokaʻawale i waena o ka hoʻomanaʻo like ʻole a me ka hoʻomanaʻo ʻole no nā kumu penei:
    1. Moʻolelo—ʻAʻole i loaʻa ke kākoʻo hoʻomanaʻo heterogeneous i ka wā i hana mua ʻia ai ke kākoʻo hoʻomanaʻo like.
    2. Kūlike like—No ka mea, he maʻamau hamama ʻo OpenCL, mālama ʻo Intel i ka kūlike ma waena o nā mea kūʻai platform computing heterogeneous. No laila, hoʻohana ʻia ka ʻokoʻa like me nā hale kūʻai papa ʻē aʻe e hoʻokaʻawale a hoʻohana i ka hoʻomanaʻo like.

1.4 Hoʻonohonoho hou i ka FPGA
No nā SoC FPGA, hiki i ka CPU ke hoʻonohonoho hou i ka lole kumu FPGA me ka ʻole e hoʻopau i ka hana o ka CPU. ʻO ka poloka lako FPGA Manager e kū ana i ka HPS a me ka FPGA kumu e hana i ka hoʻonohonoho hou ʻana. Aia ka Linux kernel i kahi mea hoʻokele e hiki ai ke komo maʻalahi i ka Mana FPGA.

  • I ka view i ke kūlana o ke kumu FPGA, e kāhea i ka pōpoki /sys/class/fpga/fpga0/ kauoha kūlana.
    Ke hoʻohana nei ka Intel FPGA SDK no ka polokalamu OpenCL me ka Cyclone V SoC Development Kit Reference Platform i kēia interface e hoʻolālā i ka FPGA. I ka hoʻonohonoho hou ʻana i kahi kumu FPGA me kahi CPU e holo nei, e hana ka pono polokalamu i nā hana a pau:
    1. Ma mua o ka hoʻonohonoho hou ʻana, hoʻopau i nā alahaka kamaʻilio āpau ma waena o ka FPGA a me ka HPS, nā alahaka H2F a me LH2F.
    E ho'ā hou i kēia mau alahaka ma hope o ka pau ʻana o ka hoʻonohonoho hou ʻana.
    Nānā: ʻAʻole hoʻohana ka ʻōnaehana OpenCL i ke alahaka FPGA-to-HPS (F2H). E nānā i ka ʻāpana HPS-FPGA Interfaces ma ka Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual no ka ʻike hou aku.
    2. E hōʻoia ʻaʻole pio ka loulou ma waena o ka FPGA a me ka mea hoʻoponopono HPS DDR i ka wā e hoʻoponopono hou ai.
    3. E hōʻoia i ka hoʻopau ʻana o ka FPGA i ka FPGA i ka wā e hoʻoponopono hou ai.
    Eia kekahi, e hoʻomaopopo i ka mea hoʻokele e hōʻole i nā mea hoʻopau mai ka FPGA i ka wā e hoʻoponopono hou ai.

E noʻonoʻo i ke kumu kumu o ka pono polokalamu no nā kikoʻī e pili ana i ka hoʻokō maoli.

'Ōlelo Aʻo: Mai hoʻololi i ka hoʻonohonoho o ka HPS DDR controller ke holo ka CPU.
ʻO ka hana ʻana pēlā ke kumu hewa o ka ʻōnaehana no ka mea hiki iā ʻoe ke hoʻololi i ka hoʻonohonoho hoʻonohonoho DDR ke loaʻa nā hana hoʻomanaʻo koʻikoʻi mai ka CPU. ʻO ia ke ʻano o ka holo ʻana o ka CPU, ʻaʻole hiki iā ʻoe ke hoʻonohonoho hou i ka FPGA core me kahi kiʻi e hoʻohana ana i ka HPS DDR i kahi hoʻonohonoho ʻokoʻa.
E hoʻomanaʻo i ka ʻōnaehana OpenCL, a me ka hoʻolālā kuhikuhi Lako Gula i loaʻa me ka Intel SoC FPGA Embedded Design Suite (EDS), hoʻonohonoho i ka HPS DDR i kahi mode 256-bit hoʻokahi.
Hiki i nā ʻāpana ʻōnaehana CPU e like me ka wānana lālā a i ʻole ka prefetcher papa ʻaoʻao ke hoʻopuka i nā kauoha DDR inā ʻike ʻia ʻaʻohe mea e holo ana ma ka CPU.
No laila, ʻo ka wā pahu ka manawa palekana wale nō e hoʻonohonoho i ka hoʻonohonoho hoʻonohonoho HPS DDR.
ʻO kēia ka manaʻo e loaʻa i ka U-boot kahi binary maka file (.rbf) kiʻi e hoʻouka i ka hoʻomanaʻo. A i ʻole, hiki iā ʻoe ke ʻae i ka HPS DDR me nā awa i hoʻohana ʻole ʻia ma ka FPGA a laila hiki ke hoʻololi i nā hoʻonohonoho port ma hope. No kēia kumu, ʻaʻole hoʻokomo hou ka mea hoʻokele kernel OpenCL Linux i ka loiloi e pono ai e hoʻonohonoho i ka hoʻonohonoho hoʻonohonoho hoʻonohonoho HPS DDR.
Hoʻololi ka pūʻolo laina pālua ʻelua (DIP) SW3 i ka Cylone V SoC Development Kit i ke ʻano i manaʻo ʻia o ke kiʻi .rbf (ʻo ia hoʻi, inā paha ka file ua hoʻopili ʻia a/a i hoʻopili ʻia). ʻO C5soc, a me ka Hoʻolālā Hōʻikeʻike Lako Gula i loaʻa me ka SoC EDS, e komo pū me nā kiʻi .rbf i hoʻopili ʻia akā ʻaʻole hoʻopili ʻia. ʻO nā hoʻonohonoho hoʻololi SW3 DIP i wehewehe ʻia ma ka Intel FPGA SDK no OpenCL Cyclone V SoC Getting Started Guide e kūlike me kēia hoʻonohonoho kiʻi .rbf.

Nā loulou pili

  • HPS-FPGA Interface
  • Ke hoʻonohonoho nei i nā hoʻololi SW3

1.4.1 FPGA System Architecture Details
Hoʻokumu ʻia ke kākoʻo no ka Cyclone V SoC Development Kit Reference Platform ma ka Stratix® V Reference Platform (s5_ref), i loaʻa me ka Intel FPGA SDK no OpenCL.
ʻO ka hui holoʻokoʻa o ka ʻōnaehana c5soc Qsys a me ka mea hoʻokele kernel e like loa me nā mea ma s5_ref.
Ua like nā ʻāpana koʻikoʻi FPGA ma c5soc a me s5_ref:

  • VERSION_ID poloka
  • ʻAno hoʻomaha
  • Māhele waihona waihona hoʻomanaʻo
  • Hoʻopili snoop cache
  • Uaki Kernel
  • E hoʻomalu i nā poloka hoʻopaʻa inoa (CRA).

1.5 Ke kūkulu ʻana i kiʻi kāleka SD Flash
No ka mea he ʻōnaehana piha ka Cyclone V SoC FPGA ma kahi chip, iā ʻoe ke kuleana no ka hāʻawi ʻana i ka wehewehe piha o ka ʻōnaehana. Manaʻo ʻo Intel e hāʻawi iā ʻoe ma ke ʻano o kahi kiʻi kāleka flash SD. Hiki i ka Intel FPGA SDK no ka mea hoʻohana OpenCL ke kākau i ke kiʻi i ka micro SD flash card a ua mākaukau ka papa SoC FPGA no ka hoʻohana.
Hoʻololi i kahi kiʻi kāleka SD Flash e kū nei ma ka ʻaoʻao 13
Manaʻo ʻo Intel e hoʻololi wale i ke kiʻi i loaʻa me ka Cyclone V SoC Development Kit Reference Platform. Loaʻa iā ʻoe ke koho e hana i kahi kiʻi kāleka kāleka SD hou.
Ke hana ʻana i kahi kiʻi kāleka SD Flash ma ka ʻaoʻao 14
Loaʻa iā ʻoe ke koho e hana i kahi kiʻi kāleka kāleka SD hou.

1.5.1 Hoʻololi i kahi kiʻi kāleka SD Flash e kū nei
Manaʻo ʻo Intel e hoʻololi wale i ke kiʻi i loaʻa me ka Cyclone V SoC
Pahu Hoʻo·kaʻe kik Development. Loaʻa iā ʻoe ke koho e hana i kahi kiʻi kāleka kāleka SD hou.
ʻO ke kiʻi c5soc linux_sd_card_image.tgz file loaʻa ma ka ALTERAOCLSDKROOT/board/c5soc directory, kahi ALTERAOCLSDKROOT kuhikuhi i ke ala o ka Intel FPGA SDK no ka OpenCL papa kuhikuhi.

Nānā: No ka hoʻololi ʻana i ke kiʻi kāleka flash SD, pono ʻoe i ke kumu a i ʻole nā ​​kuleana sudo.

  1. No ka wehe 'ana i ka $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, holo i ke kauoha tar xvfzlinux_sd_card_image.tgz.
  2. E hōʻuluʻulu i ka hello_world OpenCL example hoʻolālā e hoʻohana ana i kāu kākoʻo Custom Platform. Kapa hou i ka .rbf file e hana ana ka Intel FPGA SDK no OpenCL Offline Compiler e like me opencl.rbf, a kau ia ma ka pā fat32 i loko o ke kiʻi kāleka flash SD.
    Hiki iā ʻoe ke hoʻoiho i ka hello_world example hoʻolālā mai ka OpenCL Design Examples aoao ma ka Altera webpaena.
  3. E kau i ka .rbf file i ka ʻāpana fat32 o ke kiʻi kāleka flash.
    Nānā: Pono i loko o ka ʻāpana fat32 ka zImage file a me ka .rbf file. Me ka ʻole o .rbf file, e loaʻa mai kahi hewa make ke hoʻokomo ʻoe i ka mea hoʻokele.
  4. Ma hope o kou hana ʻana i ke kiʻi kāleka SD, e kākau iā ia i kahi kāleka micro SD ma ke kāhea ʻana i kēia kauoha: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. No ka hoʻāʻo ʻana i kāu kiʻi kāleka kāleka SD, e hana i kēia mau hana:
    a. E hoʻokomo i ka micro SD flash card i loko o ka papa SoC FPGA.
    b. E hoʻoikaika i ka papa.
    c. Kāhea i ka aocl diagnose utility command.

1.5.2 Hana ʻana i kahi kiʻi kāleka SD Flash
Loaʻa iā ʻoe ke koho e hana i kahi kiʻi kāleka kāleka SD hou. Loaʻa nā ʻōlelo kuhikuhi maʻamau e pili ana i ke kūkulu ʻana i kahi kiʻi kāleka SD flash hou a me ke kūkulu hou ʻana i kahi kiʻi kāleka kāleka SD i loaʻa ma ka GSRD v14.0.2 – ʻaoʻao Kāleka SD o ka RocketBoards.org webpaena.
ʻO nā ʻanuʻu ma lalo nei e wehewehe i ke kaʻina hana no ka hana ʻana i ke kiʻi linux_sd_card_image.tgz mai ke kiʻi kāleka kāleka SD Golden System Reference Design (GSRD).
Nānā:
No ka hana ʻana i ke kiʻi mai ke kiʻi c5soc, e hana i nā hana kūpono a pau i wehewehe ʻia ma kēia kaʻina hana.

  1. Hoʻoiho a wehe i ke kiʻi GSRD SD flash card version 14.0 mai Rocketboards.org.
  2. E kau i ka file papa kuhikuhi (fat32) a hoʻonui file ʻōnaehana (ext3) ʻāpana i kēia kiʻi ma ke ʻano he mau mea hoʻihoʻi. No ka kau ʻana i kahi pā, e hana i kēia mau hana:
    a. E hoʻoholo i ka hoʻomaka byte o ka ʻāpana i loko o ke kiʻi ma ke kāhea ʻana i ka /sbin/fdisk -lu image_file kauoha.
    No exampʻO ka helu pākuʻi 1 o ke ʻano W95 FAT he 2121728 paita.
    b. E ʻike i kahi hāmeʻa loop manuahi (no ka example, /dev/loop0) ma ke kaomi ʻana i ke kauoha losetup -f.
    c. Ke manaʻo nei ʻo /dev/loop0 ka hāmeʻa loop manuahi, e hāʻawi i kāu kiʻi kāleka flash i ka hāmeʻa poloka loop ma ke kāhea ʻana i ka losetup /dev/loop0 image_file -0 1086324736 kauoha.
    d. E hoʻouka i ka hāmeʻa loop ma ke kāhea ʻana i ke kauoha mauna /dev/loop0 /media/disk1.
    I loko o ke kiʻi file, /media/disk1 i kēia manawa he ʻāpana fat32 i kau ʻia.
    e. E hana hou i nā ʻanuʻu a a i d no ka ʻāpana ext3.
  3. Hoʻoiho i ka mana Cyclone V SoC FPGA o ka Intel FPGA Runtime Environment no ka pūʻolo OpenCL mai ka Download Center ma ka Altera webpaena.
    a. Kaomi i ke pihi Download ma ka ʻaoʻao o ka paʻi polokalamu ʻo Quartus Prime.
    b. E wehewehe i ka mana hoʻokuʻu, ka ʻōnaehana hana, a me ke ʻano hoʻoiho.
    c. Kaomi i ka ʻaoʻao Pūnaehana Hoʻohui, a koho e hoʻoiho iā Intel FPGA
    Kaiapuni manawa no OpenCL Linux Cyclone V SoC TGZ.
    d. Ma hope o ka hoʻoiho ʻana i ka aocl-rte- .arm32.tgz file, wehe ia i
    he papa kuhikuhi iā ʻoe.
  4. E kau i ka aocl-rte- .arm32 papa kuhikuhi i loko o ka /home/root/opencl_arm32_rte papa kuhikuhi ma ka ext3 paku o ke kiʻi file.
  5. Holoi i ka waihona (s) lako o kāu Custom Platform, a laila kau i ka Custom Platform i loko o ka papa kuhikuhi papa o /home/root/ opencl_arm32_rte.
  6. E hana i ka init_opencl.sh file ma ka papa kuhikuhi /home/root me kēia ʻike: export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte export AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ hoʻokuʻu aku iā PATH=$ALTERAOCLSDKROOT/bin:$PATH export LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    Hoʻohana ka mea hoʻohana SDK i ke kumu ./init_opencl.sh kauoha e hoʻouka i nā mea hoʻololi kaiapuni a me ka mea hoʻokele kernel OpenCL Linux.
  7. Inā pono ʻoe e hoʻonui i ka preloader, ka DTS files, a i ʻole ka Linux kernel, pono ʻoe i ka mea hoʻopili lima-linux-gnueabihf-gcc mai ka SoC EDS. E hahai i nā ʻōlelo kuhikuhi i wehewehe ʻia ma ka Intel SoC FPGA Embedded Design Suite User Guide no ka loaʻa ʻana o ka polokalamu, hōʻuluʻulu hou iā lākou, a hoʻonui i nā mea pili. files ma ka ʻāpana fat32 i kau ʻia.
    Nānā: Pono paha ʻoe e hōʻano hou i ka preloader inā he ʻokoʻa ka hoʻohana ʻana o kāu Paʻa Kūʻai ma mua o nā mea ma c5soc.
    E hoʻomanaʻo: Inā hōʻuluʻulu hou ʻoe i ka kernel Linux, e hoʻohui hou i ka mea hoʻokele kernel Linux me ke kumu kumu Linux like files. Inā loaʻa kahi mismatch ma waena o ka mea hoʻokele kernel Linux a me ka kernel Linux, ʻaʻole e hoʻouka ka mea hoʻokele. Eia kekahi, pono ʻoe e hana i ka CMA.
    E nānā i ka hoʻopili hou ʻana i ka Linux Kernel no ka ʻike hou aku.
  8. E hōʻuluʻulu i ka hello_world OpenCL example hoʻolālā e hoʻohana ana i kāu kākoʻo Custom Platform. Kapa hou i ka .rbf file e hana ana ka Intel FPGA SDK no OpenCL Offline Compiler e like me opencl.rbf, a kau ia ma ka pā fat32 i loko o ke kiʻi kāleka flash SD.
    Hiki iā ʻoe ke hoʻoiho i ka hello_world example hoʻolālā mai ka OpenCL Design Examples aoao ma ka Altera webpaena.
    9. Ma hope o kou mālama ʻana i nā mea pono a pau files ma ke kiʻi kāleka flash, e kāhea i kēia mau kauoha:
    a. hoʻopono
    b. unmount /media/disk1
    c. wehe i luna i hea ʻO ia ka inoa papa kuhikuhi āu e hoʻohana ai no ke kau ʻana i ka ʻāpana ext3 ma 3 ma ka ʻaoʻao 3 (no ka example, /media/disk2).
    d. losetup -d /dev/loop0
    e. losetup -d /dev/loop1
  9. E kaomi i ke kiʻi kāleka flash SD ma ke kāhea ʻana i kēia kauoha: tar cvfz .tgz linux_sd_card_image
  10. Hāʻawi i ka .tgz file i loko o ka papa kuhikuhi kumu o kāu Custom Platform.
  11. No ka hoʻāʻo ʻana i kāu kiʻi kāleka kāleka SD, e hana i kēia mau hana:
    a. E kākau i ke kiʻi i hoʻopaʻa ʻole ʻia ma luna o kahi kāleka flash micro SD.
    b. E hoʻokomo i ka micro SD flash card i loko o ka papa SoC FPGA.
    c. E hoʻoikaika i ka papa.
    d. Kāhea i ka aocl diagnose utility command.

Nā loulou pili

  • Intel SoC FPGA Embedded Design Suite Guide
  • OpenCL Design Examples aoao ma ka Altera webpaena
  • Hoʻopili hou i ka Linux Kernel ma ka ʻaoʻao 16
    I mea e hiki ai i ka CMA, pono ʻoe e hōʻuluʻulu hou i ka kernel Linux.
  • Ke nīnau nei i ka inoa o kāu polokalamu FPGA (diagnose)

1.6 Hoʻopili ʻana i ka Linux Kernel no Cyclone V SoC FPGA
Ma mua o ka holo ʻana i nā noi OpenCL ma ka papa ʻo Cyclone V SoC FPGA, pono ʻoe e hōʻuluʻulu i ke kumu kernel Linux, a hoʻohui a hoʻokomo i ka mea hoʻokele kernel OpenCL Linux.

  1. Hoʻopili hou i ka Linux Kernel ma ka ʻaoʻao 16
    I mea e hiki ai i ka CMA, pono ʻoe e hōʻuluʻulu hou i ka kernel Linux.
  2. Hoʻopili a hoʻokomo i ka OpenCL Linux Kernel Driver ma ka ʻaoʻao 17 E hōʻuluʻulu i ka mea hoʻokele kernel OpenCL Linux e kūʻē i ke kumu kernel i hui ʻia.

1.6.1 Hoʻopili hou i ka Linux Kernel
I mea e hiki ai i ka CMA, pono ʻoe e hōʻuluʻulu hou i ka kernel Linux.

  1. Kaomi i ka loulou GSRD v14.0 – Compiling Linux ma ka ʻaoʻao Resources o ka RocketBoards.org webpaena e kiʻi i nā ʻōlelo aʻoaʻo no ka hoʻoiho ʻana a me ke kūkulu hou ʻana i ke code kumu kumu Linux.
    No ka hoʻohana ʻana me ka ™ Intel FPGA SDK no OpenCL, e kuhikuhi i ka socfpga-3.13-rel14.0 e like me ka .
  2. Nānā: Hoʻokumu ke kaʻina hana i ka arch/arm/configs/socfpga_defconfig file. ʻO kēia file kuhikuhi i nā hoʻonohonoho no ka hoʻonohonoho paʻamau socfpga.
    E hoʻohui i kēia mau laina i lalo o ka 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
    Hoʻonohonoho ka waiwai hoʻonohonoho CONFIG_CMA_SIZE_MBYTES i ka palena kiʻekiʻe ma ka huina o nā hoʻomanaʻo pili kino i loaʻa. Hiki iā ʻoe ke hoʻonui i kēia waiwai inā makemake ʻoe i ka hoʻomanaʻo hou aku.
  3. Nānā: ʻO ka nui o ka hoʻomanaʻo kino i loaʻa i ke kaʻina hana ARM ma ka papa SoC FPGA he 1 GB. ʻAʻole ʻōlelo ʻo Intel e hoʻonohonoho ʻoe i ka luna CMA kokoke i 1 GB.
  4. E holo i ke kauoha make mrproper e hoʻomaʻemaʻe i ka hoʻonohonoho o kēia manawa.
  5. E holo i ke kauoha make ARCH=arm socfpga_deconfig.
    Hōʻike ka ARCH=arm e makemake ʻoe e hoʻonohonoho i ka hoʻolālā ARM.
    Hōʻike ka socfpga_defconfig e makemake ʻoe e hoʻohana i ka hoʻonohonoho paʻamau socfpga.
  6. E holo i ka export CROSS_COMPILE=arm-linux-gnueabihf- kauoha.
    Hoʻonohonoho kēia kauoha i ka hoʻololi kaiapuni CROSS_COMPILE e kuhikuhi i ka prefix o ke kaulahao mea hana i makemake ʻia.
  7. E holo i ke kauoha make ARCH=arm zImage. Loaʻa ke kiʻi i loaʻa ma ka arch/arm/boot/zImage file.
  8. E kau i ka zImage file i ka ʻāpana fat32 o ke kiʻi kāleka flash. No nā kuhikuhi kikoʻī, e nānā i ka Cyclone V SoC FPGA-specific GSRD User Manual ma Rocketboards.org.
  9. Nānā: No ka hoʻokomo pono ʻana i ka mea hoʻokele kernel OpenCL Linux, e hoʻouka mua i kahi SDKgenerated.rbf file i ka FPGA.
    No ka hana ʻana i ka .rbf file, hōʻuluʻulu i kahi hoʻolālā SDK example me ka Cyclone V SoC Development Kit Reference Platform e like me ka Custom Platform i manaʻo ʻia.
    9. E kau i ka .rbf file i ka ʻāpana fat32 o ke kiʻi kāleka flash.
    Manaʻo: Pono e loaʻa i ka ʻāpana fat32 ka zImage file a me ka .rbf file. Me ka ʻole o .rbf file, e loaʻa mai kahi hewa make ke hoʻokomo ʻoe i ka mea hoʻokele.
  10. E hoʻokomo i ke kāleka micro SD i hoʻolālā ʻia, aia ke kiʻi kāleka SD āu i hoʻololi ai a i hana mua ai, i loko o ka Cyclone V SoC Development Kit a laila e hoʻoikaika i ka papa SoC FPGA.
  11. E hōʻoia i ka mana o ka Linux kernel i hoʻokomo ʻia ma ka holo ʻana i ke kauoha uname -r.
  12. No ka hōʻoia ʻana i hiki iā ʻoe ke hoʻokō i ka CMA ma ka kernel, me ka mana o ka papa SoC FPGA, e holo i ke kauoha grep init_cma /proc/kallsyms.
    Hoʻohana ʻia ka CMA inā ʻaʻole nele ka puka.
  13. No ka hoʻohana ʻana i ka kernel Linux i hoʻohui hou ʻia me ka SDK, hoʻohui a hoʻokomo i ka mea hoʻokele kernel Linux.

Nā loulou pili

  • Nā Palapala Hoʻohana Hoʻolālā Pūnaehana Gula (GSRD).
  • Ke kūkulu ʻana i kahi kiʻi kāleka SD Flash ma ka ʻaoʻao 13
    No ka mea he ʻōnaehana piha ka Cyclone V SoC FPGA ma kahi chip, iā ʻoe ke kuleana no ka hāʻawi ʻana i ka wehewehe piha o ka ʻōnaehana.

1.6.2 Hoʻopili a hoʻokomo ʻana i ka OpenCL Linux Kernel Driver
E hōʻuluʻulu i ka mea hoʻokele kernel OpenCL Linux e kūʻē i ke kumu kernel i hui ʻia.

Loaʻa ke kumu hoʻokele ma ka mana Cyclone V SoC FPGA o ka Intel FPGA Runtime Environment no OpenCL. Eia hou, e hōʻoia ua hoʻouka ʻoe i kahi Intel FPGA SDK no ka .rbf i hana ʻia e OpenCL file i loko o ka FPGA e pale aku i ka hoʻokomo hewa ʻana o ka module kernel Linux.

  1. Hoʻoiho i ka mana Cyclone V SoC FPGA o ka Intel FPGA Runtime Environment no ka pūʻolo OpenCL mai ka Download Center ma ka Altera webpaena.
    a. Kaomi i ke pihi Download ma ka ʻaoʻao o ka paʻi polokalamu ʻo Quartus Prime.
    b. E wehewehe i ka mana hoʻokuʻu, ka ʻōnaehana hana, a me ke ʻano hoʻoiho.
    c. Kaomi i ka ʻaoʻao Pūnaehana Hoʻohui, a koho e hoʻoiho iā Intel FPGA
    Kaiapuni manawa no OpenCL Linux Cyclone V SoC TGZ.
    d. Ma hope o ka hoʻoiho ʻana i ka aocl-rte- .arm32.tgz file, wehe ia i
    he papa kuhikuhi iā ʻoe.
    Aia ke kumu hoʻokele ma ka aocl-rte- .arm32/papa/c5soc/ papa kuhikuhi hoʻokele.
  2. No ka hoʻopili hou ʻana i ka mea hoʻokele kernel OpenCL Linux, e hoʻonoho i ka waiwai KDIR ma ka Make o ka mea hoʻokelefile i ka papa kuhikuhi i loaʻa ka Linux kernel kumu files.
  3. E holo i ka export CROSS_COMPILE=arm-linux-gnueabihf- kauoha e kuhikuhi i ka prefix o kāu kaulahao mea hana.
  4. Holo i ke kauoha make clean.
  5. E holo i ke kauoha make e hana i ka aclsoc_drv.ko file.
  6. E hoʻololi i ka papa kuhikuhi opencl_arm32_rte i ka papa FPGA Cyclone V SoC.
    Ke holo nei i ka scp -r root@kou-ipaddress: kau ʻia ke kauoha i ke kaiapuni runtime i ka papa kuhikuhi/home/root.
  7. E holo i ka script init_opencl.sh āu i hana ai i kou kūkulu ʻana i ke kiʻi kāleka SD.
  8.  Kāhea i ka aocl diagnose utility command. E hoʻihoʻi ana ka pono diagnose i kahi hopena ma hope o kou holo pono ʻana i ka init_opencl.sh.

1.7 Nā pilikia i ʻike ʻia
I kēia manawa, aia kekahi mau palena i ka hoʻohana ʻana i ka Intel FPGA SDK no OpenCL me ka Cyclone V SoC Development Kit Reference Platform.

  1. ʻAʻole hiki iā ʻoe ke hoʻopau i ka mea kūʻai a me nā inoa papa i hōʻike ʻia e nā kaula CL_DEVICE_VENDOR a me CL_DEVICE_NAME o ke kelepona clGetDeviceInfo().
  2. Inā hoʻokaʻawale ka mea hoʻokipa i ka hoʻomanaʻo mau i ka ʻōnaehana DDR kaʻana like (ʻo ia hoʻi, HPS DDR) a hoʻololi ia i ka hoʻomanaʻo mau ma hope o ka hoʻokō ʻana i ka kernel, hiki ke lilo ka ʻikepili i ka hoʻomanaʻo. Ke kū nei kēia pilikia no ka mea ʻaʻole hiki i ka FPGA core ke ʻimi i nā kālepa CPU-to-HPS DDR.
    No ka pale ʻana i nā hoʻokō kernel ma hope mai ke komo ʻana i ka ʻikepili kahiko, e hoʻokō i kekahi o kēia mau workarounds:
    • Mai hoʻololi i ka hoʻomanaʻo mau ma hope o kona hoʻomaka ʻana.
    • Inā makemake ʻoe i nā pūʻulu ʻikepili __constant he nui, e hana i nā pale hoʻomanaʻo mau.
    • Inā loaʻa, e hoʻokaʻawale i ka hoʻomanaʻo mau i ka FPGA DDR ma kāu papa holo wikiwiki.
  3. Kākoʻo ka polokalamu SDK ma ARM i ka papahana a ʻike i nā kauoha pono.
    ʻAʻole pili ka flash, hoʻokomo a wehe i nā kauoha pono i ka Cyclone V SoC Development Kit no kēia mau kumu:
    a. Pono ka mea hoʻokomo e hōʻuluʻulu i ka mea hoʻokele kernel aclsoc_drv Linux a hiki iā ia ma ka SoC FPGA. Pono ka mīkini hoʻomohala e hana i ka hōʻuluʻulu; akā naʻe, loaʻa iā ia nā kumu kumu Linux no ka SoC FPGA. ʻOkoʻa nā kumu kumu Linux no ka mīkini hoʻomohala mai nā kumu no ka SoC FPGA. ʻAʻole ʻike ʻia ka wahi o nā kumu kumu Linux no ka SoC FPGA i ka mea hoʻohana SDK. Pēlā nō, ʻaʻole i loaʻa ka pono uninstall i ka Cyclone V SoC Development Kit.
    Eia nō hoʻi, paʻakikī ka hāʻawi ʻana i ka aclsoc_drv i ka papa SoC no ka mea ʻaʻole i loaʻa ka kernel Linux i ka hāʻawi paʻamau o ka Cyclone V SoC Development Kit. files a i ʻole ka GNU Compiler Collection (GCC) compiler.
    b. Pono ka pono uila e kau i kahi .rbf file o kahi hoʻolālā OpenCL ma ka ʻāpana FAT32 o ka micro SD flash card. I kēia manawa, ʻaʻole i kau ʻia kēia ʻāpana i ka wā e hoʻohana ai ka mea hoʻohana SDK i ka papa. No laila, ʻo ke ala maikaʻi loa e hoʻonui ai i ka ʻāpana ʻo ka hoʻohana ʻana i ka mea heluhelu kāleka flash a me ka mīkini hoʻomohala.
  4. Ke hoʻololi nei ma waena o ka Intel FPGA SDK no OpenCL Offline Compiler hiki ke hoʻokō files (.aocx) e pili ana i nā ʻano papa like ʻole (ʻo ia hoʻi, c5soc a me c5soc_sharedonly), pono ʻoe e hoʻohana i ka polokalamu polokalamu SDK e hoʻouka i ka .aocx file no ka ʻano papa hou no ka manawa mua. Inā holo wale ʻoe i ka noi hoʻokipa me ka hoʻohana ʻana i kahi ʻano papa hou akā aia i ka FPGA ke kiʻi mai kahi ʻano papa ʻē aʻe, hiki mai ka hewa make.
  5. ʻO ka .qxp file ʻaʻole i hoʻokomo i nā haʻawina hoʻokaʻawale no ka mea ua hoʻokō mau ka polokalamu Quartus Prime i nā koi manawa o kēia ʻāpana.
  6. Ke hoʻoikaika ʻoe i ka papa, ua hoʻonohonoho ʻia kāna helu leka uila (MAC) i kahi helu maʻamau. Inā ʻaʻole ʻae kāu kulekele LAN i kēia ʻano, hoʻonohonoho i ka helu MAC ma ka hana ʻana i kēia mau hana:
    a. I ka U-Boot power-up, e kaomi i kekahi kī e komo i ka U-Boot command prompt.
    b. Type setenv ethaddr 00:07:ed:00:00:03 ma ke kauoha kauoha.
    Hiki iā ʻoe ke koho i kekahi helu MAC.
    c. Kākau i ke kauoha saveenv.
    d. Hoʻomaka hou i ka papa.

1.8 Moʻolelo Hoʻoponopono Hou
Papa 1.
Moʻolelo Hoʻoponopono Hou o ka Intel FPGA SDK no OpenCL Cyclone V SoC
Ke alakaʻi no ka lawe ʻana i ka papa kuhikuhi no ka hoʻomohala ʻana

Manao Nā hoʻololi
Mei-17 2017.05.08 • Hoʻokuʻu mālama.
ʻOkakopa 2016 2016.10.31 • Hoʻololi hou ʻia ʻo Altera SDK no OpenCL i Intel FPGA SDK no OpenCL.
• Hoʻopau hou ʻia ʻo Altera Offline Compiler i Intel FPGA SDK no OpenCL Offline Compiler.
Mei-16 2016.05.02 • Hoʻololi ʻia nā ʻōlelo aʻoaʻo no ke kūkulu ʻana a me ka hoʻololi ʻana i ke kiʻi kāleka flash SD.
• Nā ʻōlelo kuhikuhi i hoʻololi ʻia e pili ana i ka hoʻopili hou ʻana i ka kernel Linux a me ka mea hoʻokele kernel OpenCL Linux.
Nowemapa-15 2015.11.02 • Hoʻokuʻu mālama, a hoʻololi i nā manawa o Quartus II i Quartus Prime.
Mei-15 15.0.0 •Ma ka FPGA Reconfiguration, wehe 'ia ke a'o e hooponopono hou i ka FPGA core
me ka . rbf kiʻi ma ke kāhea ʻana i ka pōpoki fileinoa>. rbf
> /dev/ fpga0 kauoha no ka mea ʻaʻole ʻōlelo ʻia kēia ʻano hana.
Kekemapa-14 14.1.0 Ua kapa hou ʻia ka palapala ma ke ʻano he Altera Cyclone V SoC Development Kit Reference Platform Porting Guide.
• Hoʻohou i ka pono reprogram i ka papahana aoclfileinoa>.aocx pono kauoha.
• Hoʻohou i ka pono diagnostic i ka aocl diagnose a me aocl diagnose kauoha pono.
• Hoʻohou i ke kaʻina hana ma ka ʻaoʻao Porting the Reference Platform to Your SoC Board e hoʻokomo i nā ʻōlelo aʻoaʻo e pili ana i ka lawe ʻana a me ka hoʻololi ʻana i ka ʻāpana papa c5soc e hana i kahi ʻāpana hoʻomaʻemaʻe manawa no ke kahe ʻana o ka manawa pani.
• Hoʻokomo i ke kumuhana Hoʻohou i kahi Ported Reference Platform e wehewehe i nā kaʻina hana no kēia mau hana:
1. Hoʻokuʻu ʻia ka ʻōnaehana paʻakikī paʻakikī (HPS) i ka ʻāpana papa
2. Hoʻohou i ke kiʻi kāleka flash SD
• Hoʻohou i ka ʻāpana kiʻi kiʻi kiʻi SD Flash Card. Manaʻo ʻia me ka hoʻohana ʻana i ka mana 14.0 o ke kiʻi Golden System Reference Design (GSRD) ma ke ʻano he hoʻomaka ma mua o ke kiʻi i loaʻa me SoC Embedded Design Suite (EDS).
• Hoʻohou i ka ʻāpana Hoʻohui hou i ka Linux Kernel a me ka OpenCL Linux Kernel Driver:
1. Hoʻohui ʻia ka ʻōlelo aʻoaʻo e hoʻonohonoho i ka hoʻololi CROSS COMPILE.
2. Hoʻololi i ke kauoha āu e holo ai e hōʻoia i ka hiki ʻana o ka CMA me ka holomua.
Iulai-14 14.0.0 • Hoʻokuʻu mua.

Palapala / Punawai

intel FPGA SDK no OpenCL [pdf] Ke alakaʻi hoʻohana
FPGA SDK no OpenCL, FPGA SDK, SDK no OpenCL, SDK

Nā kuhikuhi

Waiho i kahi manaʻo

ʻAʻole e paʻi ʻia kāu leka uila. Hōʻailona ʻia nā kahua i makemake ʻia *