intel - логотипOpenCL үчүн FPGA SDK
Колдонуучунун колдонмосу

UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite үчүн акыркы жаңыртылган: 17.0

RENPHO RF FM059HS WiFi Smart бут массажери - 5-сөлөкөтЖазылуу
SAMSUNG SM A136UZKZAIO Galaxy A13 5G Смартфон - icon 12Пикир жөнөтүү

OpenCL™ үчүн Intel® FPGA SDK Intel® Cyclone®V SoC Иштеп чыгуу комплектинин маалымдама платформасы портing колдонмосу

V SoC Development Kit Reference Platform Porting Guide OpenCL үчүн Intel ® FPGA SDK OpenCL ™ Intel Cyclone үчүн Intel ® FPGA SDK менен колдонуу үчүн Intel Cyclone V SoC Development Kit Reference Platform (c5soc) аппараттык жана программалык дизайнын сүрөттөйт. ® . Баштоодон мурун, Intel төмөнкү документтердин мазмуну менен таанышып чыгууну сунуштайт:

  1. OpenCLIntel Cyclone V SoC үчүн Intel FPGA SDK Баштоо колдонмосу
  2. OpenCL Custom Platform Toolkit Колдонуучу колдонмосу үчүн Intel FPGA SDK
  3. Cyclone V Түзмөк колдонмосу, 3-том: Катуу процессор тутумунун техникалык маалымдама колдонмосу Мындан тышкары, Altera компаниясынын Cyclone V SoC Development Kit жана SoC Embedded Design Suite барагын караңыз. webкөбүрөөк маалымат алуу үчүн сайт. 1 2

Көңүл буруңуз: Intel сизде OpenCL Custom Platform Toolkit Колдонуучу колдонмосу үчүн Intel FPGA SDK жөнүндө терең түшүнүк бар деп ойлойт. Cyclone V SoC Development Kit Reference Platform Porting Guide Cyclone V SoC Development Kit үчүн Ыңгайлаштырылган Платформаны ишке ашыруу үчүн SDKнын Ыңгайлаштырылган Платформа Куралдарын колдонууну сүрөттөбөйт. Бул Cyclone V SoC Development Kitиндеги SDK колдоосу менен OpenCL Custom Platform үчүн жалпы Intel FPGA SDK ортосундагы айырмачылыктарды гана сүрөттөйт.

Related Links

  • OpenCL Cyclone V SoC үчүн Intel FPGA SDK Баштоо колдонмосу
  • OpenCL Custom Platform Toolkit Колдонуучу колдонмосу үчүн Intel FPGA SDK
  • Cyclone V түзмөк колдонмосу, 3-том: Катуу процессор тутумунун техникалык маалымдама колдонмосу
  • Alteraдагы Cyclone V SoC Development Kit жана SoC Embedded Design Suite баракчасы webсайт
  1. OpenCL жана OpenCL логотиби Khronos Group™ уруксаты менен колдонулган Apple Inc. соода белгилери.
  2. OpenCL үчүн Intel FPGA SDK жарыяланган Khronos спецификациясына негизделген жана Khronos шайкештигин текшерүү процессинен өткөн. Учурдагы шайкештиктин абалын төмөнкү жерден тапса болот www.khronos.org/conformance.

Intel корпорациясы. Бардык укуктар корголгон. Intel, Intel логотиби, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus жана Stratix сөздөрү жана логотиптери Intel корпорациясынын же анын АКШдагы жана/же башка өлкөлөрдөгү филиалдарынын соода белгилери болуп саналат. Intel өзүнүн FPGA жана жарым өткөргүч өнүмдөрүн Intelдин стандарттык гарантиясына ылайык учурдагы спецификацияларга кепилдик берет, бирок каалаган убакта эскертүүсүз каалаган өнүмгө жана кызматтарга өзгөртүү киргизүү укугун өзүнө калтырат. Intel бул жерде сүрөттөлгөн кандайдыр бир маалыматты, продуктуну же кызматты колдонуудан же колдонуудан келип чыккан эч кандай жоопкерчиликти же жоопкерчиликти өзүнө албайт, Intel тарабынан жазуу жүзүндө ачык макулдашылгандан башка учурларда. Intel кардарларына жарыяланган маалыматка таянардан мурун жана өнүмдөр же кызматтарга буйрутма берүүдөн мурун түзмөктүн спецификацияларынын акыркы версиясын алуу сунушталат.
*Башка ысымдар жана бренддер башкалардын менчиги катары талап кылынышы мүмкүн.

1.1.1 Cyclone V SoC Development Kit Reference Platform Board Variantları
OpenCL Cyclone V SoC Development Kit Reference Platform үчүн Intel FPGA SDK эки такта вариантын камтыйт.

  • c5soc тактасы
    Бул демейки такта эки DDR эстутум банктарына мүмкүнчүлүк берет. HPS DDRге FPGA жана CPU да жеткиликтүү. FPGA DDR FPGA тарабынан гана жеткиликтүү.
  • c5soc_sharedonly тактасы
    Бул такта варианты HPS DDR байланышын гана камтыйт. FPGA DDR жеткиликтүү эмес. Бул тактанын варианты аймакты натыйжалуураак, анткени бир DDR эстутум банкын колдоо үчүн азыраак жабдык талап кылынат. c5soc_sharedonly тактасы бир DDR эс тутуму бар акыркы өндүрүш тактасы үчүн жакшы прототиптөө платформасы болуп саналат.
    OpenCL өзөгүн түзүүдө бул тактанын вариантын максаттуу үчүн, aoc буйругуңузга -board c5soc_sharedonly опциясын кошуңуз.
    Көбүрөөк маалымат алуу үчүн - такта aoc буйругунун варианты үчүн, OpenCL программалоо колдонмосу үчүн Intel FPGA SDK караңыз.

Related Links
Конкреттүү FPGA тактасы үчүн ядрону түзүү (–board )
1.1.2 Cyclone V SoC өнүктүрүү комплектинин маалымдама платформасынын мазмуну
Cyclone V SoC өнүктүрүү комплектинин маалымдама платформасы төмөнкүлөрдөн турат files жана каталогдор:

File же Каталог Description
board_env.xml eExtensible Markup Language (XML) file Бул OpenCL үчүн Intel FPGA SDK үчүн c5socту сүрөттөйт.
linux_sd_card_image.tgz Кысылган SD флеш-карта сүрөтү file анда SDK колдонуучусу SDK менен Cyclone V SoC Development Kit колдонушу керек болгон нерселердин бардыгы камтылган.
arm32 Төмөнкүлөрдү камтыган каталог:

1.1.3 Cyclone V SoC өнүктүрүү комплектинин тиешелүү өзгөчөлүктөрү

Төмөнкү тизме Cyclone V SoC Development Kit компоненттерин жана OpenCL үчүн Intel FPGA SDK үчүн тиешелүү функцияларды баса белгилейт:

  • 9-бит Linux менен иштеген эки ядролуу ARM Cortex-A32 CPU.
  • HPS менен FPGA негизги кездемесинин ортосундагы өркүндөтүлгөн кеңейтилүүчү интерфейс (AXI) автобусу.
  • Ар бири 1 гигабайт (ГБ) DDR3 SDRAMга туташтырылган эки катууланган DDR эстутум контроллери.
    — Бир DDR контроллери FPGA өзөгүнө гана жеткиликтүү (башкача айтканда, FPGA DDR).
    — Башка DDR контроллери HPS жана FPGA (башкача айтканда, HPS DDR) үчүн да жеткиликтүү. Бул жалпы контроллер CPU жана FPGA өзөгү ортосунда эстутумду акысыз бөлүштүрүүгө мүмкүндүк берет.
  • CPU 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. Маалымдама платформасы эң кеңири мүмкүн болгон конфигурациядагы (256 бит) катуу DDR ​​эстутум контроллерин гана колдонот.
  2. FPGA HPS DDR эстутум контроллери менен AXI шинасын жана HPS ичиндеги L3 которуштурууну катыштырбастан түз байланышат. Түз байланыш DDR үчүн эң мыкты өткөрүү жөндөмдүүлүгүн камсыз кылат жана FPGA эсептөөлөрүн CPU менен анын перифериясынын ортосундагы байланышка тоскоол кылуудан сактайт.
  3. Эстутумга түздөн-түз жетүү (SG-DMA) FPGA интерфейсинин логикасынын бир бөлүгү эмес. DDR эс тутумдарынын ортосунда чоң көлөмдөгү маалыматтарды өткөрүүнүн ордуна, берилиштерди жалпы HPS DDRде сактаңыз. FPGA тарабынан CPU эстутумуна түз жетүү DMAга караганда натыйжалуураак. Бул аппараттык ресурстарды үнөмдөйт (башкача айтканда, FPGA аймагы) жана Linux ядросунун драйверин жөнөкөйлөтөт.
    Эскертүү: Жалпы HPS DDR тутуму менен FPGA үчүн гана жеткиликтүү болгон DDR тутумунун ортосундагы эстутум өткөрүү өтө жай. Эгер тандасаңыз
    эстутумду ушундай жол менен өткөрүп берсеңиз, аны өтө аз өлчөмдөгү маалымат үчүн гана колдонуңуз.
  4. Хост жана түзмөк бир гана 2-бит портун колдонуп, HPS-FPGA (H32F) көпүрөсү аркылуу бири-биринин ортосунда DMA эмес берилиштерди өткөрүшөт. Себеби, DMA жок, Linux ядросу бир гана 32-бит окуу же жазуу өтүнүчүн чыгара алат, андыктан кененирээк туташуунун кереги жок.
  5. Хост башкаруу сигналдарын жеңил салмактагы H2F (LH2F) көпүрөсү аркылуу аппаратка жөнөтөт.
    Хосттан түзмөккө башкаруу сигналдары аз өткөрүү жөндөмдүүлүгүнө ээ сигналдар болгондуктан, LH2F көпүрөсү тапшырма үчүн идеалдуу.

1.2 Referans платформасын SoC FPGA тактасына өткөрүү
Cyclone V SoC Development Kit Referans платформасын SoC FPGA тактасына өткөрүү үчүн, төмөнкү тапшырмаларды аткарыңыз:

  1. Дизайныңыздын башталгыч чекити катары бир DDR эстутумун же c5soc маалымдама платформасынын эки DDR эс тутумун тандаңыз.
  2. ALTERAOCLSDKROOT/board/c5soc/ ичиндеги пин жайгашкан жерлерди жаңыртыңыз /top.qsf file, бул жерде ALTERAOCLSDKROOT OpenCL орнотуу үчүн Intel FPGA SDK жайгашкан жерге жол болуп саналат жана такта вариантынын каталог аты. c5soc_sharedonly каталогу бир DDR эс тутуму бар такта варианты үчүн. c5soc каталогу эки DDR эс тутуму бар такта варианты үчүн.
  3.  ALTERAOCLSDKROOT/board/c5soc/ ичиндеги HPS жана/же FPGA SDRAM блоктору үчүн DDR жөндөөлөрүн жаңыртыңыз /system.qsys file.
    4. OpenCL артыкчылыктуу тактасы үчүн бардык Intel FPGA SDK кепилденген жабылууга жетиши керек. Ошентип, дизайнды жайгаштыруу убактысы таза болушу керек. C5soc тактасынын бөлүгүн (acl_iface_partition.qxp) SoC FPGA тактаңызга өткөрүү үчүн, төмөнкү тапшырмаларды аткарыңыз:
    Башкарманын бөлүктөрүн өзгөртүү жана сактоо боюнча кеңири көрсөтмөлөрдү Квартусту караңыз
    Quartus Prime Standard Edition колдонмосунун иерархиялык жана командага негизделген дизайн бөлүмү үчүн кошумча кошумча компиляция.
    а. acl_iface_partition.qxp файлын ALTERAOCLSDKROOT/board/c5soc/c5soc каталогунан алып салыңыз.
    б. 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 кылып өзгөртүү менен acl_iface_region LogicLock™ аймагын иштетиңиз
    в. Сиздин тактаңыз үчүн OpenCL өзөгүн түзүңүз.
    г. Зарыл болсо, LogicLock аймагынын өлчөмүн жана жайгашкан жерин тууралаңыз.
    д. Дизайныңыздын жайгашуусу убакыт боюнча таза экенине канааттанганыңызда, ал бөлүмдү acl_iface_partition.qxp Quartus Prime Экспорттолгон Бөлүмү катары экспорттоңуз File.
    OpenCL Custom Platform Toolkit Колдонуучу колдонмосу үчүн AIntel FPGA SDKсынын Кепилденген Убакыт агымын түзүү бөлүмүндө сүрөттөлгөндөй, бул .qxp импорттоо менен  file жогорку деңгээлдеги дизайнга кирип, сиз гарантияланган жабылуу агымы менен такта дизайнын камсыз кылуу талабын аткарасыз.
    Экспорттолгон бөлүмүңүздүн натыйжаларынын сапатына (QoR) таасир этиши мүмкүн болгон факторлор үчүн, OpenCL Custom Platform Toolkit Колдонуучу колдонмосу үчүн Intel FPGA SDK ичиндеги Экспорттолгон такта бөлүгү үчүн Натыйжалардын жалпы сапаты бөлүмүн караңыз.
    f. 2-кадамдагы буйрукту кайра set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region дегенге кайтаруу менен acl_iface_region LogicLock аймагын өчүрүңүз.
  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 версия OpenCL өзөктөрүн компиляциялоо үчүн SDK үчүн зарыл.
    Кеңеш: RTE үчүн Ыңгайлаштырылган платформаңыздын SDK версиясын колдонсоңуз болот. Сактоо
    мейкиндигинде, SD флэш-картасынын сүрөтүн Жеке платформаңыздын RTE версиясынан алып салыңыз.
  8. Ыңгайлаштырылган платформаңызды сынап көрүңүз.
    Көбүрөөк маалымат алуу үчүн OpenCL Custom Platform Toolkit Колдонуучунун колдонмосу үчүн Intel FPGA SDKсынын Аппараттык түзүлүштү сынап көрүү бөлүмүн караңыз.

Related Links

  • Аппараттык камсыздоонун дизайнын текшерүү
  • Иерархиялык жана командалык дизайн үчүн 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 автомиграцияны иштетүү үчүн.
OpenCL версиясы 14.1 жана андан тышкары үчүн Altera® SDK board_spec.xml file такта маалымат алуу үчүн, жана автоматтык жаңыртууларды ишке ашырат. Анткени сиз өзгөртөсүз
QXP сактоо агымын ишке ашыруу менен дизайн, сиз board_spec.xml жаңыртышыңыз керек file учурдагы версияда анын форматына. жаңыртуу file SDKга сакталбаган Ыңгайлаштырылган Платформалар менен учурдагы QXP негизиндеги Ыңгайлаштырылган Платформаларды айырмалоого мүмкүндүк берет. Көбүрөөк маалымат алуу үчүн, OpenCL Custom Platform Toolkit Колдонуучу колдонмосу үчүн Intel FPGA SDK ичиндеги Алдыга шайкештик үчүн Ыңгайлаштырылган Платформанын Автомиграциясын караңыз.

  1. C5socтун мурунку версиясынан көчүрүлгөн Cyclone V SoC FPGA аппараттык түзүмүндө QXP сактоо агымын ишке ашыруу үчүн, HPSти .qxpден чыгаруу үчүн төмөнкү бөлүктөрдү түзүү үчүн төмөнкү кадамдарды аткарыңыз. file:
    а. Ядролук эмес логиканын айланасында бөлүктү түзүүдөн мурун, .qsf Quartus Prime жөндөөлөрүндө HPSтин айланасында бөлүктү түзүңүз File.
    Мисалы үчүнampле:
    # HPS-арналган киргизүү/чыгаруу жыйындысы_инстанция_дайындоосун моделдөөчү инстанцияны кол менен бөлүңүз -аталышы PARTITION_HIERARCHY borde_18261 - "система:система|система_acl_iface:acl_iface|system_acl_iface_hps_0:hps_acem_hps_0:hps_acems_hps_0| system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_0_hps_io_border: чек ара"
    # Бөлүмдү HPS_PARTITION түрү кылып, калган Quartus тарабынан туура иштетиле тургандай кылып коюңуз
    set_global_assignment -аты PARTITION_TYPE HPS_PARTITION -section_id "система_acl_iface_hps_0_hps_io_border:чек"
    quartus_cdb top -c top
    –incremental_compilation_export=acl_iface_partition.qxp
    –incremental_compilation_export_partition_name=acl_iface_partition
    –incremental_compilation_export_post_synth=күйгүзүлгөн
    –incremental_compilation_export_post_fig=on
    –incremental_compilation_export_routing=күйгүзүлгөн
    –incremental_compilation_export_flatten=өчүрүү
    HPSти бөлүмдөн чыгарып салгандан кийин, .qxp импорттой аласыз file жана дизайныңызды түзүңүз.
  2. Төмөнкү тапшырмаларды аткаруу менен SD флэш-картасынын сүрөтүн OpenCL үчүн Intel FPGA RTE учурдагы версиясы менен жаңыртыңыз:
    а. монтаждоо file бөлүштүрүү таблицасы (fat32) жана кеңейтилген file системалык (ext3) бөлүктөрү бар сүрөттөлүштүн артка кайтаруучу түзүлүштөрү катары. Көбүрөөк нускамаларды алуу үчүн, SD Flash картасынын сүрөтүн куруудагы 2-кадамды караңыз.
    б. /home/root/opencl_arm32_rte каталогунан алып салыңыз fileRTEнин мурунку версиясынан.
    в. RTEнин учурдагы версиясын /home/root/opencl_arm32_rte каталогуна жүктөп алып, ачыңыз.
    г. Ичинде /driver/version.h file Ыңгайлаштырылган платформаңыздын ACL_DRIVER_VERSION дайындоосун жаңыртыңыз . (мисалыample, 16.1.x, мында 16.1 SDK версиясы жана x - сиз орноткон драйвер версиясы).
    д. Айдоочуну кайра куруу.
    f. Ыңгайлаштырылган платформаңыздын аппараттык папкасын(ларын) жок кылыңыз. Ыңгайлаштырылган платформаны жаңыртылган драйвер менен бирге /home/root/opencl_arm_rte/board каталогуна көчүрүңүз.
    г. Altera.icd көчүрүңүз file /home/root/opencl_arm32_rte каталогунан жана аны /etc/OpenCL/vendors каталогуна кошуңуз.
    ч. Жаңы сүрөттү ажыратып, сынап көрүңүз. Толук нускамалар үчүн, SD Flash Card сүрөтүн куруудагы 8-11-кадамдарды караңыз.

Related Links

  • SD Flash картасынын сүрөтүн түзүү 14-бетте
    Сизде жаңы SD флеш-карта сүрөтүн түзүү мүмкүнчүлүгү да бар.
  • Алдыга шайкештик үчүн ыңгайлаштырылган платформаны автоматташтыруу

1.3 Жалпы эстутум үчүн программалык камсыздоо
FPGA жана CPU ортосундагы жалпы физикалык эс SoC FPGAларда иштеген OpenCL өзөктөрү үчүн артыкчылыктуу эс тутуму болуп саналат. FPGA жалпы виртуалдык эстутумдан айырмаланып, жалпы физикалык эстутумга кире тургандыктан, колдонуучунун виртуалдык даректерин физикалык бет даректерине салыштырган CPU бет таблицаларына кирүү мүмкүнчүлүгү жок.
Аппараттык камсыздоого келсек, OpenCL өзөктөрү HPS DDR катуу эстутум контроллерине түз туташуу аркылуу жалпы физикалык эстутумга кире алышат. Программага карата жалпы физикалык эстутумду колдоо төмөнкүдөй ойлорду камтыйт:

  1. Процессордогу эстутумду бөлүштүрүү үчүн типтүү программалык камсыздоо (мисалыample, malloc() функциясы) FPGA колдоно турган эстутум аймагын бөлө албайт.
    malloc() функциясы бөлгөн эстутум виртуалдык эстутум дарек мейкиндигинде туташып турат, бирок негизги физикалык барактар ​​физикалык жактан чектеш болушу күмөн. Ошентип, хост физикалык жактан туташкан эстутум аймактарын бөлүштүрө алышы керек. Бирок, бул жөндөм Linux'та колдонуучу мейкиндик колдонмолорунда жок. Ошондуктан, Linux ядросунун драйвери бөлүштүрүүнү аткарышы керек.
  2. OpenCL SoC FPGA Linux ядросунун драйвери жалпы физикалык эстутумду бөлүштүрүү жана аны колдонуучу мейкиндигине картага түшүрүү үчүн mmap() функциясын камтыйт. mmap() функциясы түзмөк менен бөлүшүү үчүн физикалык жактан туташкан эстутум аймактарын суроо үчүн стандарттуу Linux ядросунун dma_alloc_coherent() чалуусун колдонот.
  3. Демейки Linux өзөгүндө 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 ядросунун драйвери алган физикалык дарек OpenCL өзөгү HPS SDRAMга өткөн Avalon® дареги болуп калат.
Иштөө убактысынын китепканасына карата, clCreateBuffer() чалуу менен бөлүшүлгөн эстутумду түзмөк буфери катары төмөнкү ыкма менен бөлүштүрүңүз:

  • Бөлүшүлгөн жана бөлүшүлбөгөн эс тутуму бар эки DDR тактасынын варианты үчүн, CL_MEM_USE_HOST_PTR желегин көрсөтсөңүз, clCreateBuffer() бөлүшүлгөн эстутумду бөлөт. Башка желектерди колдонуу clCreateBuffer() буферди бөлүшүлбөгөн эстутумда бөлүүгө алып келет.
  • Жалаң гана жалпы эс тутуму бар бир DDR тактасынын варианты үчүн, clCreateBuffer() сиз көрсөткөн желекчеге карабастан жалпы эстутумду бөлүштүрөт.
    Учурда, ARM CPUдеги 32-бит Linux колдоосу SDK иштөө убактысынын китепканаларында бөлүшүлгөн эс тутумдун колдоосунун көлөмүн башкарат. Башкача айтканда, башка чөйрөлөргө компиляцияланган иштөө убактысынын китепканалары (мисалыample, x86_64 Linux же 64-бит Windows) жалпы эс тутумду колдоого албайт.
    C5soc төмөнкү себептерден улам жалпы жана бөлүшүлбөгөн эстутумду айырмалоо үчүн гетерогендүү эстутумду ишке ашырган жок:
    1. Тарых — гетерогендүү эс тутум колдоосу алгач жалпы эс тутум колдоосу түзүлгөндө жеткиликтүү эмес.
    2. Бирдиктүү интерфейс — OpenCL ачык стандарт болгондуктан, Intel гетерогендүү эсептөө платформасынын сатуучуларынын ортосунда ырааттуулукту сактайт. Ошондуктан, бөлүшүлгөн эстутумду бөлүштүрүү жана пайдалануу үчүн башка такта сатуучулардын архитектуралары сыяктуу эле интерфейс колдонулат.

1.4 FPGA кайра конфигурациялоо
SoC FPGAлары үчүн CPU CPU иштешин үзгүлтүккө учуратпастан FPGA негизги кездемесин кайра конфигурациялай алат. FPGA менеджеринин аппараттык блогу, HPS жана негизги FPGA конфигурациялоону аткарат. Linux ядросунда FPGA менеджерине оңой кирүүгө мүмкүндүк берүүчү драйвер бар.

  • үчүн view FPGA өзөгүнүн абалын билүү үчүн, cat /sys/class/fpga/fpga0/ статус буйругун чакырыңыз.
    Cyclone V SoC Development Kit Reference Platform менен жеткиликтүү OpenCL программасынын утилитасы үчүн Intel FPGA SDK FPGA программалоо үчүн бул интерфейсти колдонот. Иштеп жаткан CPU менен FPGA өзөгүн кайра программалоодо программанын утилитасы төмөнкү тапшырмалардын баарын аткарат:
    1. Кайра программалоодон мурун, FPGA жана HPS ортосундагы бардык байланыш көпүрөлөрүн, H2F жана LH2F көпүрөлөрүн өчүрүңүз.
    Кайра программалоо аяктагандан кийин бул көпүрөлөрдү кайра иштетиңиз.
    Көңүл буруңуз: OpenCL системасы FPGA-HPS (F2H) көпүрөсүн колдонбойт. Көбүрөөк маалымат үчүн Cyclone V Түзмөк колдонмосунун HPS-FPGA Interfaces бөлүмүн караңыз, 3-том: Катуу процессор тутумунун техникалык маалымдама колдонмосу.
    2. Кайра программалоо учурунда FPGA менен HPS DDR контроллерунун ортосундагы байланыш өчүрүлгөнүн текшериңиз.
    3. Кайра программалоо учурунда FPGAдагы FPGA үзгүлтүктөрү өчүрүлгөндүгүн текшериңиз.
    Ошондой эле, кайра программалоо учурунда FPGA үзгүлтүктөрүн четке кагуу үчүн драйверге кабарлаңыз.

Иш жүзүндө аткарылышы боюнча чоо-жайын билүү үчүн программанын утилитасынын баштапкы кодун караңыз.

Эскертүү: CPU иштеп жатканда HPS DDR контроллерунун конфигурациясын өзгөртпөңүз.
Мындай кылуу системалык катага алып келиши мүмкүн, анткени CPUдан көрүнүктүү эс тутум транзакциялары болгондо DDR контроллеринин конфигурациясын өзгөртө аласыз. Бул CPU иштеп жатканда, сиз башка конфигурацияда HPS DDR колдонгон сүрөт менен FPGA өзөгүн кайра программалай албайсыз дегенди билдирет.
OpenCL системасы жана Intel SoC FPGA Embedded Design Suite (EDS) менен жеткиликтүү Алтын Аппараттык маалымдама дизайны HPS DDRди бир 256-бит режимине коет.
Тармактык болжолдоочу же бет таблицасын алдын ала алып келүүчү сыяктуу CPU тутумунун бөлүктөрү 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 жана SoC EDS менен жеткиликтүү Алтын аппараттык маалымдама дизайны кысылган, бирок шифрленбеген .rbf сүрөттөрүн камтыйт. OpenCL Cyclone V SoC баштоо колдонмосунда Intel FPGA SDK сүрөттөлгөн SW3 DIP которгуч орнотуулары ушул .rbf сүрөт конфигурациясына дал келет.

Related Links

  • HPS-FPGA интерфейстери
  • SW3 которгучтарын конфигурациялоо

1.4.1 FPGA тутумунун архитектурасынын чоо-жайы
Cyclone V SoC Development Kit Reference Platform үчүн колдоо OpenCL үчүн Intel FPGA SDK менен жеткиликтүү Stratix® V Reference Platform (s5_ref) негизделген.
c5soc Qsys тутумунун жалпы уюштурулушу жана ядро ​​​​драйвери s5_refдегилерге абдан окшош.
Төмөнкү FPGA негизги компоненттери c5soc жана s5_ref экөө тең бирдей:

  • VERSION_ID бөгөттөө
  • Эс алуу механизми
  • Эстутум банкынын бөлүүчүсү
  • Кэш snoop интерфейси
  • Ядро сааты
  • Регистрге кирүүнү көзөмөлдөө (CRA) блоктору

1.5 SD Flash картасынын сүрөтүн түзүү
Cyclone V SoC FPGA чиптеги толук система болгондуктан, сиз системанын толук аныктамасын жеткирүү үчүн жооптуусуз. Intel аны SD флэш-карта сүрөтү түрүндө жеткирүүнү сунуштайт. OpenCL колдонуучусу үчүн Intel FPGA SDK жөн гана микро SD флеш-картасына сүрөт жаза алат жана SoC FPGA тактасы колдонууга даяр.
Бар болгон SD Flash картасынын сүрөтүн өзгөртүү 13-бетте
Intel Cyclone V SoC Development Kit Reference Platform менен жеткиликтүү сүрөттү жөн гана өзгөртүүнү сунуштайт. Сизде жаңы SD флеш-карта сүрөтүн түзүү мүмкүнчүлүгү да бар.
SD Flash картасынын сүрөтүн түзүү 14-бетте
Сизде жаңы SD флеш-карта сүрөтүн түзүү мүмкүнчүлүгү да бар.

1.5.1 Учурдагы SD Flash картасынын сүрөтүн өзгөртүү
Intel Cyclone V SoC менен жеткиликтүү болгон сүрөттү жөн гана өзгөртүүнү сунуштайт
Өнүгүү комплектинин маалымдама платформасы. Сизде жаңы SD флеш-карта сүрөтүн түзүү мүмкүнчүлүгү да бар.
c5soc linux_sd_card_image.tgz сүрөтү file ALTERAOCLSDKROOT/board/c5soc каталогунда жеткиликтүү, мында ALTERAOCLSDKROOT OpenCL орнотуу каталогу үчүн Intel FPGA SDK жолун көрсөтөт.

Көңүл буруңуз: 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 OpenCL Offline Compiler үчүн Intel FPGA SDK opencl.rbf катары жаратат жана аны SD флеш-карта сүрөтүнүн ичиндеги fat32 бөлүгүнө жайгаштырыңыз.
    Сиз hello_world экс жүктөй аласызample дизайн OpenCL Design ExampAlteraдагы les баракчасы 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 флэш картаңыздын сүрөтүн текшерүү үчүн, төмөнкү тапшырмаларды аткарыңыз:
    а. Микро SD флеш-картаны SoC FPGA тактасына салыңыз.
    б. Тактаны иштетиңиз.
    в. aocl диагностикасынын утилитасынын буйругун чакырыңыз.

1.5.2 SD Flash картасынын сүрөтүн түзүү
Сизде жаңы SD флеш-карта сүрөтүн түзүү мүмкүнчүлүгү да бар. Жаңы SD флэш-картасынын сүрөтүн түзүү жана учурдагы SD флэш-картасынын сүрөтүн калыбына келтирүү боюнча жалпы нускамалар GSRD v14.0.2 – RocketBoards.org SD карта бетинде жеткиликтүү. webсайт.
Төмөнкү кадамдар Golden System Reference Design (GSRD) SD флеш-карта сүрөтүнөн linux_sd_card_image.tgz сүрөтүн түзүү процедурасын сүрөттөйт:
Эскертүү:
c5soc сүрөтүнөн сүрөт түзүү үчүн, бул процедурада көрсөтүлгөн бардык тиешелүү тапшырмаларды аткарыңыз.

  1. Rocketboards.org сайтынан GSRD SD флэш-карта сүрөтүнүн 14.0 версиясын жүктөп алып, таңгактан чыгарыңыз.
  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 бекер цикл түзмөгү деп ойлосок, /dev/loop0 image_ жоголушун чакырып, флеш картаңыздын сүрөтүн цикл блок түзмөгүнө дайындаңыз.file -0 1086324736 команда.
    г. mount /dev/loop0 /media/disk1 буйругун чакыруу менен цикл түзүлүшүн орнотуңуз.
    Сүрөттүн ичинде file, /media/disk1 азыр орнотулган fat32 бөлүмү.
    д. Ext3 бөлүмү үчүн aдан dга чейинки кадамдарды кайталаңыз.
  3. Alteraдагы Жүктөө борборунан OpenCL пакети үчүн Intel FPGA Runtime Environment Cyclone V SoC FPGA версиясын жүктөп алыңыз webсайт.
    а. Quartus Prime программалык чыгарылышынын жанындагы Жүктөп алуу баскычын чыкылдатыңыз.
    б. Чыгуу версиясын, иштөө тутумун жана жүктөө ыкмасын көрсөтүңүз.
    в. Кошумча программа өтмөгүн чыкылдатып, Intel FPGA жүктөп алуу үчүн тандаңыз
    OpenCL Linux Cyclone V SoC TGZ үчүн Runtime Environment.
    г. 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 колдонуучусу чөйрө өзгөрмөлөрүн жана OpenCL Linux ядросунун драйверин жүктөө үчүн булак ./init_opencl.sh буйругун иштетет.
  7. Эгер алдын ала жүктөгүчтү жаңыртышыңыз керек болсо, DTS files же Linux ядросу үчүн сизге SoC EDSтен arm-linux-gnueabihf-gcc компилятору керек. Программалык камсыздоону сатып алуу, аларды кайра компиляциялоо жана тиешелүү файлдарды жаңыртуу үчүн Intel SoC FPGA Embedded Design Suite Колдонуучунун колдонмосунда көрсөтүлгөн нускамаларды аткарыңыз. fileорнотулган fat32 бөлүмүндө.
    Көңүл буруңуз: Ыңгайлаштырылган платформаңыз c5soc программасына караганда башка пин колдонууга ээ болсо, алдын ала жүктөгүчтү жаңыртыңыз.
    Эсиңизде болсун: Эгер сиз Linux ядросун кайра компиляцияласаңыз, Linux ядросунун драйверин ошол эле Linux ядро ​​булагы менен кайра компиляциялаңыз fileс. Эгерде Linux ядросунун драйвери менен Linux ядросунун ортосунда дал келбестик бар болсо, драйвер жүктөлбөйт. Ошондой эле, сиз CMA иштетүү керек.
    Көбүрөөк маалымат үчүн Linux ядросун кайра компиляциялоо караңыз.
  8. hello_world OpenCL мурунку компиляцияampСиздин Колдонмо платформа колдоосу менен дизайн. .rbf атын өзгөртүңүз file OpenCL Offline Compiler үчүн Intel FPGA SDK opencl.rbf катары жаратат жана аны SD флеш-карта сүрөтүнүн ичиндеги fat32 бөлүгүнө жайгаштырыңыз.
    Сиз hello_world экс жүктөй аласызample дизайн OpenCL Design ExampAlteraдагы les баракчасы webсайт.
    9. Сиз бардык зарыл сактоо кийин fileс флеш-картанын сүрөтүнө түшүрүп, төмөнкү буйруктарды чакырыңыз:
    а. синхрондоштуруу
    б. /media/disk1
    в. ажыратуу кайда ext3 бөлүмүн 3-бетте 3-бетте орнотуу үчүн колдонгон каталогдун аталышы (мисалыample, /media/disk2).
    г. kayıp -d /dev/loop0
    д. kayıp -d /dev/loop1
  9. Төмөнкү буйрукту чакыруу менен SD флеш-картасынын сүрөтүн кысуу: tar cvfz .tgz linux_sd_card_image
  10. жеткирүү .tgz file Ыңгайлаштырылган платформаңыздын түпкү каталогунун ичинде.
  11. SD флэш картаңыздын сүрөтүн текшерүү үчүн, төмөнкү тапшырмаларды аткарыңыз:
    а. Натыйжада кысылбаган сүрөттү микро SD флеш-картага жазыңыз.
    б. Микро SD флеш-картаны SoC FPGA тактасына салыңыз.
    в. Тактаны иштетиңиз.
    г. aocl диагностикалоо утилитасынын буйругун чакырыңыз.

Related Links

  • Intel SoC FPGA Embedded Design Suite Колдонуучунун колдонмосу
  • OpenCL Design ExampAlteraдагы les баракчасы webсайт
  • Linux ядросун кайра компиляциялоо 16-бетте
    CMA иштетүү үчүн, адегенде Linux ядросун кайра компиляциялашыңыз керек.
  • Сиздин FPGA тактаңыздын түзмөк атын суроо (диагностика)

1.6 Cyclone V SoC FPGA үчүн Linux ядросун түзүү
Cyclone V SoC FPGA тактасында OpenCL тиркемелерин иштетүүдөн мурун, сиз Linux ядро ​​булагын компиляциялооңуз жана OpenCL Linux ядросунун драйверин компиляциялооңуз жана орнотууңуз керек.

  1. Linux ядросун кайра компиляциялоо 16-бетте
    CMA иштетүү үчүн, адегенде Linux ядросун кайра компиляциялашыңыз керек.
  2. OpenCL Linux ядро ​​драйверин компиляциялоо жана орнотуу 17-бетте OpenCL Linux ядросунун драйверин компиляцияланган ядро ​​булагына каршы компиляциялаңыз.

1.6.1 Linux ядросун кайра компиляциялоо
CMA иштетүү үчүн, адегенде Linux ядросун кайра компиляциялашыңыз керек.

  1. RocketBoards.org сайтынын Ресурстар бетиндеги GSRD v14.0 – Linux компиляциясы шилтемесин басыңыз. webLinux ядросунун баштапкы кодун жүктөп алуу жана кайра куруу боюнча нускамаларды алуу үчүн сайт.
    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=ж
    CONFIG_CMA=y
    CONFIG_DMA_CMA=y
    CONFIG_CMA_DEBUG=y
    CONFIG_CMA_SIZE_MBYTES=512
    CONFIG_CMA_SIZE_SEL_MBYTES=ж
    CONFIG_CMA_ALGNMENT=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 бөлүгүнө. Толук нускамалар үчүн Rocketboards.org сайтындагы Cyclone V SoC FPGA үчүн атайын GSRD Колдонуучу колдонмосун караңыз.
  9. Эскертүү: OpenCL Linux ядросунун драйверин туура киргизүү үчүн, адегенде SDKgenerated.rbf жүктөңүз file FPGAга.
    .rbf түзүү үчүн file, SDK дизайнын түзүңүзampCyclone V SoC Development Kit Reference Platform менен максаттуу Жеке платформа катары.
    9. .rbf коюңуз file флеш карта сүрөтүнүн fat32 бөлүгүнө.
    Көңүл буруңуз: fat32 бөлүмүндө zImage экөө тең болушу керек file жана .rbf file. .rbf жок file, сиз драйверди киргизгениңизде олуттуу ката пайда болот.
  10. Сиз мурда өзгөрткөн же жараткан SD картанын сүрөтүн камтыган программаланган микро SD картаны Cyclone V SoC Development Kitке салып, андан кийин SoC FPGA тактасын иштетиңиз.
  11. Uname -r буйругун иштетүү менен орнотулган Linux ядросунун версиясын текшериңиз.
  12. SoC FPGA тактасы күйүп турганда ядродо CMA ийгиликтүү иштетилгениңизди текшерүү үчүн grep init_cma /proc/kallsyms буйругун иштетиңиз.
    Чыгуу бош эмес болсо, CMA иштетилет.
  13. Кайра компиляцияланган Linux ядросун SDK менен колдонуу үчүн Linux ядросунун драйверин компиляциялап, орнотуңуз.

Related Links

  • Golden System Reference Design (GSRD) Колдонуучу колдонмолору
  • SD Flash картасынын сүрөтүн түзүү 13-бетте
    Cyclone V SoC FPGA чиптеги толук система болгондуктан, сиз системанын толук аныктамасын жеткирүү үчүн жооптуусуз.

1.6.2 OpenCL Linux ядросунун драйверин түзүү жана орнотуу
OpenCL Linux ядросунун драйверин компиляцияланган ядро ​​булагына каршы түзүңүз.

Драйвер булагы OpenCL үчүн Intel FPGA Runtime Environment Cyclone V SoC FPGA версиясында жеткиликтүү. Мындан тышкары, OpenCL тарабынан түзүлгөн .rbf үчүн Intel FPGA SDK жүктөлгөнүңүздү текшериңиз file Linux ядро ​​модулунун туура эмес орнотулушун алдын алуу үчүн FPGAга.

  1. Alteraдагы Жүктөө борборунан OpenCL пакети үчүн Intel FPGA Runtime Environment Cyclone V SoC FPGA версиясын жүктөп алыңыз webсайт.
    а. Quartus Prime программалык чыгарылышынын жанындагы Жүктөп алуу баскычын чыкылдатыңыз.
    б. Чыгуу версиясын, иштөө тутумун жана жүктөө ыкмасын көрсөтүңүз.
    в. Кошумча программа өтмөгүн чыкылдатып, Intel FPGA жүктөп алуу үчүн тандаңыз
    OpenCL Linux Cyclone V SoC TGZ үчүн Runtime Environment.
    г. aocl-rte жүктөп алгандан кийин .arm32.tgz file, аны таңгактан чыгарыңыз
    сизге таандык каталог.
    Айдоочу булагы aocl-rte-де .arm32/board/c5soc/ драйвер каталогу.
  2. OpenCL Linux ядросунун драйверин кайра компиляциялоо үчүн, драйвердин жасоосунда KDIR маанисин коюңузfile Linux ядро ​​булагы камтылган каталогго files.
  3. Куралдар чынжырыңыздын префиксин көрсөтүү үчүн экспорт CROSS_COMPILE=arm-linux-gnueabihf- буйругун иштетиңиз.
  4. make clean командасын иштетиңиз.
  5. aclsoc_drv.ko түзүү үчүн make буйругун иштетиңиз file.
  6. Opencl_arm32_rte каталогун Cyclone V SoC FPGA тактасына өткөрүңүз.
    scp -r иштетүү root@your-ipaddress: команда иштөө чөйрөсүн/home/root каталогуна жайгаштырат.
  7. SD cardiage курганыңызда жараткан init_opencl.sh скриптин иштетиңиз.
  8.  aocl диагностикасынын утилитасынын буйругун чакырыңыз. Диагностика утилитасы init_opencl.sh файлын ийгиликтүү иштеткенден кийин өтүүчү жыйынтыкты кайтарат.

1.7 Белгилүү маселелер
Учурда, Cyclone V SoC Development Kit Reference Platform менен OpenCL үчүн Intel FPGA SDK колдонууга белгилүү чектөөлөр бар.

  1. clGetDeviceInfo() чалуусунун CL_DEVICE_VENDOR жана CL_DEVICE_NAME саптары тарабынан билдирилген сатуучунун жана тактанын аталыштарын жокко чыгара албайсыз.
  2. Эгерде хост туруктуу эстутумду жалпы DDR тутумуна (башкача айтканда, HPS DDR) бөлсө жана ядро ​​аткарылгандан кийин туруктуу эстутумду өзгөртсө, эс тутумдагы маалыматтар эскирип калышы мүмкүн. Бул маселе FPGA өзөгү CPU-HPS DDR транзакцияларын байкай албагандыктан келип чыгат.
    Ядронун кийинки аткарылышынын эскирген маалыматтарга кирүүсүнө жол бербөө үчүн, төмөнкү убактылуу чечимдердин бирин аткарыңыз:
    • Туруктуу эстутумду инициализациялоодон кийин өзгөртпөңүз.
    • Эгер сизге бир нече __ туруктуу маалымат топтому керек болсо, бир нече туруктуу эс буферлерин түзүңүз.
    • Эгер бар болсо, тездеткич тактаңыздагы FPGA DDRге туруктуу эстутумду бөлүңүз.
  3. ARMдеги SDK утилитасы программаны жана диагностикалоочу утилита буйруктарын гана колдойт.
    Жаркылдоо, орнотуу жана өчүрүү утилита командалары төмөнкү себептерден улам Cyclone V SoC Development Kit үчүн колдонулбайт:
    а. Орнотуу утилитасы aclsoc_drv Linux ядросунун драйверин компиляциялап, аны SoC FPGAда иштетиши керек. Иштеп чыгуучу машина компиляцияны аткарышы керек; бирок, анда SoC FPGA үчүн Linux өзөк булактары бар. Иштеп чыгуучу машина үчүн 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) компилятору.
    б. Flash утилитасы .rbf коюуну талап кылат file микро SD флеш-картасынын FAT32 бөлүгүнө OpenCL дизайны. Учурда бул бөлүм SDK колдонуучусу тактаны иштеткенде орнотулган эмес. Ошондуктан, бөлүмдү жаңыртуунун эң жакшы жолу - флэш-картаны окугучту жана иштеп чыгуучу машинаны колдонуу.
  4. OpenCL Offline Compiler аткарылуучу үчүн Intel FPGA SDK ортосунда которулганда files (.aocx) тактасынын ар кандай варианттарына туура келген (б.а. c5soc жана c5soc_sharedonly), .aocx жүктөө үчүн SDK программасынын утилитасын колдонушуңуз керек. file биринчи жолу тактанын жаңы варианты үчүн. Эгер сиз жөн гана жаңы тактанын вариантын колдонуп, хост тиркемесин иштетсеңиз, бирок FPGA башка такта вариантынын сүрөтүн камтыса, ката кетириши мүмкүн.
  5. .qxp file Quartus Prime программалык камсыздоосу бул бөлүмдүн убакыт талаптарын ырааттуу түрдө канааттандыргандыктан интерфейс бөлүгүнүн дайындоолорун камтыбайт.
  6. Сиз тактаны иштеткенде, анын медиага кирүүнү башкаруу (MAC) дареги туш келди санга коюлат. Эгер LAN саясатыңыз мындай жүрүм-турумга жол бербесе, төмөнкү тапшырмаларды аткаруу менен MAC дарегин орнотуңуз:
    а. U-Boot күйгүзүлүп жатканда, U-Boot буйрук сабына кирүү үчүн каалаган баскычты басыңыз.
    б. Type 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 •OpenCL үчүн Altera SDK ребрендденди, OpenCL үчүн Intel FPGA SDK.
•OpenCL Offline Compiler үчүн Intel FPGA SDK үчүн Altera Offline Compiler ребрендацияланган.
Май-16 2016.05.02 • SD флеш-карта сүрөтүн куруу жана өзгөртүү боюнча өзгөртүлгөн нускамалар.
•Linux ядросун жана OpenCL Linux ядросунун драйверин кайра компиляциялоо боюнча өзгөртүлгөн нускамалар.
Ноябрь-15 2015.11.02 •Техникалык релиз жана Quartus II инстанциялары Quartus Prime болуп өзгөртүлдү.
Май-15 15.0.0 •FPGA кайра конфигурациясында, FPGA өзөгүн кайра программалоо үчүн нускама алынып салынды
менен . мышыкты чакыруу менен rbf сүрөтү fileаты>. rbf
> /dev/ fpga0 буйругу, анткени бул ыкма сунушталбайт.
14-декабрь 14.1.0 •Документтин аталышы Altera Cyclone V SoC Development Kit Reference Platform Porting Guide деп өзгөртүлдү.
•Reprogram utility aocl программасына жаңыртылганfilename>.aocx утилитасынын буйругу.
•Аокл диагностикасы жана aocl диагностикасы үчүн диагностикалык программа жаңыртылган пайдалуу буйрук.
•Кепилденген убакыт жабуунун агымы үчүн тайм-таза бөлүктү түзүү үчүн c5soc тактасынын бөлүгүн көчүрүү жана өзгөртүү боюнча нускамаларды камтыган Referans платформасын SoC Board үчүн өткөрүү бөлүмүндөгү процедура жаңыртылды.
•Төмөнкү тапшырмалардын жол-жоболорун белгилөө үчүн Портталган маалымдама платформасын жаңылоо темасы киргизилди:
1.Excluding катуу иштетүү системасы (HPS) такта бөлүгүндө блок
SD флеш карта сүрөтүн 2.Updating
•SD Flash картасынын сүрөтүн түзүү бөлүмү жаңыртылган. SoC Embedded Design Suite (EDS) менен жеткиликтүү болгон сүрөттүн ордуна баштапкы чекит катары Golden System Reference Design (GSRD) сүрөтүнүн 14.0 версиясын колдонуу сунушталат.
•Linux ядросун кайра компиляциялоо жана OpenCL Linux ядросунун драйвери бөлүмү жаңыртылган:
1. CROSS COMPILE өзгөрмөсүн орнотуу үчүн инструкция кошулду.
CMA ийгиликтүү иштетилгенин текшерүү үчүн сиз иштеткен буйрукту 2.Changed.
Июль-14 14.0.0 •Биринчи чыгарылыш.

Документтер / Ресурстар

OpenCL үчүн intel FPGA SDK [pdf] Колдонуучунун колдонмосу
OpenCL үчүн FPGA SDK, FPGA SDK, OpenCL үчүн SDK, SDK

Шилтемелер

Комментарий калтырыңыз

Сиздин электрондук почта дарегиңиз жарыяланбайт. Талап кылынган талаалар белгиленген *