OpenCL-നുള്ള FPGA SDK
ഉപയോക്തൃ ഗൈഡ്
UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite-നായി അവസാനം അപ്ഡേറ്റ് ചെയ്തത്: 17.0
സബ്സ്ക്രൈബ് ചെയ്യുക
ഫീഡ്ബാക്ക് അയയ്ക്കുക
OpenCL™ Intel® Cyclone®V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ടിംഗ് ഗൈഡിനായുള്ള Intel® FPGA SDK
OpenCL-നുള്ള ഇന്റൽ സോഫ്റ്റ്വെയർ ഡെവലപ്മെന്റ് കിറ്റിനൊപ്പം (SDK) ഉപയോഗിക്കുന്നതിന് ഇന്റൽ സൈക്ലോൺ V SoC ഡവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിന്റെ (c5soc) ഹാർഡ്വെയറും സോഫ്റ്റ്വെയർ രൂപകൽപ്പനയും V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ടിംഗ് ഗൈഡ് വിവരിക്കുന്നു. ® നിങ്ങൾ ആരംഭിക്കുന്നതിന് മുമ്പ്, ഇനിപ്പറയുന്ന ഡോക്യുമെന്റുകളുടെ ഉള്ളടക്കം നിങ്ങൾ സ്വയം പരിചയപ്പെടണമെന്ന് ഇന്റൽ ശക്തമായി ശുപാർശ ചെയ്യുന്നു:
- OpenCLintel Cyclone V SoC-നുള്ള Intel FPGA SDK ആരംഭിക്കുന്നതിനുള്ള ഗൈഡ്
- OpenCL ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം ടൂൾകിറ്റ് ഉപയോക്തൃ ഗൈഡിനായി Intel FPGA SDK
- സൈക്ലോൺ വി ഡിവൈസ് ഹാൻഡ്ബുക്ക്, വോളിയം 3: ഹാർഡ് പ്രോസസർ സിസ്റ്റം ടെക്നിക്കൽ റഫറൻസ് മാനുവൽ കൂടാതെ, സൈക്ലോൺ വി SoC ഡെവലപ്മെന്റ് കിറ്റും ആൾട്ടേറയുടെ SoC എംബഡഡ് ഡിസൈൻ സ്യൂട്ട് പേജും കാണുക. webകൂടുതൽ വിവരങ്ങൾക്ക് സൈറ്റ്. 1 2
ശ്രദ്ധ: OpenCL കസ്റ്റം പ്ലാറ്റ്ഫോം ടൂൾകിറ്റ് ഉപയോക്തൃ ഗൈഡിനായി നിങ്ങൾക്ക് Intel FPGA SDK-യെ കുറിച്ച് ആഴത്തിലുള്ള ധാരണയുണ്ടെന്ന് Intel അനുമാനിക്കുന്നു. സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ടിംഗ് ഗൈഡ്, സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റിനായി ഒരു ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം നടപ്പിലാക്കുന്നതിന് SDK-യുടെ കസ്റ്റം പ്ലാറ്റ്ഫോം ടൂൾകിറ്റിന്റെ ഉപയോഗം വിവരിക്കുന്നില്ല. ഇത് Cyclone V SoC ഡെവലപ്മെന്റ് കിറ്റിലെ SDK പിന്തുണയും OpenCL കസ്റ്റം പ്ലാറ്റ്ഫോമിനായുള്ള ഒരു ജനറിക് Intel FPGA SDK-യും തമ്മിലുള്ള വ്യത്യാസങ്ങൾ മാത്രമാണ് വിവരിക്കുന്നത്.
ബന്ധപ്പെട്ട ലിങ്കുകൾ
- OpenCL സൈക്ലോൺ V SoC-യ്ക്കുള്ള Intel FPGA SDK ആരംഭിക്കുന്നതിനുള്ള ഗൈഡ്
- OpenCL ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം ടൂൾകിറ്റ് ഉപയോക്തൃ ഗൈഡിനായി Intel FPGA SDK
- സൈക്ലോൺ വി ഡിവൈസ് ഹാൻഡ്ബുക്ക്, വാല്യം 3: ഹാർഡ് പ്രോസസർ സിസ്റ്റം ടെക്നിക്കൽ റഫറൻസ് മാനുവൽ
- സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റും ആൾട്ടറയിലെ SoC ഉൾച്ചേർത്ത ഡിസൈൻ സ്യൂട്ട് പേജും webസൈറ്റ്
- OpenCL ഉം OpenCL ലോഗോയും Apple Inc. ക്രോണോസ് ഗ്രൂപ്പിന്റെ അനുമതിയോടെ ഉപയോഗിക്കുന്ന വ്യാപാരമുദ്രകളാണ്.
- OpenCL-നുള്ള Intel FPGA SDK, പ്രസിദ്ധീകരിച്ച ക്രോണോസ് സ്പെസിഫിക്കേഷനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്, കൂടാതെ ക്രോണോസ് കൺഫോർമൻസ് ടെസ്റ്റിംഗ് പ്രോസസ് പാസായി. നിലവിലെ അനുരൂപ നില കണ്ടെത്താനാകും www.khronos.org/conformance.
ഇന്റൽ കോർപ്പറേഷൻ. എല്ലാ അവകാശങ്ങളും നിക്ഷിപ്തം. Intel, Intel ലോഗോ, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus, Stratix എന്നീ വാക്കുകളും ലോഗോകളും ഇന്റൽ കോർപ്പറേഷന്റെയോ യുഎസിലെയും/അല്ലെങ്കിൽ മറ്റ് രാജ്യങ്ങളിലെയും അതിന്റെ അനുബന്ധ സ്ഥാപനങ്ങളുടെ വ്യാപാരമുദ്രകളാണ്. ഇന്റലിന്റെ സ്റ്റാൻഡേർഡ് വാറന്റിക്ക് അനുസൃതമായി അതിന്റെ FPGA, അർദ്ധചാലക ഉൽപ്പന്നങ്ങളുടെ പ്രകടനം നിലവിലെ സ്പെസിഫിക്കേഷനുകളിലേക്ക് Intel വാറന്റ് ചെയ്യുന്നു, എന്നാൽ അറിയിപ്പ് കൂടാതെ ഏത് സമയത്തും ഏത് ഉൽപ്പന്നങ്ങളിലും സേവനങ്ങളിലും മാറ്റങ്ങൾ വരുത്താനുള്ള അവകാശം നിക്ഷിപ്തമാണ്. Intel രേഖാമൂലം സമ്മതിച്ചിട്ടുള്ളതല്ലാതെ ഇവിടെ വിവരിച്ചിരിക്കുന്ന ഏതെങ്കിലും വിവരങ്ങളുടെയോ ഉൽപ്പന്നത്തിന്റെയോ സേവനത്തിന്റെയോ ആപ്ലിക്കേഷനിൽ നിന്നോ ഉപയോഗത്തിൽ നിന്നോ ഉണ്ടാകുന്ന ഉത്തരവാദിത്തമോ ബാധ്യതയോ Intel ഏറ്റെടുക്കുന്നില്ല. പ്രസിദ്ധീകരിച്ച ഏതെങ്കിലും വിവരങ്ങളെ ആശ്രയിക്കുന്നതിന് മുമ്പും ഉൽപ്പന്നങ്ങൾക്കോ സേവനങ്ങൾക്കോ ഓർഡറുകൾ നൽകുന്നതിനുമുമ്പ് ഉപകരണ സവിശേഷതകളുടെ ഏറ്റവും പുതിയ പതിപ്പ് നേടുന്നതിന് ഇന്റൽ ഉപഭോക്താക്കൾക്ക് നിർദ്ദേശിക്കുന്നു.
*മറ്റ് പേരുകളും ബ്രാൻഡുകളും മറ്റുള്ളവരുടെ സ്വത്തായി അവകാശപ്പെടാം.
1.1.1 സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം ബോർഡ് വകഭേദങ്ങൾ
OpenCL സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിനായുള്ള Intel FPGA SDK-ൽ രണ്ട് ബോർഡ് വേരിയന്റുകൾ ഉൾപ്പെടുന്നു.
- c5soc ബോർഡ്
ഈ ഡിഫോൾട്ട് ബോർഡ് രണ്ട് DDR മെമ്മറി ബാങ്കുകളിലേക്ക് ആക്സസ് നൽകുന്നു. HPS DDR FPGA, CPU എന്നിവയ്ക്ക് ആക്സസ് ചെയ്യാൻ കഴിയും. FPGA DDR FPGA-ന് മാത്രമേ ആക്സസ് ചെയ്യാനാകൂ. - c5soc_sharedonly ബോർഡ്
ഈ ബോർഡ് വേരിയന്റിൽ HPS DDR കണക്റ്റിവിറ്റി മാത്രമേ അടങ്ങിയിട്ടുള്ളൂ. FPGA DDR ആക്സസ് ചെയ്യാനാകില്ല. ഒരു ഡിഡിആർ മെമ്മറി ബാങ്കിനെ പിന്തുണയ്ക്കാൻ കുറഞ്ഞ ഹാർഡ്വെയർ ആവശ്യമായതിനാൽ ഈ ബോർഡ് വേരിയന്റ് കൂടുതൽ ഏരിയ കാര്യക്ഷമമാണ്. c5soc_sharedonly ബോർഡ് ഒരൊറ്റ DDR മെമ്മറി ബാങ്കുള്ള ഒരു അന്തിമ പ്രൊഡക്ഷൻ ബോർഡിനുള്ള നല്ലൊരു പ്രോട്ടോടൈപ്പിംഗ് പ്ലാറ്റ്ഫോമാണ്.
നിങ്ങളുടെ OpenCL കേർണൽ കംപൈൽ ചെയ്യുമ്പോൾ ഈ ബോർഡ് വേരിയന്റ് ടാർഗെറ്റുചെയ്യുന്നതിന്, നിങ്ങളുടെ aoc കമാൻഡിൽ -board c5soc_sharedonly ഓപ്ഷൻ ഉൾപ്പെടുത്തുക.
-ബോർഡിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് aoc കമാൻഡിന്റെ ഓപ്ഷൻ, OpenCL പ്രോഗ്രാമിംഗ് ഗൈഡിനായി Intel FPGA SDK കാണുക.
ബന്ധപ്പെട്ട ലിങ്കുകൾ
ഒരു പ്രത്യേക FPGA ബോർഡിനായി ഒരു കേർണൽ കംപൈൽ ചെയ്യുന്നു (–ബോർഡ് )
1.1.2 സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിന്റെ ഉള്ളടക്കം
സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം ഇനിപ്പറയുന്നവ ഉൾക്കൊള്ളുന്നു fileകളും ഡയറക്ടറികളും:
File അല്ലെങ്കിൽ ഡയറക്ടറി | വിവരണം |
board_env.xml | എക്സ്റ്റൻസിബിൾ മാർക്ക്അപ്പ് ലാംഗ്വേജ് (XML) file അത് OpenCL-നുള്ള Intel FPGA SDK-ലേക്കുള്ള c5soc വിവരിക്കുന്നു. |
linux_sd_card_image.tgz | കംപ്രസ് ചെയ്ത SD ഫ്ലാഷ് കാർഡ് ചിത്രം file ഒരു SDK ഉപയോക്താവിന് SDK-യ്ക്കൊപ്പം സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് ഉപയോഗിക്കേണ്ടതെല്ലാം അതിൽ അടങ്ങിയിരിക്കുന്നു. |
ഭുജം32 | ഇനിപ്പറയുന്നവ ഉൾക്കൊള്ളുന്ന ഡയറക്ടറി: |
1.1.3 സൈക്ലോൺ V SoC വികസന കിറ്റിന്റെ പ്രസക്തമായ സവിശേഷതകൾ
OpenCL-നുള്ള Intel FPGA SDK-ന് പ്രസക്തമായ Cyclone V SoC ഡെവലപ്മെന്റ് കിറ്റ് ഘടകങ്ങളും സവിശേഷതകളും ഇനിപ്പറയുന്ന ലിസ്റ്റ് ഹൈലൈറ്റ് ചെയ്യുന്നു:
- 9-ബിറ്റ് ലിനക്സിൽ പ്രവർത്തിക്കുന്ന ഡ്യുവൽ-കോർ ARM Cortex-A32 CPU.
- എച്ച്പിഎസിനും എഫ്പിജിഎ കോർ ഫാബ്രിക്കിനും ഇടയിലുള്ള അഡ്വാൻസ്ഡ് എക്സ്റ്റൻസിബിൾ ഇന്റർഫേസ് (എഎക്സ്ഐ) ബസ്.
- രണ്ട് ഹാർഡ്ഡ് ഡിഡിആർ മെമ്മറി കൺട്രോളറുകൾ, ഓരോന്നും 1 ജിഗാബൈറ്റ് (GB) DDR3 SDRAM-ലേക്ക് കണക്ട് ചെയ്യുന്നു.
— ഒരു DDR കൺട്രോളർ FPGA കോറിലേക്ക് മാത്രമേ ആക്സസ് ചെയ്യാനാകൂ (അതായത്, FPGA DDR).
— മറ്റ് DDR കൺട്രോളർ HPS, FPGA (അതായത് HPS DDR) എന്നിവയിൽ ആക്സസ് ചെയ്യാവുന്നതാണ്. ഈ പങ്കിട്ട കൺട്രോളർ CPU നും FPGA കോറിനും ഇടയിൽ സൗജന്യ മെമ്മറി പങ്കിടൽ അനുവദിക്കുന്നു. - CPU-ന് FPGA കോർ ഫാബ്രിക് പുനഃക്രമീകരിക്കാൻ കഴിയും.
1.1.3.1 സൈക്ലോൺ V SoC ഡവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം ഡിസൈൻ ലക്ഷ്യങ്ങളും തീരുമാനങ്ങളും ഇന്റൽ സൈക്ലോൺ V SoC ഡവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം നടപ്പിലാക്കുന്നത് നിരവധി ഡിസൈൻ ലക്ഷ്യങ്ങളിലും തീരുമാനങ്ങളിലും അടിസ്ഥാനമാക്കുന്നു. ഈ റഫറൻസ് പ്ലാറ്റ്ഫോം നിങ്ങളുടെ SoC FPGA ബോർഡിലേക്ക് പോർട്ട് ചെയ്യുമ്പോൾ ഈ ലക്ഷ്യങ്ങളും തീരുമാനങ്ങളും പരിഗണിക്കണമെന്ന് ഇന്റൽ ശുപാർശ ചെയ്യുന്നു.
c5soc ഡിസൈൻ ലക്ഷ്യങ്ങൾ ചുവടെ:
- എഫ്പിജിഎയിലെയും ഡിഡിആർ മെമ്മറി സിസ്റ്റത്തിലെയും (കളിൽ) കേർണലുകൾക്കിടയിൽ സാധ്യമായ ഏറ്റവും ഉയർന്ന ബാൻഡ്വിഡ്ത്ത് നൽകുക.
- FPGA-യിലെ (അതായത്, OpenCL കേർണലുകൾ) കംപ്യൂട്ടേഷനുകൾ, സർവ്വീസ് പെരിഫറലുകൾ ഉൾപ്പെട്ടേക്കാവുന്ന മറ്റ് CPU ടാസ്ക്കുകളിൽ ഇടപെടുന്നില്ലെന്ന് ഉറപ്പാക്കുക.
- ഇന്റർഫേസ് ഘടകങ്ങൾക്ക് പകരം കേർണൽ കംപ്യൂട്ടേഷനുകൾക്കായി കഴിയുന്നത്ര FPGA ഉറവിടങ്ങൾ വിടുക.
ഇന്റലിന്റെ ഡിസൈൻ ലക്ഷ്യങ്ങളുടെ നേരിട്ടുള്ള അനന്തരഫലമായ ഉയർന്ന തലത്തിലുള്ള ഡിസൈൻ തീരുമാനങ്ങൾ ചുവടെയുണ്ട്:
- വിശാലമായ സാധ്യമായ കോൺഫിഗറേഷനുള്ള (256 ബിറ്റുകൾ) ഹാർഡ് ഡിഡിആർ മെമ്മറി കൺട്രോളറുകൾ മാത്രമാണ് റഫറൻസ് പ്ലാറ്റ്ഫോം ഉപയോഗിക്കുന്നത്.
- AXI ബസും HPS-നുള്ളിലെ L3 സ്വിച്ചും ഉൾപ്പെടാതെ FPGA നേരിട്ട് HPS DDR മെമ്മറി കൺട്രോളറുമായി ആശയവിനിമയം നടത്തുന്നു. നേരിട്ടുള്ള ആശയവിനിമയം DDR-ന് സാധ്യമായ ഏറ്റവും മികച്ച ബാൻഡ്വിഡ്ത്ത് നൽകുന്നു, കൂടാതെ CPU-വും അതിന്റെ ചുറ്റളവുകളും തമ്മിലുള്ള ആശയവിനിമയത്തിൽ ഇടപെടുന്നതിൽ നിന്ന് FPGA കംപ്യൂട്ടേഷനുകളെ നിലനിർത്തുന്നു.
- സ്കാറ്റർ-ഗെതർ ഡയറക്ട് മെമ്മറി ആക്സസ് (SG-DMA) FPGA ഇന്റർഫേസ് ലോജിക്കിന്റെ ഭാഗമല്ല. DDR മെമ്മറി സിസ്റ്റങ്ങൾക്കിടയിൽ വലിയ അളവിലുള്ള ഡാറ്റ കൈമാറുന്നതിനുപകരം, പങ്കിട്ട HPS DDR-ൽ ഡാറ്റ സംഭരിക്കുക. എഫ്പിജിഎയുടെ സിപിയു മെമ്മറിയിലേക്കുള്ള നേരിട്ടുള്ള പ്രവേശനം ഡിഎംഎയേക്കാൾ കാര്യക്ഷമമാണ്. ഇത് ഹാർഡ്വെയർ ഉറവിടങ്ങൾ (അതായത്, FPGA ഏരിയ) സംരക്ഷിക്കുകയും ലിനക്സ് കേർണൽ ഡ്രൈവർ ലളിതമാക്കുകയും ചെയ്യുന്നു.
മുന്നറിയിപ്പ്: പങ്കിട്ട HPS DDR സിസ്റ്റവും FPGA-യ്ക്ക് മാത്രം ആക്സസ് ചെയ്യാവുന്ന DDR സിസ്റ്റവും തമ്മിലുള്ള മെമ്മറി കൈമാറ്റം വളരെ മന്ദഗതിയിലാണ്. നിങ്ങൾ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ
ഈ രീതിയിൽ മെമ്മറി ട്രാൻസ്ഫർ ചെയ്യുക, വളരെ ചെറിയ അളവിലുള്ള ഡാറ്റയ്ക്ക് മാത്രം ഉപയോഗിക്കുക. - ഒരു 2-ബിറ്റ് പോർട്ട് മാത്രം ഉപയോഗിച്ച് HPS-to-FPGA (H32F) ബ്രിഡ്ജ് വഴി ഹോസ്റ്റും ഉപകരണവും പരസ്പരം DMA ഇതര ഡാറ്റാ കൈമാറ്റം നടത്തുന്നു. കാരണം, ഡിഎംഎ ഇല്ലാതെ, ലിനക്സ് കേർണലിന് ഒരൊറ്റ 32-ബിറ്റ് റീഡ് അല്ലെങ്കിൽ റൈറ്റ് അഭ്യർത്ഥന മാത്രമേ നൽകാൻ കഴിയൂ, അതിനാൽ വിശാലമായ കണക്ഷൻ ആവശ്യമില്ല.
- ഭാരം കുറഞ്ഞ H2F (LH2F) ബ്രിഡ്ജ് വഴി ഹോസ്റ്റ് ഉപകരണത്തിലേക്ക് നിയന്ത്രണ സിഗ്നലുകൾ അയയ്ക്കുന്നു.
ഹോസ്റ്റിൽ നിന്ന് ഉപകരണത്തിലേക്കുള്ള നിയന്ത്രണ സിഗ്നലുകൾ ലോ-ബാൻഡ്വിഡ്ത്ത് സിഗ്നലുകളായതിനാൽ, ഒരു LH2F ബ്രിഡ്ജ് ടാസ്ക്കിന് അനുയോജ്യമാണ്.
1.2 നിങ്ങളുടെ SoC FPGA ബോർഡിലേക്ക് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ട് ചെയ്യുന്നു
നിങ്ങളുടെ SoC FPGA ബോർഡിലേക്ക് സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ട് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന ജോലികൾ ചെയ്യുക:
- നിങ്ങളുടെ ഡിസൈനിന്റെ ആരംഭ പോയിന്റായി c5soc റഫറൻസ് പ്ലാറ്റ്ഫോമിന്റെ ഒരു DDR മെമ്മറി അല്ലെങ്കിൽ രണ്ട് DDR മെമ്മറി പതിപ്പ് തിരഞ്ഞെടുക്കുക.
- ALTERAOCLSDKROOT/board/c5soc/ എന്നതിലെ പിൻ ലൊക്കേഷനുകൾ അപ്ഡേറ്റ് ചെയ്യുക /top.qsf file, ALTERAOCLSDKROOT എന്നത് OpenCL ഇൻസ്റ്റാളേഷനായി Intel FPGA SDK-യുടെ സ്ഥാനത്തേക്കുള്ള പാതയാണ്, കൂടാതെ ബോർഡ് വേരിയന്റിന്റെ ഡയറക്ടറി നാമമാണ്. c5soc_sharedonly ഡയറക്ടറി ഒരു DDR മെമ്മറി സിസ്റ്റമുള്ള ബോർഡ് വേരിയന്റിനുള്ളതാണ്. രണ്ട് ഡിഡിആർ മെമ്മറി സിസ്റ്റങ്ങളുള്ള ബോർഡ് വേരിയന്റിനുള്ളതാണ് c5soc ഡയറക്ടറി.
- ALTERAOCLSDKROOT/board/c5soc/ എന്നതിലെ HPS കൂടാതെ/അല്ലെങ്കിൽ FPGA SDRAM ബ്ലോക്കുകൾക്കായുള്ള DDR ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക /system.qsys file.
4. OpenCL മുൻഗണനയുള്ള ബോർഡ് ഡിസൈനുകൾക്കുള്ള എല്ലാ Intel FPGA SDK-യും ഗ്യാരണ്ടീഡ് ടൈമിംഗ് ക്ലോഷർ നേടിയിരിക്കണം. അതുപോലെ, ഡിസൈനിന്റെ പ്ലെയ്സ്മെന്റ് ടൈമിംഗ് ക്ലീൻ ആയിരിക്കണം. നിങ്ങളുടെ SoC FPGA ബോർഡിലേക്ക് c5soc ബോർഡ് പാർട്ടീഷൻ (acl_iface_partition.qxp) പോർട്ട് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന ജോലികൾ ചെയ്യുക:
ബോർഡ് പാർട്ടീഷൻ പരിഷ്ക്കരിക്കുന്നതിനും സംരക്ഷിക്കുന്നതിനുമുള്ള വിശദമായ നിർദ്ദേശങ്ങൾക്കായി, ക്വാർട്ടസ് കാണുക
ക്വാർട്ടസ് പ്രൈം സ്റ്റാൻഡേർഡ് എഡിഷൻ ഹാൻഡ്ബുക്കിന്റെ ഹൈറാർക്കിക്കൽ, ടീം-ബേസ്ഡ് ഡിസൈൻ ചാപ്റ്ററിനായുള്ള പ്രൈം ഇൻക്രിമെന്റൽ കംപൈലേഷൻ.
എ. ALTERAOCLSDKROOT/board/c5soc/c5soc ഡയറക്ടറിയിൽ നിന്ന് acl_iface_partition.qxp നീക്കം ചെയ്യുക.
ബി. Tcl കമാൻഡ് set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region-ലേക്ക് set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region-ലേക്ക് മാറ്റിക്കൊണ്ട് acl_iface_region LogicLock™ മേഖല പ്രവർത്തനക്ഷമമാക്കുക
സി. നിങ്ങളുടെ ബോർഡിനായി ഒരു OpenCL കേർണൽ കംപൈൽ ചെയ്യുക.
ഡി. ആവശ്യമെങ്കിൽ, LogicLock മേഖലയുടെ വലുപ്പവും സ്ഥാനവും ക്രമീകരിക്കുക.
ഇ. നിങ്ങളുടെ ഡിസൈനിന്റെ പ്ലെയ്സ്മെന്റ് ടൈമിംഗ് ക്ലീൻ ആണെന്ന് നിങ്ങൾക്ക് തൃപ്തിയുണ്ടെങ്കിൽ, ആ പാർട്ടീഷൻ acl_iface_partition.qxp ക്വാർട്ടസ് പ്രൈം എക്സ്പോർട്ടഡ് പാർട്ടീഷൻ ആയി എക്സ്പോർട്ട് ചെയ്യുക File.
ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോം ടൂൾകിറ്റ് ഉപയോക്തൃ ഗൈഡിനായി, ഈ .qxp ഇറക്കുമതി ചെയ്യുന്നതിലൂടെ, AIntel FPGA SDK-യുടെ എസ്റ്റാബ്ലിഷിംഗ് ഗ്യാരണ്ടീഡ് ടൈമിംഗ് ഫ്ലോ വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ file ഉയർന്ന തലത്തിലുള്ള ഡിസൈനിലേക്ക്, ഗ്യാരണ്ടീഡ് ടൈമിംഗ് ക്ലോഷർ ഫ്ലോ ഉള്ള ഒരു ബോർഡ് ഡിസൈൻ നൽകേണ്ടതിന്റെ ആവശ്യകത നിങ്ങൾ നിറവേറ്റുന്നു.
നിങ്ങളുടെ കയറ്റുമതി ചെയ്ത പാർട്ടീഷന്റെ ഫലങ്ങളുടെ (QoR) ഗുണമേന്മയെ ബാധിച്ചേക്കാവുന്ന ഘടകങ്ങൾക്കായി, OpenCL കസ്റ്റം പ്ലാറ്റ്ഫോം ടൂൾകിറ്റ് ഉപയോക്തൃ ഗൈഡിനായി Intel FPGA SDK-യിലെ എക്സ്പോർട്ടുചെയ്ത ബോർഡ് പാർട്ടീഷൻ വിഭാഗത്തിനായുള്ള ഫലങ്ങളുടെ പൊതു ഗുണനിലവാരം പരിഗണിക്കുക.
എഫ്. 2-ാം ഘട്ടത്തിലെ കമാൻഡ് set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region-ലേക്ക് പുനഃസ്ഥാപിച്ച് acl_iface_region LogicLock മേഖല പ്രവർത്തനരഹിതമാക്കുക. - നിങ്ങളുടെ SoC FPGA ബോർഡ് HPS ബ്ലോക്കിന്റെ വ്യത്യസ്ത പിന്നുകളും പെരിഫററികളും ഉപയോഗിക്കുന്നുവെങ്കിൽ, പ്രീലോഡറും ഉപകരണ ട്രീ ഉറവിടവും (DTS) പുനഃസൃഷ്ടിക്കുക file. നിങ്ങൾ HPS DDR മെമ്മറി കൺട്രോളർ ക്രമീകരണം മാറ്റുകയാണെങ്കിൽ, പ്രീലോഡർ പുനഃസൃഷ്ടിക്കുക.
- SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കുക.
- SD ഫ്ലാഷ് കാർഡ് ഇമേജ് ഉൾപ്പെടുന്ന നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം സൃഷ്ടിക്കുക.
- OpenCL-നുള്ള Intel FPGA Runtime Environment (RTE)-നൊപ്പം ഉപയോഗിക്കുന്നതിന് നിങ്ങളുടെ കസ്റ്റം പ്ലാറ്റ്ഫോമിന്റെ ഒരു റൺടൈം എൻവയോൺമെന്റ് പതിപ്പ് സൃഷ്ടിക്കുന്നത് പരിഗണിക്കുക. നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമിന്റെ RTE പതിപ്പിൽ ഹാർഡ്വെയർ ഡയറക്ടറികളും SD ഫ്ലാഷ് കാർഡ് ചിത്രവും ഉൾപ്പെടുന്നില്ല. ഹോസ്റ്റ് ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കാൻ അനുവദിക്കുന്നതിന് ഈ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം SoC FPGA സിസ്റ്റത്തിലേക്ക് ലോഡ് ചെയ്യുന്നു. ഇതിനു വിപരീതമായി, OpenCL കേർണലുകൾ കംപൈൽ ചെയ്യുന്നതിന് SDK-ന് ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമിന്റെ SDK പതിപ്പ് ആവശ്യമാണ്.
നുറുങ്ങ്: RTE-യ്ക്കായി നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമിന്റെ SDK പതിപ്പ് നിങ്ങൾക്ക് ഉപയോഗിക്കാം. സംരക്ഷിക്കാൻ
ഇടം, നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമിന്റെ RTE പതിപ്പിൽ നിന്ന് SD ഫ്ലാഷ് കാർഡ് ചിത്രം നീക്കം ചെയ്യുക. - നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം പരിശോധിക്കുക.
കൂടുതൽ വിവരങ്ങൾക്ക് OpenCL കസ്റ്റം പ്ലാറ്റ്ഫോം ടൂൾകിറ്റ് ഉപയോക്തൃ ഗൈഡിനായി Intel FPGA SDK-യുടെ ഹാർഡ്വെയർ ഡിസൈൻ പരീക്ഷിക്കുന്ന വിഭാഗം കാണുക.
ബന്ധപ്പെട്ട ലിങ്കുകൾ
- ഹാർഡ്വെയർ ഡിസൈൻ പരിശോധിക്കുന്നു
- ഹൈരാർക്കിക്കൽ, ടീം-ബേസ്ഡ് ഡിസൈനിനായുള്ള ക്വാർട്ടസ് പ്രൈം ഇൻക്രിമെന്റൽ കംപൈലേഷൻ
- ഗ്യാരണ്ടീഡ് ടൈമിംഗ് ഫ്ലോ സ്ഥാപിക്കുന്നു
- എക്സ്പോർട്ട് ചെയ്ത ബോർഡ് പാർട്ടീഷനുള്ള ഫലങ്ങളുടെ പൊതു ഗുണനിലവാരം പരിഗണിക്കുക
1.2.1 പോർട്ടഡ് റഫറൻസ് പ്ലാറ്റ്ഫോം അപ്ഡേറ്റ് ചെയ്യുന്നു
സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിന്റെ നിലവിലെ പതിപ്പിൽ, എല്ലാ നോൺകേർണൽ ലോജിക്കും നിർവചിക്കുന്ന പാർട്ടീഷനിലാണ് HPS ബ്ലോക്ക്. എന്നിരുന്നാലും, .qxp-യുടെ ഭാഗമായി നിങ്ങൾക്ക് HPS കയറ്റുമതി ചെയ്യാൻ കഴിയില്ല file. c5soc-ന്റെ മുൻ പതിപ്പിൽ നിന്ന് നിങ്ങൾ പരിഷ്കരിച്ച നിലവിലുള്ള ഒരു കസ്റ്റം പ്ലാറ്റ്ഫോം അപ്ഡേറ്റ് ചെയ്യുന്നതിന്, QXP പ്രിസർവേഷൻ ഫ്ലോ നടപ്പിലാക്കുക, ഏറ്റവും പുതിയ റൺടൈം എൻവയോൺമെന്റ് ലഭിക്കുന്നതിന് SD ഫ്ലാഷ് കാർഡ് ഇമേജ് അപ്ഡേറ്റ് ചെയ്യുക, കൂടാതെ board_spec.xml അപ്ഡേറ്റ് ചെയ്യുക file ഓട്ടോമൈഗ്രേഷൻ പ്രവർത്തനക്ഷമമാക്കാൻ.
ഓപ്പൺസിഎൽ പതിപ്പ് 14.1-നുള്ള Altera® SDK, അതിനപ്പുറമുള്ള അന്വേഷണങ്ങൾ board_spec.xml file ബോർഡ് വിവരങ്ങൾക്കായി, സ്വയമേവയുള്ള അപ്ഡേറ്റുകൾ നടപ്പിലാക്കുന്നു. കാരണം നിങ്ങൾ പരിഷ്ക്കരിക്കുന്നു
QXP പ്രിസർവേഷൻ ഫ്ലോ നടപ്പിലാക്കുന്നതിലൂടെ ഡിസൈൻ, നിങ്ങൾ board_spec.xml അപ്ഡേറ്റ് ചെയ്യണം file നിലവിലെ പതിപ്പിൽ അതിന്റെ ഫോർമാറ്റിലേക്ക്. അപ്ഡേറ്റ് ചെയ്യുന്നു file സംരക്ഷിക്കപ്പെടാത്ത ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമുകളും നിലവിലെ QXP അടിസ്ഥാനമാക്കിയുള്ള കസ്റ്റം പ്ലാറ്റ്ഫോമുകളും തമ്മിൽ വേർതിരിച്ചറിയാൻ SDK-യെ അനുവദിക്കുന്നു. കൂടുതൽ വിവരങ്ങൾക്ക് OpenCL കസ്റ്റം പ്ലാറ്റ്ഫോം ടൂൾകിറ്റ് ഉപയോക്തൃ ഗൈഡിനായി Intel FPGA SDK-യിലെ ഫോർവേഡ് കോംപാറ്റിബിലിറ്റിക്കായി കസ്റ്റം പ്ലാറ്റ്ഫോം ഓട്ടോമൈഗ്രേഷൻ കാണുക.
- c5soc-ന്റെ മുൻ പതിപ്പിൽ നിന്ന് പോർട്ട് ചെയ്ത Cyclone V SoC FPGA ഹാർഡ്വെയർ ഡിസൈനിൽ QXP പ്രിസർവേഷൻ ഫ്ലോ നടപ്പിലാക്കാൻ, .qxp-ൽ നിന്ന് HPS-നെ ഒഴിവാക്കുന്നതിന് ഒരു ഉപപാർട്ടിഷൻ സൃഷ്ടിക്കാൻ ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ ചെയ്യുക file:
എ. നോൺകേർണൽ ലോജിക്കിന് ചുറ്റും ഒരു പാർട്ടീഷൻ സൃഷ്ടിക്കുന്നതിന് മുമ്പ്, .qsf ക്വാർട്ടസ് പ്രൈം ക്രമീകരണങ്ങളിൽ HPS-ന് ചുറ്റും ഒരു പാർട്ടീഷൻ സൃഷ്ടിക്കുക. File.
ഉദാampLe:
# HPS-dedicated I/O set_instance_assignment -നെയിം PARTITION_HIERARCHY ബോർഡ്_18261 -ലേക്ക് "സിസ്റ്റം:The_system|സിസ്റ്റം_acl_iface:acl_iface|system_acl_iface_psips| system_acl_iface_hps_0_hps_io_border:ബോർഡർ" -section_id "system_acl_iface_hps_0_hps_io_border:ബോർഡർ"
# ക്വാർട്ടസിന്റെ ബാക്കി ഭാഗങ്ങൾ ശരിയായി പ്രോസസ്സ് ചെയ്യുന്നതിനായി പാർട്ടീഷൻ ഒരു HPS_PARTITION തരമായി സജ്ജമാക്കുക
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=on
–incremental_compilation_export_flatten=ഓഫ്
പാർട്ടീഷനിൽ നിന്ന് HPS ഒഴിവാക്കിയ ശേഷം, നിങ്ങൾക്ക് .qxp ഇറക്കുമതി ചെയ്യാം file നിങ്ങളുടെ ഡിസൈൻ കംപൈൽ ചെയ്യുക. - താഴെപ്പറയുന്ന ജോലികൾ ചെയ്തുകൊണ്ട് OpenCL-നുള്ള Intel FPGA RTE-യുടെ നിലവിലെ പതിപ്പ് ഉപയോഗിച്ച് SD ഫ്ലാഷ് കാർഡ് ഇമേജ് അപ്ഡേറ്റ് ചെയ്യുക:
എ. മൗണ്ട് ദി file അലോക്കേഷൻ ടേബിളും (fat32) വിപുലീകരിച്ചതും file സിസ്റ്റം (ext3) പാർട്ടീഷനുകൾ നിലവിലുള്ള ഇമേജിൽ ലൂപ്പ്-ബാക്ക് ഡിവൈസുകളായി. വിശദമായ നിർദ്ദേശങ്ങൾക്ക്, ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് നിർമ്മിക്കുന്നതിനുള്ള ഘട്ടം 2 കാണുക.
ബി. /home/root/opencl_arm32_rte ഡയറക്ടറിയിൽ, നീക്കം ചെയ്യുക fileRTE-യുടെ മുൻ പതിപ്പിൽ നിന്നുള്ളതാണ്.
സി. /home/root/opencl_arm32_rte ഡയറക്ടറിയിലേക്ക് RTE-യുടെ നിലവിലെ വെരിസൺ ഡൗൺലോഡ് ചെയ്ത് അൺപാക്ക് ചെയ്യുക.
ഡി. ൽ /driver/version.h 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-ൽ ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കുന്നു
നിങ്ങൾക്ക് ഒരു പുതിയ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കാനുള്ള ഓപ്ഷനും ഉണ്ട്. - ഫോർവേഡ് കോംപാറ്റിബിലിറ്റിക്കായുള്ള കസ്റ്റം പ്ലാറ്റ്ഫോം ഓട്ടോമൈഗ്രേഷൻ
1.3 പങ്കിട്ട മെമ്മറിയ്ക്കുള്ള സോഫ്റ്റ്വെയർ പിന്തുണ
SoC FPGA-കളിൽ പ്രവർത്തിക്കുന്ന OpenCL കേർണലുകൾക്ക് FPGA, CPU എന്നിവയ്ക്കിടയിലുള്ള പങ്കിട്ട ഫിസിക്കൽ മെമ്മറിയാണ് ഇഷ്ടപ്പെട്ട മെമ്മറി. പങ്കിട്ട വെർച്വൽ മെമ്മറിയിൽ നിന്ന് വ്യത്യസ്തമായി, FPGA പങ്കിട്ട ഫിസിക്കൽ മെമ്മറി ആക്സസ് ചെയ്യുന്നതിനാൽ, ഫിസിക്കൽ പേജ് വിലാസങ്ങളിലേക്ക് ഉപയോക്തൃ വിർച്ച്വൽ വിലാസങ്ങൾ മാപ്പ് ചെയ്യുന്ന സിപിയു പേജ് ടേബിളുകളിലേക്ക് ഇതിന് ആക്സസ് ഇല്ല.
ഹാർഡ്വെയറുമായി ബന്ധപ്പെട്ട്, ഓപ്പൺസിഎൽ കേർണലുകൾ എച്ച്പിഎസ് ഡിഡിആർ ഹാർഡ് മെമ്മറി കൺട്രോളറിലേക്കുള്ള നേരിട്ടുള്ള കണക്ഷനിലൂടെ പങ്കിട്ട ഫിസിക്കൽ മെമ്മറി ആക്സസ് ചെയ്യുന്നു. സോഫ്റ്റ്വെയറുമായി ബന്ധപ്പെട്ട്, പങ്കിട്ട ഫിസിക്കൽ മെമ്മറിക്കുള്ള പിന്തുണയിൽ ഇനിപ്പറയുന്ന പരിഗണനകൾ ഉൾപ്പെടുന്നു:
- സിപിയുവിൽ മെമ്മറി അനുവദിക്കുന്നതിനുള്ള സാധാരണ സോഫ്റ്റ്വെയർ നടപ്പിലാക്കലുകൾ (ഉദാample, malloc() ഫംഗ്ഷന് FPGA ഉപയോഗിച്ചേക്കാവുന്ന ഒരു മെമ്മറി റീജിയൻ അനുവദിക്കാൻ കഴിയില്ല.
malloc() ഫംഗ്ഷൻ അനുവദിക്കുന്ന മെമ്മറി വെർച്വൽ മെമ്മറി അഡ്രസ് സ്പെയ്സിൽ അടുത്തടുത്താണ്, എന്നാൽ ഏതെങ്കിലും അടിസ്ഥാന ഫിസിക്കൽ പേജുകൾ ഫിസിക്കൽ ആയി ബന്ധപ്പെട്ടിരിക്കാൻ സാധ്യതയില്ല. അതുപോലെ, ആതിഥേയൻ ശാരീരികമായി-അടുത്തുള്ള മെമ്മറി മേഖലകൾ അനുവദിക്കാൻ കഴിയണം. എന്നിരുന്നാലും, ലിനക്സിലെ യൂസർ-സ്പേസ് ആപ്ലിക്കേഷനുകളിൽ ഈ കഴിവ് നിലവിലില്ല. അതിനാൽ, ലിനക്സ് കേർണൽ ഡ്രൈവർ അലോക്കേഷൻ നടത്തണം. - OpenCL SoC FPGA Linux കേർണൽ ഡ്രൈവറിൽ എംഎംഎപി() ഫംഗ്ഷൻ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. mmap() ഫംഗ്ഷൻ ഒരു ഉപകരണവുമായി പങ്കിടുന്നതിനായി ഫിസിക്കലി-കോൺക്യൂട്ടസ് മെമ്മറി റീജിയണുകൾ അഭ്യർത്ഥിക്കുന്നതിന് dma_alloc_coherent() എന്ന സ്റ്റാൻഡേർഡ് ലിനക്സ് കേർണൽ കോൾ ഉപയോഗിക്കുന്നു.
- ഡിഫോൾട്ട് ലിനക്സ് കേർണലിൽ, dma_alloc_coherent() 0.5 മെഗാബൈറ്റിലധികം (MB) വലിപ്പമുള്ള ഫിസിക്കൽ-കോൺറ്റിഗ്യൂസ് മെമ്മറി അനുവദിക്കുന്നില്ല. dma_alloc_coherent()-നെ വലിയ അളവിലുള്ള ഫിസിക്കൽ-കോൺറ്റിഗ്യൂസ് മെമ്മറി അനുവദിക്കുന്നതിന്, ലിനക്സ് കേർണലിന്റെ കൺടിഗ്യൂസ് മെമ്മറി അലോക്കേറ്റർ (CMA) ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കുക, തുടർന്ന് ലിനക്സ് കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യുക.
സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിനായി, 512 GB ഫിസിക്കൽ മെമ്മറിയിൽ 1 MB CMA കൈകാര്യം ചെയ്യുന്നു. ആപ്ലിക്കേഷന് ആവശ്യമായ പങ്കിട്ട മെമ്മറിയുടെ അളവ് അനുസരിച്ച് നിങ്ങൾക്ക് ഈ മൂല്യം കൂട്ടുകയോ കുറയ്ക്കുകയോ ചെയ്യാം. dma_alloc_coherent() കോളിന് 512 MB ഫിസിക്കലി-കോൺട്ടിഗ്യൂസ് മെമ്മറി അനുവദിക്കാൻ കഴിഞ്ഞേക്കില്ല; എന്നിരുന്നാലും, ഇതിന് ഏകദേശം 450 MB മെമ്മറി ലഭിക്കും. - dma_alloc_coherent() കോൾ അനുവദിക്കുന്ന മെമ്മറി CPU-ന് കാഷെ ചെയ്യാൻ കഴിയും. പ്രത്യേകിച്ചും, ഹോസ്റ്റ് ആപ്ലിക്കേഷനിൽ നിന്നുള്ള റൈറ്റ് പ്രവർത്തനങ്ങൾ OpenCL കേർണലുകൾക്ക് ദൃശ്യമല്ല. OpenCL SoC FPGA Linux കേർണൽ ഡ്രൈവറിലുള്ള mmap() ഫംഗ്ഷനിൽ ഈ മെമ്മറി മേഖലയ്ക്കുള്ള കാഷിംഗ് വ്യക്തമായി പ്രവർത്തനരഹിതമാക്കുന്നതിന് pgprot_noncached() അല്ലെങ്കിൽ remap_pf_range() ഫംഗ്ഷനിലേക്കുള്ള കോളുകളും അടങ്ങിയിരിക്കുന്നു.
- 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. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ലിനക്സ് കേർണൽ ഡ്രൈവറിന് ലഭിക്കുന്ന ഫിസിക്കൽ വിലാസം ഓപ്പൺസിഎൽ കേർണൽ HPS SDRAM-ലേക്ക് കൈമാറുന്ന Avalon® വിലാസമായി മാറുന്നു.
റൺടൈം ലൈബ്രറിയുമായി ബന്ധപ്പെട്ട്, ഇനിപ്പറയുന്ന രീതിയിൽ ഒരു ഉപകരണ ബഫറായി പങ്കിട്ട മെമ്മറി അനുവദിക്കുന്നതിന് clCreateBuffer() കോൾ ഉപയോഗിക്കുക:
- പങ്കിട്ടതും അല്ലാത്തതുമായ മെമ്മറിയുള്ള രണ്ട്-ഡിഡിആർ ബോർഡ് വേരിയന്റിന്, നിങ്ങൾ CL_MEM_USE_HOST_PTR ഫ്ലാഗ് വ്യക്തമാക്കുകയാണെങ്കിൽ, clCreateBuffer() പങ്കിട്ട മെമ്മറി അനുവദിക്കും. മറ്റ് ഫ്ലാഗുകൾ ഉപയോഗിക്കുന്നത് clCreateBuffer()-നെ പങ്കിടാത്ത മെമ്മറിയിൽ ബഫർ അനുവദിക്കുന്നതിന് കാരണമാകുന്നു.
- പങ്കിട്ട മെമ്മറി മാത്രമുള്ള വൺ-ഡിഡിആർ ബോർഡ് വേരിയന്റിന്, നിങ്ങൾ ഏത് ഫ്ലാഗ് വ്യക്തമാക്കിയാലും clCreateBuffer() പങ്കിട്ട മെമ്മറി അനുവദിക്കും.
നിലവിൽ, ARM CPU-ലെ 32-ബിറ്റ് ലിനക്സ് പിന്തുണ SDK റൺടൈം ലൈബ്രറികളിലെ പങ്കിട്ട മെമ്മറി പിന്തുണയുടെ പരിധി നിയന്ത്രിക്കുന്നു. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, റൺടൈം ലൈബ്രറികൾ മറ്റ് പരിതസ്ഥിതികളിലേക്ക് സമാഹരിച്ചിരിക്കുന്നു (ഉദാample, x86_64 Linux അല്ലെങ്കിൽ 64-bit Windows) പങ്കിട്ട മെമ്മറി പിന്തുണയ്ക്കുന്നില്ല.
ഇനിപ്പറയുന്ന കാരണങ്ങളാൽ പങ്കിട്ടതും പങ്കിടാത്തതുമായ മെമ്മറിയെ വേർതിരിച്ചറിയാൻ C5soc വൈവിധ്യമാർന്ന മെമ്മറി നടപ്പിലാക്കിയില്ല:
1. ചരിത്രം-പങ്കിട്ട മെമ്മറി പിന്തുണ യഥാർത്ഥത്തിൽ സൃഷ്ടിച്ചപ്പോൾ വൈവിധ്യമാർന്ന മെമ്മറി പിന്തുണ ലഭ്യമായിരുന്നില്ല.
2. യൂണിഫോം ഇന്റർഫേസ്-ഓപ്പൺസിഎൽ ഒരു ഓപ്പൺ സ്റ്റാൻഡേർഡ് ആയതിനാൽ, ഇന്റൽ വൈവിധ്യമാർന്ന കമ്പ്യൂട്ടിംഗ് പ്ലാറ്റ്ഫോം വെണ്ടർമാർക്കിടയിൽ സ്ഥിരത നിലനിർത്തുന്നു. അതിനാൽ, പങ്കിട്ട മെമ്മറി അനുവദിക്കുന്നതിനും ഉപയോഗിക്കുന്നതിനും മറ്റ് ബോർഡ് വെണ്ടർമാരുടെ ആർക്കിടെക്ചറുകളുടെ അതേ ഇന്റർഫേസ് ഉപയോഗിക്കുന്നു.
1.4 FPGA പുനർക്രമീകരണം
SoC FPGA-കൾക്കായി, CPU-യുടെ പ്രവർത്തനത്തെ തടസ്സപ്പെടുത്താതെ തന്നെ FPGA കോർ ഫാബ്രിക് പുനഃക്രമീകരിക്കാൻ CPU-ന് കഴിയും. FPGA മാനേജർ ഹാർഡ്വെയർ ബ്ലോക്ക് എച്ച്പിഎസും കോർ എഫ്പിജിഎയും പുനഃക്രമീകരിക്കുന്നു. ലിനക്സ് കേർണലിൽ FPGA മാനേജറിലേക്ക് എളുപ്പത്തിൽ പ്രവേശനം സാധ്യമാക്കുന്ന ഒരു ഡ്രൈവർ ഉൾപ്പെടുന്നു.
- ലേക്ക് view FPGA കോറിന്റെ നില, cat /sys/class/fpga/fpga0/ സ്റ്റാറ്റസ് കമാൻഡ് അഭ്യർത്ഥിക്കുക.
Cyclone V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിൽ ലഭ്യമായ OpenCL പ്രോഗ്രാം യൂട്ടിലിറ്റിക്കായുള്ള Intel FPGA SDK, FPGA പ്രോഗ്രാം ചെയ്യുന്നതിന് ഈ ഇന്റർഫേസ് ഉപയോഗിക്കുന്നു. ഒരു പ്രവർത്തിക്കുന്ന CPU ഉപയോഗിച്ച് ഒരു FPGA കോർ റീപ്രോഗ്രാം ചെയ്യുമ്പോൾ, പ്രോഗ്രാം യൂട്ടിലിറ്റി ഇനിപ്പറയുന്ന എല്ലാ ജോലികളും ചെയ്യുന്നു:
1. റീപ്രോഗ്രാമിംഗിന് മുമ്പ്, FPGA-നും HPS-നും ഇടയിലുള്ള എല്ലാ ആശയവിനിമയ പാലങ്ങളും പ്രവർത്തനരഹിതമാക്കുക, H2F, LH2F ബ്രിഡ്ജുകൾ.
റീപ്രോഗ്രാമിംഗ് പൂർത്തിയാക്കിയ ശേഷം ഈ പാലങ്ങൾ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക.
ശ്രദ്ധിക്കുക: OpenCL സിസ്റ്റം FPGA-to-HPS (F2H) ബ്രിഡ്ജ് ഉപയോഗിക്കുന്നില്ല. കൂടുതൽ വിവരങ്ങൾക്ക് Cyclone V ഉപകരണ ഹാൻഡ്ബുക്കിലെ HPS-FPGA ഇന്റർഫേസ് വിഭാഗം, വാല്യം 3: ഹാർഡ് പ്രോസസർ സിസ്റ്റം ടെക്നിക്കൽ റഫറൻസ് മാനുവൽ കാണുക.
2. റീപ്രോഗ്രാമിംഗ് സമയത്ത് FPGA-യും HPS DDR കൺട്രോളറും തമ്മിലുള്ള ലിങ്ക് പ്രവർത്തനരഹിതമാക്കിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.
3. റീപ്രോഗ്രാമിംഗ് സമയത്ത് FPGA-യിലെ FPGA തടസ്സങ്ങൾ പ്രവർത്തനരഹിതമാക്കിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.
കൂടാതെ, റീപ്രോഗ്രാമിംഗ് സമയത്ത് FPGA-യിൽ നിന്നുള്ള തടസ്സങ്ങൾ നിരസിക്കാൻ ഡ്രൈവറെ അറിയിക്കുക.
യഥാർത്ഥ നിർവ്വഹണത്തെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾക്ക് പ്രോഗ്രാം യൂട്ടിലിറ്റിയുടെ സോഴ്സ് കോഡ് പരിശോധിക്കുക.
മുന്നറിയിപ്പ്: CPU പ്രവർത്തിക്കുമ്പോൾ HPS DDR കൺട്രോളറിന്റെ കോൺഫിഗറേഷൻ മാറ്റരുത്.
അങ്ങനെ ചെയ്യുന്നത് മാരകമായ ഒരു സിസ്റ്റം പിശകിന് കാരണമായേക്കാം, കാരണം സിപിയുവിൽ നിന്ന് മികച്ച മെമ്മറി ഇടപാടുകൾ ഉണ്ടാകുമ്പോൾ നിങ്ങൾ DDR കൺട്രോളർ കോൺഫിഗറേഷൻ മാറ്റിയേക്കാം. ഇതിനർത്ഥം, CPU പ്രവർത്തിക്കുമ്പോൾ, മറ്റൊരു കോൺഫിഗറേഷനിൽ HPS DDR ഉപയോഗിക്കുന്ന ഒരു ഇമേജ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് FPGA കോർ റീപ്രോഗ്രാം ചെയ്യാൻ പാടില്ല എന്നാണ്.
OpenCL സിസ്റ്റവും Intel SoC FPGA എംബഡഡ് ഡിസൈൻ സ്യൂട്ടിൽ (EDS) ലഭ്യമായ ഗോൾഡൻ ഹാർഡ്വെയർ റഫറൻസ് ഡിസൈനും HPS DDR-നെ ഒരൊറ്റ 256-ബിറ്റ് മോഡിലേക്ക് സജ്ജമാക്കുന്നുവെന്ന് ഓർമ്മിക്കുക.
ബ്രാഞ്ച് പ്രെഡിക്റ്റർ അല്ലെങ്കിൽ പേജ് ടേബിൾ പ്രീഫെച്ചർ പോലുള്ള സിപിയു സിസ്റ്റം ഭാഗങ്ങൾ സിപിയുവിൽ ഒന്നും പ്രവർത്തിക്കുന്നില്ലെന്ന് ദൃശ്യമാകുമ്പോൾ പോലും ഡിഡിആർ കമാൻഡുകൾ നൽകിയേക്കാം.
അതിനാൽ, HPS DDR കൺട്രോളർ കോൺഫിഗറേഷൻ സജ്ജമാക്കുന്നതിനുള്ള ഒരേയൊരു സുരക്ഷിത സമയം ബൂട്ട് സമയമാണ്.
യു-ബൂട്ടിന് ഒരു റോ ബൈനറി ഉണ്ടായിരിക്കണമെന്നും ഇത് സൂചിപ്പിക്കുന്നു file മെമ്മറിയിലേക്ക് ലോഡ് ചെയ്യാൻ (.rbf) ചിത്രം. അല്ലെങ്കിൽ, നിങ്ങൾ FPGA-യിൽ ഉപയോഗിക്കാത്ത പോർട്ടുകൾ ഉപയോഗിച്ച് HPS DDR പ്രവർത്തനക്ഷമമാക്കുകയും പിന്നീട് പോർട്ട് കോൺഫിഗറേഷനുകൾ മാറ്റുകയും ചെയ്യാം. ഇക്കാരണത്താൽ, ഓപ്പൺസിഎൽ ലിനക്സ് കേർണൽ ഡ്രൈവറിൽ എച്ച്പിഎസ് ഡിഡിആർ കൺട്രോളർ കോൺഫിഗറേഷൻ സജ്ജീകരിക്കുന്നതിന് ആവശ്യമായ ലോജിക് ഉൾപ്പെടുത്തിയിട്ടില്ല.
SW3 ഡ്യുവൽ ഇൻ-ലൈൻ പാക്കേജ് (ഡിഐപി) സൈലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റിലെ സ്വിച്ചുകൾ .rbf ഇമേജിന്റെ പ്രതീക്ഷിക്കുന്ന രൂപത്തെ നിയന്ത്രിക്കുന്നു (അതായത്, file കംപ്രസ് ചെയ്തതും കൂടാതെ/അല്ലെങ്കിൽ എൻക്രിപ്റ്റ് ചെയ്തതുമാണ്). C5soc, SoC EDS-നൊപ്പം ലഭ്യമായ ഗോൾഡൻ ഹാർഡ്വെയർ റഫറൻസ് ഡിസൈൻ എന്നിവയിൽ കംപ്രസ് ചെയ്തതും എന്നാൽ എൻക്രിപ്റ്റ് ചെയ്യാത്തതുമായ .rbf ഇമേജുകൾ ഉൾപ്പെടുന്നു. OpenCL Cyclone V SoC-നുള്ള Intel FPGA SDK-ൽ വിവരിച്ചിരിക്കുന്ന SW3 DIP സ്വിച്ച് ക്രമീകരണങ്ങൾ ഈ .rbf ഇമേജ് കോൺഫിഗറേഷനുമായി പൊരുത്തപ്പെടുന്നു.
ബന്ധപ്പെട്ട ലിങ്കുകൾ
- HPS-FPGA ഇന്റർഫേസുകൾ
- SW3 സ്വിച്ചുകൾ ക്രമീകരിക്കുന്നു
1.4.1 FPGA സിസ്റ്റം ആർക്കിടെക്ചർ വിശദാംശങ്ങൾ
Cyclone V SoC ഡവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിനുള്ള പിന്തുണ 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 ഒരു ചിപ്പിലെ ഒരു പൂർണ്ണ സിസ്റ്റം ആയതിനാൽ, സിസ്റ്റത്തിന്റെ പൂർണ്ണമായ നിർവചനം നൽകുന്നതിന് നിങ്ങൾ ഉത്തരവാദിയാണ്. ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജിന്റെ രൂപത്തിൽ നിങ്ങൾ ഇത് ഡെലിവർ ചെയ്യാൻ ഇന്റൽ ശുപാർശ ചെയ്യുന്നു. OpenCL ഉപയോക്താവിനുള്ള Intel FPGA SDK-ന് മൈക്രോ SD ഫ്ലാഷ് കാർഡിലേക്ക് ചിത്രം എഴുതാൻ കഴിയും, SoC FPGA ബോർഡ് ഉപയോഗത്തിന് തയ്യാറാണ്.
പേജ് 13-ൽ നിലവിലുള്ള ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് പരിഷ്ക്കരിക്കുന്നു
Cyclone V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിൽ ലഭ്യമായ ഇമേജ് പരിഷ്ക്കരിക്കാൻ ഇന്റൽ ശുപാർശ ചെയ്യുന്നു. നിങ്ങൾക്ക് ഒരു പുതിയ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കാനുള്ള ഓപ്ഷനും ഉണ്ട്.
പേജ് 14-ൽ ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കുന്നു
നിങ്ങൾക്ക് ഒരു പുതിയ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കാനുള്ള ഓപ്ഷനും ഉണ്ട്.
1.5.1 നിലവിലുള്ള ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് പരിഷ്ക്കരിക്കുന്നു
Cyclone V SoC ഉപയോഗിച്ച് ലഭ്യമായ ഇമേജ് പരിഷ്ക്കരിക്കാൻ ഇന്റൽ ശുപാർശ ചെയ്യുന്നു
വികസന കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം. നിങ്ങൾക്ക് ഒരു പുതിയ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കാനുള്ള ഓപ്ഷനും ഉണ്ട്.
c5soc linux_sd_card_image.tgz ചിത്രം file ALTERAOCLSDKROOT/board/c5soc ഡയറക്ടറിയിൽ ലഭ്യമാണ്, ഇവിടെ ALTERAOCLSDKROOT OpenCL-ന്റെ ഇൻസ്റ്റലേഷൻ ഡയറക്ടറിക്കായി Intel FPGA SDK-യുടെ പാതയിലേക്ക് പോയിന്റ് ചെയ്യുന്നു.
ശ്രദ്ധ: SD ഫ്ലാഷ് കാർഡ് ഇമേജ് പരിഷ്ക്കരിക്കുന്നതിന്, നിങ്ങൾക്ക് റൂട്ട് അല്ലെങ്കിൽ സുഡോ പ്രത്യേകാവകാശങ്ങൾ ഉണ്ടായിരിക്കണം.
- $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz വിഘടിപ്പിക്കാൻ file, tar xvfzlinux_sd_card_image.tgz കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
- hello_world OpenCL ex കംപൈൽ ചെയ്യുകampനിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം പിന്തുണ ഉപയോഗിച്ച് ഡിസൈൻ ചെയ്യുക. .rbf-ന്റെ പേര് മാറ്റുക file OpenCL ഓഫ്ലൈൻ കംപൈലറിനായുള്ള Intel FPGA SDK, opencl.rbf ആയി ജനറേറ്റുചെയ്യുന്നു, അത് SD ഫ്ലാഷ് കാർഡ് ഇമേജിനുള്ളിലെ fat32 പാർട്ടീഷനിൽ സ്ഥാപിക്കുന്നു.
നിങ്ങൾക്ക് hello_world ex ഡൗൺലോഡ് ചെയ്യാംampഓപ്പൺസിഎൽ ഡിസൈൻ എക്സിൽ നിന്നുള്ള ഡിസൈൻampആൾട്ടറയിലെ ലെസ് പേജ് webസൈറ്റ്. - .rbf സ്ഥാപിക്കുക file ഫ്ലാഷ് കാർഡ് ഇമേജിന്റെ fat32 പാർട്ടീഷനിലേക്ക്.
ശ്രദ്ധ: fat32 പാർട്ടീഷനിൽ zImage രണ്ടും അടങ്ങിയിരിക്കണം file കൂടാതെ .rbf file. ഒരു .rbf ഇല്ലാതെ file, നിങ്ങൾ ഡ്രൈവർ തിരുകുമ്പോൾ ഒരു മാരകമായ പിശക് സംഭവിക്കും. - നിങ്ങൾ SD കാർഡ് ഇമേജ് സൃഷ്ടിച്ചതിന് ശേഷം, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് അത് ഒരു മൈക്രോ SD കാർഡിലേക്ക് എഴുതുക: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- നിങ്ങളുടെ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് പരിശോധിക്കുന്നതിന്, ഇനിപ്പറയുന്ന ജോലികൾ ചെയ്യുക:
എ. SoC FPGA ബോർഡിൽ മൈക്രോ SD ഫ്ലാഷ് കാർഡ് ചേർക്കുക.
ബി. ബോർഡ് പവർ അപ്പ് ചെയ്യുക.
സി. aocl ഡയഗ്നോസിസ് യൂട്ടിലിറ്റി കമാൻഡ് അഭ്യർത്ഥിക്കുക.
1.5.2 ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കുന്നു
നിങ്ങൾക്ക് ഒരു പുതിയ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് സൃഷ്ടിക്കാനുള്ള ഓപ്ഷനും ഉണ്ട്. ഒരു പുതിയ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് നിർമ്മിക്കുന്നതിനും നിലവിലുള്ള SD ഫ്ലാഷ് കാർഡ് ഇമേജ് പുനർനിർമ്മിക്കുന്നതിനുമുള്ള പൊതുവായ നിർദ്ദേശങ്ങൾ RocketBoards.org-ന്റെ GSRD v14.0.2 - SD കാർഡ് പേജിൽ ലഭ്യമാണ്. webസൈറ്റ്.
ഗോൾഡൻ സിസ്റ്റം റഫറൻസ് ഡിസൈൻ (GSRD) SD ഫ്ലാഷ് കാർഡ് ഇമേജിൽ നിന്ന് linux_sd_card_image.tgz ഇമേജ് സൃഷ്ടിക്കുന്നതിനുള്ള നടപടിക്രമം ചുവടെയുള്ള ഘട്ടങ്ങൾ വിവരിക്കുന്നു:
കുറിപ്പ്:
c5soc ഇമേജിൽ നിന്ന് ചിത്രം സൃഷ്ടിക്കുന്നതിന്, ഈ നടപടിക്രമത്തിൽ പറഞ്ഞിരിക്കുന്ന എല്ലാ ബാധകമായ ജോലികളും ചെയ്യുക.
- Rocketboards.org-ൽ നിന്ന് GSRD SD ഫ്ലാഷ് കാർഡ് ഇമേജ് പതിപ്പ് 14.0 ഡൗൺലോഡ് ചെയ്ത് അൺപാക്ക് ചെയ്യുക.
- മൗണ്ട് ദി 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 കമാൻഡ്.
ഡി. mount /dev/loop0 /media/disk1 കമാൻഡ് ഉപയോഗിച്ച് ലൂപ്പ് ഉപകരണം മൌണ്ട് ചെയ്യുക.
ചിത്രത്തിനുള്ളിൽ file, /media/disk1 ഇപ്പോൾ ഒരു മൌണ്ട് ചെയ്ത fat32 പാർട്ടീഷനാണ്.
ഇ. ext3 പാർട്ടീഷനായി a മുതൽ d വരെയുള്ള ഘട്ടങ്ങൾ ആവർത്തിക്കുക. - ഓപ്പൺസിഎൽ പാക്കേജിനായി Intel FPGA റൺടൈം എൻവയോൺമെന്റിന്റെ Cyclone V SoC FPGA പതിപ്പ് Altera-യിലെ ഡൗൺലോഡ് സെന്ററിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുക. webസൈറ്റ്.
എ. ക്വാർട്ടസ് പ്രൈം സോഫ്റ്റ്വെയർ പതിപ്പിന് അടുത്തുള്ള ഡൗൺലോഡ് ബട്ടൺ ക്ലിക്ക് ചെയ്യുക.
ബി. റിലീസ് പതിപ്പ്, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം, ഡൗൺലോഡ് രീതി എന്നിവ വ്യക്തമാക്കുക.
സി. അധിക സോഫ്റ്റ്വെയർ ടാബിൽ ക്ലിക്ക് ചെയ്ത് Intel FPGA ഡൗൺലോഡ് ചെയ്യാൻ തിരഞ്ഞെടുക്കുക
OpenCL Linux സൈക്ലോൺ V SoC TGZ-നുള്ള റൺടൈം എൻവയോൺമെന്റ്.
ഡി. നിങ്ങൾ aocl-rte- ഡൗൺലോഡ് ചെയ്ത ശേഷം- .arm32.tgz file, ഇതിലേക്ക് അൺപാക്ക് ചെയ്യുക
നിങ്ങളുടെ ഉടമസ്ഥതയിലുള്ള ഒരു ഡയറക്ടറി. - പായ്ക്ക് ചെയ്യാത്ത aocl-rte- വയ്ക്കുക ചിത്രത്തിന്റെ ext32 പാർട്ടീഷനിൽ /home/root/opencl_arm32_rte ഡയറക്ടറിയിലേക്ക് .arm3 ഡയറക്ടറി file.
- നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമിന്റെ ഹാർഡ്വെയർ ഫോൾഡർ(കൾ) ഇല്ലാതാക്കുക, തുടർന്ന് ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം /home/root/ opencl_arm32_rte എന്ന ബോർഡ് ഉപഡയറക്ടറിയിൽ സ്ഥാപിക്കുക.
- 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/acls.kocls.
എൻവയോൺമെന്റ് വേരിയബിളുകളും OpenCL Linux കേർണൽ ഡ്രൈവറും ലോഡ് ചെയ്യുന്നതിനായി SDK ഉപയോക്താവ് source ./init_opencl.sh കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നു. - നിങ്ങൾക്ക് പ്രീലോഡർ അപ്ഡേറ്റ് ചെയ്യണമെങ്കിൽ, ഡി.ടി.എസ് files, അല്ലെങ്കിൽ Linux കേർണൽ, നിങ്ങൾക്ക് SoC EDS-ൽ നിന്നുള്ള arm-linux-gnueabihf-gcc കമ്പൈലർ ആവശ്യമാണ്. സോഫ്റ്റ്വെയർ സ്വന്തമാക്കാനും അവ വീണ്ടും കംപൈൽ ചെയ്യാനും പ്രസക്തമായത് അപ്ഡേറ്റ് ചെയ്യാനും Intel SoC FPGA എംബഡഡ് ഡിസൈൻ സ്യൂട്ട് യൂസർ ഗൈഡിൽ പറഞ്ഞിരിക്കുന്ന നിർദ്ദേശങ്ങൾ പാലിക്കുക fileമൌണ്ട് ചെയ്ത fat32 പാർട്ടീഷനിൽ s.
ശ്രദ്ധ: നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമിന് c5soc-ൽ ഉള്ളതിനേക്കാൾ വ്യത്യസ്ത പിൻ ഉപയോഗങ്ങൾ ഉണ്ടെങ്കിൽ, നിങ്ങൾ പ്രീലോഡർ അപ്ഡേറ്റ് ചെയ്യേണ്ടി വരാൻ സാധ്യതയുണ്ട്.
ഓർക്കുക: നിങ്ങൾ ലിനക്സ് കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യുകയാണെങ്കിൽ, അതേ ലിനക്സ് കേർണൽ സോഴ്സ് ഉപയോഗിച്ച് ലിനക്സ് കേർണൽ ഡ്രൈവർ വീണ്ടും കംപൈൽ ചെയ്യുക. fileഎസ്. ലിനക്സ് കേർണൽ ഡ്രൈവറും ലിനക്സ് കേർണലും തമ്മിൽ പൊരുത്തക്കേട് ഉണ്ടെങ്കിൽ, ഡ്രൈവർ ലോഡ് ചെയ്യില്ല. കൂടാതെ, നിങ്ങൾ CMA പ്രവർത്തനക്ഷമമാക്കണം.
കൂടുതൽ വിവരങ്ങൾക്ക് Linux കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യുന്നത് കാണുക. - hello_world OpenCL ex കംപൈൽ ചെയ്യുകampനിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോം പിന്തുണ ഉപയോഗിച്ച് ഡിസൈൻ ചെയ്യുക. .rbf-ന്റെ പേര് മാറ്റുക file OpenCL ഓഫ്ലൈൻ കംപൈലറിനായുള്ള Intel FPGA SDK, opencl.rbf ആയി ജനറേറ്റുചെയ്യുന്നു, അത് SD ഫ്ലാഷ് കാർഡ് ഇമേജിനുള്ളിലെ fat32 പാർട്ടീഷനിൽ സ്ഥാപിക്കുന്നു.
നിങ്ങൾക്ക് hello_world ex ഡൗൺലോഡ് ചെയ്യാംampഓപ്പൺസിഎൽ ഡിസൈൻ എക്സിൽ നിന്നുള്ള ഡിസൈൻampആൾട്ടറയിലെ ലെസ് പേജ് webസൈറ്റ്.
9. നിങ്ങൾ ആവശ്യമായ എല്ലാം സംഭരിച്ച ശേഷം fileഫ്ലാഷ് കാർഡ് ഇമേജിലേക്ക്, ഇനിപ്പറയുന്ന കമാൻഡുകൾ അഭ്യർത്ഥിക്കുക:
എ. സമന്വയിപ്പിക്കുക
ബി. /media/disk1 അൺമൗണ്ട് ചെയ്യുക
സി. അൺമൗണ്ട് ചെയ്യുക എവിടെ പേജ് 3-ലെ 3-ൽ ext3 പാർട്ടീഷൻ മൌണ്ട് ചെയ്യാൻ നിങ്ങൾ ഉപയോഗിക്കുന്ന ഡയറക്ടറി നാമമാണ് (ഉദാ.ample, /media/disk2).
ഡി. ലോസ്റ്റപ്പ് -d /dev/loop0
ഇ. ലോസ്റ്റപ്പ് -d /dev/loop1 - ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് SD ഫ്ലാഷ് കാർഡ് ഇമേജ് കംപ്രസ് ചെയ്യുക: tar cvfz .tgz linux_sd_card_image
- എത്തിക്കുക .tgz file നിങ്ങളുടെ ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമിന്റെ റൂട്ട് ഡയറക്ടറിക്കുള്ളിൽ.
- നിങ്ങളുടെ SD ഫ്ലാഷ് കാർഡ് ഇമേജ് പരിശോധിക്കുന്നതിന്, ഇനിപ്പറയുന്ന ജോലികൾ ചെയ്യുക:
എ. തത്ഫലമായുണ്ടാകുന്ന കംപ്രസ് ചെയ്യാത്ത ചിത്രം ഒരു മൈക്രോ എസ്ഡി ഫ്ലാഷ് കാർഡിൽ എഴുതുക.
ബി. SoC FPGA ബോർഡിൽ മൈക്രോ SD ഫ്ലാഷ് കാർഡ് ചേർക്കുക.
സി. ബോർഡ് പവർ അപ്പ് ചെയ്യുക.
ഡി. aocl ഡയഗ്നോസിസ് യൂട്ടിലിറ്റി കമാൻഡ് അഭ്യർത്ഥിക്കുക.
ബന്ധപ്പെട്ട ലിങ്കുകൾ
- Intel SoC FPGA ഉൾച്ചേർത്ത ഡിസൈൻ സ്യൂട്ട് ഉപയോക്തൃ ഗൈഡ്
- OpenCL ഡിസൈൻ എക്സിampആൾട്ടറയിലെ ലെസ് പേജ് webസൈറ്റ്
- പേജ് 16-ൽ ലിനക്സ് കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യുന്നു
CMA പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, നിങ്ങൾ ആദ്യം Linux കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യണം. - നിങ്ങളുടെ FPGA ബോർഡിന്റെ ഉപകരണത്തിന്റെ പേര് അന്വേഷിക്കുന്നു (രോഗനിർണയം)
1.6 സൈക്ലോൺ V SoC FPGA-യ്ക്കായി ലിനക്സ് കേർണൽ കംപൈൽ ചെയ്യുന്നു
Cyclone V SoC FPGA ബോർഡിൽ OpenCL ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ്, നിങ്ങൾ Linux കേർണൽ ഉറവിടം കംപൈൽ ചെയ്യണം, കൂടാതെ OpenCL Linux കേർണൽ ഡ്രൈവർ കംപൈൽ ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യണം.
- പേജ് 16-ൽ ലിനക്സ് കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യുന്നു
CMA പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, നിങ്ങൾ ആദ്യം Linux കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യണം. - പേജ് 17-ൽ OpenCL Linux കേർണൽ ഡ്രൈവർ കംപൈൽ ചെയ്യുകയും ഇൻസ്റ്റോൾ ചെയ്യുകയും ചെയ്യുന്നു.
1.6.1 ലിനക്സ് കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യുന്നു
CMA പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, നിങ്ങൾ ആദ്യം Linux കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യണം.
- RocketBoards.org-ന്റെ റിസോഴ്സ് പേജിലെ GSRD v14.0 - കംപൈൽ ലിനക്സ് ലിങ്ക് ക്ലിക്ക് ചെയ്യുക webലിനക്സ് കേർണൽ സോഴ്സ് കോഡ് ഡൗൺലോഡ് ചെയ്യുന്നതിനും പുനർനിർമ്മിക്കുന്നതിനുമുള്ള നിർദ്ദേശങ്ങൾ ആക്സസ് ചെയ്യുന്നതിനുള്ള സൈറ്റ്.
OpenCL-നുള്ള ™ Intel FPGA SDK ഉപയോഗിക്കുന്നതിന്, socfpga-3.13-rel14.0 എന്ന് വ്യക്തമാക്കുക . - ശ്രദ്ധിക്കുക: നിർമ്മാണ പ്രക്രിയ 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
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
CONFIG_CMA_SIZE_MBYTES കോൺഫിഗറേഷൻ മൂല്യം ലഭ്യമായ ഫിസിക്കലി തുടർച്ചയായി മെമ്മറിയുടെ ആകെ എണ്ണത്തിന്റെ ഉയർന്ന പരിധി സജ്ജീകരിക്കുന്നു. നിങ്ങൾക്ക് കൂടുതൽ മെമ്മറി ആവശ്യമുണ്ടെങ്കിൽ ഈ മൂല്യം വർദ്ധിപ്പിക്കാം. - ശ്രദ്ധ: SoC FPGA ബോർഡിൽ ARM പ്രൊസസറിന് ലഭ്യമായ ഫിസിക്കൽ മെമ്മറിയുടെ ആകെ തുക 1 GB ആണ്. CMA മാനേജർ 1 GB-ന് അടുത്ത് സജ്ജമാക്കാൻ ഇന്റൽ ശുപാർശ ചെയ്യുന്നില്ല.
- നിലവിലെ കോൺഫിഗറേഷൻ വൃത്തിയാക്കാൻ make mrproper കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
- make ARCH=arm socfpga_deconfig കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
നിങ്ങൾ ARM ആർക്കിടെക്ചർ കോൺഫിഗർ ചെയ്യണമെന്ന് ARCH=arm സൂചിപ്പിക്കുന്നു.
socfpga_defconfig നിങ്ങൾ സ്വതവേയുള്ള socfpga കോൺഫിഗറേഷൻ ഉപയോഗിക്കണമെന്ന് സൂചിപ്പിക്കുന്നു. - എക്സ്പോർട്ട് CROSS_COMPILE=arm-linux-gnueabihf- കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
ആവശ്യമുള്ള ടൂൾ ചെയിനിന്റെ പ്രിഫിക്സ് വ്യക്തമാക്കാൻ ഈ കമാൻഡ് CROSS_COMPILE എൻവയോൺമെന്റ് വേരിയബിളിനെ സജ്ജമാക്കുന്നു. - make ARCH=arm zImage കമാൻഡ് പ്രവർത്തിപ്പിക്കുക. തത്ഫലമായുണ്ടാകുന്ന ചിത്രം arch/arm/boot/zImage-ൽ ലഭ്യമാണ് file.
- zImage സ്ഥാപിക്കുക file ഫ്ലാഷ് കാർഡ് ഇമേജിന്റെ fat32 പാർട്ടീഷനിലേക്ക്. വിശദമായ നിർദ്ദേശങ്ങൾക്കായി, Rocketboards.org-ലെ സൈക്ലോൺ V SoC FPGA-നിർദ്ദിഷ്ട GSRD ഉപയോക്തൃ മാനുവൽ കാണുക.
- ശ്രദ്ധിക്കുക: OpenCL Linux കേർണൽ ഡ്രൈവർ ശരിയായി ചേർക്കുന്നതിന്, ആദ്യം ഒരു SDKgenerated.rbf ലോഡ് ചെയ്യുക file FPGA-യിലേക്ക്.
.rbf സൃഷ്ടിക്കാൻ file, ഒരു SDK ഡിസൈൻ കംപൈൽ ചെയ്യുകampടാർഗെറ്റുചെയ്ത കസ്റ്റം പ്ലാറ്റ്ഫോമായി സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിനൊപ്പം le.
9. .rbf സ്ഥാപിക്കുക file ഫ്ലാഷ് കാർഡ് ഇമേജിന്റെ fat32 പാർട്ടീഷനിലേക്ക്.
ശ്രദ്ധിക്കുക: fat32 പാർട്ടീഷനിൽ zImage രണ്ടും അടങ്ങിയിരിക്കണം file കൂടാതെ .rbf file. ഒരു .rbf ഇല്ലാതെ file, നിങ്ങൾ ഡ്രൈവർ തിരുകുമ്പോൾ ഒരു മാരകമായ പിശക് സംഭവിക്കും. - നിങ്ങൾ പരിഷ്കരിച്ചതോ മുമ്പ് സൃഷ്ടിച്ചതോ ആയ SD കാർഡ് ഇമേജ് അടങ്ങുന്ന പ്രോഗ്രാം ചെയ്ത മൈക്രോ SD കാർഡ് സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റിലേക്ക് തിരുകുക, തുടർന്ന് SoC FPGA ബോർഡ് പവർ അപ്പ് ചെയ്യുക.
- uname -r കമാൻഡ് പ്രവർത്തിപ്പിച്ച് ഇൻസ്റ്റാൾ ചെയ്ത ലിനക്സ് കേർണലിന്റെ പതിപ്പ് പരിശോധിക്കുക.
- SoC FPGA ബോർഡ് പവർ അപ്പ് ചെയ്തുകൊണ്ട്, കേർണലിൽ നിങ്ങൾ CMA വിജയകരമായി പ്രവർത്തനക്ഷമമാക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കാൻ, grep init_cma /proc/kallsyms കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
ഔട്ട്പുട്ട് ശൂന്യമല്ലെങ്കിൽ CMA പ്രവർത്തനക്ഷമമാക്കും. - SDK-നൊപ്പം വീണ്ടും കമ്പൈൽ ചെയ്ത ലിനക്സ് കേർണൽ ഉപയോഗിക്കുന്നതിന്, Linux കേർണൽ ഡ്രൈവർ കംപൈൽ ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യുക.
ബന്ധപ്പെട്ട ലിങ്കുകൾ
- ഗോൾഡൻ സിസ്റ്റം റഫറൻസ് ഡിസൈൻ (GSRD) ഉപയോക്തൃ മാനുവലുകൾ
- പേജ് 13-ൽ ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് നിർമ്മിക്കുന്നു
Cyclone V SoC FPGA ഒരു ചിപ്പിലെ ഒരു പൂർണ്ണ സിസ്റ്റം ആയതിനാൽ, സിസ്റ്റത്തിന്റെ പൂർണ്ണമായ നിർവചനം നൽകുന്നതിന് നിങ്ങൾ ഉത്തരവാദിയാണ്.
1.6.2 OpenCL Linux കേർണൽ ഡ്രൈവർ കംപൈൽ ചെയ്യുകയും ഇൻസ്റ്റോൾ ചെയ്യുകയും ചെയ്യുന്നു
കംപൈൽ ചെയ്ത കേർണൽ സോഴ്സിന് എതിരായി OpenCL Linux കേർണൽ ഡ്രൈവർ കംപൈൽ ചെയ്യുക.
OpenCL-നുള്ള Intel FPGA റൺടൈം എൻവയോൺമെന്റിന്റെ Cyclone V SoC FPGA പതിപ്പിൽ ഡ്രൈവർ ഉറവിടം ലഭ്യമാണ്. കൂടാതെ, OpenCL- ജനറേറ്റഡ് .rbf-നായി നിങ്ങൾ ഒരു Intel FPGA SDK ലോഡ് ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. file ലിനക്സ് കേർണൽ മൊഡ്യൂളിന്റെ തെറ്റായ ഇൻസ്റ്റാളേഷൻ തടയാൻ FPGA-യിലേക്ക്.
- ഓപ്പൺസിഎൽ പാക്കേജിനായി Intel FPGA റൺടൈം എൻവയോൺമെന്റിന്റെ Cyclone V SoC FPGA പതിപ്പ് Altera-യിലെ ഡൗൺലോഡ് സെന്ററിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുക. webസൈറ്റ്.
എ. ക്വാർട്ടസ് പ്രൈം സോഫ്റ്റ്വെയർ പതിപ്പിന് അടുത്തുള്ള ഡൗൺലോഡ് ബട്ടൺ ക്ലിക്ക് ചെയ്യുക.
ബി. റിലീസ് പതിപ്പ്, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം, ഡൗൺലോഡ് രീതി എന്നിവ വ്യക്തമാക്കുക.
സി. അധിക സോഫ്റ്റ്വെയർ ടാബിൽ ക്ലിക്ക് ചെയ്ത് Intel FPGA ഡൗൺലോഡ് ചെയ്യാൻ തിരഞ്ഞെടുക്കുക
OpenCL Linux സൈക്ലോൺ V SoC TGZ-നുള്ള റൺടൈം എൻവയോൺമെന്റ്.
ഡി. നിങ്ങൾ aocl-rte- ഡൗൺലോഡ് ചെയ്ത ശേഷം- .arm32.tgz file, ഇതിലേക്ക് അൺപാക്ക് ചെയ്യുക
നിങ്ങളുടെ ഉടമസ്ഥതയിലുള്ള ഒരു ഡയറക്ടറി.
ഡ്രൈവർ ഉറവിടം aocl-rte-ലാണ്. .arm32/board/c5soc/ ഡ്രൈവർ ഡയറക്ടറി. - OpenCL Linux കേർണൽ ഡ്രൈവർ വീണ്ടും കംപൈൽ ചെയ്യുന്നതിന്, ഡ്രൈവറുടെ മേക്കിൽ KDIR മൂല്യം സജ്ജമാക്കുക.file Linux കേർണൽ ഉറവിടം അടങ്ങിയ ഡയറക്ടറിയിലേക്ക് files.
- നിങ്ങളുടെ ടൂൾ ചെയിനിന്റെ പ്രിഫിക്സ് സൂചിപ്പിക്കാൻ എക്സ്പോർട്ട് CROSS_COMPILE=arm-linux-gnueabihf- കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
- make clean കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
- aclsoc_drv.ko സൃഷ്ടിക്കാൻ make കമാൻഡ് പ്രവർത്തിപ്പിക്കുക file.
- opencl_arm32_rte ഡയറക്ടറി Cyclone V SoC FPGA ബോർഡിലേക്ക് മാറ്റുക.
scp -r പ്രവർത്തിപ്പിക്കുന്നു root@your-ipaddress: കമാൻഡ് റൺടൈം എൻവയോൺമെന്റ്/ഹോം/റൂട്ട് ഡയറക്ടറിയിൽ സ്ഥാപിക്കുന്നു. - നിങ്ങൾ SD കാർഡിമേജ് നിർമ്മിക്കുമ്പോൾ നിങ്ങൾ സൃഷ്ടിച്ച init_opencl.sh സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക.
- aocl ഡയഗ്നോസിസ് യൂട്ടിലിറ്റി കമാൻഡ് അഭ്യർത്ഥിക്കുക. നിങ്ങൾ init_opencl.sh വിജയകരമായി പ്രവർത്തിപ്പിച്ചതിന് ശേഷം ഡയഗ്നോസിസ് യൂട്ടിലിറ്റി ഒരു പാസിംഗ് ഫലം നൽകും.
1.7 അറിയപ്പെടുന്ന പ്രശ്നങ്ങൾ
നിലവിൽ, Cyclone V SoC ഡവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോമിനൊപ്പം OpenCL-നുള്ള Intel FPGA SDK ഉപയോഗിക്കുന്നതിന് ചില പരിമിതികളുണ്ട്.
- clGetDeviceInfo() കോളിന്റെ CL_DEVICE_VENDOR, CL_DEVICE_NAME സ്ട്രിംഗുകൾ റിപ്പോർട്ട് ചെയ്ത വെണ്ടർ, ബോർഡ് പേരുകൾ നിങ്ങൾക്ക് അസാധുവാക്കാൻ കഴിയില്ല.
- പങ്കിട്ട ഡിഡിആർ സിസ്റ്റത്തിൽ (അതായത്, എച്ച്പിഎസ് ഡിഡിആർ) ഹോസ്റ്റ് സ്ഥിരമായ മെമ്മറി അനുവദിക്കുകയും കേർണൽ എക്സിക്യൂഷന് ശേഷം സ്ഥിരമായ മെമ്മറി പരിഷ്കരിക്കുകയും ചെയ്താൽ, മെമ്മറിയിലെ ഡാറ്റ കാലഹരണപ്പെട്ടേക്കാം. CPU-ടു-HPS DDR ഇടപാടുകളിൽ FPGA കോറിന് സ്നൂപ്പ് ചെയ്യാൻ കഴിയാത്തതിനാലാണ് ഈ പ്രശ്നം ഉണ്ടാകുന്നത്.
കാലഹരണപ്പെട്ട ഡാറ്റ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് തുടർന്നുള്ള കേർണൽ എക്സിക്യൂഷനുകൾ തടയുന്നതിന്, ഇനിപ്പറയുന്ന പരിഹാരങ്ങളിൽ ഒന്ന് നടപ്പിലാക്കുക:
• ഇനീഷ്യലൈസേഷന് ശേഷം സ്ഥിരമായ മെമ്മറി പരിഷ്കരിക്കരുത്.
• നിങ്ങൾക്ക് ഒന്നിലധികം __സ്ഥിരമായ ഡാറ്റാ സെറ്റുകൾ ആവശ്യമുണ്ടെങ്കിൽ, ഒന്നിലധികം സ്ഥിരമായ മെമ്മറി ബഫറുകൾ സൃഷ്ടിക്കുക.
• ലഭ്യമെങ്കിൽ, നിങ്ങളുടെ ആക്സിലറേറ്റർ ബോർഡിലെ FPGA DDR-ൽ സ്ഥിരമായ മെമ്മറി അനുവദിക്കുക. - ARM-ലെ SDK യൂട്ടിലിറ്റി പ്രോഗ്രാമിനെ പിന്തുണയ്ക്കുകയും യൂട്ടിലിറ്റി കമാൻഡുകൾ കണ്ടെത്തുകയും ചെയ്യുന്നു.
ഇനിപ്പറയുന്ന കാരണങ്ങളാൽ ഫ്ലാഷ്, ഇൻസ്റ്റാൾ, അൺഇൻസ്റ്റാൾ യൂട്ടിലിറ്റി കമാൻഡുകൾ സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റിന് ബാധകമല്ല:
എ. ഇൻസ്റ്റോൾ യൂട്ടിലിറ്റി aclsoc_drv Linux കേർണൽ ഡ്രൈവർ കംപൈൽ ചെയ്യുകയും SoC FPGA-യിൽ പ്രവർത്തനക്ഷമമാക്കുകയും വേണം. വികസന യന്ത്രം സമാഹരണം നടത്തണം; എന്നിരുന്നാലും, SoC FPGA-യ്ക്കുള്ള ലിനക്സ് കേർണൽ ഉറവിടങ്ങൾ ഇതിൽ ഇതിനകം അടങ്ങിയിരിക്കുന്നു. ഡെവലപ്മെന്റ് മെഷീനിനായുള്ള ലിനക്സ് കേർണൽ ഉറവിടങ്ങൾ SoC FPGA-യിൽ നിന്ന് വ്യത്യസ്തമാണ്. SoC FPGA-യ്ക്കുള്ള Linux കേർണൽ ഉറവിടങ്ങളുടെ സ്ഥാനം SDK ഉപയോക്താവിന് അജ്ഞാതമായിരിക്കും. അതുപോലെ, അൺഇൻസ്റ്റാൾ യൂട്ടിലിറ്റിയും സൈക്ലോൺ V SoC ഡെവലപ്മെന്റ് കിറ്റിന് ലഭ്യമല്ല.
കൂടാതെ, Cyclone V SoC ഡെവലപ്മെന്റ് കിറ്റിന്റെ ഡിഫോൾട്ട് വിതരണത്തിൽ Linux കെർണൽ ഉൾപ്പെടാത്തതിനാൽ SoC ബോർഡിലേക്ക് aclsoc_drv എത്തിക്കുന്നത് വെല്ലുവിളിയാണ്. files അല്ലെങ്കിൽ GNU കമ്പൈലർ കളക്ഷൻ (GCC) കമ്പൈലർ.
ബി. ഫ്ലാഷ് യൂട്ടിലിറ്റിക്ക് ഒരു .rbf സ്ഥാപിക്കേണ്ടതുണ്ട് file മൈക്രോ എസ്ഡി ഫ്ലാഷ് കാർഡിന്റെ FAT32 പാർട്ടീഷനിലേക്ക് ഒരു OpenCL ഡിസൈൻ. നിലവിൽ, SDK ഉപയോക്താവ് ബോർഡ് പവർ അപ്പ് ചെയ്യുമ്പോൾ ഈ പാർട്ടീഷൻ മൌണ്ട് ചെയ്യപ്പെടുന്നില്ല. അതിനാൽ, പാർട്ടീഷൻ അപ്ഡേറ്റ് ചെയ്യുന്നതിനുള്ള ഏറ്റവും നല്ല മാർഗം ഫ്ലാഷ് കാർഡ് റീഡറും ഡെവലപ്മെന്റ് മെഷീനും ഉപയോഗിക്കുക എന്നതാണ്. - ഓപ്പൺസിഎൽ ഓഫ്ലൈൻ കംപൈലർ എക്സിക്യൂട്ടബിളിനായി ഇന്റൽ എഫ്പിജിഎ എസ്ഡികെയ്ക്കിടയിൽ മാറുമ്പോൾ fileവ്യത്യസ്ത ബോർഡ് വകഭേദങ്ങളുമായി (അതായത്, c5soc, c5soc_sharedonly) പൊരുത്തപ്പെടുന്ന s (.aocx), .aocx ലോഡ് ചെയ്യുന്നതിന് നിങ്ങൾ SDK-യുടെ പ്രോഗ്രാം യൂട്ടിലിറ്റി ഉപയോഗിക്കണം. file ആദ്യമായി പുതിയ ബോർഡ് വേരിയന്റിനായി. നിങ്ങൾ ഒരു പുതിയ ബോർഡ് വേരിയന്റ് ഉപയോഗിച്ച് ഹോസ്റ്റ് ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, മറ്റൊരു ബോർഡ് വേരിയന്റിൽ നിന്നുള്ള ചിത്രം FPGA-യിൽ അടങ്ങിയിരിക്കുന്നുവെങ്കിൽ, ഒരു മാരകമായ പിശക് സംഭവിക്കാം.
- .qxp file ക്വാർട്ടസ് പ്രൈം സോഫ്റ്റ്വെയർ സ്ഥിരമായി ഈ പാർട്ടീഷന്റെ സമയ ആവശ്യകതകൾ നിറവേറ്റുന്നതിനാൽ ഇന്റർഫേസ് പാർട്ടീഷൻ അസൈൻമെന്റുകൾ ഉൾപ്പെടുന്നില്ല.
- നിങ്ങൾ ബോർഡ് പവർ അപ്പ് ചെയ്യുമ്പോൾ, അതിന്റെ മീഡിയ ആക്സസ് കൺട്രോൾ (MAC) വിലാസം ഒരു റാൻഡം നമ്പറായി സജ്ജീകരിക്കും. നിങ്ങളുടെ LAN നയം ഈ സ്വഭാവം അനുവദിക്കുന്നില്ലെങ്കിൽ, ഇനിപ്പറയുന്ന ജോലികൾ ചെയ്തുകൊണ്ട് MAC വിലാസം സജ്ജമാക്കുക:
എ. യു-ബൂട്ട് പവർ-അപ്പ് സമയത്ത്, യു-ബൂട്ട് കമാൻഡ് പ്രോംപ്റ്റിൽ പ്രവേശിക്കുന്നതിന് ഏതെങ്കിലും കീ അമർത്തുക.
ബി. കമാൻഡ് പ്രോംപ്റ്റിൽ setenv ethaddr 00:07:ed:00:00:03 എന്ന് ടൈപ്പ് ചെയ്യുക.
നിങ്ങൾക്ക് ഏത് MAC വിലാസവും തിരഞ്ഞെടുക്കാം.
സി. saveenv കമാൻഡ് ടൈപ്പ് ചെയ്യുക.
ഡി. ബോർഡ് റീബൂട്ട് ചെയ്യുക.
1.8 ഡോക്യുമെന്റ് റിവിഷൻ ചരിത്രം
പട്ടിക 1.
OpenCL സൈക്ലോൺ V SoC-നുള്ള Intel FPGA SDK-യുടെ ഡോക്യുമെന്റ് റിവിഷൻ ചരിത്രം
വികസന കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ടിംഗ് ഗൈഡ്
തീയതി | പതിപ്പ് | മാറ്റങ്ങൾ |
മെയ്-17 | 2017.05.08 | •മെയിന്റനൻസ് റിലീസ്. |
ഒക്ടോബർ 2016 | 2016.10.31 | •ഓപ്പൺസിഎല്ലിനായി ഓപ്പൺസിഎല്ലിനായി റീബ്രാൻഡഡ് ആൾട്ടേറ എസ്ഡികെ മുതൽ ഇന്റൽ എഫ്പിജിഎ എസ്ഡികെ വരെ. ഓപ്പൺസിഎൽ ഓഫ്ലൈൻ കംപൈലറിനായി ഇന്റൽ എഫ്പിജിഎ എസ്ഡികെയിലേക്ക് ആൾട്ടേറ ഓഫ്ലൈൻ കംപൈലർ റീബ്രാൻഡുചെയ്തു. |
മെയ്-16 | 2016.05.02 | •ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് നിർമ്മിക്കുന്നതിനും പരിഷ്ക്കരിക്കുന്നതിനുമുള്ള പരിഷ്ക്കരിച്ച നിർദ്ദേശങ്ങൾ. •ലിനക്സ് കേർണലും ഓപ്പൺസിഎൽ ലിനക്സ് കേർണൽ ഡ്രൈവറും വീണ്ടും കംപൈൽ ചെയ്യുന്നതിനുള്ള പരിഷ്കരിച്ച നിർദ്ദേശങ്ങൾ. |
നവംബർ-15 | 2015.11.02 | •മെയിന്റനൻസ് റിലീസ്, ക്വാർട്ടസ് II ന്റെ ഉദാഹരണങ്ങൾ ക്വാർട്ടസ് പ്രൈം ആക്കി മാറ്റി. |
മെയ്-15 | 15.0.0 | •FPGA റീകോൺഫിഗറേഷനിൽ, FPGA കോർ റീപ്രോഗ്രാം ചെയ്യുന്നതിനുള്ള നിർദ്ദേശം നീക്കം ചെയ്തു കൂടെ . പൂച്ചയെ വിളിച്ച് rbf ചിത്രം fileപേര്>. rbf > /dev/ fpga0 കമാൻഡ് കാരണം ഈ രീതി ശുപാർശ ചെയ്തിട്ടില്ല. |
ഡിസംബർ -14 | 14.1.0 | •ഡോക്യുമെന്റിനെ Altera Cyclone V SoC ഡവലപ്മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ടിംഗ് ഗൈഡ് എന്ന് പുനർനാമകരണം ചെയ്തു. •റിപ്രോഗ്രാം യൂട്ടിലിറ്റി aocl പ്രോഗ്രാമിലേക്ക് അപ്ഡേറ്റ് ചെയ്തുfilename>.aocx യൂട്ടിലിറ്റി കമാൻഡ്. Aocl ഡയഗ്നോസിസ്, aocl ഡയഗ്നോസിസ് എന്നിവയിലേക്ക് ഡയഗ്നോസ്റ്റിക് യൂട്ടിലിറ്റി അപ്ഡേറ്റ് ചെയ്തു യൂട്ടിലിറ്റി കമാൻഡ്. • ഗ്യാരണ്ടീഡ് ടൈമിംഗ് ക്ലോഷർ ഫ്ലോയ്ക്കായി ഒരു ടൈമിംഗ്-ക്ലീൻ പാർട്ടീഷൻ സൃഷ്ടിക്കുന്നതിന് c5soc ബോർഡ് പാർട്ടീഷൻ പോർട്ട് ചെയ്യുന്നതിനും പരിഷ്ക്കരിക്കുന്നതിനുമുള്ള നിർദ്ദേശങ്ങൾ ഉൾപ്പെടുത്തുന്നതിന് നിങ്ങളുടെ SoC ബോർഡിലേക്ക് റഫറൻസ് പ്ലാറ്റ്ഫോം പോർട്ട് ചെയ്യുന്നതിലെ നടപടിക്രമം അപ്ഡേറ്റ് ചെയ്തു. •ഇനിപ്പറയുന്ന ജോലികൾക്കായുള്ള നടപടിക്രമങ്ങൾ രൂപപ്പെടുത്തുന്നതിന് ഒരു പോർട്ടഡ് റഫറൻസ് പ്ലാറ്റ്ഫോം അപ്ഡേറ്റ് ചെയ്യുന്ന വിഷയം ചേർത്തു: 1.ബോർഡ് പാർട്ടീഷനിലെ ഹാർഡ് പ്രോസസർ സിസ്റ്റം (HPS) ബ്ലോക്ക് ഒഴികെ 2.SD ഫ്ലാഷ് കാർഡ് ഇമേജ് അപ്ഡേറ്റ് ചെയ്യുന്നു •ബിൽഡിംഗ് ഒരു SD ഫ്ലാഷ് കാർഡ് ഇമേജ് വിഭാഗം അപ്ഡേറ്റ് ചെയ്തു. SoC എംബഡഡ് ഡിസൈൻ സ്യൂട്ടിൽ (EDS) ലഭ്യമായ ചിത്രത്തിന് പകരം ഗോൾഡൻ സിസ്റ്റം റഫറൻസ് ഡിസൈൻ (GSRD) ചിത്രത്തിന്റെ പതിപ്പ് 14.0 ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു. •ലിനക്സ് കേർണലും ഓപ്പൺസിഎൽ ലിനക്സ് കേർണൽ ഡ്രൈവർ വിഭാഗവും റീകംപൈൽ ചെയ്യുന്നത് അപ്ഡേറ്റ് ചെയ്തു: 1. CROSS COMPILE വേരിയബിൾ സജ്ജമാക്കുന്നതിനുള്ള നിർദ്ദേശം ചേർത്തു. 2.CMA വിജയകരമായി പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടോയെന്ന് പരിശോധിക്കാൻ നിങ്ങൾ പ്രവർത്തിപ്പിക്കുന്ന കമാൻഡ് മാറ്റി. |
ജൂലൈ-14 | 14.0.0 | •പ്രാരംഭ റിലീസ്. |
പ്രമാണങ്ങൾ / വിഭവങ്ങൾ
![]() |
OpenCL-നുള്ള intel FPGA SDK [pdf] ഉപയോക്തൃ ഗൈഡ് OpenCL-നുള്ള FPGA SDK, FPGA SDK, OpenCL-നുള്ള SDK, SDK |