Intel - ლოგოFPGA SDK OpenCL-ისთვის
მომხმარებლის სახელმძღვანელო

UG-OCL009
2017.05.08
ბოლოს განახლდა Intel® Quartus® Prime Design Suite-ისთვის: 17.0

RENPHO RF FM059HS WiFi ჭკვიანი ფეხის მასაჟორი - ხატულა 5გამოწერა
SAMSUNG SM A136UZKZAIO Galaxy A13 5G სმარტფონი - ხატულა 12გამოხმაურების გაგზავნა

Intel® FPGA SDK OpenCL™-ისთვის Intel® Cyclone®V SoC განვითარების ნაკრები საცნობარო პლატფორმის პორტირების სახელმძღვანელო

V SoC განვითარების ნაკრები საცნობარო პლატფორმის პორტირების სახელმძღვანელო აღწერს Intel Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმის აპარატურულ და პროგრამულ დიზაინს (c5soc) Intel პროგრამული უზრუნველყოფის განვითარების ნაკრების (SDK) გამოსაყენებლად OpenCL-ისთვის Intel ® FPGA SDK OpenCL ™ Intel Cyclone-ისთვის ® . სანამ დაიწყებთ, Intel მკაცრად გირჩევთ გაეცნოთ შემდეგი დოკუმენტების შინაარსს:

  1. Intel FPGA SDK OpenCLIntel Cyclone V SoC-ისთვის დაწყების სახელმძღვანელო
  2. Intel FPGA SDK OpenCL Custom Platform Toolkit-ის მომხმარებლის სახელმძღვანელო
  3. Cyclone V მოწყობილობის სახელმძღვანელო, ტომი 3: მყარი პროცესორის სისტემის ტექნიკური საცნობარო სახელმძღვანელო გარდა ამისა, იხილეთ Cyclone V SoC განვითარების ნაკრები და SoC ჩაშენებული დიზაინის გვერდი Altera-ზე webსაიტი დამატებითი ინფორმაციისთვის. 1 2

ყურადღება: Intel ვარაუდობს, რომ თქვენ გაქვთ ინტელის FPGA SDK-ის სიღრმისეული გაგება OpenCL Custom Platform Toolkit-ის მომხმარებლის სახელმძღვანელოსთვის. Cyclone V SoC განვითარების ნაკრები საცნობარო პლატფორმის პორტირების სახელმძღვანელო არ აღწერს SDK-ის მორგებული პლატფორმის ინსტრუმენტარიუმის გამოყენებას Cyclone V SoC განვითარების ნაკრებისთვის მორგებული პლატფორმის დასანერგად. იგი მხოლოდ აღწერს განსხვავებებს SDK მხარდაჭერას Cyclone V SoC განვითარების ნაკრებისა და ზოგად Intel FPGA SDK-ს შორის OpenCL პერსონალური პლატფორმისთვის.

დაკავშირებული ბმულები

  • Intel FPGA SDK OpenCL Cyclone V SoC-ისთვის დაწყების სახელმძღვანელო
  • Intel FPGA SDK OpenCL Custom Platform Toolkit-ის მომხმარებლის სახელმძღვანელო
  • Cyclone V მოწყობილობის სახელმძღვანელო, ტომი 3: მყარი პროცესორის სისტემის ტექნიკური საცნობარო სახელმძღვანელო
  • Cyclone V SoC Development Kit და SoC Embedded Design Suite გვერდი Altera-ზე webსაიტი
  1. OpenCL და OpenCL ლოგო არის Apple Inc.-ის სავაჭრო ნიშნები, რომლებიც გამოიყენება Khronos Group™-ის ნებართვით.
  2. Intel FPGA SDK OpenCL-ისთვის ეფუძნება გამოქვეყნებულ Khronos სპეციფიკაციას და გაიარა Khronos-ის შესაბამისობის ტესტირების პროცესი. ამჟამინდელი შესაბამისობის სტატუსი შეგიძლიათ იხილოთ აქ www.khronos.org/conformance.

ინტელის კორპორაცია. Ყველა უფლება დაცულია. Intel, Intel-ის ლოგო, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus და Stratix სიტყვები და ლოგოები არის Intel Corporation-ის ან მისი შვილობილი კომპანიების სავაჭრო ნიშნები აშშ-ში და/ან სხვა ქვეყნებში. Intel იძლევა გარანტიას მისი FPGA და ნახევარგამტარული პროდუქტების შესრულებაზე მიმდინარე სპეციფიკაციების შესაბამისად Intel-ის სტანდარტული გარანტიის შესაბამისად, მაგრამ იტოვებს უფლებას ნებისმიერ დროს შეიტანოს ცვლილებები ნებისმიერ პროდუქტსა და სერვისში შეტყობინების გარეშე. Intel არ იღებს პასუხისმგებლობას ან პასუხისმგებლობას, რომელიც წარმოიქმნება აქ აღწერილი ნებისმიერი ინფორმაციის, პროდუქტის ან სერვისის აპლიკაციის ან გამოყენების შედეგად, გარდა იმ შემთხვევისა, რაც წერილობით არის დათანხმებული Intel-ის მიერ. Intel-ის მომხმარებლებს ურჩევენ, მიიღონ მოწყობილობის სპეციფიკაციების უახლესი ვერსია, სანამ დაეყრდნონ რაიმე გამოქვეყნებულ ინფორმაციას და განათავსონ შეკვეთები პროდუქტებსა და სერვისებზე.
*სხვა სახელები და ბრენდები შეიძლება გამოცხადდეს, როგორც სხვისი საკუთრება.

1.1.1 Cyclone V SoC განვითარების ნაკრები საცნობარო პლატფორმის დაფის ვარიანტები
Intel FPGA SDK OpenCL Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმისთვის მოიცავს ორ დაფის ვარიანტს.

  • 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 ბრძანების ვარიანტი, იხილეთ Intel FPGA SDK OpenCL პროგრამირების სახელმძღვანელოსთვის.

დაკავშირებული ბმულები
ბირთვის შედგენა კონკრეტული FPGA დაფისთვის (–დაფა )
1.1.2 Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმის შინაარსი
Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმა შედგება შემდეგისგან files და დირექტორიები:

File ან დირექტორია აღწერა
board_env.xml გაფართოებული მარკირების ენა (XML) file რომელიც აღწერს c5soc-ს Intel FPGA SDK-ზე OpenCL-ისთვის.
linux_sd_card_image.tgz შეკუმშული SD ფლეშ ბარათის სურათი file რომელიც შეიცავს ყველაფერს, რაც SDK მომხმარებელს სჭირდება Cyclone V SoC განვითარების ნაკრების SDK-თან ერთად გამოსაყენებლად.
arm32 დირექტორია, რომელიც შეიცავს შემდეგს:

1.1.3 Cyclone V SoC განვითარების ნაკრების შესაბამისი ფუნქციები

შემდეგი სია ხაზს უსვამს Cyclone V SoC განვითარების ნაკრების კომპონენტებსა და ფუნქციებს, რომლებიც შეესაბამება Intel FPGA SDK-ს OpenCL-ისთვის:

  • ორბირთვიანი ARM Cortex-A9 CPU, რომელიც მუშაობს 32-ბიტიან Linux-ზე.
  • გაფართოებული გაფართოებული ინტერფეისი (AXI) ავტობუსი HPS-სა და FPGA core ქსოვილს შორის.
  • ორი გამაგრებული DDR მეხსიერების კონტროლერი, თითოეული უკავშირდება 1 გიგაბაიტიანი (GB) DDR3 SDRAM-ს.
    — ერთი DDR კონტროლერი ხელმისაწვდომია მხოლოდ FPGA ბირთვისთვის (ეს არის FPGA DDR).
    — სხვა DDR კონტროლერი ხელმისაწვდომია როგორც HPS-სთვის, ასევე FPGA-სთვის (ეს არის HPS DDR). ეს საზიარო კონტროლერი საშუალებას აძლევს მეხსიერების უფასო გაზიარებას CPU-სა და FPGA ბირთვს შორის.
  • CPU-ს შეუძლია FPGA ბირთვის ქსოვილის ხელახლა კონფიგურაცია.

1.1.3.1 Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმის დიზაინის მიზნები და გადაწყვეტილებები Intel ეფუძნება Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმის განხორციელებას რამდენიმე დიზაინის მიზნებსა და გადაწყვეტილებაზე. Intel გირჩევთ, გაითვალისწინოთ ეს მიზნები და გადაწყვეტილებები, როდესაც პორტირებთ ამ საცნობარო პლატფორმას თქვენს SoC FPGA დაფაზე.
ქვემოთ მოცემულია c5soc დიზაინის მიზნები:

  1. FPGA-სა და DDR მეხსიერების სისტემა(ებ)ზე არსებულ ბირთვებს შორის მაქსიმალური შესაძლო გამტარუნარიანობის უზრუნველყოფა.
  2. დარწმუნდით, რომ FPGA-ზე (ანუ OpenCL ბირთვებზე) გამოთვლები არ ერევა CPU-ს სხვა ამოცანებს, რომლებიც შეიძლება მოიცავდეს პერიფერიულ მოწყობილობებს.
  3. დატოვეთ რაც შეიძლება მეტი FPGA რესურსი ბირთვის გამოთვლებისთვის ინტერფეისის კომპონენტების ნაცვლად.

ქვემოთ მოცემულია მაღალი დონის დიზაინის გადაწყვეტილებები, რომლებიც Intel-ის დიზაინის მიზნების პირდაპირი შედეგია:

  1. საცნობარო პლატფორმა იყენებს მხოლოდ მყარი DDR მეხსიერების კონტროლერებს ყველაზე ფართო შესაძლო კონფიგურაციით (256 ბიტი).
  2. FPGA პირდაპირ კავშირშია HPS DDR მეხსიერების კონტროლერთან, AXI ავტობუსის და L3 გადამრთველის ჩართვის გარეშე HPS-ში. პირდაპირი კომუნიკაცია უზრუნველყოფს DDR-ს მაქსიმალურ შესაძლებლობებს და ხელს უშლის FPGA გამოთვლების ჩარევას CPU-სა და მის პერიფერიას შორის კომუნიკაციაში.
  3. მეხსიერების სკატერ-შეგროვების პირდაპირი წვდომა (SG-DMA) არ არის FPGA ინტერფეისის ლოგიკის ნაწილი. იმის ნაცვლად, რომ გადაიტანოთ დიდი რაოდენობით მონაცემები DDR მეხსიერების სისტემებს შორის, შეინახეთ მონაცემები საერთო HPS DDR-ში. პირდაპირი წვდომა CPU მეხსიერებაზე FPGA-ით უფრო ეფექტურია ვიდრე DMA. ის დაზოგავს ტექნიკის რესურსებს (ანუ FPGA ზონას) და ამარტივებს Linux-ის ბირთვის დრაივერს.
    გაფრთხილება: მეხსიერების გადაცემა საერთო HPS DDR სისტემასა და DDR სისტემას შორის, რომელიც ხელმისაწვდომია მხოლოდ FPGA-სთვის, ძალიან ნელია. თუ აირჩევთ
    გადაიტანეთ მეხსიერება ამ გზით, გამოიყენეთ იგი მხოლოდ ძალიან მცირე რაოდენობის მონაცემებისთვის.
  4. ჰოსტი და მოწყობილობა ახორციელებენ მონაცემთა არა-DMA გადაცემას ერთმანეთს შორის HPS-to-FPGA (H2F) ხიდის მეშვეობით, მხოლოდ ერთი 32-ბიტიანი პორტის გამოყენებით. მიზეზი ის არის, რომ DMA-ს გარეშე, Linux-ის ბირთვს შეუძლია გასცეს მხოლოდ ერთი 32-ბიტიანი წაკითხვის ან ჩაწერის მოთხოვნა, ამიტომ არ არის საჭირო უფრო ფართო კავშირი.
  5. მასპინძელი უგზავნის საკონტროლო სიგნალებს მოწყობილობას მსუბუქი H2F (LH2F) ხიდის მეშვეობით.
    იმის გამო, რომ საკონტროლო სიგნალები ჰოსტიდან მოწყობილობამდე არის დაბალი გამტარუნარიანობის სიგნალები, LH2F ხიდი იდეალურია ამოცანისთვის.

1.2 საცნობარო პლატფორმის პორტირება თქვენს SoC FPGA დაფაზე
Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმის გადასატანად თქვენს SoC FPGA დაფაზე, შეასრულეთ შემდეგი დავალებები:

  1. აირჩიეთ c5soc საცნობარო პლატფორმის ერთი DDR მეხსიერების ან ორი DDR მეხსიერების ვერსია, როგორც თქვენი დიზაინის საწყისი წერტილი.
  2. განაახლეთ პინის მდებარეობები ALTERAOCLSDKROOT/board/c5soc/-ში /top.qsf file, სადაც ALTERAOCLSDKROOT არის გზა Intel FPGA SDK-ის ადგილმდებარეობისკენ OpenCL ინსტალაციისთვის და არის დაფის ვარიანტის დირექტორია სახელი. c5soc_sharedonly დირექტორია განკუთვნილია დაფის ვარიანტისთვის ერთი DDR მეხსიერების სისტემით. c5soc დირექტორია განკუთვნილია დაფის ვარიანტისთვის ორი DDR მეხსიერების სისტემით.
  3.  განაახლეთ DDR პარამეტრები HPS და/ან FPGA SDRAM ბლოკებისთვის ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
    4. ყველა Intel FPGA SDK OpenCL დაფის სასურველი დიზაინისთვის უნდა მიაღწიოს გარანტირებულ დროში დახურვას. როგორც ასეთი, დიზაინის განთავსება უნდა იყოს დროულად სუფთა. C5soc დაფის დანაყოფის (acl_iface_partition.qxp) გადასატანად თქვენს SoC FPGA დაფაზე, შეასრულეთ შემდეგი დავალებები:
    დაფის დანაყოფის მოდიფიცირებისა და შენარჩუნების შესახებ დეტალური ინსტრუქციებისთვის იხილეთ Quartus
    Quartus Prime Standard Edition სახელმძღვანელოს იერარქიული და გუნდზე დაფუძნებული დიზაინის პირველადი დამატებითი კომპილაცია.
    ა. ამოიღეთ acl_iface_partition.qxp ALTERAOCLSDKROOT/board/c5soc/c5soc დირექტორიადან.
    ბ. ჩართეთ acl_iface_region LogicLock™ რეგიონი Tcl ბრძანების შეცვლით set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
    გ. შეადგინეთ OpenCL ბირთვი თქვენი დაფისთვის.
    დ. საჭიროების შემთხვევაში, შეცვალეთ LogicLock რეგიონის ზომა და მდებარეობა.
    ე. როდესაც დარწმუნდებით, რომ თქვენი დიზაინის განთავსება დროულად სუფთაა, ექსპორტირდება ეს დანაყოფი acl_iface_partition.qxp Quartus Prime Exported Partition. File.
    როგორც აღწერილია AIntel FPGA SDK-ის გარანტირებული დროის ნაკადის განყოფილებაში OpenCL Custom Platform Toolkit მომხმარებლის სახელმძღვანელო, ამ .qxp-ის იმპორტით  file უმაღლესი დონის დიზაინში, თქვენ ასრულებთ დაფის დიზაინის უზრუნველყოფის მოთხოვნას გარანტირებული დროის დახურვის ნაკადით.
    ფაქტორებისთვის, რომლებმაც შეიძლება გავლენა მოახდინოს თქვენი ექსპორტირებული დანაყოფის შედეგების ხარისხზე (QoR), იხილეთ შედეგების ზოგადი ხარისხის მოსაზრებები ექსპორტირებული დაფის დანაყოფის განყოფილებისთვის Intel FPGA SDK-ისთვის OpenCL Custom Platform Toolkit-ის მომხმარებლის სახელმძღვანელო.
    ვ. გამორთეთ acl_iface_region LogicLock რეგიონი მე-2 ნაბიჯის ბრძანების დაბრუნება set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region.
  4. თუ თქვენი SoC FPGA დაფა იყენებს HPS ბლოკის სხვადასხვა პინებს და პერიფერიებს, განაახლეთ წინასწარ ჩამტვირთავი და მოწყობილობის ხის წყარო (DTS) file. თუ შეცვლით HPS DDR მეხსიერების კონტროლერის პარამეტრებს, განაახლეთ წინასწარ ჩამტვირთავი.
  5. შექმენით SD ფლეშ ბარათის სურათი.
  6. შექმენით თქვენი მორგებული პლატფორმა, რომელიც მოიცავს SD ფლეშ ბარათის სურათს.
  7. განიხილეთ თქვენი მორგებული პლატფორმის გაშვების გარემოს ვერსიის შექმნა Intel FPGA Runtime Environment-თან (RTE) OpenCL-ისთვის გამოსაყენებლად. თქვენი მორგებული პლატფორმის RTE ვერსია არ შეიცავს ტექნიკის დირექტორიებს და SD ფლეშ ბარათის სურათს. ეს მორგებული პლატფორმა იტვირთება SoC FPGA სისტემაში, რათა მასპინძელი აპლიკაციების გაშვება დაუშვას. ამის საპირისპიროდ, მორგებული პლატფორმის SDK ვერსია აუცილებელია SDK-სთვის OpenCL ბირთვების შედგენისთვის.
    რჩევა: შეგიძლიათ გამოიყენოთ თქვენი მორგებული პლატფორმის SDK ვერსია RTE-სთვის. Შენახვა
    სივრცეში, ამოიღეთ SD ფლეშ ბარათის სურათი თქვენი მორგებული პლატფორმის RTE ვერსიიდან.
  8. შეამოწმეთ თქვენი მორგებული პლატფორმა.
    დამატებითი ინფორმაციისთვის იხილეთ Intel FPGA SDK-ის ტექნიკის დიზაინის ტესტირების განყოფილება OpenCL Custom Platform Toolkit-ის მომხმარებლის სახელმძღვანელოსთვის.

დაკავშირებული ბმულები

  • აპარატურის დიზაინის ტესტირება
  • Quartus Prime დამატებითი კომპილაცია იერარქიული და გუნდური დიზაინისთვის
  • გარანტირებული დროის ნაკადის დადგენა
  • შედეგების ზოგადი ხარისხის გათვალისწინება ექსპორტირებული დაფის დანაყოფისთვის

1.2.1 პორტირებული საცნობარო პლატფორმის განახლება
Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმის მიმდინარე ვერსიაში, HPS ბლოკი არის დანაყოფის შიგნით, რომელიც განსაზღვრავს ყველა არაკერნელ ლოგიკას. თუმცა, თქვენ არ შეგიძლიათ HPS-ის ექსპორტი, როგორც .qxp-ის ნაწილი file. არსებული საბაჟო პლატფორმის განახლებისთვის, რომელიც თქვენ შეცვალეთ c5soc-ის წინა ვერსიიდან, განაახლეთ QXP შენახვის ნაკადი, განაახლეთ SD ფლეშ ბარათის სურათი უახლესი გაშვების გარემოს მისაღებად და განაახლეთ board_spec.xml file ავტომატური მიგრაციის გასააქტიურებლად.
Altera® SDK OpenCL ვერსიისთვის 14.1 და მის ფარგლებს გარეთ იკვლევს board_spec.xml file დაფის ინფორმაციისთვის და ახორციელებს ავტომატურ განახლებებს. რადგან თქვენ შეცვლით
დიზაინი QXP-ის შენარჩუნების ნაკადის განხორციელებით, თქვენ უნდა განაახლოთ board_spec.xml file მის ფორმატში მიმდინარე ვერსიაში. განახლება file საშუალებას აძლევს SDK-ს განასხვავოს შეუნარჩუნებელი მორგებული პლატფორმები და მიმდინარე QXP-ზე დაფუძნებული მორგებული პლატფორმები. დამატებითი ინფორმაციისთვის იხილეთ Custom Platform Automigration for Forward თავსებადობისთვის Intel FPGA SDK-ში OpenCL Custom Platform Toolkit-ის მომხმარებლის სახელმძღვანელოსთვის.

  1. QXP-ის შენარჩუნების ნაკადის განსახორციელებლად Cyclone V SoC FPGA ტექნიკის დიზაინში, რომელიც პორტირებულია c5soc-ის წინა ვერსიიდან, შეასრულეთ შემდეგი ნაბიჯები ქვეგანყოფილების შესაქმნელად, რათა გამორიცხოთ HPS .qxp-დან. file:
    ა. არაკერნელის ლოგიკის გარშემო დანაყოფის შექმნამდე, შექმენით დანაყოფი HPS-ის გარშემო .qsf Quartus Prime პარამეტრებში. File.
    მაგampლე:
    # ხელით გაანაწილეთ ინსტანცია, რომელიც აყალიბებს HPS-ის გამოყოფილ I/O set_instance_assignment -name PARTITION_HIERARCHY borde_18261 --ზე "system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hpsacl_iface_hps_0:hpsacl_0_0________________ზე system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_XNUMX_hps_io_border:border"
    # დააყენეთ დანაყოფი HPS_PARTITION ტიპის, რომელიც სწორად უნდა დამუშავდეს დანარჩენი Quartus-ის მიერ
    set_global_assignment -name PARTITION_TYPE HPS_PARTITION -section_id „system_acl_iface_hps_0_hps_io_border:border“
    quartus_cdb ზედა -c ზედა
    –incremental_compilation_export=acl_iface_partition.qxp
    –incremental_compilation_export_partition_name=acl_iface_partition
    –incremental_compilation_export_post_synth=on
    –incremental_compilation_export_post_fit=on
    –incremental_compilation_export_routing=ჩართულია
    –incremental_compilation_export_flatten=off
    მას შემდეგ რაც გამორიცხავთ HPS-ს დანაყოფიდან, შეგიძლიათ შემოიტანოთ .qxp file და შეადგინეთ თქვენი დიზაინი.
  2. განაახლეთ SD ფლეშ ბარათის სურათი Intel FPGA RTE-ის მიმდინარე ვერსიით OpenCL-ისთვის შემდეგი ამოცანების შესრულებით:
    ა. დაამატე file განაწილების ცხრილი (fat32) და გაფართოებული file სისტემის (ext3) ტიხრები არსებულ სურათზე, როგორც loop-back მოწყობილობები. დეტალური ინსტრუქციებისთვის იხილეთ ნაბიჯი 2 SD Flash ბარათის სურათის აგებაში.
    ბ. /home/root/opencl_arm32_rte დირექტორიაში წაშალეთ files RTE-ის წინა ვერსიიდან.
    გ. ჩამოტვირთეთ და გახსენით RTE-ის მიმდინარე ვერსია /home/root/opencl_arm32_rte დირექტორიაში.
    დ. ში /driver/version.h file თქვენი მორგებული პლატფორმის განაახლეთ ACL_DRIVER_VERSION დავალება . (მაგample, 16.1.x, სადაც 16.1 არის SDK verison და x არის დრაივერის ვერსია, რომელიც თქვენ დააყენეთ).
    ე. დრაივერის აღდგენა.
    ვ. წაშალეთ თქვენი მორგებული პლატფორმის აპარატურის საქაღალდე(ებ). დააკოპირეთ Custom Platform, განახლებულ დრაივერთან ერთად, /home/root/opencl_arm_rte/board დირექტორიაში.
    გ. დააკოპირეთ Altera.icd file /home/root/opencl_arm32_rte დირექტორიადან და დაამატეთ იგი /etc/OpenCL/vendors დირექტორიაში.
    თ. გამორთეთ და შეამოწმეთ ახალი სურათი. დეტალური ინსტრუქციებისთვის იხილეთ ნაბიჯები 8-დან 11-მდე SD Flash ბარათის სურათის აგებაში.

დაკავშირებული ბმულები

  • SD Flash ბარათის სურათის შექმნა მე-14 გვერდზე
    თქვენ ასევე გაქვთ შესაძლებლობა შექმნათ ახალი SD ფლეშ ბარათის სურათი.
  • მორგებული პლატფორმის ავტომატური მიგრაცია წინ თავსებადობისთვის

1.3 პროგრამული უზრუნველყოფის მხარდაჭერა საერთო მეხსიერებისთვის
გაზიარებული ფიზიკური მეხსიერება FPGA-სა და CPU-ს შორის არის სასურველი მეხსიერება SoC FPGA-ზე გაშვებული OpenCL ბირთვებისთვის. იმის გამო, რომ FPGA წვდომა აქვს გაზიარებულ ფიზიკურ მეხსიერებას, საზიარო ვირტუალური მეხსიერებისგან განსხვავებით, მას არ აქვს წვდომა CPU-ის გვერდების ცხრილებზე, რომლებიც ასახავს მომხმარებლის ვირტუალურ მისამართებს ფიზიკურ გვერდის მისამართებზე.
რაც შეეხება აპარატურას, OpenCL-ის ბირთვები წვდებიან საერთო ფიზიკურ მეხსიერებას HPS DDR მყარი მეხსიერების კონტროლერთან პირდაპირი კავშირის მეშვეობით. პროგრამულ უზრუნველყოფასთან დაკავშირებით, საერთო ფიზიკური მეხსიერების მხარდაჭერა მოიცავს შემდეგ მოსაზრებებს:

  1. ტიპიური პროგრამული უზრუნველყოფის დანერგვა CPU-ზე მეხსიერების გასანაწილებლად (მაგample, malloc() ფუნქციას არ შეუძლია გამოყოს მეხსიერების რეგიონი, რომელიც FPGA-მ შეიძლება გამოიყენოს.
    მეხსიერება, რომელსაც malloc() ფუნქცია გამოყოფს, მომიჯნავეა ვირტუალური მეხსიერების მისამართების სივრცეში, მაგრამ ნებისმიერი ძირითადი ფიზიკური გვერდი ნაკლებად სავარაუდოა, რომ ფიზიკურად მომიჯნავე იყოს. როგორც ასეთი, მასპინძელს უნდა შეეძლოს ფიზიკურად მომიჯნავე მეხსიერების რეგიონების გამოყოფა. თუმცა, ეს შესაძლებლობა არ არსებობს Linux-ის მომხმარებლის სივრცის აპლიკაციებში. ამიტომ, Linux-ის ბირთვის დრაივერმა უნდა შეასრულოს განაწილება.
  2. OpenCL SoC FPGA Linux-ის ბირთვის დრაივერი მოიცავს mmap() ფუნქციას საერთო ფიზიკური მეხსიერების გამოსაყოფად და მომხმარებლის სივრცეში შესატანად. mmap() ფუნქცია იყენებს Linux-ის ბირთვის სტანდარტულ გამოძახებას dma_alloc_coherent(), რათა მოითხოვოს ფიზიკურად მომიჯნავე მეხსიერების რეგიონები მოწყობილობასთან გაზიარებისთვის.
  3. Linux-ის ნაგულისხმევ ბირთვში, dma_alloc_coherent() არ გამოყოფს ფიზიკურად მომიჯნავე მეხსიერებას 0.5 მეგაბაიტზე (MB) ზომით. იმისათვის, რომ dma_alloc_coherent()-ს გამოყოს ფიზიკურად მომიჯნავე მეხსიერების დიდი რაოდენობა, ჩართეთ Linux-ის ბირთვის მომიჯნავე მეხსიერების გამანაწილებელი (CMA) ფუნქცია და შემდეგ ხელახლა შეადგინეთ Linux-ის ბირთვი.
    Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმისთვის, CMA მართავს 512 მბ-ს 1 გბ ფიზიკური მეხსიერებიდან. თქვენ შეგიძლიათ გაზარდოთ ან შეამციროთ ეს მნიშვნელობა, რაც დამოკიდებულია აპლიკაციისთვის საჭირო საზიარო მეხსიერების რაოდენობაზე. dma_alloc_coherent() ზარმა შესაძლოა ვერ შეძლოს ფიზიკურად მომიჯნავე მეხსიერების სრული 512 MB გამოყოფა; თუმცა, მას შეუძლია რუტინულად მიიღოს დაახლოებით 450 მბ მეხსიერება.
  4. CPU-ს შეუძლია მეხსიერების ქეშირება, რომელსაც გამოყოფს dma_alloc_coherent() ზარი. კერძოდ, ჩაწერის ოპერაციები ჰოსტის აპლიკაციიდან არ ჩანს OpenCL ბირთვებისთვის. mmap() ფუნქცია OpenCL SoC FPGA Linux-ის ბირთვის დრაივერში ასევე შეიცავს ზარებს 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 მნიშვნელობას.

გაფრთხილება: Intel FPGA SDK OpenCL გაშვების ბიბლიოთეკებისთვის ვარაუდობს, რომ საერთო მეხსიერება არის პირველი მეხსიერება, რომელიც ჩამოთვლილია board_spec.xml-ში. file. სხვა სიტყვებით რომ ვთქვათ, ფიზიკური მისამართი, რომელსაც ლინუქსის ბირთვის დრაივერი იღებს, ხდება Avalon® მისამართი, რომელსაც OpenCL ბირთვი გადასცემს HPS SDRAM-ს.
Runtime ბიბლიოთეკასთან დაკავშირებით, გამოიყენეთ clCreateBuffer() ზარი, რათა გამოყოთ საერთო მეხსიერება მოწყობილობის ბუფერად შემდეგნაირად:

  • ორი DDR დაფის ვარიანტისთვის, როგორც საზიარო, ისე არაგაზიარებული მეხსიერებით, clCreateBuffer() გამოყოფს საზიარო მეხსიერებას, თუ მიუთითებთ CL_MEM_USE_HOST_PTR დროშას. სხვა დროშების გამოყენება იწვევს clCreateBuffer()-ს ბუფერის გამოყოფას არასაზიარო მეხსიერებაში.
  • ერთი DDR დაფის ვარიანტისთვის მხოლოდ საზიარო მეხსიერებით, clCreateBuffer() გამოყოფს საზიარო მეხსიერებას, მიუხედავად იმისა, თუ რომელი დროშა გაქვთ მითითებული.
    ამჟამად, 32-ბიტიანი Linux მხარდაჭერა ARM CPU-ზე არეგულირებს საერთო მეხსიერების მხარდაჭერის ხარისხს SDK გაშვების ბიბლიოთეკებში. სხვა სიტყვებით რომ ვთქვათ, Runtime ბიბლიოთეკები შედგენილია სხვა გარემოში (მაგample, x86_64 Linux ან 64-bit Windows) არ უჭერს მხარს საერთო მეხსიერებას.
    C5soc-მა არ დანერგა ჰეტეროგენული მეხსიერება, რათა განასხვავოს საერთო და არაგაზიარებული მეხსიერება შემდეგი მიზეზების გამო:
    1. ისტორია - ჰეტეროგენული მეხსიერების მხარდაჭერა არ იყო ხელმისაწვდომი, როდესაც თავდაპირველად შეიქმნა საერთო მეხსიერების მხარდაჭერა.
    2. ერთიანი ინტერფეისი - იმის გამო, რომ OpenCL არის ღია სტანდარტი, Intel ინარჩუნებს თანმიმდევრულობას ჰეტეროგენული გამოთვლითი პლატფორმის მომწოდებლებს შორის. ამიტომ, იგივე ინტერფეისი, როგორც სხვა გამყიდველების არქიტექტურები, გამოიყენება საერთო მეხსიერების გამოყოფისა და გამოყენებისთვის.

1.4 FPGA რეკონფიგურაცია
SoC FPGA-ებისთვის CPU-ს შეუძლია FPGA-ის ძირითადი ქსოვილის ხელახლა კონფიგურაცია CPU-ს მუშაობის შეფერხების გარეშე. FPGA Manager ტექნიკის ბლოკი, რომელიც გადაჭიმულია HPS-ზე და ძირითადი FPGA ასრულებს რეკონფიგურაციას. Linux-ის ბირთვი შეიცავს დრაივერს, რომელიც საშუალებას იძლევა ადვილად წვდომა FPGA მენეჯერთან.

  • რომ view FPGA ბირთვის სტატუსს, გამოიძახეთ cat /sys/class/fpga/fpga0/ სტატუსის ბრძანება.
    Intel FPGA SDK OpenCL პროგრამისთვის, რომელიც ხელმისაწვდომია Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმით, იყენებს ამ ინტერფეისს FPGA-ს დასაპროგრამებლად. FPGA ბირთვის გადაპროგრამებისას გაშვებული CPU-ით, პროგრამის პროგრამა ასრულებს ყველა შემდეგ დავალებას:
    1. გადაპროგრამებამდე, გამორთეთ ყველა საკომუნიკაციო ხიდი FPGA-სა და HPS-ს შორის, ორივე H2F და LH2F ხიდი.
    ხელახლა ჩართეთ ეს ხიდები ხელახალი დაპროგრამების დასრულების შემდეგ.
    ყურადღება: OpenCL სისტემა არ იყენებს FPGA-to-HPS (F2H) ხიდს. დამატებითი ინფორმაციისთვის იხილეთ HPS-FPGA ინტერფეისების განყოფილება Cyclone V მოწყობილობის სახელმძღვანელოში, ტომი 3: მყარი პროცესორის სისტემის ტექნიკური საცნობარო სახელმძღვანელო.
    2. დარწმუნდით, რომ კავშირი FPGA-სა და HPS DDR კონტროლერს შორის გამორთულია გადაპროგრამირებისას.
    3. დარწმუნდით, რომ FPGA შეფერხებები FPGA-ზე გამორთულია ხელახალი დაპროგრამების დროს.
    ასევე, აცნობეთ მძღოლს, რომ უარყოს FPGA-დან ნებისმიერი შეფერხება გადაპროგრამირებისას.

ფაქტობრივი განხორციელების შესახებ დეტალებისთვის მიმართეთ პროგრამის წყაროს კოდს.

გაფრთხილება: არ შეცვალოთ HPS DDR კონტროლერის კონფიგურაცია, როდესაც CPU მუშაობს.
ამის გაკეთებამ შეიძლება გამოიწვიოს სისტემის ფატალური შეცდომა, რადგან თქვენ შეიძლება შეცვალოთ DDR კონტროლერის კონფიგურაცია, როდესაც მეხსიერების ტრანზაქციებია CPU-დან. ეს ნიშნავს, რომ როდესაც CPU მუშაობს, არ შეიძლება FPGA ბირთვის გადაპროგრამირება იმ სურათით, რომელიც იყენებს HPS DDR-ს სხვა კონფიგურაციაში.
გახსოვდეთ, რომ OpenCL სისტემა და Golden Hardware საცნობარო დიზაინი, რომელიც ხელმისაწვდომია Intel SoC FPGA Embedded Design Suite (EDS) ერთად, აყენებს HPS DDR-ს ერთ 256-ბიტიან რეჟიმში.
CPU სისტემის ნაწილებმა, როგორიცაა ფილიალის პროგნოზირება ან გვერდის ცხრილის prefetcher, შეიძლება გასცეს DDR ბრძანებები მაშინაც კი, როდესაც ჩანს, რომ არაფერი მუშაობს CPU-ზე.
ამიტომ, ჩატვირთვის დრო არის ერთადერთი უსაფრთხო დრო HPS DDR კონტროლერის კონფიგურაციის დასაყენებლად.
ეს ასევე გულისხმობს, რომ U-boot უნდა ჰქონდეს ნედლეული ორობითი file (.rbf) გამოსახულება მეხსიერებაში ჩასატვირთად. წინააღმდეგ შემთხვევაში, თქვენ შეიძლება ჩართოთ HPS DDR გამოუყენებელი პორტებით FPGA-ზე და შემდეგ პოტენციურად შეცვალოთ პორტის კონფიგურაციები. ამ მიზეზით, OpenCL Linux ბირთვის დრაივერი აღარ შეიცავს ლოგიკას, რომელიც აუცილებელია HPS DDR კონტროლერის კონფიგურაციის დასაყენებლად.
SW3 ორმაგი in-line პაკეტი (DIP) ჩართავს Cylone V SoC განვითარების ნაკრები აკონტროლებს .rbf გამოსახულების მოსალოდნელ ფორმას (ანუ file არის შეკუმშული და/ან დაშიფრული). C5soc და Golden Hardware Reference Design, რომელიც ხელმისაწვდომია SoC EDS-ით, მოიცავს შეკუმშულ, მაგრამ დაშიფრულ .rbf სურათებს. SW3 DIP გადამრთველის პარამეტრები, რომლებიც აღწერილია Intel FPGA SDK-ში OpenCL Cyclone V SoC დაწყების სახელმძღვანელოში, ემთხვევა ამ .rbf გამოსახულების კონფიგურაციას.

დაკავშირებული ბმულები

  • HPS-FPGA ინტერფეისები
  • SW3 კონცენტრატორების კონფიგურაცია

1.4.1 FPGA სისტემის არქიტექტურის დეტალები
Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმის მხარდაჭერა ეფუძნება Stratix® V საცნობარო პლატფორმას (s5_ref), რომელიც ხელმისაწვდომია Intel FPGA SDK-ით OpenCL-ისთვის.
c5soc Qsys სისტემის საერთო ორგანიზაცია და ბირთვის დრაივერი ძალიან ჰგავს s5_ref-ში არსებულს.
შემდეგი FPGA ძირითადი კომპონენტები ერთნაირია როგორც c5soc-ში, ასევე s5_ref-ში:

  • VERSION_ID ბლოკი
  • დასვენების მექანიზმი
  • მეხსიერების ბანკის გამყოფი
  • ქეში snoop ინტერფეისი
  • ბირთვის საათი
  • რეგისტრის წვდომის (CRA) ბლოკების კონტროლი

1.5 SD ფლეშ ბარათის სურათის შექმნა
იმის გამო, რომ Cyclone V SoC FPGA არის სრული სისტემა ჩიპზე, თქვენ ხართ პასუხისმგებელი სისტემის სრული განმარტების მიწოდებაზე. Intel გირჩევთ, რომ მიაწოდოთ იგი SD ფლეშ ბარათის გამოსახულების სახით. Intel FPGA SDK OpenCL-ის მომხმარებლისთვის შეუძლია უბრალოდ ჩაწეროს სურათი მიკრო SD ფლეშ ბარათზე და SoC FPGA დაფა მზად არის გამოსაყენებლად.
არსებული SD ფლეშ ბარათის სურათის შეცვლა 13 გვერდზე
Intel გირჩევთ, უბრალოდ შეცვალოთ გამოსახულება, რომელიც ხელმისაწვდომია Cyclone V SoC Development Kit Reference Platform-ით. თქვენ ასევე გაქვთ შესაძლებლობა შექმნათ ახალი SD ფლეშ ბარათის სურათი.
SD Flash ბარათის სურათის შექმნა მე-14 გვერდზე
თქვენ ასევე გაქვთ შესაძლებლობა შექმნათ ახალი SD ფლეშ ბარათის სურათი.

1.5.1 არსებული SD ფლეშ ბარათის სურათის შეცვლა
Intel გირჩევთ უბრალოდ შეცვალოთ სურათი Cyclone V SoC-ით
განვითარების ნაკრების საცნობარო პლატფორმა. თქვენ ასევე გაქვთ შესაძლებლობა შექმნათ ახალი SD ფლეშ ბარათის სურათი.
c5soc linux_sd_card_image.tgz სურათი file ხელმისაწვდომია ALTERAOCLSDKROOT/board/c5soc დირექტორიაში, სადაც ALTERAOCLSDKROOT მიუთითებს Intel FPGA SDK-ის გზაზე OpenCL-ის საინსტალაციო დირექტორიაში.

ყურადღება: SD ფლეშ ბარათის გამოსახულების შესაცვლელად, თქვენ უნდა გქონდეთ root ან sudo პრივილეგიები.

  1. $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz-ის დეკომპრესიისთვის file, გაუშვით tar xvfzlinux_sd_card_image.tgz ბრძანება.
  2. შეადგინეთ hello_world OpenCL exampშეიმუშავეთ თქვენი პერსონალური პლატფორმის მხარდაჭერის გამოყენებით. დაარქვით სახელი .rbf file რომ Intel FPGA SDK OpenCL Offline Compiler-ისთვის წარმოქმნის როგორც opencl.rbf და განათავსეთ იგი fat32 დანაყოფზე SD ფლეშ ბარათის სურათში.
    შეგიძლიათ ჩამოტვირთოთ hello_world exampდიზაინი OpenCL დიზაინიდან Examples გვერდი Altera-ზე 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 diagnost utility ბრძანება.

1.5.2 SD ფლეშ ბარათის სურათის შექმნა
თქვენ ასევე გაქვთ შესაძლებლობა შექმნათ ახალი SD ფლეშ ბარათის სურათი. ზოგადი ინსტრუქციები ახალი SD ფლეშ ბარათის სურათის შექმნისა და არსებული SD ფლეშ ბარათის სურათის აღდგენის შესახებ ხელმისაწვდომია RocketBoards.org-ის GSRD v14.0.2 – SD ბარათის გვერდზე. webსაიტი.
ქვემოთ მოცემული ნაბიჯები აღწერს linux_sd_card_image.tgz გამოსახულების შექმნის პროცედურას Golden System Reference Design (GSRD) SD ფლეშ ბარათის სურათიდან:
შენიშვნა:
სურათის შესაქმნელად c5soc სურათიდან, შეასრულეთ ამ პროცედურაში ასახული ყველა შესაბამისი დავალება.

  1. ჩამოტვირთეთ და გახსენით GSRD SD ფლეშ ბარათის გამოსახულების ვერსია 14.0 Rocketboards.org-დან.
  2. დაამატე file განაწილების ცხრილი (fat32) და გაფართოებული file სისტემის (ext3) დანაყოფები ამ სურათზე, როგორც loop-back მოწყობილობები. დანაყოფის დასამონტაჟებლად, შეასრულეთ შემდეგი ნაბიჯები:
    ა. განსაზღვრეთ დანაყოფის საწყისი ბაიტი სურათში, გამოძახებით /sbin/fdisk -lu image_file ბრძანება.
    მაგample, W1 FAT ტიპის განყოფილების ნომერი 95 აქვს ბლოკის ოფსეტი 2121728. 512 ბაიტი ბლოკში, ბაიტის ოფსეტი არის 512 ბაიტი x 2121728 = 1086324736 ბაიტი.
    ბ. თავისუფალი მარყუჟის მოწყობილობის იდენტიფიცირება (მაგample, /dev/loop0) ბრძანების losttup -f აკრეფით.
    გ. თუ ვივარაუდებთ, რომ /dev/loop0 არის უფასო მარყუჟის მოწყობილობა, მიანიჭეთ თქვენი ფლეშ ბარათის სურათი მარყუჟის ბლოკის მოწყობილობას losetup /dev/loop0 image_-ის გამოძახებით.file -0 1086324736 ბრძანება.
    დ. დაამონტაჟეთ მარყუჟის მოწყობილობა mount /dev/loop0 /media/disk1 ბრძანების გამოძახებით.
    გამოსახულების ფარგლებში file, /media/disk1 ახლა არის დამონტაჟებული fat32 დანაყოფი.
    ე. გაიმეორეთ ნაბიჯები a-დან d-მდე ext3 დანაყოფისთვის.
  3. ჩამოტვირთეთ Cyclone V SoC FPGA ვერსია Intel FPGA Runtime Environment OpenCL პაკეტისთვის Altera-ს ჩამოტვირთვის ცენტრიდან webსაიტი.
    ა. დააწკაპუნეთ ღილაკს ჩამოტვირთვა Quartus Prime პროგრამული გამოცემის გვერდით.
    ბ. მიუთითეთ გამოშვების ვერსია, ოპერაციული სისტემა და ჩამოტვირთვის მეთოდი.
    გ. დააწკაპუნეთ ჩანართზე დამატებითი პროგრამული უზრუნველყოფა და აირჩიეთ Intel FPGA-ს ჩამოტვირთვა
    Runtime Environment OpenCL Linux Cyclone V SoC TGZ-ისთვის.
    დ. aocl-rte-ის ჩამოტვირთვის შემდეგ .arm32.tgz file, ამოალაგეთ
    დირექტორია, რომელიც თქვენ ფლობთ.
  4. მოათავსეთ შეუფუთავი aocl-rte- .arm32 დირექტორიაში /home/root/opencl_arm32_rte დირექტორიაში სურათის ext3 დანაყოფზე 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/ბინ:$PATH ექსპორტი LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/მასპინძელი/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    SDK მომხმარებელი აწარმოებს წყაროს ./init_opencl.sh ბრძანებას გარემოს ცვლადების და OpenCL Linux ბირთვის დრაივერის ჩასატვირთად.
  7. თუ გჭირდებათ წინასწარ ჩამტვირთველის განახლება, DTS files, ან Linux-ის ბირთვი, გჭირდებათ arm-linux-gnueabihf-gcc შემდგენელი SoC EDS-დან. მიჰყევით ინსტრუქციებს, რომლებიც მოცემულია Intel SoC FPGA Embedded Design Suite-ის მომხმარებლის სახელმძღვანელოში, რათა შეიძინოთ პროგრამული უზრუნველყოფა, გადააკეთოთ ისინი და განაახლოთ შესაბამისი files დამონტაჟებულ fat32 დანაყოფზე.
    ყურადღება: დიდი ალბათობით, დაგჭირდებათ წინასწარ ჩამტვირთველის განახლება, თუ თქვენს მორგებულ პლატფორმას აქვს სხვადასხვა პინი გამოყენება, ვიდრე c5soc-ში.
    დაიმახსოვრეთ: თუ თქვენ ხელახლა აწყობთ Linux-ის ბირთვს, ხელახლა შეადგინეთ Linux-ის ბირთვის დრაივერი იმავე Linux-ის ბირთვის წყაროთი. fileს. თუ Linux-ის ბირთვის დრაივერსა და Linux-ის ბირთვს შორის შეუსაბამობაა, დრაივერი არ იტვირთება. ასევე, თქვენ უნდა ჩართოთ CMA.
    დამატებითი ინფორმაციისთვის იხილეთ Linux Kernel-ის ხელახალი შედგენა.
  8. შეადგინეთ hello_world OpenCL exampშეიმუშავეთ თქვენი პერსონალური პლატფორმის მხარდაჭერის გამოყენებით. დაარქვით სახელი .rbf file რომ Intel FPGA SDK OpenCL Offline Compiler-ისთვის წარმოქმნის როგორც opencl.rbf და განათავსეთ იგი fat32 დანაყოფზე SD ფლეშ ბარათის სურათში.
    შეგიძლიათ ჩამოტვირთოთ hello_world exampდიზაინი OpenCL დიზაინიდან Examples გვერდი Altera-ზე webსაიტი.
    9. მას შემდეგ რაც შეინახავთ ყველა საჭიროს fileფლეშ ბარათის სურათზე, გამოიძახეთ შემდეგი ბრძანებები:
    ა. სინქრონიზაცია
    ბ. მოხსნა / მედია/დისკი1
    გ. მოხსნა სადაც არის დირექტორია სახელი, რომელსაც იყენებთ ext3 დანაყოფის 3-ში დასაყენებლად მე-3 გვერდზე (მაგample, /media/disk2).
    დ. losetup -d /dev/loop0
    ე. losetup -d /dev/loop1
  9. შეკუმშოს SD ფლეშ ბარათის სურათი შემდეგი ბრძანების გამოძახებით: tar cvfz .tgz linux_sd_card_image
  10. მიწოდება .თგზ file თქვენი მორგებული პლატფორმის root დირექტორიაში.
  11. თქვენი SD ფლეშ ბარათის სურათის შესამოწმებლად, შეასრულეთ შემდეგი დავალებები:
    ა. ჩაწერეთ მიღებული არაკომპრესირებული სურათი მიკრო SD ფლეშ ბარათზე.
    ბ. ჩადეთ მიკრო SD ფლეშ ბარათი SoC FPGA დაფაზე.
    გ. ჩართეთ დაფა.
    დ. გამოიძახეთ aocl diagnost utility ბრძანება.

დაკავშირებული ბმულები

  • Intel SoC FPGA Embedded Design Suite მომხმარებლის სახელმძღვანელო
  • OpenCL დიზაინი მაგamples გვერდი Altera-ზე webსაიტი
  • Linux-ის ბირთვის ხელახალი კომპილაცია მე-16 გვერდზე
    CMA-ის ჩასართავად, ჯერ უნდა გადააკეთოთ Linux-ის ბირთვი.
  • თქვენი FPGA დაფის მოწყობილობის სახელის მოთხოვნა (დიაგნოსტიკა)

1.6 Linux ბირთვის შედგენა Cyclone V SoC FPGA-სთვის
სანამ OpenCL აპლიკაციებს Cyclone V SoC FPGA დაფაზე გაუშვით, უნდა შეადგინოთ Linux-ის ბირთვის წყარო და შეადგინოთ და დააინსტალიროთ OpenCL Linux-ის ბირთვის დრაივერი.

  1. Linux-ის ბირთვის ხელახალი კომპილაცია მე-16 გვერდზე
    CMA-ის ჩასართავად, ჯერ უნდა გადააკეთოთ Linux-ის ბირთვი.
  2. OpenCL Linux ბირთვის დრაივერის შედგენა და ინსტალაცია გვერდზე 17. შეადგინეთ OpenCL Linux ბირთვის დრაივერი შედგენილი ბირთვის წყაროსთან.

1.6.1 Linux Kernel-ის ხელახალი კომპილაცია
CMA-ის ჩასართავად, ჯერ უნდა გადააკეთოთ Linux-ის ბირთვი.

  1. დააწკაპუნეთ GSRD v14.0 – Linux-ის შედგენა ბმულზე RocketBoards.org-ის რესურსების გვერდზე webსაიტი, რომ მიიღოთ ინსტრუქციები Linux-ის ბირთვის საწყისი კოდის ჩამოტვირთვისა და აღდგენის შესახებ.
    ™ Intel FPGA SDK-თან OpenCL-ისთვის გამოსაყენებლად, მიუთითეთ socfpga-3.13-rel14.0 როგორც .
  2. შენიშვნა: მშენებლობის პროცესი ქმნის arch/arm/configs/socfpga_defconfig file. ეს file განსაზღვრავს socfpga ნაგულისხმევი კონფიგურაციის პარამეტრებს.
    დაამატეთ შემდეგი ხაზები თაღის ბოლოში/arm/configs/socfpga_defconfig file.
    CONFIG_MEMORY_ISOLATION=y
    CONFIG_CMA=y
    CONFIG_DMA_CMA=y
    CONFIG_CMA_DEBUG=y
    CONFIG_CMA_SIZE_MBYTES=512
    CONFIG_CMA_SIZE_SEL_MBYTES=y
    CONFIG_CMA_ALIGNMENT=8
    CONFIG_CMA_AREAS=7
    CONFIG_CMA_SIZE_MBYTES კონფიგურაციის მნიშვნელობა ადგენს ფიზიკურად მომიჯნავე მეხსიერების საერთო რაოდენობის ზედა ზღვარს. თქვენ შეგიძლიათ გაზარდოთ ეს მნიშვნელობა, თუ მეტი მეხსიერება გჭირდებათ.
  3. ყურადღება: SoC FPGA დაფაზე ARM ​​პროცესორისთვის ხელმისაწვდომი ფიზიკური მეხსიერების საერთო რაოდენობა არის 1 GB. 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 დანაყოფში. დეტალური ინსტრუქციებისთვის იხილეთ Cyclone V SoC FPGA-სპეციფიკური GSRD მომხმარებლის სახელმძღვანელო Rocketboards.org-ზე.
  9. შენიშვნა: OpenCL Linux-ის ბირთვის დრაივერის სწორად ჩასართავად, ჯერ ჩატვირთეთ SDKgenerated.rbf file FPGA-ზე.
    .rbf-ის შესაქმნელად file, შეადგინეთ SDK დიზაინი example Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმა, როგორც მიზნობრივი მორგებული პლატფორმა.
    9. მოათავსეთ .rbf file ფლეშ ბარათის გამოსახულების fat32 დანაყოფში.
    ყურადღება: fat32 დანაყოფი უნდა შეიცავდეს ორივე zImage-ს file და .rbf file. .rbf-ის გარეშე fileდრაივერის ჩასმისას ფატალური შეცდომა დადგება.
  10. ჩადეთ დაპროგრამებული micro SD ბარათი, რომელიც შეიცავს თქვენს მიერ ადრე შეცვლილი ან შექმნილი SD ბარათის სურათს, Cyclone V SoC განვითარების კომპლექტში და შემდეგ ჩართეთ SoC FPGA დაფა.
  11. გადაამოწმეთ დაინსტალირებული Linux ბირთვის ვერსია uname -r ბრძანების გაშვებით.
  12. იმისათვის, რომ დაადასტუროთ, რომ CMA-ს წარმატებით ჩართავთ ბირთვში, SoC FPGA დაფის ჩართულით, გაუშვით grep init_cma /proc/kallsyms ბრძანება.
    CMA ჩართულია, თუ გამომავალი არ არის ცარიელი.
  13. ხელახლა კომპილირებული Linux-ის ბირთვის SDK-თან გამოსაყენებლად, შეადგინეთ და დააინსტალირეთ Linux-ის ბირთვის დრაივერი.

დაკავშირებული ბმულები

  • Golden System Reference Design (GSRD) მომხმარებლის სახელმძღვანელო
  • SD Flash ბარათის სურათის შექმნა მე-13 გვერდზე
    იმის გამო, რომ Cyclone V SoC FPGA არის სრული სისტემა ჩიპზე, თქვენ ხართ პასუხისმგებელი სისტემის სრული განმარტების მიწოდებაზე.

1.6.2 OpenCL Linux Kernel Driver-ის შედგენა და ინსტალაცია
შეადგინეთ OpenCL Linux ბირთვის დრაივერი შედგენილი ბირთვის წყაროს წინააღმდეგ.

დრაივერის წყარო ხელმისაწვდომია Cyclone V SoC FPGA ვერსიაში Intel FPGA Runtime Environment-ისთვის OpenCL-ისთვის. გარდა ამისა, დარწმუნდით, რომ ჩატვირთეთ Intel FPGA SDK OpenCL-ის გენერირებული .rbf-ისთვის file შევიდა FPGA, რათა თავიდან აიცილოთ Linux ბირთვის მოდულის არასწორი ინსტალაცია.

  1. ჩამოტვირთეთ Cyclone V SoC FPGA ვერსია Intel FPGA Runtime Environment OpenCL პაკეტისთვის Altera-ს ჩამოტვირთვის ცენტრიდან webსაიტი.
    ა. დააწკაპუნეთ ღილაკს ჩამოტვირთვა Quartus Prime პროგრამული გამოცემის გვერდით.
    ბ. მიუთითეთ გამოშვების ვერსია, ოპერაციული სისტემა და ჩამოტვირთვის მეთოდი.
    გ. დააწკაპუნეთ ჩანართზე დამატებითი პროგრამული უზრუნველყოფა და აირჩიეთ Intel FPGA-ს ჩამოტვირთვა
    Runtime Environment OpenCL Linux Cyclone V SoC TGZ-ისთვის.
    დ. aocl-rte-ის ჩამოტვირთვის შემდეგ .arm32.tgz file, ამოალაგეთ
    დირექტორია, რომელიც თქვენ ფლობთ.
    დრაივერის წყარო არის aocl-rte-ში .arm32/board/c5soc/ დრაივერის დირექტორია.
  2. OpenCL Linux-ის ბირთვის დრაივერის ხელახლა კომპილაციისთვის დააყენეთ KDIR მნიშვნელობა დრაივერის Make-შიfile დირექტორიაში, რომელიც შეიცავს Linux ბირთვის წყაროს files.
  3. გაუშვით ექსპორტის CROSS_COMPILE=arm-linux-gnueabihf- ბრძანება, რათა მიუთითოთ თქვენი ხელსაწყოების ჯაჭვის პრეფიქსი.
  4. გაუშვით ბრძანება make clean.
  5. გაუშვით make ბრძანება aclsoc_drv.ko-ს შესაქმნელად file.
  6. გადაიტანეთ opencl_arm32_rte დირექტორია Cyclone V SoC FPGA დაფაზე.
    scp -r-ის გაშვება root@your-ipaddress: ბრძანება ათავსებს გაშვების გარემოს/home/root დირექტორიაში.
  7. გაუშვით init_opencl.sh სკრიპტი, რომელიც შექმენით SD კარტიმის შექმნისას.
  8.  გამოიძახეთ aocl diagnost utility ბრძანება. დიაგნოსტიკის პროგრამა დააბრუნებს მიღებულ შედეგს init_opencl.sh-ის წარმატებით გაშვების შემდეგ.

1.7 ცნობილი საკითხი
ამჟამად, არსებობს გარკვეული შეზღუდვები Intel FPGA SDK-ის გამოყენებაზე OpenCL-ისთვის Cyclone V SoC განვითარების ნაკრების საცნობარო პლატფორმაზე.

  1. თქვენ არ შეგიძლიათ უგულებელყოთ clGetDeviceInfo() ზარის CL_DEVICE_VENDOR და CL_DEVICE_NAME სტრიქონების მიერ მოხსენებული გამყიდველისა და დაფის სახელები.
  2. თუ ჰოსტი გამოყოფს მუდმივ მეხსიერებას საერთო DDR სისტემაში (ანუ HPS DDR) და ის ცვლის მუდმივ მეხსიერებას ბირთვის შესრულების შემდეგ, მეხსიერებაში არსებული მონაცემები შეიძლება მოძველდეს. ეს საკითხი ჩნდება იმის გამო, რომ FPGA ბირთვს არ შეუძლია CPU-დან HPS DDR ტრანზაქციების თვალთვალი.
    ბირთვის შემდგომი შესრულების თავიდან ასაცილებლად მოძველებულ მონაცემებზე წვდომა, განახორციელეთ ერთ-ერთი შემდეგი გამოსავალი:
    • არ შეცვალოთ მუდმივი მეხსიერება მისი ინიციალიზაციის შემდეგ.
    • თუ თქვენ გჭირდებათ მრავალი __მუდმივი მონაცემთა ნაკრები, შექმენით მრავალი მუდმივი მეხსიერების ბუფერი.
    • თუ ეს შესაძლებელია, გამოყავით მუდმივი მეხსიერება FPGA DDR-ში თქვენი ამაჩქარებლის დაფაზე.
  3. SDK პროგრამა ARM-ზე მხარს უჭერს მხოლოდ პროგრამის და დიაგნოსტიკის ბრძანებებს.
    ფლეშ, ინსტალაციისა და დეინსტალაციის კომუნალური ბრძანებები არ გამოიყენება Cyclone V SoC განვითარების ნაკრებისთვის შემდეგი მიზეზების გამო:
    ა. ინსტალაციის პროგრამამ უნდა შეადგინოს aclsoc_drv Linux ბირთვის დრაივერი და ჩართოს ის SoC FPGA-ზე. დეველოპერულმა მანქანამ უნდა შეასრულოს კომპილაცია; თუმცა, ის უკვე შეიცავს Linux-ის ბირთვის წყაროებს SoC FPGA-სთვის. Linux-ის ბირთვის წყაროები განვითარების აპარატისთვის განსხვავდება SoC FPGA-ის წყაროებისგან. Linux-ის ბირთვის წყაროების მდებარეობა SoC FPGA-სთვის სავარაუდოდ უცნობია SDK მომხმარებლისთვის. ანალოგიურად, დეინსტალაციის პროგრამა ასევე მიუწვდომელია Cyclone V SoC განვითარების ნაკრებისთვის.
    ასევე, aclsoc_drv SoC დაფაზე მიწოდება რთულია, რადგან Cyclone V SoC განვითარების ნაკრების ნაგულისხმევი განაწილება არ შეიცავს Linux ბირთვს files ან GNU Compiler Collection (GCC) შემდგენელი.
    ბ. ფლეშ პროგრამა მოითხოვს .rbf-ის განთავსებას file OpenCL დიზაინის მიკრო SD ფლეშ ბარათის FAT32 დანაყოფზე. ამჟამად, ეს დანაყოფი არ არის დამონტაჟებული, როდესაც SDK მომხმარებელი ჩართავს დაფას. ამიტომ, დანაყოფის განახლების საუკეთესო გზაა ფლეშ ბარათის წამკითხველისა და განვითარების აპარატის გამოყენება.
  4. Intel FPGA SDK-ს შორის გადართვის OpenCL Offline Compiler-ისთვის შესრულებადი files (.aocx), რომლებიც შეესაბამება დაფის სხვადასხვა ვარიანტს (ანუ c5soc და c5soc_sharedonly), თქვენ უნდა გამოიყენოთ SDK-ის პროგრამის უტილიტა .aocx-ის ჩასატვირთად. file დაფის ახალი ვარიანტისთვის პირველად. თუ თქვენ უბრალოდ გაშვებთ მასპინძელ აპლიკაციას დაფის ახალი ვარიანტის გამოყენებით, მაგრამ FPGA შეიცავს სურათს დაფის სხვა ვარიანტიდან, შეიძლება მოხდეს ფატალური შეცდომა.
  5. .qxp file არ შეიცავს ინტერფეისის დანაყოფების დავალებებს, რადგან Quartus Prime პროგრამული უზრუნველყოფა მუდმივად აკმაყოფილებს ამ დანაყოფის დროის მოთხოვნებს.
  6. დაფის ჩართვისას, მისი მედია წვდომის კონტროლის (MAC) მისამართი დაყენებულია შემთხვევით რიცხვზე. თუ თქვენი LAN პოლიტიკა არ იძლევა ამ ქცევას, დააყენეთ MAC მისამართი შემდეგი ამოცანების შესრულებით:
    ა. U-Boot ჩართვისას დააჭირეთ ნებისმიერ ღილაკს U-Boot ბრძანების სტრიქონში შესასვლელად.
    ბ. ჩაწერეთ setenv ethaddr 00:07:ed:00:00:03 ბრძანების სტრიქონში.
    თქვენ შეგიძლიათ აირჩიოთ ნებისმიერი MAC მისამართი.
    გ. ჩაწერეთ saveenv ბრძანება.
    დ. გადატვირთეთ დაფა.

1.8 დოკუმენტის გადასინჯვის ისტორია
ცხრილი 1.
Intel FPGA SDK-ის დოკუმენტის გადასინჯვის ისტორია OpenCL Cyclone V SoC-ისთვის
განვითარების ნაკრები საცნობარო პლატფორმის პორტირების გზამკვლევი

თარიღი ვერსია ცვლილებები
მაისი-17 2017.05.08 • სარემონტო გამოშვება.
2016 წლის ოქტომბერი 2016.10.31 •რებრენდირებული Altera SDK OpenCL-ისთვის Intel FPGA SDK OpenCL-ისთვის.
• Rebranded Altera Offline Compiler to Intel FPGA SDK OpenCL Offline Compiler-ისთვის.
მაისი-16 2016.05.02 •შეცვლილი ინსტრუქციები SD ფლეშ ბარათის გამოსახულების აგებისა და მოდიფიკაციის შესახებ.
• შეცვლილი ინსტრუქციები Linux-ის ბირთვისა და OpenCL Linux-ის ბირთვის დრაივერის ხელახალი კომპილაციის შესახებ.
15 ნოემბერი 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 Reference Platform Porting Guide.
• განახლებულია reprogram უტილიტა aocl პროგრამაშიfilename>.aocx utility ბრძანება.
•განახლებულია სადიაგნოსტიკო პროგრამა aocl diagnose-ზე და aocl-ის დიაგნოზზე კომუნალური ბრძანება.
• განახლებულია პროცედურა განყოფილებაში საცნობარო პლატფორმის პორტირება თქვენს SoC Board-ში, რათა შეიცავდეს ინსტრუქციებს c5soc დაფის დანაყოფის პორტირებისა და მოდიფიცირების შესახებ, რათა შეიქმნას დროულად სუფთა დანაყოფი გარანტირებული დროის დახურვის ნაკადისთვის.
• ჩასმულია თემა პორტირებული საცნობარო პლატფორმის განახლება, შემდეგი ამოცანების პროცედურების გამოსახატავად:
1. დაფის დანაყოფში მყარი პროცესორის სისტემის (HPS) ბლოკის გამოკლებით
2.SD ფლეშ ბარათის სურათის განახლება
•განახლებულია SD Flash ბარათის გამოსახულების განყოფილება. რეკომენდებულია Golden System Reference Design (GSRD) გამოსახულების 14.0 ვერსიის გამოყენებით ამოსავალ წერტილად გამოსახულების ნაცვლად, რომელიც ხელმისაწვდომია SoC Embedded Design Suite-ით (EDS).
• განახლებულია Linux Kernel-ისა და OpenCL Linux Kernel Driver-ის ხელახალი კომპილაციის სექცია:
1.დამატებულია ინსტრუქცია CROSS COMPILE ცვლადის დასაყენებლად.
2.შეცვალეთ ბრძანება, რომელსაც თქვენ აწარმოებთ, რათა დაადასტუროთ, რომ CMA წარმატებით ჩართულია.
ივლისი-14 14.0.0 • პირველადი გამოშვება.

დოკუმენტები / რესურსები

Intel FPGA SDK OpenCL-ისთვის [pdf] მომხმარებლის სახელმძღვანელო
FPGA SDK OpenCL-ისთვის, FPGA SDK, SDK OpenCL-ისთვის, SDK

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *