intel logotipiOpenCL uchun FPGA SDK
Foydalanuvchi uchun qoʻllanma

UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite uchun oxirgi yangilangan: 17.0

RENPHO RF FM059HS WiFi aqlli oyoq massajchisi - 5-belgiObuna boʻling
SAMSUNG SM A136UZKZAIO Galaxy A13 5G smartfoni - belgi 12Fikr-mulohaza yuborish

OpenCL™ uchun Intel® FPGA SDK Intel® Cyclone®V SoC ishlab chiqish to‘plami uchun mos yozuvlar platformasi portlash qo‘llanmasi

V SoC Development Kit Reference Platform Porting Guide OpenCL ™ Intel Cyclone uchun Intel ® FPGA SDK uchun OpenCL uchun Intel Software Development Kit (SDK) bilan foydalanish uchun Intel Cyclone V SoC Development Kit Reference Platform (c5soc) apparat va dasturiy ta’minot dizaynini tavsiflaydi. ® . Ishni boshlashdan oldin Intel sizga quyidagi hujjatlar mazmuni bilan tanishib chiqishingizni tavsiya qiladi:

  1. OpenCLIntel Cyclone V SoC uchun Intel FPGA SDK. Ishga kirishish bo‘yicha qo‘llanma
  2. OpenCL Custom Platform Toolkit foydalanuvchi qo'llanmasi uchun Intel FPGA SDK
  3. Cyclone V qurilmasi bo‘yicha qo‘llanma, 3-jild: Qattiq protsessorli tizimning texnik ma’lumotnomasi Bundan tashqari, Altera’ning Cyclone V SoC Development Kit va SoC Embedded Design Suite sahifasiga qarang. webqo'shimcha ma'lumot olish uchun sayt. 1 2

Diqqat: Intel siz OpenCL Custom Platform Toolkit foydalanuvchi qo'llanmasi uchun Intel FPGA SDK haqida chuqur tushunchaga ega ekanligingizni taxmin qiladi. Cyclone V SoC Development Kit Reference Platform Porting Guide Cyclone V SoC Development Kit uchun maxsus platformani amalga oshirish uchun SDK ning maxsus platforma asboblar to'plamidan foydalanishni tavsiflamaydi. U faqat Cyclone V SoC Development Kit-da SDK-ni qo'llab-quvvatlash va OpenCL Custom Platform uchun umumiy Intel FPGA SDK o'rtasidagi farqlarni tavsiflaydi.

Tegishli havolalar

  • OpenCL Cyclone V SoC uchun Intel FPGA SDK. Ishga kirishish bo‘yicha qo‘llanma
  • OpenCL Custom Platform Toolkit foydalanuvchi qo'llanmasi uchun Intel FPGA SDK
  • Cyclone V qurilmasi bo'yicha qo'llanma, 3-jild: Qattiq protsessor tizimi texnik ma'lumotnomasi
  • Altera-da Cyclone V SoC Development Kit va SoC Embedded Design Suite sahifasi websayt
  1. OpenCL va OpenCL logotipi Khronos Group™ ruxsati bilan foydalaniladigan Apple Inc. savdo belgilaridir.
  2. OpenCL uchun Intel FPGA SDK nashr etilgan Khronos spetsifikatsiyasiga asoslangan va Khronos muvofiqlik sinovidan o‘tgan. Joriy muvofiqlik holatini quyidagi manzilda topishingiz mumkin www.khronos.org/conformance.

Intel korporatsiyasi. Barcha huquqlar himoyalangan. Intel, Intel logotipi, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus va Stratix so'zlari va logotiplari Intel korporatsiyasi yoki uning AQSh va/yoki boshqa mamlakatlardagi sho'ba korxonalarining savdo belgilaridir. Intel o'zining FPGA va yarimo'tkazgich mahsulotlarining Intel standart kafolatiga muvofiq joriy spetsifikatsiyalarga muvofiq ishlashiga kafolat beradi, lekin istalgan vaqtda ogohlantirmasdan istalgan mahsulot va xizmatlarga o'zgartirish kiritish huquqini o'zida saqlab qoladi. Intel tomonidan yozma ravishda kelishilgan hollar bundan mustasno, bu erda tasvirlangan har qanday ma'lumot, mahsulot yoki xizmatdan foydalanish yoki qo'llash natijasida kelib chiqadigan hech qanday javobgarlik yoki javobgarlikni o'z zimmasiga olmaydi. Intel mijozlariga har qanday nashr etilgan ma'lumotlarga tayanishdan va mahsulot yoki xizmatlarga buyurtma berishdan oldin qurilma texnik xususiyatlarining so'nggi versiyasini olish tavsiya etiladi.
*Boshqa nomlar va brendlar boshqalarning mulki sifatida da'vo qilinishi mumkin.

1.1.1 Cyclone V SoC Development Kit Reference Platform Board Variantlari
OpenCL Cyclone V SoC Development Kit Reference Platform uchun Intel FPGA SDK ikkita plata variantini o'z ichiga oladi.

  • c5soc taxtasi
    Ushbu standart plata ikkita DDR xotira bankiga kirishni ta'minlaydi. HPS DDR ga ham FPGA, ham CPU orqali kirish mumkin. FPGA DDR ga faqat FPGA orqali kirish mumkin.
  • c5soc_sharedonly taxtasi
    Ushbu plata variantida faqat HPS DDR ulanishi mavjud. FPGA DDR-ga kirish imkoni yo'q. Ushbu plata varianti yanada samaraliroq, chunki bitta DDR xotira bankini qo'llab-quvvatlash uchun kamroq uskuna kerak. c5soc_sharedonly taxtasi, shuningdek, bitta DDR xotira bankiga ega bo'lgan yakuniy ishlab chiqarish platasi uchun yaxshi prototiplash platformasidir.
    OpenCL yadrosini kompilyatsiya qilishda ushbu plata variantini maqsad qilib olish uchun aoc buyrug'ingizga -board c5soc_sharedonly opsiyasini qo'shing.
    Qo'shimcha ma'lumot uchun - taxta aoc buyrug'ining opsiyasi uchun OpenCL dasturlash qo'llanmasi uchun Intel FPGA SDK ga qarang.

Tegishli havolalar
Muayyan FPGA kengashi uchun yadroni kompilyatsiya qilish (-board )
1.1.2 Cyclone V SoC Development Kit Reference Platformasining mazmuni
Cyclone V SoC Development Kit Reference Platformasi quyidagilardan iborat files va kataloglar:

File yoki katalog Tavsif
board_env.xml Kengaytirilgan belgilash tili (XML) file Bu OpenCL uchun Intel FPGA SDK-ga c5soc-ni tavsiflaydi.
linux_sd_card_image.tgz Siqilgan SD flesh-karta tasviri file unda SDK foydalanuvchisi Cyclone V SoC Development Kit-dan SDK bilan foydalanishi uchun kerak bo'lgan hamma narsani o'z ichiga oladi.
arm32 Quyidagilarni o'z ichiga olgan katalog:

1.1.3 Cyclone V SoC Development Kitning tegishli xususiyatlari

Quyidagi ro'yxatda OpenCL uchun Intel FPGA SDK uchun tegishli bo'lgan Cyclone V SoC Development Kit komponentlari va xususiyatlari ta'kidlangan:

  • 9-bitli Linux bilan ishlaydigan ikki yadroli ARM Cortex-A32 protsessor.
  • HPS va FPGA yadrosi o'rtasidagi kengaytirilgan kengaytiriladigan interfeys (AXI) shinasi.
  • Har biri 1 gigabayt (GB) DDR3 SDRAMga ulangan ikkita qattiqlashtirilgan DDR xotira kontrolleri.
    — Bitta DDR kontrolleri faqat FPGA yadrosi uchun mavjud (ya'ni, FPGA DDR).
    — Boshqa DDR kontroller ham HPS, ham FPGA (ya'ni, HPS DDR) uchun mavjud. Ushbu umumiy kontroller CPU va FPGA yadrosi o'rtasida bepul xotira almashish imkonini beradi.
  • CPU FPGA yadro tuzilishini qayta sozlashi mumkin.

1.1.3.1 Cyclone V SoC Development Kit Reference Platform dizayn maqsadlari va qarorlari Intel Cyclone V SoC Development Kit Reference Platform-ni amalga oshirishda bir nechta dizayn maqsadlari va qarorlariga asoslanadi. Intel ushbu Yo'naltiruvchi Platformani SoC FPGA platangizga o'tkazishda ushbu maqsadlar va qarorlarni ko'rib chiqishingizni tavsiya qiladi.
Quyida c5soc dizayn maqsadlari keltirilgan:

  1. FPGA va DDR xotira tizimi(lar)idagi yadrolar o'rtasida mumkin bo'lgan eng yuqori tarmoqli kengligini ta'minlang.
  2. FPGA (ya'ni, OpenCL yadrolari)dagi hisob-kitoblar tashqi qurilmalarga xizmat ko'rsatishni o'z ichiga olishi mumkin bo'lgan boshqa CPU vazifalariga xalaqit bermasligiga ishonch hosil qiling.
  3. Interfeys komponentlari o'rniga yadro hisoblashlari uchun imkon qadar ko'proq FPGA resurslarini qoldiring.

Quyida Intel dizayn maqsadlarining bevosita oqibatlari bo'lgan yuqori darajadagi dizayn qarorlari keltirilgan:

  1. Malumot platformasi faqat eng keng konfiguratsiyaga ega (256 bit) qattiq DDR xotira kontrollerlaridan foydalanadi.
  2. FPGA HPS DDR xotira kontrolleri bilan to'g'ridan-to'g'ri, AXI avtobusi va HPS ichidagi L3 kalitini jalb qilmasdan bog'lanadi. To'g'ridan-to'g'ri aloqa DDR uchun eng yaxshi tarmoqli kengligini ta'minlaydi va FPGA hisob-kitoblarini protsessor va uning atrof-muhit o'rtasidagi aloqaga xalaqit berishidan saqlaydi.
  3. To'g'ridan-to'g'ri xotiraga kirish (SG-DMA) FPGA interfeysi mantig'ining bir qismi emas. DDR xotira tizimlari o'rtasida katta hajmdagi ma'lumotlarni uzatish o'rniga, ma'lumotlarni umumiy HPS DDR da saqlang. FPGA tomonidan protsessor xotirasiga to'g'ridan-to'g'ri kirish DMAga qaraganda samaraliroq. U apparat resurslarini (ya'ni, FPGA maydonini) tejaydi va Linux yadro drayverini soddalashtiradi.
    Ogohlantirish: Umumiy HPS DDR tizimi va faqat FPGA uchun ochiq bo'lgan DDR tizimi o'rtasida xotira uzatish juda sekin. Agar tanlasangiz
    xotirani shu tarzda o'tkazing, undan faqat juda kichik hajmdagi ma'lumotlar uchun foydalaning.
  4. Xost va qurilma faqat bitta 2-bitli portdan foydalangan holda HPS-to-FPGA (H32F) ko'prigi orqali bir-biri o'rtasida DMA bo'lmagan ma'lumotlarni uzatishni amalga oshiradi. Sababi, DMA bo'lmasa, Linux yadrosi faqat bitta 32 bitli o'qish yoki yozish so'rovini berishi mumkin, shuning uchun kengroq ulanishga ega bo'lish kerak emas.
  5. Xost boshqaruv signallarini qurilmaga engil H2F (LH2F) ko'prigi orqali yuboradi.
    Xostdan qurilmaga boshqaruv signallari past tarmoqli kengligi signallari bo'lganligi sababli, LH2F ko'prigi vazifa uchun idealdir.

1.2 Yo'naltiruvchi platformani SoC FPGA platangizga o'tkazish
Cyclone V SoC Development Kit Reference Platform-ni SoC FPGA platangizga o'tkazish uchun quyidagi vazifalarni bajaring:

  1. Dizayningizning boshlang'ich nuqtasi sifatida c5soc Reference Platformasining bitta DDR xotirasini yoki ikkita DDR xotira versiyasini tanlang.
  2. ALTERAOCLSDKROOT/board/c5soc/ da pin joylarini yangilang /top.qsf file, bu erda ALTERAOCLSDKROOT OpenCL o'rnatish uchun Intel FPGA SDK joylashuviga yo'ldir va - taxta variantining katalog nomi. c5soc_sharedonly katalogi bitta DDR xotira tizimiga ega plata varianti uchun. c5soc katalogi ikkita DDR xotira tizimiga ega plata varianti uchun.
  3.  ALTERAOCLSDKROOT/board/c5soc/ da HPS va/yoki FPGA SDRAM bloklari uchun DDR sozlamalarini yangilang. /system.qsys file.
    4. OpenCL afzal qilingan taxtali dizaynlari uchun barcha Intel FPGA SDK kafolatlangan vaqtni yopishga erishishi kerak. Shunday qilib, dizaynni joylashtirish vaqti toza bo'lishi kerak. C5soc plata qismini (acl_iface_partition.qxp) SoC FPGA platangizga o‘tkazish uchun quyidagi vazifalarni bajaring:
    Kengash qismini o'zgartirish va saqlash bo'yicha batafsil ko'rsatmalar uchun Quartusga qarang
    Quartus Prime Standard Edition qo'llanmasining ierarxik va jamoaviy dizayn bo'limi uchun asosiy qo'shimcha kompilyatsiya.
    a. acl_iface_partition.qxp faylini ALTERAOCLSDKROOT/board/c5soc/c5soc katalogidan olib tashlang.
    b. Tcl buyrug'ini set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_regionni set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region ga o'zgartirish orqali acl_iface_region LogicLock™ hududini yoqing.
    c. Kengashingiz uchun OpenCL yadrosini kompilyatsiya qiling.
    d. Agar kerak bo'lsa, LogicLock hududining o'lchami va joylashishini sozlang.
    e. Dizayningizning joylashuvi vaqt bo‘yicha toza ekanligiga ishonchingiz komil bo‘lsa, ushbu bo‘limni acl_iface_partition.qxp Quartus Prime Exported Partition sifatida eksport qiling. File.
    OpenCL Custom Platform Toolkit foydalanuvchi qoʻllanmasi uchun AIntel FPGA SDK ning Kafolatlangan vaqt oqimini oʻrnatish boʻlimida tavsiflanganidek, ushbu .qxp ni import qilish orqali  file yuqori darajadagi dizaynga kirib, siz kafolatlangan vaqtni yopish oqimi bilan taxta dizaynini ta'minlash talabini bajarasiz.
    Eksport qilingan bo'limingiz natijalari sifatiga (QoR) ta'sir qilishi mumkin bo'lgan omillar uchun OpenCL Custom Platform Toolkit foydalanuvchi qo'llanmasi uchun Intel FPGA SDK ning Eksport qilingan kengash bo'limi uchun natijalarning umumiy sifati bo'limiga qarang.
    f. 2-bosqichdagi buyruqni set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region ga qaytarish orqali acl_iface_region LogicLock hududini o‘chiring.
  4. Agar SoC FPGA platangiz HPS blokining turli pinlari va periferiyalaridan foydalansa, oldindan yuklovchi va qurilma daraxti manbasini (DTS) qayta yarating. file. Agar siz HPS DDR xotira tekshiruvi sozlamalarini o'zgartirsangiz, oldindan yuklovchini qayta yarating.
  5. SD flesh-karta tasvirini yarating.
  6. SD flesh-karta tasvirini o'z ichiga olgan shaxsiy platformangizni yarating.
  7. OpenCL uchun Intel FPGA Runtime Environment (RTE) bilan foydalanish uchun maxsus platformangizning ish vaqti muhiti versiyasini yaratishni o'ylab ko'ring. Shaxsiy platformangizning RTE versiyasi apparat kataloglari va SD flesh-karta tasvirini o'z ichiga olmaydi. Ushbu maxsus platforma xost ilovalarini ishga tushirishga ruxsat berish uchun SoC FPGA tizimiga yuklanadi. Bundan farqli o'laroq, maxsus platformaning SDK versiyasi SDK uchun OpenCL yadrolarini kompilyatsiya qilish uchun zarur.
    Maslahat: RTE uchun maxsus platformangizning SDK versiyasidan foydalanishingiz mumkin. Saqlamoq
    bo'sh joy bo'lsa, Shaxsiy platformangizning RTE versiyasidan SD flesh-karta tasvirini olib tashlang.
  8. Shaxsiy platformangizni sinab ko'ring.
    Qoʻshimcha maʼlumot olish uchun OpenCL Custom Platform Toolkit foydalanuvchi qoʻllanmasi uchun Intel FPGA SDK ning “Uskuna dizaynini sinovdan oʻtkazish” boʻlimiga qarang.

Tegishli havolalar

  • Uskuna dizaynini sinovdan o'tkazish
  • Ierarxik va jamoaviy dizayn uchun Quartus Prime incremental kompilyatsiyasi
  • Kafolatlangan vaqt oqimini o'rnatish
  • Eksport qilingan kengash bo'limi uchun natijalarning umumiy sifati

1.2.1 Portlangan ma'lumot platformasini yangilash
Cyclone V SoC Development Kit Reference Platform-ning joriy versiyasida HPS bloki barcha yadro bo'lmagan mantiqni belgilaydigan bo'lim ichida joylashgan. Biroq, siz HPS ni .qxp qismi sifatida eksport qila olmaysiz file. Oldingi c5soc versiyasidan o‘zgartirgan mavjud maxsus platformani yangilash uchun QXP saqlash oqimini amalga oshiring, eng so‘nggi ish vaqti muhitini olish uchun SD flesh-karta tasvirini yangilang va board_spec.xml faylini yangilang. file avtomigratsiyani yoqish uchun.
OpenCL 14.1 va undan keyingi versiyalar uchun Altera® SDK board_spec.xml file kengash ma'lumotlari uchun va avtomatik yangilanishlarni amalga oshiradi. Chunki siz uni o'zgartirasiz
QXP saqlash oqimini amalga oshirish orqali dizayn, siz board_spec.xml yangilash kerak file joriy versiyada uning formatiga. ni yangilash file SDK-ga saqlanmagan maxsus platformalar va joriy QXP-ga asoslangan maxsus platformalar o'rtasida farqlash imkonini beradi. Qo'shimcha ma'lumot olish uchun OpenCL Custom Platform Toolkit foydalanuvchi qo'llanmasi uchun Intel FPGA SDK-dagi To'g'ridan-to'g'ri muvofiqlik uchun Maxsus platforma avtomatik migratsiyasiga qarang.

  1. Oldingi c5soc versiyasidan ko'chirilgan Cyclone V SoC FPGA apparat dizaynida QXP saqlanish oqimini amalga oshirish uchun HPSni .qxp dan chiqarib tashlash uchun quyi bo'lim yaratish uchun quyidagi amallarni bajaring. file:
    a. Yadro bo'lmagan mantiq atrofida bo'lim yaratishdan oldin, .qsf Quartus Prime sozlamalarida HPS atrofida bo'lim yarating. File.
    Misol uchunampga:
    # HPS-ga bag'ishlangan kiritish-chiqarish to'plami_instance_tayinlash -nomi PARTITION_HIERARCHY borde_18261 - "tizim:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_iolps_hps_0:hps_iolps0:hps_iolhps0"ga HPS-ga bag'ishlangan kiritish-chiqarish to'plamini modellashtiruvchi misolni qo'lda bo'lish | system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_XNUMX_hps_io_border:border"
    # Quartusning qolgan qismi tomonidan to'g'ri ishlov berish uchun bo'limni HPS_PARTITION turiga o'rnating
    set_global_assignment -nomi PARTITION_TYPE HPS_PARTITION -section_id “system_acl_iface_hps_0_hps_io_border:border”
    quartus_cdb top -c top
    –incremental_compilation_export=acl_iface_partition.qxp
    –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
    HPS-ni bo'limdan chiqarib tashlaganingizdan so'ng, .qxp-ni import qilishingiz mumkin file va dizayningizni tuzing.
  2. Quyidagi vazifalarni bajarish orqali SD flesh-karta tasvirini OpenCL uchun Intel FPGA RTE ning joriy versiyasi bilan yangilang:
    a. ni o'rnating file ajratish jadvali (fat32) va kengaytirilgan file mavjud tasvirdagi tizim (ext3) bo'limlari orqaga qaytish qurilmalari sifatida. Batafsil ko'rsatmalar uchun SD flesh-karta tasvirini yaratish bo'yicha 2-bosqichga qarang.
    b. /home/root/opencl_arm32_rte katalogida o'chiring files RTE ning oldingi versiyasidan.
    c. RTE ning joriy versiyasini /home/root/opencl_arm32_rte katalogiga yuklab oling va oching.
    d. In /driver/version.h file Shaxsiy platformangiz uchun ACL_DRIVER_VERSION tayinlashni yangilang . (masalanample, 16.1.x, bu erda 16.1 - SDK versiyasi va x - siz o'rnatgan drayver versiyasi).
    e. Haydovchini qayta tiklang.
    f. Shaxsiy platformangizning apparat jild(lar)ini oʻchirib tashlang. Maxsus platformani yangilangan drayver bilan birga /home/root/opencl_arm_rte/board katalogiga nusxalash.
    g. Altera.icd-dan nusxa oling file /home/root/opencl_arm32_rte katalogidan va uni /etc/OpenCL/vendors katalogiga qo'shing.
    h. Yangi rasmni ajratib oling va sinab ko'ring. Batafsil ko'rsatmalar uchun SD flesh-karta tasvirini yaratish bo'yicha 8-11-bosqichlarga qarang.

Tegishli havolalar

  • SD Flash-karta tasvirini yaratish 14-bet
    Shuningdek, sizda yangi SD flesh-karta tasvirini yaratish imkoniyati mavjud.
  • Oldinga muvofiqlik uchun maxsus platforma avtomatik migratsiyasi

1.3 Umumiy xotira uchun dasturiy ta'minotni qo'llab-quvvatlash
FPGA va CPU o'rtasidagi umumiy jismoniy xotira SoC FPGA-larda ishlaydigan OpenCL yadrolari uchun afzal qilingan xotira hisoblanadi. FPGA umumiy virtual xotiradan farqli ravishda umumiy jismoniy xotiraga kirishi sababli, u foydalanuvchi virtual manzillarini jismoniy sahifa manzillari bilan taqqoslaydigan CPU sahifa jadvallariga kirish imkoniga ega emas.
Uskunaga kelsak, OpenCL yadrolari HPS DDR qattiq xotira boshqaruvchisiga to'g'ridan-to'g'ri ulanish orqali umumiy jismoniy xotiraga kirishadi. Dasturiy ta'minotga kelsak, umumiy jismoniy xotirani qo'llab-quvvatlash quyidagi fikrlarni o'z ichiga oladi:

  1. Protsessorda xotirani taqsimlash uchun odatiy dasturiy ta'minot (masalanample, malloc() funktsiyasi) FPGA foydalanishi mumkin bo'lgan xotira hududini ajrata olmaydi.
    Malloc() funksiyasi ajratadigan xotira virtual xotira manzil maydonida ulashgan, ammo har qanday asosiy jismoniy sahifalar jismonan qo‘shni bo‘lishi dargumon. Shunday qilib, uy egasi jismoniy-tushgan xotira hududlarini ajratishi kerak. Biroq, bu qobiliyat Linuxda foydalanuvchi-kosmik ilovalarda mavjud emas. Shuning uchun Linux yadro drayveri ajratishni amalga oshirishi kerak.
  2. OpenCL SoC FPGA Linux yadro drayveri umumiy jismoniy xotirani ajratish va uni foydalanuvchi maydoniga joylashtirish uchun mmap() funksiyasini o'z ichiga oladi. mmap() funksiyasi qurilma bilan almashish uchun jismoniy bir-biriga yaqin xotira hududlarini so'rash uchun standart Linux yadro chaqiruvi dma_alloc_coherent() dan foydalanadi.
  3. Standart Linux yadrosida dma_alloc_coherent() 0.5 megabayt (MB) dan ortiq jismoniy qo'shni xotirani ajratmaydi. dma_alloc_coherent() ga katta hajmdagi jismoniy qo'shni xotirani ajratishga ruxsat berish uchun Linux yadrosining qo'shni xotira ajratuvchi (CMA) xususiyatini yoqing va keyin Linux yadrosini qayta kompilyatsiya qiling.
    Cyclone V SoC Development Kit Reference Platform uchun CMA 512 GB jismoniy xotiradan 1 MB ni boshqaradi. Ilova talab qiladigan umumiy xotira hajmiga qarab, bu qiymatni oshirishingiz yoki kamaytirishingiz mumkin. dma_alloc_coherent() qo'ng'irog'i to'liq 512 MB jismoniy qo'shni xotirani ajrata olmasligi mumkin; ammo, u muntazam ravishda taxminan 450 MB xotirani olishi mumkin.
  4. CPU dma_alloc_coherent() chaqiruvi ajratadigan xotirani keshlashi mumkin. Xususan, xost ilovasidan yozish operatsiyalari OpenCL yadrolariga ko‘rinmaydi. OpenCL SoC FPGA Linux yadro drayveridagi mmap() funksiyasi xotiraning ushbu mintaqasi uchun keshlashni aniq o'chirish uchun pgprot_noncached() yoki remap_pf_range() funksiyalariga qo'ng'iroqlarni ham o'z ichiga oladi.
  5. dma_alloc_coherent() funksiyasi jismoniy qo'shni xotirani ajratgandan so'ng, mmap() funksiyasi virtual manzilni diapazon boshiga qaytaradi, bu siz ajratgan xotiraning manzil oralig'i hisoblanadi. Xotiraga kirish uchun xost ilovasi ushbu virtual manzilni talab qiladi. Boshqa tomondan, OpenCL yadrolari jismoniy manzillarni talab qiladi. Linux yadrosi drayveri virtualdan jismoniy manzilga xaritalashni kuzatib boradi. Siz drayverga so'rov qo'shish orqali mmap() haqiqiy jismoniy manzillarga qaytaradigan jismoniy manzillarni xaritalashingiz mumkin.
    aocl_mmd_shared_mem_alloc() MMD amaliy dasturlash interfeysi (API) chaqiruvi quyidagi so‘rovlarni o‘z ichiga oladi:
    a. mmap() funksiyasi xotirani ajratadi va virtual manzilni qaytaradi.
    b. Qaytarilgan virtual manzilni jismoniy manzil bilan taqqoslaydigan qo'shimcha so'rov.
    aocl_mmd_shared_mem_alloc() MMD API chaqiruvi keyin ikkita manzilni qaytaradi
    —haqiqiy qaytarilgan manzil virtual manzil, jismoniy manzil esa device_ptr_out ga o‘tadi.
    Eslatma: Drayv faqat mmap() funktsiyasi jismoniy manzillarga qaytaradigan virtual manzillarni xaritalashi mumkin. Agar siz boshqa virtual ko'rsatkichning jismoniy manzilini so'rasangiz, drayver NULL qiymatini qaytaradi.

Ogohlantirish: OpenCL ish vaqti kutubxonalari uchun Intel FPGA SDK umumiy xotira board_spec.xml roʻyxatidagi birinchi xotira ekanligini taxmin qiladi. file. Boshqacha qilib aytganda, Linux yadro drayveri oladigan jismoniy manzil OpenCL yadrosi HPS SDRAM-ga uzatadigan Avalon® manziliga aylanadi.
Ish vaqti kutubxonasiga kelsak, umumiy xotirani qurilma buferi sifatida quyidagi tarzda ajratish uchun clCreateBuffer() chaqiruvidan foydalaning:

  • Umumiy va umumiy bo'lmagan xotiraga ega ikkita DDR plata varianti uchun, agar siz CL_MEM_USE_HOST_PTR bayrog'ini belgilasangiz, clCreateBuffer() umumiy xotirani ajratadi. Boshqa bayroqlardan foydalanish clCreateBuffer() ni umumiy bo'lmagan xotirada bufer ajratishiga olib keladi.
  • Faqat umumiy xotiraga ega bitta DDR plata varianti uchun clCreateBuffer() qaysi bayroqni ko'rsatganingizdan qat'iy nazar umumiy xotirani ajratadi.
    Hozirda ARM CPU-da 32-bitli Linux-ni qo'llab-quvvatlash SDK ish vaqti kutubxonalarida umumiy xotirani qo'llab-quvvatlash darajasini boshqaradi. Boshqacha qilib aytganda, boshqa muhitlarga kompilyatsiya qilingan ish vaqti kutubxonalari (masalanample, x86_64 Linux yoki 64-bitli Windows) umumiy xotirani qo'llab-quvvatlamaydi.
    C5soc quyidagi sabablarga ko'ra umumiy va umumiy bo'lmagan xotirani farqlash uchun heterojen xotirani qo'llamadi:
    1. Tarix - umumiy xotira qo'llab-quvvatlashi dastlab yaratilganda, turli xil xotirani qo'llab-quvvatlash mavjud emas edi.
    2. Yagona interfeys — OpenCL ochiq standart bo'lgani uchun Intel heterojen hisoblash platformasi ishlab chiqaruvchilari o'rtasida muvofiqlikni saqlaydi. Shuning uchun, umumiy xotirani ajratish va ishlatish uchun boshqa plata sotuvchilari arxitekturasi kabi bir xil interfeys ishlatiladi.

1.4 FPGA qayta konfiguratsiyasi
SoC FPGA'lar uchun CPU protsessor ishlashini to'xtatmasdan FPGA yadro tuzilishini qayta sozlashi mumkin. HPS va yadro FPGA o'rtasida joylashgan FPGA menejeri apparat bloki qayta konfiguratsiyani amalga oshiradi. Linux yadrosi FPGA menejeriga oson kirish imkonini beruvchi drayverni o'z ichiga oladi.

  • Kimga view FPGA yadrosining holatini aniqlash uchun cat /sys/class/fpga/fpga0/ status buyrug'ini chaqiring.
    Cyclone V SoC Development Kit Reference Platform-da mavjud bo'lgan OpenCL uchun Intel FPGA SDK dasturi FPGA-ni dasturlash uchun ushbu interfeysdan foydalanadi. FPGA yadrosini ishlaydigan protsessor bilan qayta dasturlashda dastur yordam dasturi quyidagi vazifalarning barchasini bajaradi:
    1. Qayta dasturlashdan oldin FPGA va HPS o'rtasidagi barcha aloqa ko'priklarini, ikkala H2F va LH2F ko'priklarini o'chiring.
    Qayta dasturlash tugagandan so'ng ushbu ko'priklarni qayta yoqing.
    Diqqat: OpenCL tizimi FPGA-to-HPS (F2H) ko'prigidan foydalanmaydi. Qo'shimcha ma'lumot olish uchun Cyclone V qurilma qo'llanmasining HPS-FPGA interfeyslari bo'limiga qarang, 3-jild: Qattiq protsessor tizimi texnik ma'lumotnomasi.
    2. Qayta dasturlash vaqtida FPGA va HPS DDR kontrolleri o'rtasidagi aloqa o'chirilganligiga ishonch hosil qiling.
    3. Qayta dasturlash vaqtida FPGA-dagi FPGA uzilishlari o'chirilganligiga ishonch hosil qiling.
    Shuningdek, drayverni qayta dasturlash paytida FPGA dan uzilishlarni rad etishi haqida xabar bering.

Haqiqiy amalga oshirish haqida batafsil ma'lumot uchun dastur yordam dasturining manba kodiga murojaat qiling.

Ogohlantirish: CPU ishlayotgan vaqtda HPS DDR kontroller konfiguratsiyasini o'zgartirmang.
Bunday qilish halokatli tizim xatosiga olib kelishi mumkin, chunki protsessordan ajoyib xotira tranzaktsiyalari mavjud bo'lganda DDR kontroller konfiguratsiyasini o'zgartirishingiz mumkin. Bu shuni anglatadiki, protsessor ishlayotganida siz FPGA yadrosini boshqa konfiguratsiyada HPS DDR ishlatadigan tasvir bilan qayta dasturlashtira olmaysiz.
Esda tutingki, OpenCL tizimi va Intel SoC FPGA Embedded Design Suite (EDS) bilan mavjud Oltin apparat mos yozuvlar dizayni HPS DDR-ni bitta 256 bitli rejimga o'rnatadi.
Protsessor tizimi qismlari, masalan, tarmoq prognozchisi yoki sahifalar jadvalini oldindan o'rnatish qurilmasi, hatto protsessorda hech narsa ishlamayotgandek ko'rinsa ham, DDR buyruqlarini berishi mumkin.
Shuning uchun yuklash vaqti HPS DDR kontroller konfiguratsiyasini o'rnatish uchun yagona xavfsiz vaqt hisoblanadi.
Bu, shuningdek, U-boot ning xom binarga ega bo'lishi kerakligini anglatadi file (.rbf) xotiraga yuklash uchun tasvir. Aks holda, siz HPS DDR-ni FPGA-dagi foydalanilmagan portlar bilan yoqishingiz va keyin port konfiguratsiyasini o'zgartirishingiz mumkin. Shu sababli, OpenCL Linux yadro drayveri endi HPS DDR kontroller konfiguratsiyasini o'rnatish uchun zarur bo'lgan mantiqni o'z ichiga olmaydi.
SW3 dual in-line paketi (DIP) Cylone V SoC Development Kit-ni yoqadi, .rbf tasvirining kutilgan shaklini (ya'ni, file siqilgan va/yoki shifrlangan). C5soc va SoC EDS bilan mavjud Oltin apparat mos yozuvlar dizayni siqilgan, lekin shifrlanmagan .rbf tasvirlarni o'z ichiga oladi. OpenCL Cyclone V SoC ishga tushirish qo‘llanmasi uchun Intel FPGA SDK da tasvirlangan SW3 DIP kalit sozlamalari ushbu .rbf tasvir konfiguratsiyasiga mos keladi.

Tegishli havolalar

  • HPS-FPGA interfeyslari
  • SW3 kalitlarini sozlash

1.4.1 FPGA tizimi arxitekturasi tafsilotlari
Cyclone V SoC Development Kit Reference Platform-ni qo'llab-quvvatlash OpenCL uchun Intel FPGA SDK bilan mavjud bo'lgan Stratix® V Reference Platform (s5_ref) ga asoslangan.
C5soc Qsys tizimining umumiy tashkil etilishi va yadro drayveri s5_ref-dagilarga juda o'xshash.
Quyidagi FPGA asosiy komponentlari c5soc va s5_ref da bir xil:

  • VERSION_ID bloki
  • Dam olish mexanizmi
  • Xotira bankini ajratuvchi
  • Keshni snoop interfeysi
  • Yadro soati
  • Registrga kirishni boshqarish (CRA) bloklari

1.5 SD flesh-karta tasvirini yaratish
Cyclone V SoC FPGA chipdagi to'liq tizim bo'lgani uchun siz tizimning to'liq ta'rifini yetkazib berish uchun javobgarsiz. Intel uni SD flesh-karta tasviri ko'rinishida yetkazib berishingizni tavsiya qiladi. OpenCL foydalanuvchisi uchun Intel FPGA SDK oddiygina tasvirni micro SD flesh-kartaga yozishi mumkin va SoC FPGA platasi foydalanishga tayyor.
Mavjud SD flesh-karta tasvirini o'zgartirish 13-bet
Intel Cyclone V SoC Development Kit Reference Platform bilan mavjud tasvirni shunchaki o'zgartirishni tavsiya qiladi. Shuningdek, sizda yangi SD flesh-karta tasvirini yaratish imkoniyati mavjud.
SD Flash-karta tasvirini yaratish 14-bet
Shuningdek, sizda yangi SD flesh-karta tasvirini yaratish imkoniyati mavjud.

1.5.1 Mavjud SD flesh-karta tasvirini o'zgartirish
Intel Cyclone V SoC bilan mavjud tasvirni shunchaki o'zgartirishni tavsiya qiladi
Rivojlanish to'plami mos yozuvlar platformasi. Shuningdek, sizda yangi SD flesh-karta tasvirini yaratish imkoniyati mavjud.
c5soc linux_sd_card_image.tgz tasviri file ALTERAOCLSDKROOT/board/c5soc katalogida mavjud, bu erda ALTERAOCLSDKROOT OpenCL o'rnatish katalogi uchun Intel FPGA SDK yo'liga ishora qiladi.

Diqqat: SD flesh-karta tasvirini o'zgartirish uchun siz root yoki sudo imtiyozlariga ega bo'lishingiz kerak.

  1. $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz faylini ochish uchun file, tar xvfzlinux_sd_card_image.tgz buyrug'ini ishga tushiring.
  2. hello_world OpenCL ni kompilyatsiya qilingample dizayn sizning maxsus platforma qo'llab-quvvatlash yordamida. .rbf nomini o'zgartiring file OpenCL Offline Compiler uchun Intel FPGA SDK opencl.rbf sifatida yaratadi va uni SD flesh-karta tasviridagi fat32 bo'limiga joylashtiring.
    Hello_world ex ni yuklab olishingiz mumkinampOpenCL Design Ex dan dizaynampAlteradagi les sahifasi websayt.
  3. .rbf ni joylashtiring file flesh-karta tasvirining fat32 qismiga.
    Diqqat: Fat32 bo'limi ikkala zImageni ham o'z ichiga olishi kerak file va .rbf file. .rbfsiz file, drayverni kiritganingizda halokatli xatolik yuz beradi.
  4. SD-karta tasvirini yaratganingizdan so'ng, quyidagi buyruqni chaqirish orqali uni micro SD kartaga yozing: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. SD flesh-karta tasvirini tekshirish uchun quyidagi vazifalarni bajaring:
    a. Micro SD flesh-kartani SoC FPGA platasiga joylashtiring.
    b. Doskani quvvatlang.
    c. Aocl diagnostikasi yordam dasturi buyrug'ini chaqiring.

1.5.2 SD flesh-karta tasvirini yaratish
Shuningdek, sizda yangi SD flesh-karta tasvirini yaratish imkoniyati mavjud. Yangi SD flesh-karta tasvirini yaratish va mavjud SD flesh-karta tasvirini qayta tiklash boʻyicha umumiy koʻrsatmalar RocketBoards.org saytining GSRD v14.0.2 – SD Card sahifasida mavjud. websayt.
Quyidagi qadamlar Golden System Reference Design (GSRD) SD flesh-karta tasviridan linux_sd_card_image.tgz tasvirini yaratish tartibini tavsiflaydi:
Eslatma:
c5soc tasviridan rasm yaratish uchun ushbu protsedurada ko'rsatilgan barcha tegishli vazifalarni bajaring.

  1. Rocketboards.org saytidan GSRD SD flesh-karta tasvirining 14.0 versiyasini yuklab oling va o'ramidan chiqaring.
  2. ni o'rnating file ajratish jadvali (fat32) va kengaytirilgan file Ushbu rasmdagi tizim (ext3) bo'limlari orqaga qaytish qurilmalari sifatida. Bo'limni o'rnatish uchun quyidagi amallarni bajaring:
    a. /sbin/fdisk -lu image_ ni chaqirish orqali tasvir ichidagi qismning bayt boshlanishini aniqlang.file buyruq.
    Misol uchunample, W1 FAT tipidagi 95-bo'lim blok ofsetiga ega 2121728. Har bir blok uchun 512 bayt bilan bayt ofset 512 bayt x 2121728 = 1086324736 baytni tashkil qiladi.
    b. Erkin halqa qurilmasini aniqlang (masalanample, /dev/loop0) -f buyrug'ini terish orqali.
    c. /dev/loop0 bepul aylanish qurilmasi deb faraz qilsak, /dev/loop0 image_ ni chaqirish orqali flesh-karta tasviringizni pastadir blokirovkasi qurilmasiga tayinlang.file -0 1086324736 buyrug'i.
    d. mount /dev/loop0 /media/disk1 buyrug'ini chaqirish orqali halqa qurilmasini o'rnating.
    Tasvir ichida file, /media/disk1 endi o'rnatilgan fat32 bo'limi.
    e. Ext3 bo'limi uchun a dan d gacha qadamlarni takrorlang.
  3. Altera-dagi Yuklash markazidan OpenCL paketi uchun Intel FPGA Runtime Environment Cyclone V SoC FPGA versiyasini yuklab oling. websayt.
    a. Quartus Prime dasturiy ta'minot nashri yonidagi Yuklab olish tugmasini bosing.
    b. Chiqarish versiyasini, operatsion tizimni va yuklab olish usulini belgilang.
    c. Qo'shimcha dasturiy ta'minot yorlig'ini bosing va Intel FPGA-ni yuklab olishni tanlang
    OpenCL Linux Cyclone V SoC TGZ uchun ish vaqti muhiti.
    d. aocl-rte-ni yuklab olganingizdan so'ng .arm32.tgz file, uni o'rash uchun oching
    sizga tegishli bo'lgan katalog.
  4. Ochilmagan aocl-rte-ni joylashtiring .arm32 katalogini rasmning ext32 qismidagi /home/root/opencl_arm3_rte katalogiga kiriting file.
  5. Shaxsiy platformangizning apparat jild(lar)ini oʻchirib tashlang va keyin maxsus platformani /home/root/ opencl_arm32_rte ning kengash quyi katalogiga joylashtiring.
  6. init_opencl.sh ni yarating file /home/root katalogida quyidagi tarkibga ega: eksport ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte eksport AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ eksport PATH=$ALTERAOCLSDKROOT/bin:$PATH eksport LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    SDK foydalanuvchisi muhit o'zgaruvchilari va OpenCL Linux yadro drayverini yuklash uchun source ./init_opencl.sh buyrug'ini ishga tushiradi.
  7. Agar siz oldindan yuklovchini yangilashingiz kerak bo'lsa, DTS files yoki Linux yadrosi uchun sizga SoC EDS dan arm-linux-gnueabihf-gcc kompilyatori kerak bo'ladi. Dasturiy ta'minotni sotib olish, ularni qayta kompilyatsiya qilish va tegishli ma'lumotlarni yangilash uchun Intel SoC FPGA Embedded Design Suite foydalanuvchi qo'llanmasida ko'rsatilgan ko'rsatmalarga amal qiling. files o'rnatilgan fat32 bo'limida.
    Diqqat: Shaxsiy platformangiz c5soc-dagidan farqli pin foydalanishga ega bo'lsa, siz oldindan yuklovchini yangilashingiz kerak bo'lishi mumkin.
    Esda tuting: Agar siz Linux yadrosini qayta kompilyatsiya qilsangiz, Linux yadrosi drayverini bir xil Linux yadro manbai bilan qayta kompilyatsiya qiling. files. Agar Linux yadro drayveri va Linux yadrosi o'rtasida nomuvofiqlik bo'lsa, drayver yuklanmaydi. Bundan tashqari, siz CMA-ni yoqishingiz kerak.
    Qo'shimcha ma'lumot uchun Linux yadrosini qayta kompilyatsiya qilish bo'limiga qarang.
  8. hello_world OpenCL ni kompilyatsiya qilingample dizayn sizning maxsus platforma qo'llab-quvvatlash yordamida. .rbf nomini o'zgartiring file OpenCL Offline Compiler uchun Intel FPGA SDK opencl.rbf sifatida yaratadi va uni SD flesh-karta tasviridagi fat32 bo'limiga joylashtiring.
    Hello_world ex ni yuklab olishingiz mumkinampOpenCL Design Ex dan dizaynampAlteradagi les sahifasi websayt.
    9. Barcha kerakli narsalarni saqlaganingizdan so'ng files ni flesh-karta tasviriga kiriting, quyidagi buyruqlarni chaqiring:
    a. sinxronlash
    b. /media/disk1
    c. o'chirish qayerda 3-betdagi 3-da ext3 bo'limini o'rnatish uchun foydalanadigan katalog nomi (masalan,ample, /media/disk2).
    d. losttup -d /dev/loop0
    e. losttup -d /dev/loop1
  9. Quyidagi buyruqni chaqirish orqali SD flesh-karta tasvirini siqing: tar cvfz .tgz linux_sd_card_image
  10. Yetkazib bering .tgz file Shaxsiy platformangizning asosiy katalogida.
  11. SD flesh-karta tasvirini tekshirish uchun quyidagi vazifalarni bajaring:
    a. Olingan siqilmagan tasvirni micro SD flesh-kartaga yozing.
    b. Micro SD flesh-kartani SoC FPGA platasiga joylashtiring.
    c. Doskani quvvatlang.
    d. Aocl diagnostikasi yordam dasturi buyrug'ini chaqiring.

Tegishli havolalar

  • Intel SoC FPGA o'rnatilgan dizayn to'plami foydalanuvchi uchun qo'llanma
  • OpenCL Design ExampAlteradagi les sahifasi websayt
  • 16-betdagi Linux yadrosini qayta kompilyatsiya qilish
    CMA-ni yoqish uchun avval Linux yadrosini qayta kompilyatsiya qilishingiz kerak.
  • FPGA platangizning qurilma nomini so'rash (diagnostika)

1.6 Cyclone V SoC FPGA uchun Linux yadrosini kompilyatsiya qilish
Cyclone V SoC FPGA platasida OpenCL ilovalarini ishga tushirishdan oldin siz Linux yadro manbasini kompilyatsiya qilishingiz va OpenCL Linux yadro drayverini kompilyatsiya qilishingiz va o'rnatishingiz kerak.

  1. 16-betdagi Linux yadrosini qayta kompilyatsiya qilish
    CMA-ni yoqish uchun avval Linux yadrosini qayta kompilyatsiya qilishingiz kerak.
  2. OpenCL Linux yadro drayverini kompilyatsiya qilish va o'rnatish 17-bet OpenCL Linux yadro drayverini kompilyatsiya qilingan yadro manbasiga qarshi kompilyatsiya qiling.

1.6.1 Linux yadrosini qayta kompilyatsiya qilish
CMA-ni yoqish uchun avval Linux yadrosini qayta kompilyatsiya qilishingiz kerak.

  1. RocketBoards.org saytining Resurslar sahifasida GSRD v14.0 – Linuxni kompilyatsiya qilish havolasini bosing. webLinux yadrosi manba kodini yuklab olish va qayta qurish bo'yicha ko'rsatmalarga kirish uchun sayt.
    OpenCL uchun ™ Intel FPGA SDK bilan foydalanish uchun socfpga-3.13-rel14.0 ni belgilang .
  2. Eslatma: Qurilish jarayoni arch/arm/configs/socfpga_defconfig ni yaratadi. file. Bu file socfpga standart konfiguratsiyasi uchun sozlamalarni belgilaydi.
    Ark/arm/configs/socfpga_defconfig pastki qismiga quyidagi qatorlarni qo'shing. 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 konfiguratsiya qiymati mavjud jismoniy qoʻshni xotiraning umumiy sonining yuqori chegarasini oʻrnatadi. Agar sizga ko'proq xotira kerak bo'lsa, bu qiymatni oshirishingiz mumkin.
  3. Diqqat: SoC FPGA platasidagi ARM protsessorida mavjud bo'lgan jismoniy xotiraning umumiy hajmi 1 GB. Intel sizga CMA menejerini 1 GB ga yaqin sozlashni tavsiya etmaydi.
  4. Joriy konfiguratsiyani tozalash uchun make mrproper buyrug'ini bajaring.
  5. make ARCH=arm socfpga_deconfig buyrug'ini bajaring.
    ARCH=arm ARM arxitekturasini sozlashni xohlayotganingizni bildiradi.
    socfpga_defconfig standart socfpga konfiguratsiyasidan foydalanmoqchi ekanligingizni bildiradi.
  6. Eksport CROSS_COMPILE=arm-linux-gnueabihf- buyrug'ini ishga tushiring.
    Ushbu buyruq CROSS_COMPILE muhit o'zgaruvchisini kerakli asboblar zanjiri prefiksini belgilash uchun o'rnatadi.
  7. make ARCH=arm zImage buyrug'ini bajaring. Olingan tasvir arch/arm/boot/zImage-da mavjud file.
  8. zImage-ni joylashtiring file flesh-karta tasvirining fat32 qismiga. Batafsil ko'rsatmalar uchun Rocketboards.org saytidagi Cyclone V SoC FPGA-ga xos GSRD foydalanuvchi qo'llanmasiga qarang.
  9. Eslatma: OpenCL Linux yadro drayverini toʻgʻri kiritish uchun avval SDKgenerated.rbf faylini yuklang. file FPGA-ga.
    .rbf yaratish uchun file, SDK dizaynini kompilyatsiya qiling, exampmaqsadli Maxsus platforma sifatida Cyclone V SoC Development Kit Reference Platform bilan.
    9. .rbf ni joylashtiring file flesh-karta tasvirining fat32 qismiga.
    Diqqat: fat32 bo'limi ikkala zImageni ham o'z ichiga olishi kerak file va .rbf file. .rbfsiz file, drayverni kiritganingizda halokatli xatolik yuz beradi.
  10. Ilgari siz o'zgartirgan yoki yaratgan SD-karta tasvirini o'z ichiga olgan dasturlashtirilgan micro SD-kartani Cyclone V SoC Development Kit-ga joylashtiring va keyin SoC FPGA platasini yoqing.
  11. Uname -r buyrug'ini ishga tushirish orqali o'rnatilgan Linux yadrosi versiyasini tekshiring.
  12. SoC FPGA platasi yoqilgan holda yadroda CMA muvaffaqiyatli yoqilganligini tekshirish uchun grep init_cma /proc/kallsyms buyrug'ini bajaring.
    Chiqish bo'sh bo'lmasa, CMA yoqiladi.
  13. SDK bilan qayta kompilyatsiya qilingan Linux yadrosidan foydalanish uchun Linux yadro drayverini kompilyatsiya qiling va o'rnating.

Tegishli havolalar

  • Golden System Reference Design (GSRD) foydalanuvchi qo'llanmalari
  • SD Flash-karta tasvirini yaratish 13-betda
    Cyclone V SoC FPGA chipdagi to'liq tizim bo'lgani uchun siz tizimning to'liq ta'rifini yetkazib berish uchun javobgarsiz.

1.6.2 OpenCL Linux yadro drayverini kompilyatsiya qilish va o'rnatish
OpenCL Linux yadro drayverini kompilyatsiya qilingan yadro manbasiga qarshi kompilyatsiya qiling.

Drayv manbasi OpenCL uchun Intel FPGA Runtime Environment ning Cyclone V SoC FPGA versiyasida mavjud. Bundan tashqari, OpenCL tomonidan yaratilgan .rbf uchun Intel FPGA SDK yuklanganligiga ishonch hosil qiling. file Linux yadro modulining noto'g'ri o'rnatilishini oldini olish uchun FPGA-ga.

  1. Altera-dagi Yuklash markazidan OpenCL paketi uchun Intel FPGA Runtime Environment Cyclone V SoC FPGA versiyasini yuklab oling. websayt.
    a. Quartus Prime dasturiy ta'minot nashri yonidagi Yuklab olish tugmasini bosing.
    b. Chiqarish versiyasini, operatsion tizimni va yuklab olish usulini belgilang.
    c. Qo'shimcha dasturiy ta'minot yorlig'ini bosing va Intel FPGA-ni yuklab olishni tanlang
    OpenCL Linux Cyclone V SoC TGZ uchun ish vaqti muhiti.
    d. aocl-rte-ni yuklab olganingizdan so'ng .arm32.tgz file, uni o'rash uchun oching
    sizga tegishli bo'lgan katalog.
    Drayv manbai aocl-rte-da. .arm32/board/c5soc/ haydovchi katalogi.
  2. OpenCL Linux yadro drayverini qayta kompilyatsiya qilish uchun drayverning Make-da KDIR qiymatini o'rnatingfile Linux yadro manbasini o'z ichiga olgan katalogga files.
  3. Asboblar zanjiri prefiksini ko'rsatish uchun eksport CROSS_COMPILE=arm-linux-gnueabihf- buyrug'ini bajaring.
  4. make clean buyrug'ini ishga tushiring.
  5. aclsoc_drv.ko ni yaratish uchun make buyrug'ini ishga tushiring file.
  6. Opencl_arm32_rte katalogini Cyclone V SoC FPGA platasiga o'tkazing.
    scp -r ni ishga tushirish root@your-ipaddress: buyruq ish vaqti muhitini/home/root katalogiga joylashtiradi.
  7. SD-kardimajni yaratganingizda yaratgan init_opencl.sh skriptini ishga tushiring.
  8.  Aocl diagnostikasi yordam dasturi buyrug'ini chaqiring. Diagnostika yordam dasturi init_opencl.sh ni muvaffaqiyatli ishga tushirganingizdan so'ng o'tkinchi natijani qaytaradi.

1.7 Ma'lum muammolar
Hozirda OpenCL uchun Intel FPGA SDK dan Cyclone V SoC Development Kit Reference Platform bilan foydalanishda ma'lum cheklovlar mavjud.

  1. Siz clGetDeviceInfo() chaqiruvining CL_DEVICE_VENDOR va CL_DEVICE_NAME qatorlari tomonidan bildirilgan sotuvchi va plata nomlarini bekor qila olmaysiz.
  2. Agar xost doimiy xotirani umumiy DDR tizimida (ya'ni, HPS DDR) ajratsa va yadro bajarilgandan so'ng doimiy xotirani o'zgartirsa, xotiradagi ma'lumotlar eskirib qolishi mumkin. Bu muammo FPGA yadrosi protsessordan HPSga DDR tranzaksiyalarini kuzata olmasligi sababli yuzaga keladi.
    Yadroning keyingi ijrosi eskirgan ma'lumotlarga kirishining oldini olish uchun quyidagi vaqtinchalik echimlardan birini amalga oshiring:
    • Ishga tushirilgandan so'ng doimiy xotirani o'zgartirmang.
    • Agar sizga bir nechta __constant ma'lumotlar to'plami kerak bo'lsa, bir nechta doimiy xotira buferlarini yarating.
    • Agar mavjud bo'lsa, tezlatgich platangizdagi FPGA DDR-da doimiy xotirani ajrating.
  3. ARM-dagi SDK yordam dasturi faqat dastur va diagnostika yordam dasturini qo'llab-quvvatlaydi.
    Quyidagi sabablarga ko'ra Cyclone V SoC Development Kit uchun flesh, o'rnatish va o'chirish yordamchi buyruqlari qo'llanilmaydi:
    a. O'rnatish yordam dasturi aclsoc_drv Linux yadro drayverini kompilyatsiya qilishi va uni SoC FPGA-da yoqishi kerak. Rivojlanish mashinasi kompilyatsiyani amalga oshirishi kerak; ammo, u allaqachon SoC FPGA uchun Linux yadro manbalarini o'z ichiga oladi. Ishlab chiqish mashinasi uchun Linux yadro manbalari SoC FPGA uchun manbalardan farq qiladi. SoC FPGA uchun Linux yadro manbalarining joylashuvi SDK foydalanuvchisiga noma'lum bo'lishi mumkin. Xuddi shunday, o'chirish yordam dasturi Cyclone V SoC Development Kit uchun ham mavjud emas.
    Bundan tashqari, Aclsoc_drv-ni SoC platasiga yetkazib berish juda qiyin, chunki Cyclone V SoC Development Kit-ning standart taqsimotida Linux yadrosi mavjud emas. files yoki GNU Compiler Collection (GCC) kompilyatori.
    b. Flash yordam dasturi .rbf joylashtirishni talab qiladi file Micro SD flesh-kartaning FAT32 qismiga OpenCL dizayni. Hozirda bu bo'lim SDK foydalanuvchisi platani quvvatlantirganda o'rnatilmaydi. Shuning uchun, bo'limni yangilashning eng yaxshi usuli - flesh-kartani o'quvchi va ishlab chiqish mashinasidan foydalanish.
  4. OpenCL Offline Compiler bajariladigan uchun Intel FPGA SDK o'rtasida almashishda files (.aocx) plataning turli xil variantlariga mos keladi (ya'ni, c5soc va c5soc_sharedonly), siz .aocx faylini yuklash uchun SDK dastur yordam dasturidan foydalanishingiz kerak. file birinchi marta yangi taxta varianti uchun. Agar siz oddiygina yangi plata varianti yordamida xost dasturini ishga tushirsangiz, lekin FPGA boshqa plata variantidagi tasvirni o‘z ichiga olsa, halokatli xatolik yuz berishi mumkin.
  5. .qxp file interfeys bo'limlari topshiriqlarini o'z ichiga olmaydi, chunki Quartus Prime dasturi ushbu bo'limning vaqt talablariga doimo javob beradi.
  6. Doskani yoqsangiz, uning mediaga kirishni boshqarish (MAC) manzili tasodifiy raqamga o'rnatiladi. Agar LAN siyosatingiz bunday harakatga ruxsat bermasa, quyidagi vazifalarni bajarish orqali MAC manzilini o'rnating:
    a. U-Boot-ni yoqish paytida, U-Boot buyruq satriga kirish uchun istalgan tugmani bosing.
    b. Buyruqlar satriga setenv etaddr 00:07:ed:00:00:03 ni kiriting.
    Siz istalgan MAC manzilini tanlashingiz mumkin.
    c. saveenv buyrug'ini kiriting.
    d. Doskani qayta ishga tushiring.

1.8 Hujjatlarni qayta ko'rib chiqish tarixi
1-jadval.
OpenCL Cyclone V SoC uchun Intel FPGA SDK hujjatini qayta ko'rib chiqish tarixi
Rivojlanish to'plami uchun mos yozuvlar platformasini o'tkazish bo'yicha qo'llanma

Sana Versiya O'zgarishlar
17-may 2017.05.08 •Xizmat ko‘rsatish uchun chiqarish.
2016 yil oktyabr 2016.10.31 •OpenCL uchun Altera SDK rebrendlangan, OpenCL uchun Intel FPGA SDK.
•OpenCL oflayn kompilyatori uchun Altera oflayn kompilyatori Intel FPGA SDK ga rebrendlangan.
16-may 2016.05.02 •SD flesh-karta tasvirini yaratish va o‘zgartirish bo‘yicha o‘zgartirilgan ko‘rsatmalar.
•Linux yadrosi va OpenCL Linux yadro drayverini qayta kompilyatsiya qilish bo'yicha o'zgartirilgan ko'rsatmalar.
- 15 noyabr 2015.11.02 •Xizmat ko‘rsatish versiyasi va Quartus II nusxalari Quartus Primega o‘zgartirildi.
15-may 15.0.0 •FPGA qayta konfiguratsiyasida FPGA yadrosini qayta dasturlash bo'yicha ko'rsatma olib tashlandi
bilan. mushukni chaqirish orqali rbf tasviri filenomi>. rbf
> /dev/ fpga0 buyrug'i, chunki bu usul tavsiya etilmaydi.
14 yil dekabr 14.1.0 •Hujjat nomi Altera Cyclone V SoC Development Kit Reference Platform Porting Guide deb o‘zgartirildi.
• Qayta dasturlash yordam dasturi aocl dasturiga yangilandifilename>.aocx yordam dasturi buyrug'i.
•Aocl diagnostikasi va aocl diagnostikasi uchun diagnostika yordam dasturi yangilandi yordamchi buyruq.
•Kafolatlangan vaqtni yopish oqimi uchun vaqtni tozalash boʻlimini yaratish uchun c5soc plata boʻlimini koʻchirish va oʻzgartirish boʻyicha koʻrsatmalarni oʻz ichiga olish uchun Referent platformasini SoC Boardga oʻtkazish boʻlimidagi protsedura yangilandi.
•Quyidagi vazifalar uchun tartib-qoidalarni ko‘rsatish uchun Portlangan ma’lumot platformasini yangilash mavzusi kiritildi:
1.Plata bo'limidagi qattiq protsessor tizimi (HPS) blokidan tashqari
2.SD flesh-karta tasvirini yangilash
•SD flesh-karta tasvirini yaratish bo‘limi yangilandi. SoC Embedded Design Suite (EDS) bilan mavjud tasvir oʻrniga boshlangʻich nuqtasi sifatida Golden System Reference Design (GSRD) tasvirining 14.0 versiyasidan foydalanish tavsiya etiladi.
•Linux yadrosini qayta kompilyatsiya qilish va OpenCL Linux yadro drayveri bo‘limi yangilandi:
1.CROSS COMPILE oʻzgaruvchisini oʻrnatish boʻyicha koʻrsatma qoʻshildi.
2.CMA muvaffaqiyatli yoqilganligini tekshirish uchun ishga tushirilgan buyruq o'zgartirildi.
14 iyul 14.0.0 • Dastlabki nashr.

Hujjatlar / manbalar

OpenCL uchun intel FPGA SDK [pdf] Foydalanuvchi uchun qoʻllanma
OpenCL uchun FPGA SDK, FPGA SDK, OpenCL uchun SDK, SDK

Ma'lumotnomalar

Fikr qoldiring

Sizning elektron pochta manzilingiz nashr etilmaydi. Majburiy maydonlar belgilangan *