Intel - логоOpenCL-д зориулсан FPGA SDK
Хэрэглэгчийн гарын авлага

UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite-д хамгийн сүүлд шинэчлэгдсэн: 17.0

RENPHO RF FM059HS WiFi ухаалаг хөл массажчин - дүрс 5Бүртгүүлэх
SAMSUNG SM A136UZKZAIO Galaxy A13 5G ухаалаг утас - дүрс 12Санал хүсэлт илгээх

OpenCL™-д зориулсан Intel® FPGA SDK Intel® Cyclone®V SoC хөгжүүлэлтийн иж бүрдэлийн лавлах платформ портын гарын авлага

V SoC Development Kit лавлагааны платформ портын гарын авлага нь OpenCL ™ Intel Cyclone-д зориулсан Intel ® FPGA SDK-д зориулсан Intel® FPGA SDK-д зориулсан OpenCL-д зориулсан Intel Cyclone V SoC Development Kit лавлагааны платформын (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-ийн лавлах платформ портын гарын авлага нь Cyclone V SoC Development Kit-ийн захиалгат платформыг хэрэгжүүлэхийн тулд SDK-ийн Custom Platform Toolkit-ийн ашиглалтыг тайлбарлаагүй болно. Энэ нь зөвхөн Cyclone V SoC Development Kit дээрх SDK дэмжлэг болон OpenCL Custom Platform-д зориулсан ерөнхий Intel FPGA SDK хоорондын ялгааг тайлбарладаг.

Холбоотой холбоосууд

  • OpenCL Cyclone V SoC-д зориулсан Intel FPGA SDK Эхлэх гарын авлага
  • OpenCL Custom Platform Toolkit хэрэглэгчийн гарын авлагад зориулсан Intel FPGA SDK
  • Циклон 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-ийн хэрэглэгчид нийтлэгдсэн мэдээлэлд найдах, бүтээгдэхүүн, үйлчилгээний захиалга өгөхөөс өмнө төхөөрөмжийн техникийн үзүүлэлтүүдийн хамгийн сүүлийн хувилбарыг авахыг зөвлөж байна.
*Бусад нэр, брэндийг бусдын өмч гэж үзэж болно.

1.1.1 Cyclone V SoC Development Kit-ийн лавлах платформын хавтангийн хувилбарууд
OpenCL Cyclone V SoC Development Kit лавлагааны платформд зориулсан 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-ээс үзнэ үү.

Холбоотой холбоосууд
Тодорхой FPGA самбарт зориулсан цөмийг эмхэтгэх (–board )
1.1.2 Cyclone V SoC Development Kit лавлах платформын агуулга
Cyclone V SoC Development Kit лавлагааны платформ нь дараахь зүйлсээс бүрдэнэ files ба лавлахууд:

File эсвэл лавлах Тодорхойлолт
board_env.xml eExtensible Markup Language (XML) file Энэ нь OpenCL-д зориулсан Intel FPGA SDK-д c5soc-ийг тайлбарладаг.
linux_sd_card_image.tgz Шахсан SD флаш картын зураг file Энэ нь SDK хэрэглэгч Cyclone V SoC Development Kit-ийг SDK-тэй хамт ашиглахад шаардлагатай бүх зүйлийг агуулдаг.
гар32 Дараахыг агуулсан лавлах:

1.1.3 Cyclone V SoC Development Kit-ийн холбогдох онцлогууд

Дараах жагсаалт нь OpenCL-д зориулсан Intel FPGA SDK-д хамаарах Cyclone V SoC Development Kit бүрэлдэхүүн хэсгүүд болон онцлогуудыг онцлон харуулав.

  • 9 битийн Линукс дээр ажилладаг хоёр цөмт ARM Cortex-A32 CPU.
  • HPS болон FPGA үндсэн даавууны хооронд дэвшилтэт өргөтгөх боломжтой интерфэйс (AXI) автобус.
  • Хоёр хатууруулсан DDR санах ойн хянагч, тус бүр нь 1 гигабайт (ГБ) DDR3 SDRAM-д холбогддог.
    - Нэг DDR хянагч нь зөвхөн FPGA цөмд хандах боломжтой (өөрөөр хэлбэл FPGA DDR).
    — Нөгөө DDR хянагч нь HPS болон FPGA (өөрөөр хэлбэл HPS DDR) хоёуланд нь хандах боломжтой. Энэхүү хуваалцсан хянагч нь CPU болон FPGA цөм хооронд санах ойг үнэгүй хуваалцах боломжийг олгодог.
  • CPU нь FPGA үндсэн бүтцийг дахин тохируулах боломжтой.

1.1.3.1 Cyclone V SoC Development Kit лавлах платформын дизайны зорилго, шийдвэрүүд Intel нь Cyclone V SoC Development Kit лавлагааны платформыг хэрэгжүүлэхдээ дизайны хэд хэдэн зорилго, шийдвэр дээр суурилдаг. Энэхүү лавлагаа платформыг SoC FPGA самбар руу шилжүүлэхдээ эдгээр зорилго, шийдвэрүүдийг анхаарч үзэхийг Intel зөвлөж байна.
c5soc дизайны зорилтуудыг доор харуулав.

  1. FPGA болон DDR санах ойн систем(үүд) дээрх цөмүүдийн хоорондох хамгийн өндөр зурвасын өргөнийг хангах.
  2. FPGA (өөрөөр хэлбэл OpenCL цөм) дээрх тооцоолол нь захын төхөөрөмжүүдэд үйлчлэх CPU-ийн бусад ажилд саад учруулахгүй байхыг анхаарна уу.
  3. Интерфэйсийн бүрэлдэхүүн хэсгүүдийн оронд цөмийн тооцоололд аль болох их FPGA нөөц үлдээгээрэй.

Intel-ийн дизайны зорилгын шууд үр дагавар болох өндөр түвшний дизайны шийдвэрүүдийг доор харуулав.

  1. Лавлагаа платформ нь зөвхөн хамгийн өргөн тохиргоотой (256 бит) хатуу DDR ​​санах ойн хянагчуудыг ашигладаг.
  2. FPGA нь AXI автобус болон HPS доторх L3 шилжүүлэгчийг оролцуулалгүйгээр HPS DDR санах ойн хянагчтай шууд холбогддог. Шууд харилцаа холбоо нь DDR-ийн хамгийн сайн зурвасын өргөнийг хангадаг бөгөөд FPGA тооцооллыг CPU болон түүний захын хоорондын харилцаанд саад учруулахаас хамгаалдаг.
  3. Санах ойн шууд хандалт (SG-DMA) нь FPGA интерфейсийн логикийн нэг хэсэг биш юм. DDR санах ойн системүүдийн хооронд их хэмжээний өгөгдөл дамжуулахын оронд хуваалцсан HPS DDR-д өгөгдлийг хадгал. FPGA-ийн CPU санах ой руу шууд хандах нь DMA-аас илүү үр дүнтэй байдаг. Энэ нь техник хангамжийн нөөцийг (өөрөөр хэлбэл FPGA талбар) хэмнэж, Линуксийн цөмийн драйверийг хялбаршуулдаг.
    Анхааруулга: Хуваалцсан HPS DDR систем болон зөвхөн FPGA-д хандах боломжтой DDR систем хоорондын санах ойн дамжуулалт маш удаан байна. Хэрэв та сонгосон бол
    санах ойг ийм байдлаар дамжуулах бол зөвхөн маш бага хэмжээний өгөгдөлд ашиглах.
  4. Хост болон төхөөрөмж нь зөвхөн ганц 2 бит порт ашиглан HPS-FPGA (H32F) гүүрээр дамжуулан бие биедээ DMA бус өгөгдөл дамжуулдаг. Шалтгаан нь DMA-гүй бол Линуксийн цөм нь зөвхөн 32 бит унших, бичих хүсэлт гаргах боломжтой тул илүү өргөн холболттой байх шаардлагагүй юм.
  5. Хост нь хөнгөн жинтэй H2F (LH2F) гүүрээр дамжуулан төхөөрөмж рүү хяналтын дохиог илгээдэг.
    Хостоос төхөөрөмж рүү чиглэсэн хяналтын дохио нь бага зурвасын өргөнтэй дохио учраас LH2F гүүр нь даалгаварт тохиромжтой.

1.2 Лавлах платформыг өөрийн SoC FPGA самбар руу шилжүүлэх
Cyclone V SoC Development Kit лавлагааны платформыг өөрийн 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-аас авна уу
    Quartus Prime Standard Edition гарын авлагын шаталсан болон багт суурилсан дизайны бүлэгт зориулсан үндсэн нэмэгдэл эмхэтгэл.
    а. ALTERAOCLSDKROOT/board/c5soc/c5soc лавлахаас acl_iface_partition.qxp-г устгана уу.
    б. Tcl командыг set_global_assignment -нэр LL_ENABLED OFF -section_id acl_iface_region-г тохируулах_global_assignment -нэр LL_ENABLED ON -section_id acl_iface_region болгон өөрчлөх замаар acl_iface_region LogicLock™ бүсийг идэвхжүүлнэ үү.
    в. Самбардаа зориулж OpenCL цөмийг эмхэтгэ.
    г. Шаардлагатай бол LogicLock бүсийн хэмжээ, байршлыг тохируулна уу.
    д. Хэрэв та дизайныхаа байршил цаг хугацааны хувьд цэвэр байгаа гэдэгт итгэлтэй байвал уг хуваалтыг acl_iface_partition.qxp Quartus Prime Exported Partition болгон экспортлоорой. File.
    OpenCL Custom Platform Toolkit хэрэглэгчийн гарын авлагад зориулсан AIntel FPGA SDK-ийн Баталгаат хугацааны урсгалыг бий болгох хэсэгт тайлбарласны дагуу энэ .qxp-г импортлох замаар  file дээд түвшний дизайн руу орохдоо та баталгаат хугацаатай хаалтын урсгал бүхий хавтангийн загварыг хангах шаардлагыг биелүүлнэ.
    Таны экспортолсон хуваалтын үр дүнгийн чанарт (QoR) нөлөөлж болзошгүй хүчин зүйлсийг OpenCL Custom Platform Toolkit хэрэглэгчийн гарын авлагад зориулсан Intel FPGA SDK-ийн Экспортолсон самбарын хуваалтын үр дүнгийн ерөнхий чанарын талаар авч үзэх хэсгээс үзнэ үү.
    е. 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 системд ачаалагддаг. Үүний эсрэгээр, SDK-д OpenCL цөмүүдийг эмхэтгэхийн тулд Custom Platform-ийн SDK хувилбар шаардлагатай.
    Зөвлөмж: Та RTE-д зориулж захиалгат платформын SDK хувилбарыг ашиглаж болно. Хадгалах
    зайтай бол SD флаш картын дүрсийг Custom Platform-ын RTE хувилбараас устгана уу.
  8. Захиалгат платформоо туршиж үзээрэй.
    Нэмэлт мэдээлэл авахыг хүсвэл OpenCL Custom Platform Toolkit хэрэглэгчийн гарын авлагад зориулсан Intel FPGA SDK-ийн Техник хангамжийн дизайныг турших хэсгээс үзнэ үү.

Холбоотой холбоосууд

  • Техник хангамжийн дизайныг турших
  • Шатлал болон багт суурилсан загварт зориулсан Quartus Prime Өсөн нэмэгдэж буй эмхэтгэл
  • Баталгаат цаг хугацааны урсгалыг бий болгох
  • Экспортын хавтангийн хуваалтын үр дүнгийн ерөнхий чанарт анхаарах зүйлс

1.2.1 Ported лавлах платформыг шинэчлэх
Cyclone V SoC Development Kit лавлагааны платформын одоогийн хувилбарт 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-д хадгалагдаагүй Custom Platforms болон одоогийн QXP-д суурилсан Custom Platforms хооронд ялгах боломжийг олгодог. Нэмэлт мэдээлэл авахыг хүсвэл OpenCL Custom Platform Toolkit хэрэглэгчийн гарын авлагад зориулсан Intel FPGA SDK-н Форвард нийцтэй байдлын талаар Custom Platform Automigration-аас үзнэ үү.

  1. c5soc-ийн өмнөх хувилбараас зөөвөрлөгдсөн Cyclone V SoC FPGA техник хангамжийн загварт QXP хадгалалтын урсгалыг хэрэгжүүлэхийн тулд .qxp-ээс HPS-ийг хасах дэд хуваалт үүсгэхийн тулд дараах алхмуудыг гүйцэтгэнэ. file:
    а. Цөмийн бус логикийн эргэн тойронд хуваалт үүсгэхийн өмнө .qsf Quartus Prime тохиргоонд HPS-ийн эргэн тойронд хуваалт үүсгэнэ үү. File.
    Жишээ ньampле:
    # Manually partition the instance that models the HPS-dedicated I/O set_instance_assignment -name PARTITION_HIERARCHY borde_18261 -to “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps_0_hps_io:hps_io| system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_0_hps_io_border: хил"
    # Хуваалтыг бусад Квартусын зөв боловсруулахын тулд HPS_PARTITION төрөл болгон тохируулна уу
    set_global_assignment -нэр PARTITION_TYPE HPS_PARTITION -section_id “system_acl_iface_hps_0_hps_io_border:border”
    quartus_cdb top -c top
    – нэмэгдүүлсэн_эмхэтгэлийн_экспорт=acl_iface_partition.qxp
    – нэмэгдүүлсэн_эмхэтгэлийн_экспортын_хувааны_нэр=acl_iface_partition
    – нэмэгдэл_эмхэт_экспортын_шууд_синт=асаалттай
    – нэмэгдүүлсэн_эмхэт_экспортын_post_fit=асаалттай
    –өсөлттэй_эмхэт_экспортын_чиглүүлэлт=асаалттай
    –өсөлттэй_эмхэт_экспортын_хавтгах=унтраах
    HPS-г хуваалтаас хассаны дараа та .qxp-г оруулж болно file мөн загвараа эмхэтгэ.
  2. SD флаш картын зургийг OpenCL-д зориулсан Intel FPGA RTE-ийн одоогийн хувилбараар шинэчилж, дараах ажлуудыг гүйцэтгэнэ.
    а. -ийг суурилуулах file хуваарилалтын хүснэгт (fat32) болон өргөтгөсөн file системийн (ext3) хуваалтууд нь одоо байгаа зураг дээрх давталтын төхөөрөмж хэлбэрээр. Дэлгэрэнгүй зааврыг SD флаш картны зураг бүтээх 2-р алхамаас үзнэ үү.
    б. /home/root/opencl_arm32_rte лавлахаас устгана уу fileRTE-ийн өмнөх хувилбараас s.
    в. RTE-ийн одоогийн хувилбарыг /home/root/opencl_arm32_rte лавлах руу татаж аваад задлаарай.
    г. Дахь /driver/version.h file Өөрийн захиалгат платформын ACL_DRIVER_VERSION даалгаврыг шинэчилнэ үү . (жишээ ньample, 16.1.x, энд 16.1 нь SDK хувилбар, x нь таны тохируулсан драйверын хувилбар юм).
    д. Драйверыг дахин бүтээх.
    е. Захиалгат платформын техник хангамжийн хавтас(ууд)-ыг устгана уу. Тусгай платформыг шинэчлэгдсэн драйверын хамт /home/root/opencl_arm_rte/board лавлах руу хуулна уу.
    g. Altera.icd-г хуулна уу file /home/root/opencl_arm32_rte сангаас /etc/OpenCL/vendors лавлах руу нэмнэ үү.
    h. Шинэ зургийг салгаад туршина уу. Дэлгэрэнгүй зааврыг SD флаш картын зураг бүтээх 8-11-р алхамаас үзнэ үү.

Холбоотой холбоосууд

  • SD флаш картын зураг үүсгэх 14-р хуудас
    Мөн танд шинэ SD флаш картын дүрс үүсгэх сонголт бий.
  • Форвард нийцтэй байдалд зориулсан тусгай платформын автомат шилжилт

1.3 Хуваалцсан санах ойд зориулсан програм хангамжийн дэмжлэг
FPGA болон CPU-ийн хооронд хуваалцсан физик санах ой нь SoC FPGA дээр ажилладаг OpenCL цөмүүдэд илүүд үздэг санах ой юм. FPGA нь хуваалцсан виртуал санах ойгоос ялгаатай нь хуваалцсан физик санах ойд ханддаг тул хэрэглэгчийн виртуал хаягийг физик хуудасны хаягтай харьцуулах CPU-ийн хуудасны хүснэгтэд хандах эрхгүй.
Техник хангамжийн хувьд OpenCL цөмүүд нь HPS DDR хатуу санах ойн хянагчтай шууд холбогдох замаар хуваалцсан физик санах ойд ханддаг. Програм хангамжийн хувьд хуваалцсан физик санах ойг дэмжих нь дараахь зүйлийг агуулна.

  1. CPU дээр санах ойг хуваарилах ердийн програм хангамжийн хэрэгжилт (жишээ ньample, malloc() функц) нь FPGA ашиглаж болох санах ойн бүсийг хуваарилж чадахгүй.
    Malloc() функцийн хуваарилдаг санах ой нь виртуал санах ойн хаягийн зайд залгаа байдаг боловч үндсэн биет хуудсууд бие махбодийн хувьд залгаа байх магадлал багатай. Иймээс хост нь физик-зэргэлдээ санах ойн бүсүүдийг хуваарилах чадвартай байх ёстой. Гэсэн хэдий ч энэ чадвар Линукс дээрх хэрэглэгчийн орон зайн програмуудад байдаггүй. Тиймээс Linux цөмийн драйвер нь хуваарилалтыг гүйцэтгэх ёстой.
  2. OpenCL SoC FPGA Linux цөмийн драйвер нь хуваалцсан физик санах ойг хуваарилж, хэрэглэгчийн орон зайд буулгах mmap() функцийг агуулдаг. mmap() функц нь Linux цөмийн стандарт дуудлагыг dma_alloc_coherent() ашиглан төхөөрөмжтэй хуваалцахын тулд бие биентэйгээ зэргэлдээ санах ойн бүсүүдийг хүсэх болно.
  3. Linux-ийн анхдагч цөмд dma_alloc_coherent() нь 0.5 мегабайтаас (MB) илүү хэмжээтэй биет залгаа санах ойг хуваарилдаггүй. dma_alloc_coherent()-д их хэмжээний физик-зэргэлдээ санах ойг хуваарилахыг зөвшөөрөхийн тулд Линуксийн цөмийн залгаа санах ой хуваарилагч (CMA) функцийг идэвхжүүлж, дараа нь Линукс цөмийг дахин хөрвүүлнэ.
    Cyclone V SoC Development Kit лавлах платформын хувьд CMA нь 512 ГБ физик санах ойн 1 МБ-ыг удирддаг. Аппликешнд шаардагдах хуваалцсан санах ойн хэмжээнээс хамааран та энэ утгыг нэмэгдүүлж эсвэл багасгаж болно. dma_alloc_coherent() дуудлагууд нь 512 МБ-ын физик залгаа санах ойг бүрэн хэмжээгээр хуваарилах боломжгүй байж магадгүй; Гэсэн хэдий ч энэ нь ойролцоогоор 450 MB санах ойг тогтмол авах боломжтой.
  4. CPU нь dma_alloc_coherent() дуудлагын хуваарилдаг санах ойг кэш хийх боломжтой. Ялангуяа хост програмаас бичих үйлдлүүд OpenCL цөмд харагдахгүй. OpenCL SoC FPGA Linux цөмийн драйвер дахь mmap() функц нь санах ойн энэ бүсийн кэшийг идэвхгүй болгохын тулд pgprot_noncached() эсвэл remap_pf_range() функц руу хийсэн дуудлагуудыг агуулдаг.
  5. dma_alloc_coherent() функц нь бие биенээсээ залгаа санах ойг хуваарилсны дараа mmap() функц нь виртуал хаягийг мужын эхэнд буцаадаг бөгөөд энэ нь таны хуваарилсан санах ойн хаягийн зай юм. Хост програм нь санах ойд хандахын тулд энэ виртуал хаягийг шаарддаг. Нөгөө талаас, OpenCL цөм нь физик хаяг шаарддаг. Линуксийн цөмийн драйвер нь виртуал хаягаас физик хаягийн зураглалыг хянаж байдаг. Та драйверт асуулга нэмснээр mmap() нь бодит физик хаяг руу буцдаг физик хаягуудыг зураглаж болно.
    aocl_mmd_shared_mem_alloc() MMD програмчлалын интерфейс (API) дуудлага нь дараах асуултуудыг агуулна.
    а. Санах ойг хуваарилж, виртуал хаягийг буцаадаг mmap() функц.
    б. Буцаагдсан виртуал хаягийг физик хаягтай харьцуулах нэмэлт асуулга.
    aocl_mmd_shared_mem_alloc() MMD API дуудлага дараа нь хоёр хаягийг буцаана.
    -Бодит буцаасан хаяг нь виртуал хаяг бөгөөд физик хаяг нь device_ptr_out руу очно.
    Жич: Драйвер нь зөвхөн mmap() функц нь физик хаяг руу буцаадаг виртуал хаягуудыг дүрслэх боломжтой. Хэрэв та өөр виртуал заагчийн физик хаягийг хүсэх юм бол драйвер нь NULL утгыг буцаана.

Анхааруулга: 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 битийн Линуксийн дэмжлэг нь SDK ажиллах цагийн номын сан дахь хуваалцсан санах ойн дэмжлэгийн хэмжээг зохицуулж байна. Өөрөөр хэлбэл, бусад орчинд эмхэтгэсэн ажиллах цагийн номын сангууд (жишээ ньample, x86_64 Linux эсвэл 64 битийн Windows) нь хуваалцсан санах ойг дэмждэггүй.
    C5soc нь дараах шалтгааны улмаас хуваалцсан болон хуваалцаагүй санах ойг ялгахын тулд нэг төрлийн санах ойг хэрэгжүүлээгүй:
    1. Түүх — Хуваалцсан санах ойн дэмжлэгийг анх үүсгэх үед нэг төрлийн санах ойн дэмжлэг байхгүй байсан.
    2. Нэг төрлийн интерфэйс—OpenCL нь нээлттэй стандарт учраас Intel нь нэг төрлийн бус тооцоолох платформ үйлдвэрлэгчдийн хоорондын уялдааг хангадаг. Тиймээс бусад самбар үйлдвэрлэгчдийн архитектуртай ижил интерфейсийг хуваалцсан санах ойг хуваарилах, ашиглахад ашигладаг.

1.4 FPGA дахин тохируулга
SoC FPGA-ийн хувьд CPU нь CPU-ийн ажиллагааг тасалдуулахгүйгээр FPGA үндсэн бүтцийг дахин тохируулах боломжтой. HPS болон үндсэн FPGA-ийг холбосон FPGA менежерийн тоног төхөөрөмжийн блок нь дахин тохируулгыг гүйцэтгэдэг. Линуксийн цөм нь FPGA менежерт хялбар хандах боломжийг олгодог драйверийг агуулдаг.

  • руу view FPGA цөмийн төлөвийг харахын тулд cat /sys/class/fpga/fpga0/ статус командыг дуудна.
    Cyclone V SoC Development Kit лавлагааны платформд байдаг OpenCL програмд ​​зориулсан Intel FPGA SDK нь FPGA-г програмчлахын тулд энэхүү интерфейсийг ашигладаг. Ажиллаж байгаа CPU-тэй FPGA цөмийг дахин програмчлах үед програмын хэрэгсэл нь дараах бүх ажлыг гүйцэтгэдэг.
    1. Дахин програмчлахын өмнө FPGA болон HPS, H2F болон LH2F гүүр хоорондын бүх холбооны гүүрийг идэвхгүй болго.
    Дахин програмчилж дууссаны дараа эдгээр гүүрийг дахин идэвхжүүлнэ үү.
    Анхаар: OpenCL систем нь FPGA-to-HPS (F2H) гүүрийг ашигладаггүй. Дэлгэрэнгүй мэдээллийг Cyclone V төхөөрөмжийн гарын авлагын 3-р боть: Хатуу процессорын системийн техникийн лавлах гарын авлагын HPS-FPGA интерфэйс хэсгээс үзнэ үү.
    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)-д байдаг Golden Hardware лавлах загвар нь HPS DDR-ийг нэг 256 бит горимд тохируулдаг гэдгийг санаарай.
Салбарын таамаглагч эсвэл хуудасны хүснэгтийг урьдчилан татагч гэх мэт CPU системийн хэсгүүд нь CPU дээр юу ч ажиллахгүй байгаа мэт харагдаж байсан ч DDR командуудыг өгч болно.
Тиймээс ачаалах хугацаа нь HPS DDR хянагчийн тохиргоог тохируулах цорын ганц аюулгүй хугацаа юм.
Энэ нь U-boot нь түүхий хоёртын файлтай байх ёстой гэсэн үг юм file (.rbf) санах ойд ачаалах дүрс. Үгүй бол та FPGA дээрх ашиглагдаагүй портуудтай HPS DDR-г идэвхжүүлж, дараа нь портын тохиргоог өөрчлөх магадлалтай. Ийм учраас OpenCL Linux цөмийн драйвер нь HPS DDR хянагчийн тохиргоог тохируулахад шаардлагатай логикийг багтаахаа больсон.
SW3 хос шугаман багц (DIP) нь Cylone V SoC Development Kit-ийг асаадаг бөгөөд .rbf зургийн хүлээгдэж буй хэлбэрийг (өөрөөр хэлбэл, file шахсан ба/эсвэл шифрлэгдсэн байна). C5soc болон SoC EDS-д ашиглах боломжтой Golden Hardware Reference Design нь шахсан боловч шифрлэгдээгүй .rbf зургуудыг агуулдаг. OpenCL Cyclone V SoC Эхлэх гарын авлагад зориулсан Intel FPGA SDK-д тайлбарласан SW3 DIP шилжүүлэгчийн тохиргоо нь энэ .rbf зургийн тохиргоотой таарч байна.

Холбоотой холбоосууд

  • HPS-FPGA интерфэйсүүд
  • SW3 шилжүүлэгчийг тохируулж байна

1.4.1 FPGA системийн архитектурын дэлгэрэнгүй мэдээлэл
Cyclone V SoC Development Kit лавлагааны платформын дэмжлэг нь OpenCL-д зориулсан Intel FPGA SDK-д ашиглах боломжтой Stratix® V лавлагаа платформ (s5_ref) дээр суурилдаг.
c5soc Qsys системийн ерөнхий зохион байгуулалт болон цөмийн драйвер нь s5_ref дээрхтэй маш төстэй юм.
Дараах FPGA үндсэн бүрэлдэхүүн хэсгүүд нь c5soc болон s5_ref хоёуланд нь ижил байна:

  • VERSION_ID блок
  • Амрах механизм
  • Санах ойн банк хуваагч
  • Кэш шалгах интерфейс
  • Цөмийн цаг
  • Бүртгэлийн хандалтыг хянах (CRA) блокууд

1.5 SD флаш картын дүрсийг бүтээх
Cyclone V SoC FPGA нь чип дээрх бүрэн систем учраас та системийн бүрэн тодорхойлолтыг хүргэх үүрэгтэй. Intel үүнийг SD флаш картын дүрс хэлбэрээр хүргэхийг зөвлөж байна. OpenCL хэрэглэгчдэд зориулсан Intel FPGA SDK нь ердөө л микро SD флаш карт руу дүрс бичих боломжтой бөгөөд SoC FPGA самбар ашиглахад бэлэн болсон байна.
13-р хуудсанд байгаа SD флаш картны зургийг өөрчлөх
Intel нь Cyclone V SoC Development Kit лавлагааны платформ дээр байгаа зургийг зүгээр л өөрчлөхийг зөвлөж байна. Мөн танд шинэ SD флаш картын дүрс үүсгэх сонголт бий.
SD флаш картын зураг үүсгэх 14-р хуудас
Мөн танд шинэ SD флаш картын дүрс үүсгэх сонголт бий.

1.5.1 Одоо байгаа SD флаш картны зургийг өөрчлөх
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-ийг эмхэтгэхample дизайн таны Custom Platform дэмжлэгийг ашиглан. .rbf нэрийг өөрчил file OpenCL Offline Compiler-д зориулсан Intel FPGA SDK нь opencl.rbf хэлбэрээр үүсгэгдэж, SD флаш картын дүрс доторх fat32 хуваалт дээр байрлуулна.
    Та hello_world ex-г татаж авах боломжтойampOpenCL Design Ex-ийн дизайнampAltera дээрх 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 diagnose utility командыг дуудна уу.

1.5.2 SD флаш картын зураг үүсгэх
Мөн танд шинэ SD флаш картын дүрс үүсгэх сонголт бий. Шинэ SD флаш картын дүрсийг бүтээх, одоо байгаа SD флаш картны дүрсийг сэргээх ерөнхий зааварчилгааг RocketBoards.org сайтын GSRD v14.0.2 – 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) Lostup -f командыг бичнэ.
    в. /dev/loop0 нь үнэгүй давталтын төхөөрөмж гэж үзвэл алдагдах /dev/loop0 image_-г дуудаж, өөрийн флаш картын дүрсийг давталтыг блоклох төхөөрөмжид оноож өгнө үү.file -0 1086324736 команд.
    г. mount /dev/loop0 /media/disk1 командыг дуудаж давталтын төхөөрөмжийг холбоно.
    Зургийн дотор file, /media/disk1 нь одоо суурилагдсан fat32 хуваалт болсон.
    д. Ext3 хуваалтын хувьд a-аас d хүртэлх алхмуудыг давтана уу.
  3. OpenCL багцын Intel FPGA Runtime Environment-ийн Cyclone V SoC FPGA хувилбарыг Altera дээрх Татаж авах төвөөс татаж авна уу. webсайт.
    а. Quartus Prime програм хангамжийн хувилбарын хажууд байгаа Татаж авах товчийг дарна уу.
    б. Хувилбарын хувилбар, үйлдлийн систем, татаж авах аргыг зааж өгнө үү.
    в. Нэмэлт програм хангамжийн таб дээр дарж, Intel FPGA татаж авахыг сонгоно уу
    OpenCL Linux Cyclone V SoC TGZ-д зориулсан ажиллах цагийн орчин.
    г. aocl-rte-г татаж авсны дараа .arm32.tgz file, үүнийг задлах
    таны эзэмшдэг лавлах.
  4. Савласан aocl-rte-г тавь. .arm32 лавлахыг зургийн ext32 хэсэг дээрх /home/root/opencl_arm3_rte сан руу оруулна уу. file.
  5. Захиалгат платформынхаа техник хангамжийн хавтас(ууд)-ыг устгаад, дараа нь /home/root/ opencl_arm32_rte-н самбарын дэд директорт Custom Platform-ийг байрлуул.
  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 цөмийн драйверийг ачаалахын тулд source ./init_opencl.sh командыг ажиллуулдаг.
  7. Хэрэв та урьдчилан ачаалагчийг шинэчлэх шаардлагатай бол DTS files эсвэл Линуксийн цөмд SoC EDS-ээс arm-linux-gnueabihf-gcc хөрвүүлэгч хэрэгтэй. Intel SoC FPGA Embedded Design Suite хэрэглэгчийн гарын авлагад заасан зааврыг дагаж програм хангамжийг олж авах, тэдгээрийг дахин эмхэтгэх, холбогдох мэдээллийг шинэчлэх. files суулгасан fat32 хуваалт дээр.
    Анхаар: Хэрэв таны захиалгат платформ c5soc-ээс өөр пин хэрэглээтэй бол та урьдчилан ачаалагчийг шинэчлэх шаардлагатай байх магадлалтай.
    Санаж байна уу: Хэрэв та Линуксийн цөмийг дахин хөрвүүлбэл Линуксийн цөмийн драйверийг ижил Линукс цөмийн эх үүсвэрээр дахин эмхэтгэ. fileс. Хэрэв Линуксийн цөмийн драйвер болон Линуксийн цөмийн хооронд тохирохгүй байвал драйвер ачаалахгүй. Мөн та CMA-г идэвхжүүлэх ёстой.
    Дэлгэрэнгүй мэдээллийг Линуксийн цөмийг дахин эмхэтгэх хэсгээс үзнэ үү.
  8. hello_world OpenCL-ийг эмхэтгэхample дизайн таны Custom Platform дэмжлэгийг ашиглан. .rbf нэрийг өөрчил file OpenCL Offline Compiler-д зориулсан Intel FPGA SDK нь opencl.rbf хэлбэрээр үүсгэгдэж, SD флаш картын дүрс доторх fat32 хуваалт дээр байрлуулна.
    Та hello_world ex-г татаж авах боломжтойampOpenCL Design Ex-ийн дизайнampAltera дээрх les хуудас webсайт.
    9. Шаардлагатай бүх зүйлийг хадгалсны дараа files-ийг флаш картын зураг дээр оруулах бол дараах тушаалуудыг дуудна уу:
    а. синк хийх
    б. салгах /медиа/диск1
    в. салгах хаана Энэ нь 3-р хуудасны 3 дахь ext3 хуваалтыг холбоход ашигладаг лавлах нэр юм (жишээ нь:ample, /media/disk2).
    г. Lotup -d /dev/loop0
    д. losttup -d /dev/loop1
  9. Дараах командыг дуудаж SD флаш картны дүрсийг шахна уу: tar cvfz .tgz linux_sd_card_image
  10. -ийг хүргэх .tgz file Таны захиалгат платформын үндсэн лавлах дотор.
  11. SD флаш картынхаа зургийг шалгахын тулд дараах ажлуудыг гүйцэтгэнэ үү.
    а. Үүссэн шахагдаагүй зургийг микро SD флаш карт дээр бичнэ үү.
    б. Микро SD флаш картыг SoC FPGA самбарт оруулна уу.
    в. Самбарыг асаана уу.
    г. aocl diagnose utility командыг дуудна уу.

Холбоотой холбоосууд

  • Intel SoC FPGA Embedded Design Suite хэрэглэгчийн гарын авлага
  • OpenCL Design ExampAltera дээрх les хуудас webсайт
  • Линуксийн цөмийг дахин эмхэтгэж байна 16-р хуудас
    CMA-г идэвхжүүлэхийн тулд та эхлээд Линуксийн цөмийг дахин эмхэтгэх ёстой.
  • Таны FPGA самбарын төхөөрөмжийн нэрийг асууж байна (оношлох)

1.6 Cyclone V SoC FPGA-д зориулсан Линуксийн цөмийг эмхэтгэж байна
Cyclone V SoC FPGA самбар дээр OpenCL програмуудыг ажиллуулахын өмнө та Linux цөмийн эх сурвалжийг эмхэтгэж, OpenCL Linux цөмийн драйверийг эмхэтгэж суулгах ёстой.

  1. Линуксийн цөмийг дахин эмхэтгэж байна 16-р хуудас
    CMA-г идэвхжүүлэхийн тулд та эхлээд Линуксийн цөмийг дахин эмхэтгэх ёстой.
  2. OpenCL Linux цөмийн драйверийг эмхэтгэх, суулгах 17-р хуудас OpenCL Linux цөмийн драйверийг эмхэтгэсэн цөмийн эх сурвалжийн эсрэг хөрвүүлнэ.

1.6.1 Линуксийн цөмийг дахин эмхэтгэх
CMA-г идэвхжүүлэхийн тулд та эхлээд Линуксийн цөмийг дахин эмхэтгэх ёстой.

  1. RocketBoards.org сайтын Resources хуудасны GSRD v14.0 – Compiling Linux холбоос дээр дарна уу. webЛинукс цөмийн эх кодыг татаж авах, дахин бүтээх зааварчилгааг авах боломжтой сайт.
    OpenCL-д зориулсан Intel FPGA SDK-тэй ашиглахын тулд socfpga-3.13-rel14.0-г дараах байдлаар зааж өгнө үү. .
  2. Тайлбар: Барилгын процесс нь arch/arm/configs/socfpga_defconfig үүсгэдэг. file. Энэ file socfpga анхдагч тохиргооны тохиргоог зааж өгдөг.
    arch/arm/configs/socfpga_defconfig-ийн доод талд дараах мөрүүдийг нэмнэ үү. file.
    CONFIG_MEMORY_ISOLATION=y
    CONFIG_CMA=y
    CONFIG_DMA_CMA=y
    CONFIG_CMA_DEBUG=y
    CONFIG_CMA_SIZE_MBYTES=512
    CONFIG_CMA_SIZE_SEL_MBYTES=y
    ТОХИРУУЛАЛТ_CMA_ALIGNMENT=8
    CONFIG_CMA_AREAS=7
    CONFIG_CMA_SIZE_MBYTES тохиргооны утга нь боломжтой биет зэргэлдээ санах ойн нийт тооны дээд хязгаарыг тогтоодог. Хэрэв танд илүү санах ой хэрэгтэй бол энэ утгыг нэмэгдүүлж болно.
  3. Анхаар: SoC FPGA самбар дээрх ARM процессорт ашиглах боломжтой физик санах ойн нийт хэмжээ 1 ГБ байна. Intel нь CMA менежерийг 1 ГБ-д ойртуулахыг зөвлөдөггүй.
  4. Одоогийн тохиргоог цэвэрлэхийн тулд make mrproper командыг ажиллуулна уу.
  5. make ARCH=arm socfpga_deconfig командыг ажиллуулна.
    ARCH=arm нь таныг ARM архитектурыг тохируулахыг хүсэж байгааг илтгэнэ.
    socfpga_defconfig нь таныг анхдагч socfpga тохиргоог ашиглахыг хүсэж байгааг харуулж байна.
  6. Экспортын CROSS_COMPILE=arm-linux-gnueabihf- командыг ажиллуулна уу.
    Энэ тушаал нь CROSS_COMPILE орчны хувьсагчийг тохируулж, хүссэн хэрэгслийн хэлхээний угтварыг зааж өгдөг.
  7. make ARCH=arm zImage командыг ажиллуулна. Үүссэн дүрсийг arch/arm/boot/zImage дээр авах боломжтой file.
  8. zImage-г байрлуул file флаш картын зургийн fat32 хэсэг рүү оруулна. Дэлгэрэнгүй зааврыг Rocketboards.org дээрх Cyclone V SoC FPGA-д зориулсан GSRD хэрэглэгчийн гарын авлагаас үзнэ үү.
  9. Тайлбар: OpenCL Linux цөмийн драйверийг зөв оруулахын тулд эхлээд SDKgenerated.rbf файлыг ачаална уу. file FPGA дээр.
    .rbf үүсгэхийн тулд file, SDK дизайныг эмхэтгэх example нь Cyclone V SoC Development Kit лавлагааны платформыг зорилтот захиалгат платформ болгон ашигладаг.
    9. .rbf-г байрлуул file флаш картын зургийн fat32 хэсэг рүү оруулна.
    Анхаар: fat32 хуваалт нь zImage-г хоёуланг нь агуулсан байх ёстой file болон .rbf file. .rbf байхгүй file, таныг драйвер оруулах үед аюултай алдаа гарна.
  10. Таны өмнө нь өөрчилсөн эсвэл үүсгэсэн SD картны дүрсийг агуулсан програмчлагдсан микро SD картыг Cyclone V SoC Development Kit-д оруулаад дараа нь SoC FPGA самбарыг асаана уу.
  11. Uname -r командыг ажиллуулж суулгасан Линуксийн цөмийн хувилбарыг шалгана уу.
  12. SoC FPGA самбар асаалттай үед CMA-г цөмд амжилттай идэвхжүүлсэн эсэхээ шалгахын тулд grep init_cma /proc/kallsyms командыг ажиллуулна уу.
    Хэрэв гаралт хоосон биш бол CMA идэвхждэг.
  13. Дахин хөрвүүлсэн Линуксийн цөмийг SDK-тэй ашиглахын тулд Линуксийн цөмийн драйверийг хөрвүүлж суулгана уу.

Холбоотой холбоосууд

  • Алтан системийн лавлагаа дизайн (GSRD) хэрэглэгчийн гарын авлага
  • SD флаш картын зураг бүтээх нь 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. OpenCL багцын Intel FPGA Runtime Environment-ийн Cyclone V SoC FPGA хувилбарыг Altera дээрх Татаж авах төвөөс татаж авна уу. webсайт.
    а. Quartus Prime програм хангамжийн хувилбарын хажууд байгаа Татаж авах товчийг дарна уу.
    б. Хувилбарын хувилбар, үйлдлийн систем, татаж авах аргыг зааж өгнө үү.
    в. Нэмэлт програм хангамжийн таб дээр дарж, Intel FPGA татаж авахыг сонгоно уу
    OpenCL Linux Cyclone V SoC TGZ-д зориулсан ажиллах цагийн орчин.
    г. aocl-rte-г татаж авсны дараа .arm32.tgz file, үүнийг задлах
    таны эзэмшдэг лавлах.
    Драйверын эх үүсвэр нь aocl-rte-д байна. .arm32/board/c5soc/ драйверын лавлах.
  2. OpenCL Linux цөмийн драйверийг дахин хөрвүүлэхийн тулд драйверын Make-д KDIR утгыг тохируулна ууfile Линукс цөмийн эх сурвалжийг агуулсан лавлах руу 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 картыг бүтээхдээ үүсгэсэн init_opencl.sh скриптийг ажиллуулна уу.
  8.  aocl diagnose utility командыг дуудна уу. Оношилгооны хэрэгсэл таныг init_opencl.sh-г амжилттай ажиллуулсны дараа үр дүнг буцаана.

Мэдэгдэж буй 1.7 асуудал
Одоогоор Intel FPGA SDK-г Cyclone V SoC Development Kit лавлагааны платформтой OpenCL-д ашиглахад тодорхой хязгаарлалтууд бий.

  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-д зориулсан Линуксийн цөмийн эх сурвалжуудыг аль хэдийн агуулж байна. Хөгжүүлэгч машинд зориулсан Линуксийн цөмийн эх үүсвэрүүд нь SoC FPGA-ийн эх сурвалжаас ялгаатай. SoC FPGA-д зориулсан Линуксийн цөмийн эх үүсвэрүүдийн байршил нь SDK хэрэглэгчдэд тодорхойгүй байх магадлалтай. Үүний нэгэн адил устгах хэрэгсэл нь Cyclone V SoC Development Kit-д боломжгүй юм.
    Түүнчлэн, Cyclone V SoC Development Kit-ийн өгөгдмөл тархалт нь Linux цөмийг агуулаагүй тул aclsoc_drv-г SoC самбарт хүргэх нь хэцүү байдаг. files эсвэл GNU Compiler Collection (GCC) хөрвүүлэгч.
    б. Флэш хэрэгсэл нь .rbf байршуулахыг шаарддаг file Micro 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 командын мөрийг оруулахын тулд дурын товчлуурыг дарна уу.
    б. Командын мөрөнд 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-д зориулсан Altera Offline Compiler-ийг Intel FPGA SDK болгон өөрчилсөн.
Тавдугаар сарын 16 2016.05.02 •SD флаш картны дүрсийг бүтээх, өөрчлөх зааварчилгааг өөрчилсөн.
•Линукс цөм болон OpenCL Linux цөмийн драйверийг дахин хөрвүүлэх зааварчилгааг өөрчилсөн.
15-р сарын XNUMX 2015.11.02 •Засвар үйлчилгээний хувилбар болон Quartus II-ийн тохиолдлуудыг Quartus Prime болгон өөрчилсөн.
Тавдугаар сарын 15 15.0.0 •FPGA Reconfiguration-д FPGA цөмийг дахин програмчлах зааврыг устгасан
нь . муурыг дуудаж rbf дүрс fileнэр>. rbf
> /dev/ fpga0 команд учир нь энэ аргыг хэрэглэхийг зөвлөдөггүй.
Арванхоёрдугаар сар-14 14.1.0 •Баримт бичгийг Altera Cyclone V SoC Development Kit лавлагааны платформ портын гарын авлага гэж өөрчилсөн.
•Дахин програмчлах хэрэгслийг aocl програм руу шинэчилсэнfilename>.aocx хэрэгслийн команд.
•Оношлогооны хэрэгслийг aocl оношлогоо болон aocl оношилгоо болгон шинэчилсэн. хэрэгслийн тушаал.
• Лавлагаа платформыг өөрийн SoC самбарт шилжүүлэх хэсгийн процедурыг шинэчилж, баталгаат хугацааны хаалтын урсгалд зориулж c5soc хавтангийн хуваалтыг шилжүүлэх, өөрчлөх зааварчилгааг оруулсан.
•Дараах ажлуудын процедурыг тоймлохын тулд Ported Reference Platform-ийг шинэчлэх сэдвийг оруулсан:
1.ТУЗ-ийн хуваалт дахь хатуу процессорын систем (HPS) блокыг оруулаагүй болно
2. SD флаш картны дүрсийг шинэчилж байна
•SD флаш картын зураг бүтээх хэсгийг шинэчилсэн. SoC Embedded Design Suite (EDS) дээр ашиглах боломжтой зургийн оронд Алтан системийн лавлагаа дизайны (GSRD) зургийн 14.0 хувилбарыг ашиглахыг зөвлөж байна.
•Линукс цөм болон OpenCL Линукс цөмийн драйверийг дахин эмхэтгэх хэсгийг шинэчилсэн:
1. CROSS COMPILE хувьсагчийг тохируулах заавар нэмсэн.
2. CMA амжилттай идэвхжсэн эсэхийг шалгахын тулд таны ажиллуулж буй командыг өөрчилсөн.
14-XNUMX 14.0.0 •Анхны хувилбар.

Баримт бичиг / нөөц

OpenCL-д зориулсан intel FPGA SDK [pdf] Хэрэглэгчийн гарын авлага
OpenCL-д зориулсан FPGA SDK, FPGA SDK, OpenCL-д зориулсан SDK, SDK

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *