इंटेल - लोगोओपनसीएल के लिए एफपीजीए एसडीके
उपयोगकर्ता गाइड

यूजी-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite के लिए अंतिम अपडेट: 17.0

RENPHO RF FM059HS वाईफाई स्मार्ट फुट मसाज - आइकन 5सदस्यता लें
सैमसंग एसएम A136UZKZAIO गैलेक्सी A13 5G स्मार्टफोन - आइकन 12प्रतिक्रिया भेजें

OpenCL™ Intel® Cyclone®V SoC डेवलपमेंट किट के लिए Intel® FPGA SDK संदर्भ प्लेटफ़ॉर्म पोर्टिंग गाइड

वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म पोर्टिंग गाइड, ओपनसीएल के लिए इंटेल सॉफ्टवेयर डेवलपमेंट किट (एसडीके) के साथ उपयोग के लिए इंटेल साइक्लोन वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म (c5soc) के हार्डवेयर और सॉफ्टवेयर डिजाइन का वर्णन करता है। ओपनसीएल ™ इंटेल साइक्लोन के लिए इंटेल® एफपीजीए एसडीके ®। आरंभ करने से पहले, Intel दृढ़ता से अनुशंसा करता है कि आप स्वयं को निम्नलिखित दस्तावेज़ों की सामग्री से परिचित करा लें:

  1. OpenCLIntel Cyclone V SoC के लिए Intel FPGA SDK स्टार्टिंग गाइड
  2. ओपनसीएल कस्टम प्लेटफॉर्म टूलकिट यूजर गाइड के लिए इंटेल एफपीजीए एसडीके
  3. साइक्लोन V डिवाइस हैंडबुक, वॉल्यूम 3: हार्ड प्रोसेसर सिस्टम तकनीकी संदर्भ मैनुअल इसके अलावा, Altera का साइक्लोन V SoC डेवलपमेंट किट और SoC एंबेडेड डिज़ाइन सूट पेज देखें webअधिक जानकारी के लिए साइट। 1 2

ध्यान: Intel मानता है कि आपको OpenCL कस्टम प्लेटफ़ॉर्म टूलकिट उपयोगकर्ता मार्गदर्शिका के लिए Intel FPGA SDK की गहन समझ है। साइक्लोन वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म पोर्टिंग गाइड साइक्लोन वी एसओसी डेवलपमेंट किट के लिए कस्टम प्लेटफॉर्म को लागू करने के लिए एसडीके के कस्टम प्लेटफॉर्म टूलकिट के उपयोग का वर्णन नहीं करता है। यह केवल चक्रवात वी एसओसी विकास किट पर एसडीके समर्थन और ओपनसीएल कस्टम प्लेटफॉर्म के लिए एक सामान्य इंटेल एफपीजीए एसडीके के बीच अंतर का वर्णन करता है।

संबंधित लिंक

  • ओपनसीएल साइक्लोन वी एसओसी के लिए इंटेल एफपीजीए एसडीके स्टार्टिंग गाइड
  • ओपनसीएल कस्टम प्लेटफॉर्म टूलकिट यूजर गाइड के लिए इंटेल एफपीजीए एसडीके
  • साइक्लोन वी डिवाइस हैंडबुक, वॉल्यूम 3: हार्ड प्रोसेसर सिस्टम तकनीकी संदर्भ मैनुअल
  • Altera पर Cyclone V SoC Development Kit और SoC Embedded Design Suite पेज webसाइट
  1. OpenCL और OpenCL लोगो Apple Inc. के ट्रेडमार्क हैं जिनका उपयोग Khronos Group™ की अनुमति से किया जाता है।
  2. OpenCL के लिए Intel FPGA SDK एक प्रकाशित ख्रोनोस विशिष्टता पर आधारित है, और ख्रोनोस अनुरूपता परीक्षण प्रक्रिया को पास कर चुका है। वर्तमान अनुरूपता स्थिति पर देखी जा सकती है www.khronos.org/conformance.

इंटेल कॉर्पोरेशन। सर्वाधिकार सुरक्षित। Intel, Intel लोगो, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus और Stratix शब्द और लोगो Intel Corporation या अमेरिका और/या अन्य देशों में इसकी सहायक कंपनियों के ट्रेडमार्क हैं। Intel अपने FPGA और सेमीकंडक्टर उत्पादों के प्रदर्शन को Intel की मानक वारंटी के अनुसार वर्तमान विनिर्देशों के अनुसार वारंट करता है, लेकिन बिना सूचना के किसी भी समय किसी भी उत्पाद और सेवाओं में परिवर्तन करने का अधिकार सुरक्षित रखता है। इंटेल द्वारा लिखित रूप में स्पष्ट रूप से सहमति के अलावा, यहां वर्णित किसी भी जानकारी, उत्पाद या सेवा के आवेदन या उपयोग से उत्पन्न होने वाली कोई जिम्मेदारी या उत्तरदायित्व नहीं लेता है। इंटेल ग्राहकों को सलाह दी जाती है कि वे किसी भी प्रकाशित जानकारी पर भरोसा करने से पहले और उत्पादों या सेवाओं के लिए ऑर्डर देने से पहले डिवाइस विनिर्देशों का नवीनतम संस्करण प्राप्त करें।
*अन्य नामों और ब्रांडों पर दूसरों की संपत्ति होने का दावा किया जा सकता है।

1.1.1 साइक्लोन V SoC डेवलपमेंट किट रेफरेंस प्लेटफॉर्म बोर्ड वेरिएंट
ओपनसीएल साइक्लोन वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म के लिए इंटेल एफपीजीए एसडीके में दो बोर्ड संस्करण शामिल हैं।

  • c5soc बोर्ड
    यह डिफ़ॉल्ट बोर्ड दो डीडीआर मेमोरी बैंकों तक पहुंच प्रदान करता है। HPS DDR को FPGA और CPU दोनों द्वारा एक्सेस किया जा सकता है। FPGA DDR को केवल FPGA द्वारा ही एक्सेस किया जा सकता है।
  • c5soc_sharedonly बोर्ड
    इस बोर्ड वैरिएंट में केवल HPS DDR कनेक्टिविटी है। एफपीजीए डीडीआर पहुंच योग्य नहीं है। यह बोर्ड वैरिएंट अधिक क्षेत्र कुशल है क्योंकि एक DDR मेमोरी बैंक को सपोर्ट करने के लिए कम हार्डवेयर की आवश्यकता होती है। C5soc_sharedonly बोर्ड एकल DDR मेमोरी बैंक के साथ अंतिम उत्पादन बोर्ड के लिए एक अच्छा प्रोटोटाइप प्लेटफॉर्म भी है।
    अपने OpenCL कर्नेल को संकलित करते समय इस बोर्ड संस्करण को लक्षित करने के लिए, अपने aoc कमांड में -board c5soc_sharedonly विकल्प शामिल करें।
    -बोर्ड पर अधिक जानकारी के लिए aoc कमांड का विकल्प, OpenCL प्रोग्रामिंग गाइड के लिए Intel FPGA SDK देखें।

संबंधित लिंक
एक विशिष्ट FPGA बोर्ड के लिए कर्नेल का संकलन (–board )
1.1.2 साइक्लोन V SoC डेवलपमेंट किट रेफरेंस प्लेटफॉर्म की सामग्री
साइक्लोन V SoC डेवलपमेंट किट रेफरेंस प्लेटफॉर्म में निम्नलिखित शामिल हैं fileएस और निर्देशिका:

File या निर्देशिका विवरण
बोर्ड_env.xml एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) file जो OpenCL के लिए Intel FPGA SDK के लिए c5soc का वर्णन करता है।
linux_sd_card_image.tgz संकुचित एसडी फ्लैश कार्ड छवि file जिसमें एसडीके उपयोगकर्ता को एसडीके के साथ साइक्लोन वी एसओसी डेवलपमेंट किट का उपयोग करने के लिए आवश्यक सब कुछ शामिल है।
आर्म32 निर्देशिका जिसमें निम्न शामिल हैं:

1.1.3 साइक्लोन V SoC डेवलपमेंट किट की प्रासंगिक विशेषताएं

निम्नलिखित सूची में साइक्लोन वी एसओसी डेवलपमेंट किट घटकों और विशेषताओं पर प्रकाश डाला गया है जो ओपनसीएल के लिए इंटेल एफपीजीए एसडीके के लिए प्रासंगिक हैं:

  • ड्युअल-कोर ARM Cortex-A9 CPU 32-बिट Linux चला रहा है।
  • HPS और FPGA कोर फैब्रिक के बीच एडवांस्ड एक्स्टेंसिबल इंटरफेस (AXI) बस।
  • दो कठोर DDR स्मृति नियंत्रक, प्रत्येक एक 1 गीगाबाइट (GB) DDR3 SDRAM से कनेक्ट हो रहा है।
    - एक DDR नियंत्रक केवल FPGA कोर (अर्थात, FPGA DDR) तक ही पहुँचा जा सकता है।
    - अन्य DDR नियंत्रक HPS और FPGA (अर्थात, HPS DDR) दोनों के लिए सुलभ है। यह साझा नियंत्रक सीपीयू और एफपीजीए कोर के बीच मुफ्त मेमोरी शेयरिंग की अनुमति देता है।
  • CPU FPGA कोर फैब्रिक को फिर से कॉन्फ़िगर कर सकता है।

1.1.3.1 साइक्लोन V SoC डेवलपमेंट किट संदर्भ प्लेटफ़ॉर्म डिज़ाइन लक्ष्य और निर्णय Intel कई डिज़ाइन लक्ष्यों और निर्णयों पर साइक्लोन V SoC डेवलपमेंट किट संदर्भ प्लेटफ़ॉर्म के कार्यान्वयन को आधार बनाता है। Intel अनुशंसा करता है कि जब आप इस संदर्भ प्लेटफ़ॉर्म को अपने SoC FPGA बोर्ड में पोर्ट करते हैं तो आप इन लक्ष्यों और निर्णयों पर विचार करें।
नीचे c5soc डिज़ाइन लक्ष्य दिए गए हैं:

  1. एफपीजीए और डीडीआर मेमोरी सिस्टम (एस) पर कर्नेल के बीच उच्चतम संभव बैंडविड्थ प्रदान करें।
  2. सुनिश्चित करें कि एफपीजीए (यानी, ओपनसीएल कर्नेल) पर गणना अन्य सीपीयू कार्यों में हस्तक्षेप नहीं करती है जिसमें सर्विसिंग परिधीय शामिल हो सकते हैं।
  3. इंटरफ़ेस घटकों के बजाय कर्नेल संगणना के लिए जितना संभव हो उतना FPGA संसाधन छोड़ दें।

नीचे उच्च-स्तरीय डिज़ाइन निर्णय हैं जो इंटेल के डिज़ाइन लक्ष्यों के प्रत्यक्ष परिणाम हैं:

  1. संदर्भ प्लेटफ़ॉर्म केवल व्यापक संभव कॉन्फ़िगरेशन (256 बिट्स) के साथ हार्ड डीडीआर मेमोरी नियंत्रकों का उपयोग करता है।
  2. FPGA, AXI बस और HPS के अंदर L3 स्विच को शामिल किए बिना सीधे HPS DDR मेमोरी कंट्रोलर के साथ संचार करता है। प्रत्यक्ष संचार DDR को सर्वोत्तम संभव बैंडविड्थ प्रदान करता है, और FPGA संगणनाओं को CPU और इसकी परिधि के बीच संचार में हस्तक्षेप करने से रोकता है।
  3. स्कैटर-इकट्ठा डायरेक्ट मेमोरी एक्सेस (SG-DMA) FPGA इंटरफ़ेस लॉजिक का हिस्सा नहीं है। डीडीआर मेमोरी सिस्टम के बीच बड़ी मात्रा में डेटा स्थानांतरित करने के बजाय, साझा एचपीएस डीडीआर में डेटा स्टोर करें। डीएमए की तुलना में एफपीजीए द्वारा सीपीयू मेमोरी तक सीधी पहुंच अधिक कुशल है। यह हार्डवेयर संसाधनों (अर्थात, FPGA क्षेत्र) को बचाता है और लिनक्स कर्नेल ड्राइवर को सरल करता है।
    चेतावनी: साझा HPS DDR सिस्टम और DDR सिस्टम के बीच मेमोरी ट्रांसफर जो केवल FPGA के लिए सुलभ है, बहुत धीमा है। यदि आप चुनते हैं
    मेमोरी को इस तरीके से स्थानांतरित करें, इसे केवल बहुत कम मात्रा में डेटा के लिए उपयोग करें।
  4. होस्ट और डिवाइस केवल एक 2-बिट पोर्ट का उपयोग करके HPS-to-FPGA (H32F) ब्रिज के माध्यम से एक दूसरे के बीच गैर-DMA डेटा ट्रांसफर करते हैं। कारण यह है कि डीएमए के बिना, लिनक्स कर्नेल केवल एक 32-बिट पढ़ने या लिखने का अनुरोध जारी कर सकता है, इसलिए व्यापक कनेक्शन होना अनावश्यक है।
  5. होस्ट एक हल्के H2F (LH2F) ब्रिज के माध्यम से डिवाइस को कंट्रोल सिग्नल भेजता है।
    चूंकि होस्ट से डिवाइस तक नियंत्रण सिग्नल कम-बैंडविड्थ सिग्नल होते हैं, एक LH2F ब्रिज इस कार्य के लिए आदर्श है।

1.2 संदर्भ प्लेटफॉर्म को आपके SoC FPGA बोर्ड में पोर्ट करना
Cyclone V SoC Development Kit Reference Platform को अपने SoC FPGA बोर्ड में पोर्ट करने के लिए, निम्नलिखित कार्य करें:

  1. अपने डिज़ाइन के शुरुआती बिंदु के रूप में c5soc संदर्भ प्लेटफ़ॉर्म के एक DDR मेमोरी या दो 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. ओपनसीएल पसंदीदा बोर्ड डिजाइनों के लिए सभी इंटेल एफपीजीए एसडीके को गारंटीशुदा टाइमिंग क्लोजर हासिल करना चाहिए। इस प्रकार, डिज़ाइन का प्लेसमेंट समय साफ होना चाहिए। c5soc बोर्ड पार्टीशन (acl_iface_partition.qxp) को अपने SoC FPGA बोर्ड में पोर्ट करने के लिए, निम्नलिखित कार्य करें:
    बोर्ड विभाजन को संशोधित करने और संरक्षित करने के विस्तृत निर्देशों के लिए, क्वार्टस देखें
    क्वार्टस प्राइम स्टैंडर्ड एडिशन हैंडबुक के पदानुक्रमित और टीम-आधारित डिज़ाइन अध्याय के लिए प्रधान वृद्धिशील संकलन।
    एक। ALTERAOCLSDKROOT/board/c5soc/c5soc निर्देशिका से acl_iface_partition.qxp को निकालें।
    बी। Tcl कमांड को बदलकर acl_iface_region LogicLock™ क्षेत्र को सक्षम करें।
    सी। अपने बोर्ड के लिए ओपनसीएल कर्नेल संकलित करें।
    डी। यदि आवश्यक हो, तो LogicLock क्षेत्र का आकार और स्थान समायोजित करें।
    इ। जब आप इस बात से संतुष्ट हों कि आपकी डिज़ाइन की नियुक्ति सही समय पर है, तो उस विभाजन को acl_iface_partition.qxp क्वार्टस प्राइम एक्सपोर्टेड पार्टीशन के रूप में निर्यात करें File.
    जैसा कि इस .qxp को इम्पोर्ट करके ओपनसीएल कस्टम प्लेटफॉर्म टूलकिट यूजर गाइड के लिए ऐइंटेल एफपीजीए एसडीके के एस्टैब्लिशिंग गारंटीड टाइमिंग फ्लो सेक्शन में बताया गया है।  file शीर्ष-स्तरीय डिज़ाइन में, आप एक गारंटीकृत समय समापन प्रवाह के साथ एक बोर्ड डिज़ाइन प्रदान करने की आवश्यकता को पूरा करते हैं।
    उन कारकों के लिए जो आपके निर्यातित विभाजन के परिणामों की गुणवत्ता (QoR) को प्रभावित कर सकते हैं, OpenCL कस्टम प्लेटफ़ॉर्म टूलकिट उपयोगकर्ता गाइड के लिए Intel FPGA SDK में निर्यातित बोर्ड विभाजन के लिए परिणामों की सामान्य गुणवत्ता अनुभाग देखें।
    एफ। acl_iface_region LogicLock क्षेत्र को चरण 2 में कमांड को वापस set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region पर वापस लाकर अक्षम करें।
  4. यदि आपका एसओसी एफपीजीए बोर्ड एचपीएस ब्लॉक के विभिन्न पिन और परिधि का उपयोग करता है, तो प्रीलोडर और डिवाइस ट्री स्रोत (डीटीएस) को पुन: उत्पन्न करें। file. यदि आप HPS DDR मेमोरी कंट्रोलर सेटिंग्स बदलते हैं, तो प्रीलोडर को फिर से जनरेट करें।
  5. एसडी फ्लैश कार्ड छवि बनाएं।
  6. अपना कस्टम प्लेटफ़ॉर्म बनाएं, जिसमें SD फ़्लैश कार्ड छवि शामिल हो।
  7. OpenCL के लिए Intel FPGA रनटाइम एनवायरनमेंट (RTE) के साथ उपयोग करने के लिए अपने कस्टम प्लेटफ़ॉर्म का एक रनटाइम वातावरण संस्करण बनाने पर विचार करें। आपके कस्टम प्लेटफॉर्म के आरटीई संस्करण में हार्डवेयर निर्देशिकाएं और एसडी फ्लैश कार्ड छवि शामिल नहीं है। यह कस्टम प्लेटफार्म मेजबान अनुप्रयोगों को चलाने की अनुमति देने के लिए एसओसी एफपीजीए सिस्टम पर लोड होता है। इसके विपरीत, OpenCL कर्नेल को संकलित करने के लिए SDK के लिए कस्टम प्लेटफ़ॉर्म का SDK संस्करण आवश्यक है।
    युक्ति: आप RTE के लिए अपने कस्टम प्लेटफ़ॉर्म के SDK संस्करण का उपयोग कर सकते हैं। बचाने के लिए
    स्पेस, अपने कस्टम प्लेटफॉर्म के आरटीई संस्करण से एसडी फ्लैश कार्ड छवि को हटा दें।
  8. अपने कस्टम प्लेटफ़ॉर्म का परीक्षण करें।
    अधिक जानकारी के लिए OpenCL कस्टम प्लेटफ़ॉर्म टूलकिट यूज़र गाइड के लिए Intel FPGA SDK के हार्डवेयर डिज़ाइन का परीक्षण अनुभाग देखें।

संबंधित लिंक

  • हार्डवेयर डिजाइन का परीक्षण
  • पदानुक्रमित और टीम-आधारित डिज़ाइन के लिए क्वार्टस प्राइम इंक्रीमेंटल संकलन
  • गारंटीकृत समय प्रवाह की स्थापना
  • निर्यातित बोर्ड विभाजन के लिए परिणामों की सामान्य गुणवत्ता पर विचार

1.2.1 पोर्टेड रेफरेंस प्लेटफॉर्म को अपडेट करना
चक्रवात वी एसओसी विकास किट संदर्भ प्लेटफार्म के वर्तमान संस्करण में, एचपीएस ब्लॉक उस विभाजन के अंदर है जो सभी गैर-कर्नेल तर्क को परिभाषित करता है। हालाँकि, आप .qxp के भाग के रूप में HPS को निर्यात नहीं कर सकते file. किसी मौजूदा कस्टम प्लेटफ़ॉर्म को अपडेट करने के लिए जिसे आपने c5soc के पिछले संस्करण से संशोधित किया था, QXP संरक्षण प्रवाह लागू करें, नवीनतम रनटाइम वातावरण प्राप्त करने के लिए SD फ़्लैश कार्ड छवि को अपडेट करें, और board_spec.xml को अपडेट करें file स्वचालन को सक्षम करने के लिए।
Altera® SDK OpenCL संस्करण 14.1 और उससे आगे के लिए जांच करता है बोर्ड_स्पेक.xml file बोर्ड की जानकारी के लिए, और स्वत: अद्यतन लागू करता है। क्योंकि आप संशोधित करते हैं
डिजाइन QXP संरक्षण प्रवाह को लागू करके, आपको board_spec.xml को अपडेट करना होगा file वर्तमान संस्करण में इसके प्रारूप के लिए। अपडेट कर रहा है file SDK को असुरक्षित कस्टम प्लेटफ़ॉर्म और वर्तमान QXP-आधारित कस्टम प्लेटफ़ॉर्म के बीच अंतर करने की अनुमति देता है। अधिक जानकारी के लिए OpenCL कस्टम प्लेटफ़ॉर्म टूलकिट यूज़र गाइड के लिए Intel FPGA SDK में फ़ॉरवर्ड कम्पैटिबिलिटी के लिए कस्टम प्लेटफ़ॉर्म ऑटोमाइग्रेशन देखें।

  1. चक्रवात V SoC FPGA हार्डवेयर डिज़ाइन में QXP संरक्षण प्रवाह को लागू करने के लिए जो कि c5soc के पिछले संस्करण से पोर्ट किया गया है, HPS को .qxp से बाहर करने के लिए एक उप-विभाजन बनाने के लिए निम्न चरणों का पालन करें। file:
    एक। गैर-कर्नेल तर्क के आसपास एक विभाजन बनाने से पहले, .qsf क्वार्टस प्राइम सेटिंग्स में HPS के चारों ओर एक विभाजन बनाएँ File.
    उदाहरणार्थampपर:
    # उस उदाहरण को मैन्युअल रूप से विभाजित करें जो एचपीएस-समर्पित I/O सेट_इंस्टेंस_असाइनमेंट -नाम 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:border”
    # बाकी क्वार्टस द्वारा सही ढंग से संसाधित किए जाने के लिए विभाजन को HPS_PARTITION प्रकार के रूप में सेट करें
    सेट_ग्लोबल_असाइनमेंट -नाम PARTITION_TYPE HPS_PARTITION -सेक्शन_आईडी "system_acl_iface_hps_0_hps_io_border:border"
    क्वार्टस_सीडीबी टॉप-सी टॉप
    –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 को विभाजन से बाहर करने के बाद, आप .qxp आयात कर सकते हैं file और अपने डिजाइन को संकलित करें।
  2. निम्नलिखित कार्य करके OpenCL के लिए Intel FPGA RTE के वर्तमान संस्करण के साथ SD फ्लैश कार्ड छवि को अपडेट करें:
    एक। माउंट करें file आवंटन तालिका (FAT32) और विस्तारित file लूप-बैक डिवाइस के रूप में मौजूदा छवि में सिस्टम (ext3) विभाजन। विस्तृत निर्देशों के लिए, SD फ़्लैश कार्ड छवि बनाने के चरण 2 का संदर्भ लें।
    बी। /home/root/opencl_arm32_rte निर्देशिका में, को हटा दें fileरों आरटीई के पिछले संस्करण से।
    सी। आरटीई के वर्तमान संस्करण को /home/root/opencl_arm32_rte निर्देशिका में डाउनलोड और अनपैक करें।
    डी। में /चालक/संस्करण.एच file अपने कस्टम प्लेटफ़ॉर्म के लिए ACL_DRIVER_VERSION असाइनमेंट को अपडेट करें . (पूर्व के लिएample, 16.1.x, जहां 16.1 SDK संस्करण है, और x आपके द्वारा सेट किया गया ड्राइवर संस्करण है)।
    इ। ड्राइवर का पुनर्निर्माण करें।
    एफ। अपने कस्टम प्लेटफ़ॉर्म के हार्डवेयर फ़ोल्डर को हटाएं। अपडेट किए गए ड्राइवर के साथ, कस्टम प्लेटफ़ॉर्म को /home/root/opencl_arm_rte/board निर्देशिका में कॉपी करें।
    जी। Altera.icd को कॉपी करें file /home/root/opencl_arm32_rte निर्देशिका से और इसे /etc/OpenCL/vendors निर्देशिका में जोड़ें।
    एच। नई छवि को अनमाउंट करें और उसका परीक्षण करें। विस्तृत निर्देशों के लिए, SD फ़्लैश कार्ड इमेज बनाने के चरण 8 से 11 देखें।

संबंधित लिंक

  • पृष्ठ 14 पर एसडी फ्लैश कार्ड छवि बनाना
    आपके पास एक नई एसडी फ्लैश कार्ड छवि बनाने का विकल्प भी है।
  • आगे संगतता के लिए कस्टम प्लेटफ़ॉर्म ऑटोमाइग्रेशन

1.3 शेयर्ड मेमोरी के लिए सॉफ्टवेयर सपोर्ट
FPGA और CPU के बीच साझा भौतिक मेमोरी, SoC FPGAs पर चलने वाले OpenCL कर्नेल के लिए पसंदीदा मेमोरी है। चूंकि एफपीजीए साझा वर्चुअल मेमोरी के विपरीत साझा भौतिक मेमोरी का उपयोग करता है, इसमें सीपीयू के पेज टेबल तक पहुंच नहीं होती है जो भौतिक पृष्ठ पते पर उपयोगकर्ता वर्चुअल पते को मैप करती है।
हार्डवेयर के संबंध में, ओपनसीएल कर्नेल एचपीएस डीडीआर हार्ड मेमोरी कंट्रोलर से सीधे कनेक्शन के माध्यम से साझा भौतिक मेमोरी का उपयोग करते हैं। सॉफ़्टवेयर के संबंध में, साझा भौतिक मेमोरी के लिए समर्थन में निम्नलिखित विचार शामिल हैं:

  1. सीपीयू पर मेमोरी आवंटित करने के लिए विशिष्ट सॉफ्टवेयर कार्यान्वयन (उदाहरण के लिएample, malloc() function) FPGA द्वारा उपयोग किए जा सकने वाले मेमोरी क्षेत्र को आवंटित नहीं किया जा सकता है।
    स्मृति जो कि मॉलोक () फ़ंक्शन आवंटित करता है, वर्चुअल मेमोरी एड्रेस स्पेस में सन्निहित है, लेकिन किसी भी अंतर्निहित भौतिक पृष्ठ के भौतिक रूप से सन्निहित होने की संभावना नहीं है। इस प्रकार, मेजबान को भौतिक रूप से सन्निहित स्मृति क्षेत्रों को आवंटित करने में सक्षम होना चाहिए। हालांकि, यह क्षमता Linux पर उपयोक्ता-अंतरिक्ष अनुप्रयोगों में मौजूद नहीं है। इसलिए, लिनक्स कर्नेल ड्राइवर को आवंटन करना चाहिए।
  2. ओपनसीएल एसओसी एफपीजीए लिनक्स कर्नेल ड्राइवर में साझा भौतिक मेमोरी आवंटित करने और इसे उपयोगकर्ता स्थान में मैप करने के लिए एमएमएपी () फ़ंक्शन शामिल है। एमएमएपी () फ़ंक्शन मानक लिनक्स कर्नेल कॉल dma_alloc_coherent () का उपयोग डिवाइस के साथ साझा करने के लिए भौतिक-सन्निहित मेमोरी क्षेत्रों का अनुरोध करने के लिए करता है।
  3. डिफ़ॉल्ट लिनक्स कर्नेल में, dma_alloc_coherent() आकार में 0.5 मेगाबाइट (एमबी) से अधिक भौतिक-सन्निहित मेमोरी आवंटित नहीं करता है। Dma_alloc_coherent() को बड़ी मात्रा में भौतिक-सन्निहित मेमोरी आवंटित करने की अनुमति देने के लिए, लिनक्स कर्नेल की सन्निहित मेमोरी एलोकेटर (CMA) सुविधा को सक्षम करें और फिर लिनक्स कर्नेल को फिर से कंपाइल करें।
    साइक्लोन वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म के लिए, सीएमए 512 जीबी भौतिक मेमोरी में से 1 एमबी का प्रबंधन करता है। एप्लिकेशन द्वारा आवश्यक साझा मेमोरी की मात्रा के आधार पर आप इस मान को बढ़ा या घटा सकते हैं। dma_alloc_coherent() कॉल शारीरिक रूप से सन्निहित मेमोरी की पूरी 512 एमबी आवंटित करने में सक्षम नहीं हो सकती है; हालाँकि, यह नियमित रूप से लगभग 450 एमबी मेमोरी प्राप्त कर सकता है।
  4. सीपीयू उस मेमोरी को कैश कर सकता है जिसे 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) कॉल में निम्नलिखित प्रश्न शामिल हैं:
    एक। एमएमएपी () फ़ंक्शन जो मेमोरी आवंटित करता है और वर्चुअल एड्रेस देता है।
    बी। अतिरिक्त क्वेरी जो लौटाए गए आभासी पते को भौतिक पते पर मैप करती है।
    Aocl_mmd_shared_mem_alloc() MMD API कॉल तब दो पते देता है
    —वास्तविक लौटाया गया पता वर्चुअल पता है, और भौतिक पता डिवाइस_ptr_out पर जाता है।
    टिप्पणी: ड्राइवर केवल उन आभासी पतों को मैप कर सकता है जो एमएमएपी () फ़ंक्शन भौतिक पतों पर लौटते हैं। यदि आप किसी अन्य वर्चुअल पॉइंटर के भौतिक पते के लिए अनुरोध करते हैं, तो ड्राइवर एक NULL मान लौटाता है।

चेतावनी: OpenCL रनटाइम लाइब्रेरीज़ के लिए Intel FPGA SDK मानता है कि साझा की गई मेमोरी बोर्ड_spec.xml में सूचीबद्ध पहली मेमोरी है file. दूसरे शब्दों में, Linux कर्नेल ड्राइवर जो भौतिक पता प्राप्त करता है वह Avalon® पता बन जाता है जिसे OpenCL कर्नेल HPS SDRAM को भेजता है।
रनटाइम लाइब्रेरी के संबंध में, साझा मेमोरी को डिवाइस बफर के रूप में आवंटित करने के लिए clCreateBuffer() कॉल का उपयोग निम्न तरीके से करें:

  • यदि आप CL_MEM_USE_HOST_PTR ध्वज निर्दिष्ट करते हैं, तो साझा और गैर-साझा स्मृति दोनों के साथ दो-डीडीआर बोर्ड संस्करण के लिए, clCreateBuffer() साझा स्मृति आवंटित करता है। अन्य झंडों का उपयोग करने से clCreateBuffer() गैर-साझा स्मृति में बफर आवंटित करने का कारण बनता है।
  • केवल साझा स्मृति के साथ एक-डीडीआर बोर्ड संस्करण के लिए, clCreateBuffer() आपके द्वारा निर्दिष्ट ध्वज के बावजूद साझा स्मृति आवंटित करता है।
    वर्तमान में, एआरएम सीपीयू पर 32-बिट लिनक्स समर्थन एसडीके रनटाइम पुस्तकालयों में साझा मेमोरी समर्थन की सीमा को नियंत्रित करता है। दूसरे शब्दों में, रनटाइम लाइब्रेरी अन्य वातावरणों के लिए संकलित (उदाहरण के लिएample, x86_64 Linux या 64-बिट विंडोज़) साझा स्मृति का समर्थन नहीं करते हैं।
    C5soc ने निम्नलिखित कारणों से साझा और गैर-साझा स्मृति के बीच अंतर करने के लिए विषम मेमोरी को लागू नहीं किया:
    1. इतिहास- जब साझा मेमोरी समर्थन मूल रूप से बनाया गया था तब विषम स्मृति समर्थन उपलब्ध नहीं था।
    2. यूनिफ़ॉर्म इंटरफ़ेस—क्योंकि OpenCL एक खुला मानक है, Intel विषम कंप्यूटिंग प्लेटफ़ॉर्म विक्रेताओं के बीच निरंतरता बनाए रखता है। इसलिए, साझा मेमोरी आवंटित करने और उपयोग करने के लिए अन्य बोर्ड विक्रेताओं के आर्किटेक्चर के समान इंटरफ़ेस का उपयोग किया जाता है।

1.4 एफपीजीए पुनर्विन्यास
SoC FPGAs के लिए, CPU, CPU के संचालन को बाधित किए बिना FPGA कोर फैब्रिक को पुन: कॉन्फ़िगर कर सकता है। FPGA प्रबंधक हार्डवेयर ब्लॉक जो HPS और कोर FPGA को फैलाता है, पुनर्संरचना करता है। लिनक्स कर्नेल में एक ड्राइवर शामिल है जो FPGA प्रबंधक तक आसान पहुँच को सक्षम करता है।

  • को view FPGA कोर की स्थिति, cat /sys/class/fpga/fpga0/status कमांड को चालू करें।
    साइक्लोन वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म के साथ उपलब्ध ओपनसीएल प्रोग्राम यूटिलिटी के लिए इंटेल एफपीजीए एसडीके एफपीजीए को प्रोग्राम करने के लिए इस इंटरफेस का उपयोग करता है। चल रहे CPU के साथ FPGA कोर को रीप्रोग्राम करते समय, प्रोग्राम यूटिलिटी निम्नलिखित सभी कार्य करती है:
    1. रीप्रोग्रामिंग से पहले, FPGA और HPS, दोनों H2F और LH2F ब्रिज के बीच सभी संचार ब्रिज को डिसेबल कर दें।
    रीप्रोग्रामिंग पूर्ण होने के बाद इन पुलों को पुन: सक्षम करें।
    ध्यान दें: OpenCL सिस्टम FPGA-to-HPS (F2H) ब्रिज का उपयोग नहीं करता है। अधिक जानकारी के लिए साइक्लोन V डिवाइस हैंडबुक, वॉल्यूम 3: हार्ड प्रोसेसर सिस्टम टेक्निकल रेफरेंस मैनुअल में HPS-FPGA इंटरफेसेस सेक्शन देखें।
    2. सुनिश्चित करें कि रीप्रोग्रामिंग के दौरान FPGA और HPS DDR कंट्रोलर के बीच लिंक अक्षम है।
    3. सुनिश्चित करें कि एफपीजीए पर एफपीजीए इंटरप्ट्स रीप्रोग्रामिंग के दौरान अक्षम हैं।
    साथ ही, रिप्रोग्रामिंग के दौरान FPGA से किसी भी व्यवधान को अस्वीकार करने के लिए ड्राइवर को सूचित करें।

वास्तविक कार्यान्वयन के विवरण के लिए कार्यक्रम उपयोगिता के स्रोत कोड से परामर्श करें।

चेतावनी: जब CPU चल रहा हो तो HPS DDR कंट्रोलर के कॉन्फिगरेशन को न बदलें।
ऐसा करने से घातक सिस्टम त्रुटि हो सकती है क्योंकि CPU से बकाया मेमोरी लेनदेन होने पर आप DDR कंट्रोलर कॉन्फ़िगरेशन को बदल सकते हैं। इसका मतलब यह है कि जब सीपीयू चल रहा होता है, तो आप FPGA कोर को ऐसी छवि के साथ दोबारा प्रोग्राम नहीं कर सकते हैं जो एक अलग कॉन्फ़िगरेशन में HPS DDR का उपयोग करती है।
याद रखें कि OpenCL सिस्टम, और Intel SoC FPGA एंबेडेड डिज़ाइन सूट (EDS) के साथ उपलब्ध गोल्डन हार्डवेयर संदर्भ डिज़ाइन, HPS DDR को एकल 256-बिट मोड में सेट करता है।
सीपीयू सिस्टम के हिस्से जैसे ब्रांच प्रेडिक्टर या पेज टेबल प्रीफेचर डीडीआर कमांड तब भी जारी कर सकते हैं जब ऐसा लगता है कि सीपीयू पर कुछ भी नहीं चल रहा है।
इसलिए, HPS DDR नियंत्रक कॉन्फ़िगरेशन सेट करने के लिए बूट समय एकमात्र सुरक्षित समय है।
इसका तात्पर्य यह भी है कि यू-बूट में कच्चा बाइनरी होना चाहिए file (.rbf) छवि स्मृति में लोड करने के लिए। अन्यथा, आप एफपीजीए पर अप्रयुक्त बंदरगाहों के साथ एचपीएस डीडीआर को सक्षम कर सकते हैं और फिर संभावित रूप से पोर्ट कॉन्फ़िगरेशन को बाद में बदल सकते हैं। इस कारण से, OpenCL Linux कर्नेल ड्राइवर में अब HPS DDR नियंत्रक कॉन्फ़िगरेशन सेट करने के लिए आवश्यक तर्क शामिल नहीं है।
SW3 डुअल इन-लाइन पैकेज (DIP) सिलोन V SoC डेवलपमेंट किट पर स्विच करता है, .rbf छवि के अपेक्षित रूप को नियंत्रित करता है (अर्थात, चाहे वह file संकुचित और/या एन्क्रिप्ट किया गया है)। C5soc, और SoC EDS के साथ उपलब्ध गोल्डन हार्डवेयर रेफरेंस डिज़ाइन में कंप्रेस्ड लेकिन अनएन्क्रिप्टेड .rbf इमेज शामिल हैं। OpenCL Cyclone V SoC गेटिंग स्टार्टेड गाइड के लिए Intel FPGA SDK में वर्णित SW3 DIP स्विच सेटिंग्स इस .rbf छवि कॉन्फ़िगरेशन से मेल खाती हैं।

संबंधित लिंक

  • एचपीएस-एफपीजीए इंटरफेस
  • SW3 स्विच को कॉन्फ़िगर करना

1.4.1 एफपीजीए सिस्टम आर्किटेक्चर विवरण
साइक्लोन वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म के लिए समर्थन स्ट्रैटिक्स® वी रेफरेंस प्लेटफॉर्म (एस5_रेफ) पर आधारित है, जो ओपनसीएल के लिए इंटेल एफपीजीए एसडीके के साथ उपलब्ध है।
C5soc Qsys सिस्टम और कर्नेल ड्राइवर का समग्र संगठन s5_ref के समान है।
निम्नलिखित FPGA कोर घटक c5soc और s5_ref दोनों में समान हैं:

  • VERSION_ID ब्लॉक
  • आराम तंत्र
  • मेमोरी बैंक डिवाइडर
  • कैश स्नूप इंटरफ़ेस
  • कर्नेल घड़ी
  • कंट्रोल रजिस्टर एक्सेस (CRA) ब्लॉक

1.5 एक एसडी फ्लैश कार्ड छवि बनाना
क्‍योंकि Cyclone V SoC FPGA चिप पर एक पूर्ण सिस्‍टम है, आप सिस्‍टम की पूर्ण परिभाषा प्रदान करने के लिए जिम्‍मेदार हैं। Intel अनुशंसा करता है कि आप इसे SD फ़्लैश कार्ड छवि के रूप में डिलीवर करें. OpenCL उपयोगकर्ता के लिए Intel FPGA SDK बस छवि को माइक्रो SD फ़्लैश कार्ड में लिख सकता है और SoC FPGA बोर्ड उपयोग के लिए तैयार है।
पृष्ठ 13 पर मौजूदा एसडी फ्लैश कार्ड छवि को संशोधित करना
Intel अनुशंसा करता है कि आप Cyclone V SoC Development Kit Reference Platform के साथ उपलब्ध छवि को संशोधित करें। आपके पास एक नई एसडी फ्लैश कार्ड छवि बनाने का विकल्प भी है।
पृष्ठ 14 पर एसडी फ्लैश कार्ड छवि बनाना
आपके पास एक नई एसडी फ्लैश कार्ड छवि बनाने का विकल्प भी है।

1.5.1 मौजूदा एसडी फ्लैश कार्ड छवि को संशोधित करना
Intel अनुशंसा करता है कि आप Cyclone V SoC के साथ उपलब्ध छवि को संशोधित करें
विकास किट संदर्भ प्लेटफार्म। आपके पास एक नई एसडी फ्लैश कार्ड छवि बनाने का विकल्प भी है।
c5soc linux_sd_card_image.tgz छवि file ALTERAOCLSDKROOT/board/c5soc निर्देशिका में उपलब्ध है, जहाँ ALTERAOCLSDKROOT, OpenCL की स्थापना निर्देशिका के लिए Intel FPGA SDK के पथ की ओर इशारा करता है।

ध्यान: एसडी फ्लैश कार्ड छवि को संशोधित करने के लिए, आपके पास रूट या सुडो विशेषाधिकार होना चाहिए।

  1. $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz को डीकंप्रेस करने के लिए file, tar xvfzlinux_sd_card_image.tgz कमांड चलाएँ।
  2. hello_world OpenCL पूर्व संकलित करेंampअपने कस्टम प्लेटफ़ॉर्म समर्थन का उपयोग करके डिज़ाइन करें। .आरबीएफ का नाम बदलें file कि OpenCL ऑफ़लाइन कंपाइलर के लिए Intel FPGA SDK opencl.rbf के रूप में उत्पन्न करता है, और इसे SD फ्लैश कार्ड छवि के भीतर fat32 विभाजन पर रखता है।
    आप hello_world ex डाउनलोड कर सकते हैंampओपनसीएल डिजाइन एक्स से ले डिजाइनampAltera पर लेस पेज webसाइट।
  3. .rbf रखें file फ़्लैश कार्ड छवि के fat32 विभाजन में।
    ध्यान: FAT32 विभाजन में दोनों zImage शामिल होने चाहिए file और .आरबीएफ file. आरबीएफ के बिना file, जब आप ड्राइवर सम्मिलित करते हैं तो एक घातक त्रुटि उत्पन्न होगी।
  4. आपके द्वारा SD कार्ड की छवि बनाने के बाद, इसे माइक्रो SD कार्ड में निम्नलिखित कमांड का उपयोग करके लिखें: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. अपनी एसडी फ्लैश कार्ड छवि का परीक्षण करने के लिए, निम्नलिखित कार्य करें:
    एक। SoC FPGA बोर्ड में माइक्रो SD फ़्लैश कार्ड डालें।
    बी। बोर्ड को पावर करें।
    सी। एओसीएल डायग्नोज़ यूटिलिटी कमांड को इनवोक करें।

1.5.2 एसडी फ्लैश कार्ड छवि बनाना
आपके पास एक नई एसडी फ्लैश कार्ड छवि बनाने का विकल्प भी है। एक नई एसडी फ्लैश कार्ड छवि बनाने और मौजूदा एसडी फ्लैश कार्ड छवि के पुनर्निर्माण पर सामान्य निर्देश जीएसआरडी v14.0.2 - RocketBoards.org के एसडी कार्ड पेज पर उपलब्ध हैं। webसाइट।
नीचे दिए गए चरण गोल्डन सिस्टम रेफरेंस डिज़ाइन (जीएसआरडी) एसडी फ्लैश कार्ड छवि से linux_sd_card_image.tgz छवि बनाने की प्रक्रिया का वर्णन करते हैं:
टिप्पणी:
C5soc छवि से छवि बनाने के लिए, इस प्रक्रिया में उल्लिखित सभी लागू कार्य करें।

  1. Rocketboards.org से जीएसआरडी एसडी फ्लैश कार्ड छवि संस्करण 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) लोसेटअप -f कमांड टाइप करके।
    सी। यह मानते हुए कि /dev/loop0 फ्री लूप डिवाइस है, लोसेटअप /dev/loop0 image_ का आह्वान करके अपने फ्लैश कार्ड इमेज को लूप ब्लॉक डिवाइस पर असाइन करें।file -0 1086324736 कमांड।
    डी। माउंट/देव/लूप0/मीडिया/डिस्क1 कमांड चलाकर लूप डिवाइस को माउंट करें।
    छवि के भीतर file, /media/disk1 अब एक आरोहित fat32 विभाजन है।
    इ। Ext3 विभाजन के लिए चरण a से d तक दोहराएँ।
  3. Altera पर डाउनलोड केंद्र से OpenCL पैकेज के लिए Intel FPGA रनटाइम एनवायरनमेंट का साइक्लोन V SoC FPGA संस्करण डाउनलोड करें webसाइट।
    एक। क्वार्टस प्राइम सॉफ्टवेयर संस्करण के पास डाउनलोड बटन पर क्लिक करें।
    बी। रिलीज़ संस्करण, ऑपरेटिंग सिस्टम और डाउनलोड विधि निर्दिष्ट करें।
    सी। अतिरिक्त सॉफ़्टवेयर टैब पर क्लिक करें और Intel FPGA डाउनलोड करने के लिए चयन करें
    OpenCL Linux Cyclone V SoC TGZ के लिए रनटाइम एनवायरनमेंट।
    डी। एओसीएल-आरटीई डाउनलोड करने के बाद- .arm32.tgz file, इसे अनपैक करें
    एक निर्देशिका जिसका आप स्वामी हैं।
  4. अनपैक्ड एओसीएल-आरटीई- को रखें छवि के ext32 विभाजन पर /home/root/opencl_arm32_rte निर्देशिका में .arm3 निर्देशिका file.
  5. अपने कस्टम प्लेटफ़ॉर्म के हार्डवेयर फ़ोल्डर को हटाएं, और फिर कस्टम प्लेटफ़ॉर्म को /home/root/ opencl_arm32_rte की बोर्ड उपनिर्देशिका में रखें।
  6. init_opencl.sh बनाएँ file निम्नलिखित सामग्री के साथ / होम / रूट निर्देशिका में: निर्यात पथ=$ALTERAOCLSDKROOT/बिन:$PATH निर्यात LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    SDK उपयोगकर्ता पर्यावरण चर और OpenCL Linux कर्नेल ड्राइवर को लोड करने के लिए स्रोत ./init_opencl.sh कमांड चलाता है।
  7. यदि आपको प्रीलोडर को अपडेट करने की आवश्यकता है, तो DTS files, या Linux कर्नेल, आपको SoC EDS से arm-linux-gnueabihf-gcc संकलक की आवश्यकता है। सॉफ़्टवेयर प्राप्त करने, उन्हें पुन: संकलित करने और प्रासंगिक अद्यतन करने के लिए Intel SoC FPGA एम्बेडेड डिज़ाइन सुइट उपयोगकर्ता मार्गदर्शिका में दिए गए निर्देशों का पालन करें fileघुड़सवार fat32 विभाजन पर एस।
    ध्यान: यदि आपके कस्टम प्लेटफ़ॉर्म में c5soc की तुलना में अलग-अलग पिन उपयोग हैं, तो इसकी बहुत अधिक संभावना है कि आपको प्रीलोडर को अपडेट करने की आवश्यकता है।
    याद रखें: यदि आप लिनक्स कर्नेल को पुन: संकलित करते हैं, तो उसी लिनक्स कर्नेल स्रोत के साथ लिनक्स कर्नेल ड्राइवर को पुनः संकलित करें fileएस। यदि लिनक्स कर्नेल ड्राइवर और लिनक्स कर्नेल के बीच कोई बेमेल है, तो ड्राइवर लोड नहीं होगा। साथ ही, आपको CMA को सक्षम करना होगा।
    अधिक जानकारी के लिए लिनक्स कर्नेल को पुन: संकलित करना देखें।
  8. hello_world OpenCL पूर्व संकलित करेंampअपने कस्टम प्लेटफ़ॉर्म समर्थन का उपयोग करके डिज़ाइन करें। .आरबीएफ का नाम बदलें file कि OpenCL ऑफ़लाइन कंपाइलर के लिए Intel FPGA SDK opencl.rbf के रूप में उत्पन्न करता है, और इसे SD फ्लैश कार्ड छवि के भीतर fat32 विभाजन पर रखता है।
    आप hello_world ex डाउनलोड कर सकते हैंampओपनसीएल डिजाइन एक्स से ले डिजाइनampAltera पर लेस पेज webसाइट।
    9. आप सभी आवश्यक स्टोर करने के बाद fileफ़्लैश कार्ड छवि पर, निम्न आदेश लागू करें:
    एक। साथ-साथ करना
    बी। अनमाउंट /मीडिया/डिस्क1
    सी। अनमाउंट कहाँ वह निर्देशिका नाम है जिसका उपयोग आप पृष्ठ 3 पर 3 में ext3 विभाजन को आरोहित करने के लिए करते हैं (उदाहरण के लिएampले, / मीडिया / डिस्क 2)।
    डी। लोसेटअप -d /dev/loop0
    इ। लोसेटअप -d /dev/loop1
  9. एसडी फ्लैश कार्ड इमेज को कंप्रेस करने के लिए निम्न कमांड का प्रयोग करें: tar cvfz .tgz linux_sd_card_image
  10. वितरित करें .tgz file अपने कस्टम प्लेटफ़ॉर्म की रूट डायरेक्टरी के अंदर।
  11. अपनी एसडी फ्लैश कार्ड छवि का परीक्षण करने के लिए, निम्नलिखित कार्य करें:
    एक। परिणामी असम्पीडित छवि को माइक्रो एसडी फ्लैश कार्ड पर लिखें।
    बी। SoC FPGA बोर्ड में माइक्रो SD फ़्लैश कार्ड डालें।
    सी। बोर्ड को पावर करें।
    डी। एओसीएल डायग्नोज़ यूटिलिटी कमांड को इनवोक करें।

संबंधित लिंक

  • Intel SoC FPGA एंबेडेड डिज़ाइन सुइट यूज़र गाइड
  • ओपनसीएल डिजाइन पूर्वampAltera पर लेस पेज webसाइट
  • पेज 16 पर लिनक्स कर्नेल को फिर से कंपाइल करना
    सीएमए को सक्षम करने के लिए, आपको पहले लिनक्स कर्नेल को पुनः कंपाइल करना होगा।
  • आपके FPGA बोर्ड के उपकरण के नाम की पूछताछ (निदान)

1.6 चक्रवात V SoC FPGA के लिए लिनक्स कर्नेल का संकलन
Cyclone V SoC FPGA बोर्ड पर OpenCL एप्लिकेशन चलाने से पहले, आपको Linux कर्नेल स्रोत को संकलित करना होगा, और OpenCL Linux कर्नेल ड्राइवर को संकलित और स्थापित करना होगा।

  1. पेज 16 पर लिनक्स कर्नेल को फिर से कंपाइल करना
    सीएमए को सक्षम करने के लिए, आपको पहले लिनक्स कर्नेल को पुनः कंपाइल करना होगा।
  2. पृष्ठ 17 पर OpenCL Linux कर्नेल ड्राइवर को संकलित और स्थापित करना संकलित कर्नेल स्रोत के विरुद्ध OpenCL Linux कर्नेल ड्राइवर को संकलित करें।

1.6.1 लिनक्स कर्नेल को पुन: संकलित करना
सीएमए को सक्षम करने के लिए, आपको पहले लिनक्स कर्नेल को पुनः कंपाइल करना होगा।

  1. RocketBoards.org के संसाधन पृष्ठ पर जीएसआरडी v14.0 - संकलन लिनक्स लिंक पर क्लिक करें webLinux कर्नेल स्रोत कोड को डाउनलोड करने और पुनर्निर्माण करने के निर्देशों तक पहुँचने के लिए साइट।
    OpenCL के लिए™ Intel FPGA SDK के साथ उपयोग के लिए, socfpga-3.13-rel14.0 को इस रूप में निर्दिष्ट करें .
  2. नोट: निर्माण प्रक्रिया आर्क/आर्म/कॉन्फिग/socfpga_defconfig file। यह file socfpga डिफ़ॉल्ट कॉन्फ़िगरेशन के लिए सेटिंग्स निर्दिष्ट करता है।
    आर्क/आर्म/कॉन्फ़िग/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. ध्यान: एसओसी एफपीजीए बोर्ड पर एआरएम प्रोसेसर के लिए उपलब्ध भौतिक मेमोरी की कुल मात्रा 1 जीबी है। इंटेल अनुशंसा नहीं करता है कि आप CMA प्रबंधक को 1 GB के करीब सेट करें।
  4. मौजूदा कॉन्फ़िगरेशन को साफ़ करने के लिए मेक मिप्रॉपर कमांड चलाएँ।
  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 कमांड चलाएँ। परिणामी छवि आर्क/आर्म/बूट/जेडइमेज में उपलब्ध है file.
  8. ZImage रखें file फ़्लैश कार्ड छवि के fat32 विभाजन में। विस्तृत निर्देशों के लिए, Rocketboards.org पर साइक्लोन वी एसओसी एफपीजीए-विशिष्ट जीएसआरडी उपयोगकर्ता मैनुअल देखें।
  9. नोट: OpenCL Linux कर्नेल ड्राइवर को सही ढंग से सम्मिलित करने के लिए, पहले एक SDKgenerated.rbf लोड करें file एफपीजीए पर।
    आरबीएफ बनाने के लिए file, एक SDK डिज़ाइन पूर्व संकलित करेंampलक्षित कस्टम प्लेटफॉर्म के रूप में साइक्लोन वी एसओसी डेवलपमेंट किट रेफरेंस प्लेटफॉर्म के साथ।
    9. आरबीएफ लगाएं file फ़्लैश कार्ड छवि के fat32 विभाजन में।
    ध्यान दें: fat32 विभाजन में दोनों zImage शामिल होने चाहिए file और .आरबीएफ file. आरबीएफ के बिना file, जब आप ड्राइवर सम्मिलित करते हैं तो एक घातक त्रुटि उत्पन्न होगी।
  10. साइक्लोन V SoC डेवलपमेंट किट में प्रोग्राम किए गए माइक्रो SD कार्ड को डालें, जिसमें आपके द्वारा पहले संशोधित या बनाई गई SD कार्ड इमेज शामिल है और फिर SoC FPGA बोर्ड को पावर अप करें।
  11. uname -r कमांड चलाकर स्थापित लिनक्स कर्नेल के संस्करण को सत्यापित करें।
  12. यह सत्यापित करने के लिए कि आप CMA को कर्नेल में सफलतापूर्वक सक्षम करते हैं, SoC FPGA बोर्ड संचालित होने के साथ, grep init_cma /proc/kallsyms कमांड चलाएँ।
    सीएमए सक्षम है अगर आउटपुट खाली नहीं है।
  13. एसडीके के साथ पुनर्संकलित लिनक्स कर्नेल का उपयोग करने के लिए, लिनक्स कर्नेल ड्राइवर को संकलित और स्थापित करें।

संबंधित लिंक

  • गोल्डन सिस्टम रेफरेंस डिजाइन (जीएसआरडी) यूजर मैनुअल
  • पृष्ठ 13 पर एसडी फ्लैश कार्ड छवि बनाना
    क्‍योंकि Cyclone V SoC FPGA चिप पर एक पूर्ण सिस्‍टम है, आप सिस्‍टम की पूर्ण परिभाषा प्रदान करने के लिए जिम्‍मेदार हैं।

1.6.2 ओपनसीएल लिनक्स कर्नेल ड्राइवर को संकलित और स्थापित करना
संकलित कर्नेल स्रोत के विरुद्ध OpenCL Linux कर्नेल ड्राइवर संकलित करें।

ड्राइवर स्रोत OpenCL के लिए Intel FPGA रनटाइम एनवायरनमेंट के Cyclone V SoC FPGA संस्करण में उपलब्ध है। इसके अलावा, सुनिश्चित करें कि आपने OpenCL-जनित .rbf के लिए Intel FPGA SDK लोड किया है file Linux कर्नेल मॉड्यूल की गलत स्थापना को रोकने के लिए FPGA में।

  1. Altera पर डाउनलोड केंद्र से OpenCL पैकेज के लिए Intel FPGA रनटाइम एनवायरनमेंट का साइक्लोन V SoC FPGA संस्करण डाउनलोड करें webसाइट।
    एक। क्वार्टस प्राइम सॉफ्टवेयर संस्करण के पास डाउनलोड बटन पर क्लिक करें।
    बी। रिलीज़ संस्करण, ऑपरेटिंग सिस्टम और डाउनलोड विधि निर्दिष्ट करें।
    सी। अतिरिक्त सॉफ़्टवेयर टैब पर क्लिक करें और Intel FPGA डाउनलोड करने के लिए चयन करें
    OpenCL Linux Cyclone V SoC TGZ के लिए रनटाइम एनवायरनमेंट।
    डी। एओसीएल-आरटीई डाउनलोड करने के बाद- .arm32.tgz file, इसे अनपैक करें
    एक निर्देशिका जिसका आप स्वामी हैं।
    चालक स्रोत aocl-rte- में है .arm32/board/c5soc/ ड्राइवर निर्देशिका।
  2. OpenCL Linux कर्नेल ड्राइवर को पुन: संकलित करने के लिए, ड्राइवर के मेक में KDIR मान सेट करेंfile लिनक्स कर्नेल स्रोत वाली निर्देशिका में files.
  3. अपनी टूल श्रृंखला के उपसर्ग को इंगित करने के लिए निर्यात CROSS_COMPILE=arm-linux-gnueabihf- कमांड चलाएँ।
  4. मेक क्लीन कमांड चलाएँ।
  5. aclsoc_drv.ko बनाने के लिए मेक कमांड चलाएँ file.
  6. Opencl_arm32_rte निर्देशिका को Cyclone V SoC FPGA बोर्ड में स्थानांतरित करें।
    एससीपी-आर चला रहा है जड़@आपका-आईपैड पता: कमांड रनटाइम वातावरण को / होम / रूट डायरेक्टरी में रखता है।
  7. SD कार्ड छवि बनाते समय आपके द्वारा बनाई गई init_opencl.sh स्क्रिप्ट चलाएँ।
  8.  एओसीएल डायग्नोज़ यूटिलिटी कमांड को इनवोक करें। आपके द्वारा init_opencl.sh को सफलतापूर्वक चलाने के बाद डाइग्नोज़ यूटिलिटी पासिंग रिजल्ट लौटा देगी।

1.7 ज्ञात मुद्दे
वर्तमान में, साइक्लोन V SoC डेवलपमेंट किट रेफरेंस प्लेटफॉर्म के साथ OpenCL के लिए Intel FPGA SDK के उपयोग पर कुछ सीमाएँ हैं।

  1. आप clGetDeviceInfo() कॉल के CL_DEVICE_VENDOR और CL_DEVICE_NAME स्ट्रिंग्स द्वारा रिपोर्ट किए गए वेंडर और बोर्ड नामों को ओवरराइड नहीं कर सकते हैं।
  2. यदि होस्ट साझा DDR सिस्टम (अर्थात, HPS DDR) में निरंतर मेमोरी आवंटित करता है और यह कर्नेल के निष्पादन के बाद निरंतर मेमोरी को संशोधित करता है, तो मेमोरी में डेटा पुराना हो सकता है। यह समस्या इसलिए उत्पन्न होती है क्योंकि FPGA कोर CPU-to-HPS DDR लेन-देन की जासूसी नहीं कर सकता है।
    बाद के कर्नेल निष्पादनों को पुराने डेटा तक पहुँचने से रोकने के लिए, निम्नलिखित में से कोई एक उपाय लागू करें:
    • इसके प्रारंभ होने के बाद निरंतर मेमोरी को संशोधित न करें।
    • यदि आपको अनेक __स्थिर डेटा सेटों की आवश्यकता है, तो अनेक स्थिर मेमोरी बफ़र्स बनाएँ।
    • यदि उपलब्ध हो, तो अपने त्वरक बोर्ड पर FPGA DDR में निरंतर मेमोरी आवंटित करें।
  3. एआरएम पर एसडीके उपयोगिता केवल कार्यक्रम का समर्थन करती है और उपयोगिता कमांड का निदान करती है।
    निम्न कारणों से साइक्लोन V SoC डेवलपमेंट किट पर फ्लैश, इंस्टाल और अनइंस्टॉल यूटिलिटी कमांड लागू नहीं होते हैं:
    एक। इंस्टॉल यूटिलिटी को aclsoc_drv Linux कर्नेल ड्राइवर को संकलित करना है और इसे SoC FPGA पर सक्षम करना है। विकास मशीन को संकलन करना है; हालाँकि, इसमें पहले से ही SoC FPGA के लिए Linux कर्नेल स्रोत शामिल हैं। विकास मशीन के लिए Linux कर्नेल स्रोत SoC FPGA के स्रोत से भिन्न हैं। एसओसी एफपीजीए के लिए लिनक्स कर्नेल स्रोतों का स्थान संभवतः एसडीके उपयोगकर्ता के लिए अज्ञात है। इसी तरह, साइक्लोन V SoC डेवलपमेंट किट के लिए अनइंस्टॉल यूटिलिटी भी उपलब्ध नहीं है।
    साथ ही, SoC बोर्ड को aclsoc_drv डिलीवर करना चुनौतीपूर्ण है क्योंकि साइक्लोन V SoC डेवलपमेंट किट के डिफ़ॉल्ट वितरण में Linux कर्नेल शामिल नहीं है files या GNU कंपाइलर कलेक्शन (GCC) कंपाइलर।
    बी। फ़्लैश उपयोगिता को एक .rbf रखने की आवश्यकता होती है file माइक्रो एसडी फ्लैश कार्ड के FAT32 विभाजन पर ओपनसीएल डिजाइन का। वर्तमान में, यह विभाजन तब आरोहित नहीं होता है जब एसडीके उपयोगकर्ता बोर्ड को चालू करता है। इसलिए, विभाजन को अद्यतन करने का सबसे अच्छा तरीका फ्लैश कार्ड रीडर और विकास मशीन का उपयोग करना है।
  4. ओपनसीएल ऑफ़लाइन कंपाइलर निष्पादन योग्य के लिए इंटेल एफपीजीए एसडीके के बीच स्विच करते समय files (.aocx) जो अलग-अलग बोर्ड वेरिएंट (यानी, c5soc और c5soc_sharedonly) के अनुरूप हैं, आपको .aocx को लोड करने के लिए SDK की प्रोग्राम यूटिलिटी का उपयोग करना होगा file पहली बार नए बोर्ड संस्करण के लिए। यदि आप केवल एक नए बोर्ड संस्करण का उपयोग करके होस्ट एप्लिकेशन चलाते हैं, लेकिन FPGA में किसी अन्य बोर्ड संस्करण की छवि शामिल है, तो एक घातक त्रुटि हो सकती है।
  5. क्यूएक्सपी file इंटरफ़ेस विभाजन असाइनमेंट शामिल नहीं है क्योंकि क्वार्टस प्राइम सॉफ़्टवेयर लगातार इस विभाजन की समय संबंधी आवश्यकताओं को पूरा करता है।
  6. जब आप बोर्ड को चालू करते हैं, तो इसका मीडिया एक्सेस कंट्रोल (MAC) पता एक यादृच्छिक संख्या पर सेट हो जाता है। यदि आपकी LAN नीति इस व्यवहार की अनुमति नहीं देती है, तो निम्न कार्य करके MAC पता सेट करें:
    एक। यू-बूट पावर-अप के दौरान, यू-बूट कमांड प्रॉम्प्ट दर्ज करने के लिए कोई भी कुंजी दबाएं।
    बी। कमांड प्रॉम्प्ट पर setenv ethaddr 00:07:ed:00:00:03 टाइप करें।
    आप कोई भी मैक एड्रेस चुन सकते हैं।
    सी। सेवेनव कमांड टाइप करें।
    डी। बोर्ड को रिबूट करें।

1.8 दस्तावेज़ संशोधन इतिहास
तालिका 1.
ओपनसीएल साइक्लोन वी एसओसी के लिए इंटेल एफपीजीए एसडीके का दस्तावेज़ संशोधन इतिहास
विकास किट संदर्भ प्लेटफार्म पोर्टिंग गाइड

तारीख संस्करण परिवर्तन
मई-17 2017.05.08 • रखरखाव रिलीज।
अक्टूबर 2016 2016.10.31 • OpenCL के लिए Altera SDK को Intel FPGA SDK के लिए OpenCL के लिए रीब्रांड किया गया।
• ओपनसीएल ऑफलाइन कंपाइलर के लिए इंटेल एफपीजीए एसडीके के लिए अल्टेरा ऑफलाइन कंपाइलर को रीब्रांड किया गया।
मई-16 2016.05.02 • एसडी फ्लैश कार्ड छवि बनाने और संशोधित करने पर संशोधित निर्देश।
• लिनक्स कर्नेल और ओपनसीएल लिनक्स कर्नेल ड्राइवर को पुनः संकलित करने पर संशोधित निर्देश।
नवंबर-15 2015.11.02 • रखरखाव रिलीज, और क्वार्टस II के क्वार्टस प्राइम में बदले गए उदाहरण।
मई-15 15.0.0 • FPGA रीकॉन्फ़िगरेशन में, FPGA कोर को रीप्रोग्राम करने के निर्देश को हटा दिया गया
के साथ । बिल्ली का आह्वान करके आरबीएफ छवि fileनाम>। rbf
> /dev/ fpga0 कमांड क्योंकि यह विधि अनुशंसित नहीं है।
दिसंबर-14 14.1.0 • दस्तावेज़ का नाम बदलकर Altera Cyclone V SoC Development Kit Reference Platform Porting Guide रखा गया।
• aocl प्रोग्राम में रिप्रोग्राम यूटिलिटी को अपडेट कियाfileनाम> .aocx यूटिलिटी कमांड।
• एओसीएल डायग्नोसिस और एओसीएल डायग्नोसिस के लिए डायग्नोस्टिक यूटिलिटी को अपडेट किया उपयोगिता आदेश।
• गारंटीशुदा टाइम क्लोजर फ्लो के लिए टाइमिंग-क्लीन पार्टिशन बनाने के लिए c5soc बोर्ड पार्टीशन को पोर्ट करने और संशोधित करने के निर्देशों को शामिल करने के लिए रेफरेंस प्लेटफॉर्म को आपके SoC बोर्ड सेक्शन में पोर्ट करने की प्रक्रिया को अपडेट किया।
निम्नलिखित कार्यों के लिए प्रक्रियाओं की रूपरेखा तैयार करने के लिए एक पोर्टेड रेफरेंस प्लेटफॉर्म को अपडेट करना विषय सम्मिलित किया गया:
1. बोर्ड विभाजन में हार्ड प्रोसेसर सिस्टम (HPS) ब्लॉक को छोड़कर
2. एसडी फ्लैश कार्ड छवि को अपडेट करना
• बिल्डिंग एन एसडी फ्लैश कार्ड इमेज सेक्शन को अपडेट किया। SoC एंबेडेड डिज़ाइन सूट (EDS) के साथ उपलब्ध छवि के बजाय शुरुआती बिंदु के रूप में गोल्डन सिस्टम रेफरेंस डिज़ाइन (GSRD) छवि के संस्करण 14.0 का उपयोग करने की सिफारिश की गई है।
•लिनक्स कर्नेल और ओपनसीएल लिनक्स कर्नेल ड्राइवर अनुभाग को फिर से संकलित करना अपडेट किया गया है:
1. क्रॉस कंपाइल चर सेट करने के लिए जोड़ा गया निर्देश।
2. सीएमए सफलतापूर्वक सक्षम है यह सत्यापित करने के लिए आपके द्वारा चलाए जाने वाले आदेश को बदल दिया गया है।
जुलाई-14 14.0.0 •प्रारंभिक रिहाई।

दस्तावेज़ / संसाधन

ओपनसीएल के लिए इंटेल एफपीजीए एसडीके [पीडीएफ] उपयोगकर्ता गाइड
ओपनसीएल के लिए एफपीजीए एसडीके, ओपनसीएल के लिए एफपीजीए एसडीके, एसडीके, एसडीके

संदर्भ

एक टिप्पणी छोड़ें

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड चिह्नित हैं *