OpenCL కోసం FPGA SDK
వినియోగదారు గైడ్
UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite కోసం చివరిగా అప్డేట్ చేయబడింది: 17.0
సభ్యత్వం పొందండి
అభిప్రాయాన్ని పంపండి
OpenCL™ Intel® Cyclone®V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ పోర్టింగ్ గైడ్ కోసం Intel® FPGA SDK
V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ పోర్టింగ్ గైడ్ OpenCL కోసం Intel సాఫ్ట్వేర్ డెవలప్మెంట్ కిట్ (SDK)తో ఉపయోగించడానికి Intel సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ (c5soc) యొక్క హార్డ్వేర్ మరియు సాఫ్ట్వేర్ డిజైన్ను వివరిస్తుంది Intel ® FPGA SDK. ® మీరు ప్రారంభించడానికి ముందు, కింది పత్రాల విషయాలతో మిమ్మల్ని మీరు పరిచయం చేసుకోవాలని ఇంటెల్ గట్టిగా సిఫార్సు చేస్తోంది:
- OpenCLintel సైక్లోన్ V SoC కోసం Intel FPGA SDK ప్రారంభ మార్గదర్శిని
- OpenCL కస్టమ్ ప్లాట్ఫారమ్ టూల్కిట్ యూజర్ గైడ్ కోసం Intel FPGA SDK
- సైక్లోన్ V డివైస్ హ్యాండ్బుక్, వాల్యూమ్ 3: హార్డ్ ప్రాసెసర్ సిస్టమ్ టెక్నికల్ రిఫరెన్స్ మాన్యువల్ అదనంగా, ఆల్టెరా యొక్క సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ మరియు SoC ఎంబెడెడ్ డిజైన్ సూట్ పేజీని చూడండి. webమరింత సమాచారం కోసం సైట్. 1 2
శ్రద్ధ: OpenCL కస్టమ్ ప్లాట్ఫారమ్ టూల్కిట్ యూజర్ గైడ్ కోసం Intel FPGA SDK గురించి మీకు లోతైన అవగాహన ఉందని Intel ఊహిస్తుంది. సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ పోర్టింగ్ గైడ్ సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ కోసం అనుకూల ప్లాట్ఫారమ్ను అమలు చేయడానికి SDK యొక్క అనుకూల ప్లాట్ఫారమ్ టూల్కిట్ వినియోగాన్ని వివరించలేదు. ఇది సైక్లోన్ V SoC డెవలప్మెంట్ కిట్లోని SDK మద్దతు మరియు OpenCL కస్టమ్ ప్లాట్ఫారమ్ కోసం సాధారణ Intel FPGA SDK మధ్య తేడాలను మాత్రమే వివరిస్తుంది.
సంబంధిత లింకులు
- OpenCL సైక్లోన్ V SoC కోసం Intel FPGA SDK ప్రారంభ మార్గదర్శిని
- OpenCL కస్టమ్ ప్లాట్ఫారమ్ టూల్కిట్ యూజర్ గైడ్ కోసం Intel FPGA SDK
- సైక్లోన్ V డివైస్ హ్యాండ్బుక్, వాల్యూమ్ 3: హార్డ్ ప్రాసెసర్ సిస్టమ్ టెక్నికల్ రిఫరెన్స్ మాన్యువల్
- ఆల్టెరాలో సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ మరియు SoC ఎంబెడెడ్ డిజైన్ సూట్ పేజీ webసైట్
- OpenCL మరియు OpenCL లోగో అనేది క్రోనోస్ గ్రూప్™ అనుమతి ద్వారా ఉపయోగించే Apple Inc. ట్రేడ్మార్క్లు.
- OpenCL కోసం Intel FPGA SDK ప్రచురించబడిన క్రోనోస్ స్పెసిఫికేషన్ ఆధారంగా రూపొందించబడింది మరియు క్రోనోస్ కన్ఫార్మెన్స్ టెస్టింగ్ ప్రాసెస్లో ఉత్తీర్ణత సాధించింది. ప్రస్తుత అనుగుణ్యత స్థితిని ఇక్కడ కనుగొనవచ్చు www.khronos.org/conformance.
ఇంటెల్ కార్పొరేషన్. అన్ని హక్కులు ప్రత్యేకించబడ్డాయి. Intel, ఇంటెల్ లోగో, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus మరియు Stratix పదాలు మరియు లోగోలు ఇంటెల్ కార్పొరేషన్ లేదా US మరియు/లేదా ఇతర దేశాల్లోని దాని అనుబంధ సంస్థల యొక్క ట్రేడ్మార్క్లు. Intel దాని FPGA మరియు సెమీకండక్టర్ ఉత్పత్తుల పనితీరును ఇంటెల్ యొక్క ప్రామాణిక వారంటీకి అనుగుణంగా ప్రస్తుత స్పెసిఫికేషన్లకు హామీ ఇస్తుంది, అయితే నోటీసు లేకుండా ఏ సమయంలోనైనా ఏదైనా ఉత్పత్తులు మరియు సేవలకు మార్పులు చేసే హక్కును కలిగి ఉంది. ఇంటెల్ వ్రాతపూర్వకంగా అంగీకరించినట్లు మినహా ఇక్కడ వివరించిన ఏదైనా సమాచారం, ఉత్పత్తి లేదా సేవ యొక్క అప్లికేషన్ లేదా ఉపయోగం నుండి ఉత్పన్నమయ్యే బాధ్యత లేదా బాధ్యతను 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 అందుబాటులో లేదు. ఒక 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 డెవలప్మెంట్ కిట్ యొక్క సంబంధిత లక్షణాలు
ఓపెన్సిఎల్ కోసం ఇంటెల్ ఎఫ్పిజిఎ SDKకి సంబంధించిన సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ భాగాలు మరియు ఫీచర్లను క్రింది జాబితా హైలైట్ చేస్తుంది:
- Dual-core 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 కోర్ మధ్య ఉచిత మెమరీ భాగస్వామ్యాన్ని అనుమతిస్తుంది. - CPU FPGA కోర్ ఫాబ్రిక్ను రీకాన్ఫిగర్ చేయగలదు.
1.1.3.1 సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ డిజైన్ లక్ష్యాలు మరియు నిర్ణయాలు అనేక డిజైన్ లక్ష్యాలు మరియు నిర్ణయాలపై సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ అమలును ఇంటెల్ ఆధారం చేస్తుంది. మీరు ఈ రిఫరెన్స్ ప్లాట్ఫారమ్ను మీ SoC FPGA బోర్డ్కి పోర్ట్ చేసినప్పుడు మీరు ఈ లక్ష్యాలను మరియు నిర్ణయాలను పరిగణనలోకి తీసుకోవాలని Intel సిఫార్సు చేస్తోంది.
క్రింద c5soc డిజైన్ లక్ష్యాలు ఉన్నాయి:
- FPGA మరియు DDR మెమరీ సిస్టమ్(ల)లో కెర్నల్స్ మధ్య సాధ్యమయ్యే అత్యధిక బ్యాండ్విడ్త్ను అందించండి.
- FPGAపై గణనలు (అంటే, OpenCL కెర్నలు) సర్వీసింగ్ పెరిఫెరల్స్తో కూడిన ఇతర CPU పనులతో జోక్యం చేసుకోకుండా చూసుకోండి.
- ఇంటర్ఫేస్ భాగాలకు బదులుగా కెర్నల్ గణనల కోసం వీలైనంత ఎక్కువ FPGA వనరులను వదిలివేయండి.
ఇంటెల్ రూపకల్పన లక్ష్యాల యొక్క ప్రత్యక్ష పరిణామాలైన ఉన్నత-స్థాయి డిజైన్ నిర్ణయాలు క్రింద ఇవ్వబడ్డాయి:
- రిఫరెన్స్ ప్లాట్ఫారమ్ విస్తృత సాధ్యమైన కాన్ఫిగరేషన్ (256 బిట్స్)తో హార్డ్ DDR మెమరీ కంట్రోలర్లను మాత్రమే ఉపయోగిస్తుంది.
- FPGA AXI బస్ మరియు HPS లోపల L3 స్విచ్తో సంబంధం లేకుండా నేరుగా HPS DDR మెమరీ కంట్రోలర్తో కమ్యూనికేట్ చేస్తుంది. డైరెక్ట్ కమ్యూనికేషన్ DDRకి సాధ్యమైనంత ఉత్తమమైన బ్యాండ్విడ్త్ను అందిస్తుంది మరియు CPU మరియు దాని అంచుల మధ్య కమ్యూనికేషన్లతో FPGA గణనలను అంతరాయం కలిగించకుండా చేస్తుంది.
- స్కాటర్-గేదర్ డైరెక్ట్ మెమరీ యాక్సెస్ (SG-DMA) FPGA ఇంటర్ఫేస్ లాజిక్లో భాగం కాదు. DDR మెమరీ సిస్టమ్ల మధ్య పెద్ద మొత్తంలో డేటాను బదిలీ చేయడానికి బదులుగా, షేర్ చేసిన HPS DDRలో డేటాను నిల్వ చేయండి. FPGA ద్వారా CPU మెమరీకి డైరెక్ట్ యాక్సెస్ DMA కంటే మరింత సమర్థవంతంగా ఉంటుంది. ఇది హార్డ్వేర్ వనరులను (అంటే, FPGA ప్రాంతం) సేవ్ చేస్తుంది మరియు Linux కెర్నల్ డ్రైవర్ను సులభతరం చేస్తుంది.
హెచ్చరిక: భాగస్వామ్యం చేయబడిన HPS DDR సిస్టమ్ మరియు FPGAకి మాత్రమే అందుబాటులో ఉండే DDR సిస్టమ్ మధ్య మెమరీ బదిలీ చాలా నెమ్మదిగా ఉంటుంది. మీరు ఎంచుకుంటే
ఈ పద్ధతిలో మెమరీని బదిలీ చేయండి, చాలా తక్కువ మొత్తంలో డేటా కోసం మాత్రమే ఉపయోగించండి. - హోస్ట్ మరియు పరికరం ఒకే 2-బిట్ పోర్ట్ను ఉపయోగించి HPS-to-FPGA (H32F) వంతెన ద్వారా ఒకదానికొకటి DMA-యేతర డేటా బదిలీని నిర్వహిస్తాయి. కారణం, DMA లేకుండా, Linux కెర్నల్ ఒకే 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 డైరెక్టరీ రెండు DDR మెమరీ సిస్టమ్లతో కూడిన బోర్డ్ వేరియంట్ కోసం.
- ALTERAOCLSDKROOT/board/c5soc/లో HPS మరియు/లేదా FPGA SDRAM బ్లాక్ల కోసం DDR సెట్టింగ్లను అప్డేట్ చేయండి /system.qsys file.
4. OpenCL ప్రాధాన్య బోర్డ్ డిజైన్ల కోసం అన్ని Intel FPGA SDK తప్పనిసరిగా గ్యారెంటీ టైమింగ్ క్లోజర్ను సాధించాలి. అలాగే, డిజైన్ యొక్క ప్లేస్మెంట్ సమయానుకూలంగా ఉండాలి. c5soc బోర్డ్ విభజనను (acl_iface_partition.qxp) మీ SoC FPGA బోర్డ్కి పోర్ట్ చేయడానికి, కింది పనులను చేయండి:
బోర్డు విభజనను సవరించడం మరియు సంరక్షించడంపై వివరణాత్మక సూచనల కోసం, క్వార్టస్ని చూడండి
క్వార్టస్ ప్రైమ్ స్టాండర్డ్ ఎడిషన్ హ్యాండ్బుక్ యొక్క హైరార్కికల్ మరియు టీమ్-బేస్డ్ డిజైన్ అధ్యాయం కోసం ప్రైమ్ ఇంక్రిమెంటల్ కంపైలేషన్.
a. ALTERAOCLSDKROOT/board/c5soc/c5soc డైరెక్టరీ నుండి acl_iface_partition.qxpని తీసివేయండి.
బి. Tcl కమాండ్ set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_regionని set_global_assignmentకి మార్చడం ద్వారా acl_iface_region LogicLock™ ప్రాంతాన్ని ప్రారంభించండి -section_id acl_iface_regionలో పేరు LL_ENABLED
సి. మీ బోర్డు కోసం OpenCL కెర్నల్ను కంపైల్ చేయండి.
డి. అవసరమైతే, లాజిక్లాక్ ప్రాంతం యొక్క పరిమాణం మరియు స్థానాన్ని సర్దుబాటు చేయండి.
ఇ. మీ డిజైన్ యొక్క ప్లేస్మెంట్ టైమింగ్ క్లీన్గా ఉందని మీరు సంతృప్తి చెందినప్పుడు, ఆ విభజనను acl_iface_partition.qxp క్వార్టస్ ప్రైమ్ ఎగుమతి చేసిన విభజనగా ఎగుమతి చేయండి File.
ఈ .qxpని దిగుమతి చేయడం ద్వారా, OpenCL కస్టమ్ ప్లాట్ఫారమ్ టూల్కిట్ యూజర్ గైడ్ కోసం AIntel FPGA SDK యొక్క ఎస్టాబ్లిషింగ్ గ్యారెంటీడ్ టైమింగ్ ఫ్లో విభాగంలో వివరించిన విధంగా file ఉన్నత-స్థాయి డిజైన్లో, మీరు గ్యారెంటీ టైమింగ్ క్లోజర్ ఫ్లోతో బోర్డ్ డిజైన్ను అందించాల్సిన అవసరాన్ని పూర్తి చేస్తారు.
మీ ఎగుమతి చేసిన విభజన ఫలితాల నాణ్యతను (QoR) ప్రభావితం చేసే కారకాల కోసం, OpenCL కస్టమ్ ప్లాట్ఫారమ్ టూల్కిట్ యూజర్ గైడ్ కోసం Intel FPGA SDKలో ఎగుమతి చేయబడిన బోర్డు విభజన విభాగం కోసం ఫలితాల సాధారణ నాణ్యత పరిశీలనలను చూడండి.
f. దశ 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 రన్టైమ్ ఎన్విరాన్మెంట్ (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 ఆటోమైగ్రేషన్ని ప్రారంభించడానికి.
OpenCL వెర్షన్ 14.1 మరియు అంతకు మించి ప్రోబ్స్ కోసం Altera® SDK board_spec.xml file బోర్డు సమాచారం కోసం, మరియు స్వయంచాలక నవీకరణలను అమలు చేస్తుంది. మీరు సవరించినందున
QXP సంరక్షణ ప్రవాహాన్ని అమలు చేయడం ద్వారా డిజైన్ చేయండి, మీరు తప్పనిసరిగా board_spec.xmlని అప్డేట్ చేయాలి file ప్రస్తుత సంస్కరణలో దాని ఆకృతికి. నవీకరిస్తోంది file సంరక్షించబడని కస్టమ్ ప్లాట్ఫారమ్లు మరియు ప్రస్తుత QXP-ఆధారిత కస్టమ్ ప్లాట్ఫారమ్ల మధ్య తేడాను గుర్తించడానికి SDKని అనుమతిస్తుంది. మరింత సమాచారం కోసం OpenCL కస్టమ్ ప్లాట్ఫారమ్ టూల్కిట్ యూజర్ గైడ్ కోసం Intel FPGA SDKలో ఫార్వర్డ్ అనుకూలత కోసం అనుకూల ప్లాట్ఫారమ్ ఆటోమిగ్రేషన్ని చూడండి.
- C5soc యొక్క మునుపటి సంస్కరణ నుండి పోర్ట్ చేయబడిన సైక్లోన్ V SoC FPGA హార్డ్వేర్ డిజైన్లో QXP సంరక్షణ ప్రవాహాన్ని అమలు చేయడానికి, .qxp నుండి HPSని మినహాయించడానికి ఉపవిభజనను రూపొందించడానికి క్రింది దశలను చేయండి. file:
a. నాన్కెర్నల్ లాజిక్ చుట్టూ విభజనను సృష్టించే ముందు, .qsf క్వార్టస్ ప్రైమ్ సెట్టింగ్లలో HPS చుట్టూ విభజనను సృష్టించండి File.
ఉదాహరణకుampలే:
# HPS-డెడికేటెడ్ I/O సెట్_ఇన్స్టాన్స్_అసైన్మెంట్ -పేరు PARTITION_HIERARCHY borde_18261 -కు “సిస్టమ్:ది_సిస్టమ్|సిస్టమ్_acl_iface:acl_iface|system_acl_iface_hps|0:systiops_hps| system_acl_iface_hps_0_hps_io_border:border” -section_id “system_acl_iface_hps_0_hps_io_border:border”
# మిగిలిన క్వార్టస్ ద్వారా సరిగ్గా ప్రాసెస్ చేయడానికి విభజనను HPS_PARTITION రకంగా సెట్ చేయండి
set_global_assignment -పేరు 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=ఆన్
–incremental_compilation_export_post_fit=on
–incremental_compilation_export_routing=ఆన్
–incremental_compilation_export_flatten=ఆఫ్
మీరు విభజన నుండి HPSని మినహాయించిన తర్వాత, మీరు .qxpని దిగుమతి చేసుకోవచ్చు file మరియు మీ డిజైన్ను కంపైల్ చేయండి. - కింది పనులను చేయడం ద్వారా OpenCL కోసం Intel FPGA RTE యొక్క ప్రస్తుత వెర్షన్తో SD ఫ్లాష్ కార్డ్ చిత్రాన్ని నవీకరించండి:
a. మౌంట్ ది file కేటాయింపు పట్టిక (కొవ్వు32) మరియు పొడిగించబడింది file సిస్టమ్ (ext3) విభజనలు ఇప్పటికే ఉన్న ఇమేజ్లో లూప్-బ్యాక్ పరికరాలుగా ఉంటాయి. వివరణాత్మక సూచనల కోసం, SD ఫ్లాష్ కార్డ్ చిత్రాన్ని రూపొందించడంలో దశ 2ని చూడండి.
బి. /home/root/opencl_arm32_rte డైరెక్టరీలో, తొలగించండి fileRTE యొక్క మునుపటి సంస్కరణ నుండి s.
సి. RTE యొక్క ప్రస్తుత వెరిసన్ని /home/root/opencl_arm32_rte డైరెక్టరీలోకి డౌన్లోడ్ చేసి అన్ప్యాక్ చేయండి.
డి. లో /driver/version.h file మీ అనుకూల ప్లాట్ఫారమ్ యొక్క, ACL_DRIVER_VERSION అసైన్మెంట్ని దీనికి అప్డేట్ చేయండి . (ఉదాample, 16.1.x, ఇక్కడ 16.1 అనేది SDK వెరిసన్ మరియు x అనేది మీరు సెట్ చేసిన డ్రైవర్ వెర్షన్).
ఇ. డ్రైవర్ను పునర్నిర్మించండి.
f. మీ అనుకూల ప్లాట్ఫారమ్ యొక్క హార్డ్వేర్ ఫోల్డర్(ల)ని తొలగించండి. నవీకరించబడిన డ్రైవర్తో పాటు అనుకూల ప్లాట్ఫారమ్ను /home/root/opencl_arm_rte/board డైరెక్టరీకి కాపీ చేయండి.
g. Altera.icdని కాపీ చేయండి file /home/root/opencl_arm32_rte డైరెక్టరీ నుండి మరియు దానిని /etc/OpenCL/vendors డైరెక్టరీకి జోడించండి.
h. కొత్త చిత్రాన్ని అన్మౌంట్ చేసి పరీక్షించండి. వివరణాత్మక సూచనల కోసం, SD ఫ్లాష్ కార్డ్ చిత్రాన్ని రూపొందించడంలో 8 నుండి 11 దశలను చూడండి.
సంబంధిత లింకులు
- 14వ పేజీలో SD ఫ్లాష్ కార్డ్ చిత్రాన్ని సృష్టిస్తోంది
మీకు కొత్త SD ఫ్లాష్ కార్డ్ ఇమేజ్ని సృష్టించే అవకాశం కూడా ఉంది. - ఫార్వర్డ్ అనుకూలత కోసం అనుకూల ప్లాట్ఫారమ్ ఆటోమైగ్రేషన్
1.3 షేర్డ్ మెమరీ కోసం సాఫ్ట్వేర్ మద్దతు
FPGA మరియు CPU మధ్య షేర్డ్ ఫిజికల్ మెమరీ అనేది SoC FPGAలలో నడుస్తున్న OpenCL కెర్నల్స్కు ప్రాధాన్య మెమరీ. FPGA షేర్డ్ ఫిజికల్ మెమరీని యాక్సెస్ చేస్తుంది, షేర్డ్ వర్చువల్ మెమరీకి విరుద్ధంగా, ఫిజికల్ పేజీ అడ్రస్లకు యూజర్ వర్చువల్ అడ్రస్లను మ్యాప్ చేసే CPU పేజీ టేబుల్లకు దీనికి యాక్సెస్ లేదు.
హార్డ్వేర్కు సంబంధించి, OpenCL కెర్నలు HPS DDR హార్డ్ మెమరీ కంట్రోలర్కు డైరెక్ట్ కనెక్షన్ ద్వారా షేర్డ్ ఫిజికల్ మెమరీని యాక్సెస్ చేస్తాయి. సాఫ్ట్వేర్కు సంబంధించి, షేర్డ్ ఫిజికల్ మెమరీకి మద్దతు కింది పరిగణనలను కలిగి ఉంటుంది:
- CPUలో మెమరీని కేటాయించడం కోసం సాధారణ సాఫ్ట్వేర్ అమలులు (ఉదాample, malloc() ఫంక్షన్) FPGA ఉపయోగించగల మెమరీ ప్రాంతాన్ని కేటాయించదు.
malloc() ఫంక్షన్ కేటాయించే మెమరీ వర్చువల్ మెమరీ అడ్రస్ స్పేస్లో కలిసి ఉంటుంది, అయితే ఏదైనా అంతర్లీన భౌతిక పేజీలు భౌతికంగా పక్కన ఉండే అవకాశం లేదు. అలాగే, హోస్ట్ తప్పనిసరిగా భౌతికంగా-అనుకూల మెమరీ ప్రాంతాలను కేటాయించగలగాలి. అయితే, ఈ సామర్థ్యం Linuxలోని యూజర్-స్పేస్ అప్లికేషన్లలో లేదు. కాబట్టి, Linux కెర్నల్ డ్రైవర్ తప్పనిసరిగా కేటాయింపును నిర్వహించాలి. - OpenCL SoC FPGA Linux కెర్నల్ డ్రైవర్ షేర్డ్ ఫిజికల్ మెమరీని కేటాయించడానికి మరియు దానిని యూజర్ స్పేస్లోకి మ్యాప్ చేయడానికి mmap() ఫంక్షన్ని కలిగి ఉంటుంది. mmap() ఫంక్షన్ ఒక పరికరంతో భాగస్వామ్యం చేయడానికి భౌతికంగా-అనుకూల మెమరీ ప్రాంతాలను అభ్యర్థించడానికి ప్రామాణిక Linux కెర్నల్ కాల్ dma_alloc_coherent()ని ఉపయోగిస్తుంది.
- డిఫాల్ట్ Linux కెర్నల్లో, dma_alloc_coherent() భౌతికంగా-అనుకూల మెమరీని 0.5 మెగాబైట్ల (MB) కంటే ఎక్కువ పరిమాణంలో కేటాయించదు. dma_alloc_coherent() భౌతికంగా-అనుకూల మెమరీని పెద్ద మొత్తంలో కేటాయించడానికి అనుమతించడానికి, Linux కెర్నల్ యొక్క కంటిగ్యుయస్ మెమరీ కేటాయింపు (CMA) లక్షణాన్ని ప్రారంభించి, ఆపై Linux కెర్నల్ను తిరిగి కంపైల్ చేయండి.
సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ కోసం, CMA 512 GB భౌతిక మెమరీలో 1 MBని నిర్వహిస్తుంది. అప్లికేషన్కు అవసరమైన షేర్డ్ మెమరీ మొత్తాన్ని బట్టి మీరు ఈ విలువను పెంచవచ్చు లేదా తగ్గించవచ్చు. dma_alloc_coherent() కాల్ పూర్తి 512 MB భౌతికంగా-అనుకూల మెమరీని కేటాయించలేకపోవచ్చు; అయినప్పటికీ, ఇది మామూలుగా దాదాపు 450 MB మెమరీని పొందవచ్చు. - CPU dma_alloc_coherent() కాల్ కేటాయించిన మెమరీని కాష్ చేయగలదు. ప్రత్యేకించి, హోస్ట్ అప్లికేషన్ నుండి వ్రాత కార్యకలాపాలు OpenCL కెర్నల్లకు కనిపించవు. OpenCL SoC FPGA Linux కెర్నల్ డ్రైవర్లోని mmap() ఫంక్షన్ కూడా ఈ మెమరీ ప్రాంతం కోసం కాషింగ్ని స్పష్టంగా నిలిపివేయడానికి pgprot_noncached() లేదా remap_pf_range() ఫంక్షన్కి కాల్లను కలిగి ఉంటుంది.
- dma_alloc_coherent() ఫంక్షన్ భౌతికంగా-అనుకూల మెమరీని కేటాయించిన తర్వాత, mmap() ఫంక్షన్ వర్చువల్ చిరునామాను పరిధి ప్రారంభానికి అందిస్తుంది, ఇది మీరు కేటాయించే మెమరీ యొక్క చిరునామా పరిధి. మెమరీని యాక్సెస్ చేయడానికి హోస్ట్ అప్లికేషన్కి ఈ వర్చువల్ అడ్రస్ అవసరం. మరోవైపు, OpenCL కెర్నల్లకు భౌతిక చిరునామాలు అవసరం. Linux కెర్నల్ డ్రైవర్ వర్చువల్-టు-ఫిజికల్ అడ్రస్ మ్యాపింగ్ను ట్రాక్ చేస్తుంది. డ్రైవర్కు ప్రశ్నను జోడించడం ద్వారా mmap() వాస్తవ భౌతిక చిరునామాలకు తిరిగి వచ్చే భౌతిక చిరునామాలను మీరు మ్యాప్ చేయవచ్చు.
aocl_mmd_shared_mem_alloc() MMD అప్లికేషన్ ప్రోగ్రామింగ్ ఇంటర్ఫేస్ (API) కాల్ కింది ప్రశ్నలను కలిగి ఉంటుంది:
a. mmap() ఫంక్షన్ మెమరీని కేటాయించి, వర్చువల్ చిరునామాను అందిస్తుంది.
బి. భౌతిక చిరునామాకు తిరిగి వచ్చిన వర్చువల్ చిరునామాను మ్యాప్ చేసే అదనపు ప్రశ్న.
aocl_mmd_shared_mem_alloc() MMD API కాల్ రెండు చిరునామాలను అందిస్తుంది
—అసలు తిరిగి వచ్చిన చిరునామా వర్చువల్ చిరునామా, మరియు భౌతిక చిరునామా device_ptr_outకి వెళుతుంది.
గమనిక: mmap() ఫంక్షన్ భౌతిక చిరునామాలకు తిరిగి వచ్చే వర్చువల్ చిరునామాలను మాత్రమే డ్రైవర్ మ్యాప్ చేయగలదు. మీరు ఏదైనా ఇతర వర్చువల్ పాయింటర్ యొక్క భౌతిక చిరునామా కోసం అభ్యర్థిస్తే, డ్రైవర్ NULL విలువను అందిస్తుంది.
హెచ్చరిక: OpenCL రన్టైమ్ లైబ్రరీల కోసం Intel FPGA SDK భాగస్వామ్య మెమరీ బోర్డు_spec.xmlలో జాబితా చేయబడిన మొదటి మెమరీ అని ఊహిస్తుంది. file. మరో మాటలో చెప్పాలంటే, Linux కెర్నల్ డ్రైవర్ పొందే భౌతిక చిరునామా, OpenCL కెర్నల్ HPS SDRAMకి పంపే Avalon® చిరునామాగా మారుతుంది.
రన్టైమ్ లైబ్రరీకి సంబంధించి, షేర్డ్ మెమరీని డివైజ్ బఫర్గా కింది పద్ధతిలో కేటాయించడానికి clCreateBuffer() కాల్ని ఉపయోగించండి:
- భాగస్వామ్య మరియు నాన్షేర్డ్ మెమరీతో కూడిన రెండు-DDR బోర్డ్ వేరియంట్ కోసం, మీరు CL_MEM_USE_HOST_PTR ఫ్లాగ్ని పేర్కొంటే clCreateBuffer() షేర్డ్ మెమరీని కేటాయిస్తుంది. ఇతర ఫ్లాగ్లను ఉపయోగించడం వలన clCreateBuffer() భాగస్వామ్యం చేయని మెమరీలో బఫర్ను కేటాయించవచ్చు.
- భాగస్వామ్య మెమరీ మాత్రమే ఉన్న ఒక-DDR బోర్డ్ వేరియంట్ కోసం, మీరు ఏ ఫ్లాగ్ని పేర్కొన్నప్పటికీ clCreateBuffer() షేర్డ్ మెమరీని కేటాయిస్తుంది.
ప్రస్తుతం, ARM CPUలో 32-బిట్ Linux మద్దతు SDK రన్టైమ్ లైబ్రరీలలో షేర్డ్ మెమరీ మద్దతు పరిధిని నియంత్రిస్తుంది. మరో మాటలో చెప్పాలంటే, రన్టైమ్ లైబ్రరీలు ఇతర వాతావరణాలకు సంకలనం చేయబడ్డాయి (ఉదాample, x86_64 Linux లేదా 64-bit Windows) షేర్డ్ మెమరీకి మద్దతు ఇవ్వదు.
C5soc కింది కారణాల వల్ల షేర్డ్ మరియు నాన్షేర్డ్ మెమరీని వేరు చేయడానికి భిన్నమైన మెమరీని అమలు చేయలేదు:
1. చరిత్ర — భాగస్వామ్య మెమరీ మద్దతు వాస్తవానికి సృష్టించబడినప్పుడు భిన్నమైన మెమరీ మద్దతు అందుబాటులో లేదు.
2. యూనిఫాం ఇంటర్ఫేస్—OpenCL ఒక ఓపెన్ స్టాండర్డ్ కాబట్టి, ఇంటెల్ భిన్నమైన కంప్యూటింగ్ ప్లాట్ఫారమ్ విక్రేతల మధ్య స్థిరత్వాన్ని నిర్వహిస్తుంది. అందువల్ల, ఇతర బోర్డు విక్రేతల నిర్మాణాల మాదిరిగానే అదే ఇంటర్ఫేస్ షేర్డ్ మెమరీని కేటాయించడానికి మరియు ఉపయోగించడానికి ఉపయోగించబడుతుంది.
1.4 FPGA రీకాన్ఫిగరేషన్
SoC FPGAల కోసం, CPU యొక్క ఆపరేషన్కు అంతరాయం కలగకుండా CPU FPGA కోర్ ఫాబ్రిక్ను మళ్లీ కాన్ఫిగర్ చేయగలదు. FPGA మేనేజర్ హార్డ్వేర్ బ్లాక్ HPS మరియు కోర్ FPGAని అడ్డంగా ఉంచుతుంది. Linux కెర్నల్ FPGA మేనేజర్కు సులభంగా యాక్సెస్ చేయగల డ్రైవర్ను కలిగి ఉంది.
- కు view FPGA కోర్ యొక్క స్థితి, cat /sys/class/fpga/fpga0/ స్థితి ఆదేశాన్ని ప్రారంభించండి.
సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్తో అందుబాటులో ఉన్న OpenCL ప్రోగ్రామ్ యుటిలిటీ కోసం Intel FPGA SDK FPGAని ప్రోగ్రామ్ చేయడానికి ఈ ఇంటర్ఫేస్ను ఉపయోగిస్తుంది. నడుస్తున్న CPUతో FPGA కోర్ని రీప్రోగ్రామింగ్ చేస్తున్నప్పుడు, ప్రోగ్రామ్ యుటిలిటీ కింది అన్ని పనులను చేస్తుంది:
1. రీప్రోగ్రామింగ్కు ముందు, FPGA మరియు HPS, H2F మరియు LH2F బ్రిడ్జ్ల మధ్య అన్ని కమ్యూనికేషన్ వంతెనలను నిలిపివేయండి.
రీప్రోగ్రామింగ్ పూర్తయిన తర్వాత ఈ వంతెనలను మళ్లీ ప్రారంభించండి.
శ్రద్ధ: OpenCL సిస్టమ్ FPGA-to-HPS (F2H) వంతెనను ఉపయోగించదు. మరింత సమాచారం కోసం సైక్లోన్ V డివైస్ హ్యాండ్బుక్, వాల్యూమ్ 3: హార్డ్ ప్రాసెసర్ సిస్టమ్ టెక్నికల్ రిఫరెన్స్ మాన్యువల్లోని HPS-FPGA ఇంటర్ఫేస్ల విభాగాన్ని చూడండి.
2. రీప్రోగ్రామింగ్ సమయంలో FPGA మరియు HPS DDR కంట్రోలర్ మధ్య లింక్ నిలిపివేయబడిందని నిర్ధారించుకోండి.
3. రీప్రోగ్రామింగ్ సమయంలో FPGAపై FPGA అంతరాయాలు నిలిపివేయబడిందని నిర్ధారించుకోండి.
అలాగే, రీప్రోగ్రామింగ్ సమయంలో FPGA నుండి ఏవైనా అంతరాయాలను తిరస్కరించమని డ్రైవర్కు తెలియజేయండి.
వాస్తవ అమలుపై వివరాల కోసం ప్రోగ్రామ్ యుటిలిటీ యొక్క సోర్స్ కోడ్ని సంప్రదించండి.
హెచ్చరిక: CPU రన్ అవుతున్నప్పుడు HPS DDR కంట్రోలర్ కాన్ఫిగరేషన్ను మార్చవద్దు.
CPU నుండి అత్యుత్తమ మెమరీ లావాదేవీలు ఉన్నప్పుడు మీరు DDR కంట్రోలర్ కాన్ఫిగరేషన్ను మార్చవచ్చు కాబట్టి అలా చేయడం వలన ప్రాణాంతకమైన సిస్టమ్ ఎర్రర్ ఏర్పడవచ్చు. CPU రన్ అవుతున్నప్పుడు, మీరు వేరే కాన్ఫిగరేషన్లో HPS DDRని ఉపయోగించే చిత్రంతో FPGA కోర్ని రీప్రోగ్రామ్ చేయకపోవచ్చు.
OpenCL సిస్టమ్ మరియు Intel SoC FPGA ఎంబెడెడ్ డిజైన్ సూట్ (EDS)తో అందుబాటులో ఉన్న గోల్డెన్ హార్డ్వేర్ రిఫరెన్స్ డిజైన్ HPS DDRని ఒకే 256-బిట్ మోడ్గా సెట్ చేస్తుందని గుర్తుంచుకోండి.
బ్రాంచ్ ప్రిడిక్టర్ లేదా పేజీ టేబుల్ ప్రిఫెచర్ వంటి CPU సిస్టమ్ భాగాలు CPUలో ఏమీ రన్ కానట్లు కనిపించినప్పుడు కూడా DDR ఆదేశాలను జారీ చేయవచ్చు.
కాబట్టి, HPS DDR కంట్రోలర్ కాన్ఫిగరేషన్ను సెట్ చేయడానికి బూట్ సమయం మాత్రమే సురక్షితమైన సమయం.
U-boot తప్పనిసరిగా ముడి బైనరీని కలిగి ఉండాలని కూడా ఇది సూచిస్తుంది file (.rbf) చిత్రం మెమరీలోకి లోడ్ అవుతుంది. లేకపోతే, మీరు FPGAలో ఉపయోగించని పోర్ట్లతో HPS DDRని ప్రారంభించవచ్చు మరియు ఆ తర్వాత పోర్ట్ కాన్ఫిగరేషన్లను మార్చవచ్చు. ఈ కారణంగా, OpenCL Linux కెర్నల్ డ్రైవర్ ఇకపై HPS DDR కంట్రోలర్ కాన్ఫిగరేషన్ను సెట్ చేయడానికి అవసరమైన లాజిక్ను కలిగి ఉండదు.
సైలోన్ V SoC డెవలప్మెంట్ కిట్పై SW3 డ్యూయల్ ఇన్-లైన్ ప్యాకేజీ (DIP) స్విచ్లు .rbf ఇమేజ్ యొక్క అంచనా రూపాన్ని నియంత్రిస్తాయి (అంటే, file కంప్రెస్ చేయబడింది మరియు/లేదా ఎన్క్రిప్ట్ చేయబడింది). C5soc, మరియు SoC EDSతో లభించే గోల్డెన్ హార్డ్వేర్ రిఫరెన్స్ డిజైన్లో కంప్రెస్డ్ కానీ ఎన్క్రిప్ట్ చేయని .rbf ఇమేజ్లు ఉన్నాయి. OpenCL సైక్లోన్ V SoC ప్రారంభ గైడ్ కోసం Intel FPGA SDKలో వివరించిన SW3 DIP స్విచ్ సెట్టింగ్లు ఈ .rbf ఇమేజ్ కాన్ఫిగరేషన్తో సరిపోలుతున్నాయి.
సంబంధిత లింకులు
- HPS-FPGA ఇంటర్ఫేస్లు
- SW3 స్విచ్లను కాన్ఫిగర్ చేస్తోంది
1.4.1 FPGA సిస్టమ్ ఆర్కిటెక్చర్ వివరాలు
సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్కు మద్దతు OpenCL కోసం Intel FPGA SDKతో అందుబాటులో ఉన్న Stratix® V రిఫరెన్స్ ప్లాట్ఫారమ్ (s5_ref)పై ఆధారపడి ఉంటుంది.
c5soc Qsys సిస్టమ్ యొక్క మొత్తం సంస్థ మరియు కెర్నల్ డ్రైవర్ s5_refలో ఉన్న వాటితో సమానంగా ఉంటాయి.
కింది FPGA కోర్ భాగాలు c5soc మరియు s5_ref రెండింటిలోనూ ఒకే విధంగా ఉంటాయి:
- VERSION_ID బ్లాక్
- విశ్రాంతి యంత్రాంగం
- మెమరీ బ్యాంక్ డివైడర్
- కాష్ స్నూప్ ఇంటర్ఫేస్
- కెర్నల్ గడియారం
- రిజిస్టర్ యాక్సెస్ (CRA) బ్లాక్లను నియంత్రించండి
1.5 SD ఫ్లాష్ కార్డ్ చిత్రాన్ని రూపొందించడం
సైక్లోన్ V SoC FPGA అనేది చిప్లో పూర్తి సిస్టమ్ అయినందున, సిస్టమ్ యొక్క పూర్తి నిర్వచనాన్ని అందించడానికి మీరు బాధ్యత వహిస్తారు. మీరు దీన్ని SD ఫ్లాష్ కార్డ్ ఇమేజ్ రూపంలో బట్వాడా చేయాలని ఇంటెల్ సిఫార్సు చేస్తోంది. OpenCL వినియోగదారు కోసం Intel FPGA SDK కేవలం మైక్రో SD ఫ్లాష్ కార్డ్కి చిత్రాన్ని వ్రాయగలదు మరియు SoC FPGA బోర్డ్ ఉపయోగం కోసం సిద్ధంగా ఉంది.
13వ పేజీలో ఇప్పటికే ఉన్న SD ఫ్లాష్ కార్డ్ ఇమేజ్ని సవరించడం
మీరు సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్తో అందుబాటులో ఉన్న చిత్రాన్ని సవరించాలని ఇంటెల్ సిఫార్సు చేస్తోంది. మీకు కొత్త SD ఫ్లాష్ కార్డ్ ఇమేజ్ని సృష్టించే అవకాశం కూడా ఉంది.
14వ పేజీలో SD ఫ్లాష్ కార్డ్ చిత్రాన్ని సృష్టిస్తోంది
మీకు కొత్త SD ఫ్లాష్ కార్డ్ ఇమేజ్ని సృష్టించే అవకాశం కూడా ఉంది.
1.5.1 ఇప్పటికే ఉన్న SD ఫ్లాష్ కార్డ్ చిత్రాన్ని సవరించడం
మీరు సైక్లోన్ 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ని డౌన్లోడ్ చేసుకోవచ్చుampOpenCL డిజైన్ ఎక్స్ నుండి le డిజైన్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 ఫ్లాష్ కార్డ్ చిత్రాన్ని పరీక్షించడానికి, ఈ క్రింది పనులను చేయండి:
a. SoC FPGA బోర్డ్లో మైక్రో SD ఫ్లాష్ కార్డ్ని చొప్పించండి.
బి. బోర్డుని పవర్ అప్ చేయండి.
సి. aocl నిర్ధారణ యుటిలిటీ కమాండ్ను ప్రారంభించండి.
1.5.2 SD ఫ్లాష్ కార్డ్ చిత్రాన్ని సృష్టిస్తోంది
మీకు కొత్త SD ఫ్లాష్ కార్డ్ ఇమేజ్ని సృష్టించే అవకాశం కూడా ఉంది. RocketBoards.org యొక్క GSRD v14.0.2 – SD కార్డ్ పేజీలో కొత్త SD ఫ్లాష్ కార్డ్ ఇమేజ్ని నిర్మించడం మరియు ఇప్పటికే ఉన్న SD ఫ్లాష్ కార్డ్ ఇమేజ్ని పునర్నిర్మించడంపై సాధారణ సూచనలు అందుబాటులో ఉన్నాయి. webసైట్.
గోల్డెన్ సిస్టమ్ రిఫరెన్స్ డిజైన్ (GSRD) SD ఫ్లాష్ కార్డ్ ఇమేజ్ నుండి linux_sd_card_image.tgz ఇమేజ్ని సృష్టించే విధానాన్ని క్రింది దశలు వివరిస్తాయి:
గమనిక:
c5soc ఇమేజ్ నుండి ఇమేజ్ని సృష్టించడానికి, ఈ విధానంలో వివరించిన అన్ని వర్తించే పనులను చేయండి.
- Rocketboards.org నుండి GSRD SD ఫ్లాష్ కార్డ్ ఇమేజ్ వెర్షన్ 14.0ని డౌన్లోడ్ చేసి అన్ప్యాక్ చేయండి.
- మౌంట్ ది file కేటాయింపు పట్టిక (కొవ్వు32) మరియు పొడిగించబడింది file సిస్టమ్ (ext3) విభజనలు ఈ చిత్రంలో లూప్-బ్యాక్ పరికరాలుగా ఉంటాయి. విభజనను మౌంట్ చేయడానికి, ఈ క్రింది దశలను చేయండి:
a. /sbin/fdisk -lu image_ని ప్రారంభించడం ద్వారా ఇమేజ్లోని విభజన యొక్క బైట్ ప్రారంభాన్ని నిర్ణయించండిfile ఆదేశం.
ఉదాహరణకుample, W1 FAT రకం యొక్క విభజన సంఖ్య 95 బ్లాక్ ఆఫ్సెట్ 2121728ని కలిగి ఉంది. ఒక్కో బ్లాక్కు 512 బైట్లతో, బైట్ ఆఫ్సెట్ 512 బైట్లు x 2121728 = 1086324736 బైట్లు.
బి. ఉచిత లూప్ పరికరాన్ని గుర్తించండి (ఉదాample, /dev/loop0) Lostup -f ఆదేశాన్ని టైప్ చేయడం ద్వారా.
సి. /dev/loop0 అనేది ఉచిత లూప్ పరికరం అని భావించి, లూప్ బ్లాక్ పరికరానికి మీ ఫ్లాష్ కార్డ్ ఇమేజ్ని కేటాయించడం ద్వారా లూప్ /dev/loop0 image_ని అమలు చేయండిfile -0 1086324736 కమాండ్.
డి. మౌంట్ /dev/loop0 /media/disk1 ఆదేశాన్ని ప్రారంభించడం ద్వారా లూప్ పరికరాన్ని మౌంట్ చేయండి.
చిత్రం లోపల file, /media/disk1 ఇప్పుడు మౌంటెడ్ fat32 విభజన.
ఇ. ext3 విభజన కోసం a నుండి d వరకు దశలను పునరావృతం చేయండి. - OpenCL ప్యాకేజీ కోసం Intel FPGA రన్టైమ్ ఎన్విరాన్మెంట్ యొక్క సైక్లోన్ V SoC FPGA వెర్షన్ను ఆల్టెరాలోని డౌన్లోడ్ సెంటర్ నుండి డౌన్లోడ్ చేయండి webసైట్.
a. క్వార్టస్ ప్రైమ్ సాఫ్ట్వేర్ ఎడిషన్ పక్కన ఉన్న డౌన్లోడ్ బటన్ను క్లిక్ చేయండి.
బి. విడుదల సంస్కరణ, ఆపరేటింగ్ సిస్టమ్ మరియు డౌన్లోడ్ పద్ధతిని పేర్కొనండి.
సి. అదనపు సాఫ్ట్వేర్ ట్యాబ్ను క్లిక్ చేసి, 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/బిన్:$PATH ఎగుమతి LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/drver/acls.koocls.
SDK వినియోగదారు ఎన్విరాన్మెంట్ వేరియబుల్స్ మరియు OpenCL Linux కెర్నల్ డ్రైవర్ను లోడ్ చేయడానికి source ./init_opencl.sh ఆదేశాన్ని అమలు చేస్తారు. - మీరు ప్రీలోడర్ను అప్డేట్ చేయవలసి వస్తే, DTS files, లేదా Linux కెర్నల్, మీకు SoC EDS నుండి arm-linux-gnueabihf-gcc కంపైలర్ అవసరం. సాఫ్ట్వేర్ను పొందేందుకు, వాటిని తిరిగి కంపైల్ చేయడానికి మరియు సంబంధిత వాటిని అప్డేట్ చేయడానికి Intel SoC FPGA ఎంబెడెడ్ డిజైన్ సూట్ యూజర్ గైడ్లో వివరించిన సూచనలను అనుసరించండి fileమౌంటెడ్ fat32 విభజనపై s.
శ్రద్ధ: మీ అనుకూల ప్లాట్ఫారమ్ c5socలో ఉన్న వాటి కంటే భిన్నమైన పిన్ వినియోగాలను కలిగి ఉన్నట్లయితే మీరు ప్రీలోడర్ను అప్డేట్ చేయాల్సి ఉంటుంది.
గుర్తుంచుకోండి: మీరు Linux కెర్నల్ను తిరిగి కంపైల్ చేస్తే, Linux కెర్నల్ డ్రైవర్ను అదే Linux కెర్నల్ మూలంతో తిరిగి కంపైల్ చేయండి fileలు. Linux కెర్నల్ డ్రైవర్ మరియు Linux కెర్నల్ మధ్య అసమతుల్యత ఉంటే, డ్రైవర్ లోడ్ చేయబడదు. అలాగే, మీరు తప్పనిసరిగా CMAను ప్రారంభించాలి.
మరింత సమాచారం కోసం Linux కెర్నల్ని రీకంపైల్ చేయడాన్ని చూడండి. - hello_world OpenCL exని కంపైల్ చేయండిampమీ కస్టమ్ ప్లాట్ఫారమ్ మద్దతును ఉపయోగించి డిజైన్ చేయండి. .rbf పేరు మార్చండి file OpenCL ఆఫ్లైన్ కంపైలర్ కోసం Intel FPGA SDK opencl.rbf వలె ఉత్పత్తి చేస్తుంది మరియు దానిని SD ఫ్లాష్ కార్డ్ ఇమేజ్లోని fat32 విభజనపై ఉంచండి.
మీరు hello_world exని డౌన్లోడ్ చేసుకోవచ్చుampOpenCL డిజైన్ ఎక్స్ నుండి le డిజైన్ampఆల్టెరాలో లెస్ పేజీ webసైట్.
9. మీరు అవసరమైన అన్ని నిల్వ చేసిన తర్వాత fileఫ్లాష్ కార్డ్ ఇమేజ్పై s, కింది ఆదేశాలను అమలు చేయండి:
a. సమకాలీకరించు
బి. అన్మౌంట్ /మీడియా/డిస్క్1
సి. అన్మౌంట్ ఎక్కడ 3వ పేజీలోని 3లో ext3 విభజనను మౌంట్ చేయడానికి మీరు ఉపయోగించే డైరెక్టరీ పేరు (ఉదా కోసంample, /media/disk2).
డి. లాస్టప్ -d /dev/loop0
ఇ. లాస్టప్ -d /dev/loop1 - కింది ఆదేశాన్ని అమలు చేయడం ద్వారా SD ఫ్లాష్ కార్డ్ చిత్రాన్ని కుదించండి: tar cvfz .tgz linux_sd_card_image
- బట్వాడా చేయండి .tgz file మీ కస్టమ్ ప్లాట్ఫారమ్ యొక్క రూట్ డైరెక్టరీ లోపల.
- మీ SD ఫ్లాష్ కార్డ్ చిత్రాన్ని పరీక్షించడానికి, ఈ క్రింది పనులను చేయండి:
a. మైక్రో SD ఫ్లాష్ కార్డ్లో ఫలితంగా కంప్రెస్ చేయని చిత్రాన్ని వ్రాయండి.
బి. SoC FPGA బోర్డ్లో మైక్రో SD ఫ్లాష్ కార్డ్ని చొప్పించండి.
సి. బోర్డుని పవర్ అప్ చేయండి.
డి. aocl నిర్ధారణ యుటిలిటీ కమాండ్ను ప్రారంభించండి.
సంబంధిత లింకులు
- Intel SoC FPGA ఎంబెడెడ్ డిజైన్ సూట్ యూజర్ గైడ్
- OpenCL డిజైన్ Exampఆల్టెరాలో లెస్ పేజీ webసైట్
- 16వ పేజీలో Linux కెర్నల్ను తిరిగి కంపైల్ చేస్తోంది
CMAని ప్రారంభించడానికి, మీరు ముందుగా Linux కెర్నల్ను తిరిగి కంపైల్ చేయాలి. - మీ FPGA బోర్డ్ యొక్క పరికరం పేరును ప్రశ్నించడం (నిర్ధారణ)
1.6 సైక్లోన్ V SoC FPGA కోసం Linux కెర్నల్ను కంపైల్ చేస్తోంది
సైక్లోన్ V SoC FPGA బోర్డ్లో OpenCL అప్లికేషన్లను అమలు చేయడానికి ముందు, మీరు తప్పనిసరిగా Linux కెర్నల్ మూలాన్ని కంపైల్ చేయాలి మరియు OpenCL Linux కెర్నల్ డ్రైవర్ను కంపైల్ చేసి ఇన్స్టాల్ చేయాలి.
- 16వ పేజీలో Linux కెర్నల్ను తిరిగి కంపైల్ చేస్తోంది
CMAని ప్రారంభించడానికి, మీరు ముందుగా Linux కెర్నల్ను తిరిగి కంపైల్ చేయాలి. - 17వ పేజీలో OpenCL Linux కెర్నల్ డ్రైవర్ను కంపైల్ చేయడం మరియు ఇన్స్టాల్ చేయడం కంపైల్ చేయబడిన కెర్నల్ మూలానికి వ్యతిరేకంగా OpenCL Linux కెర్నల్ డ్రైవర్ను కంపైల్ చేయండి.
1.6.1 Linux కెర్నల్ను తిరిగి కంపైల్ చేస్తోంది
CMAని ప్రారంభించడానికి, మీరు ముందుగా Linux కెర్నల్ను తిరిగి కంపైల్ చేయాలి.
- RocketBoards.org యొక్క వనరుల పేజీలో GSRD v14.0 – కంపైలింగ్ Linux లింక్ను క్లిక్ చేయండి webLinux కెర్నల్ సోర్స్ కోడ్ను డౌన్లోడ్ చేయడం మరియు పునర్నిర్మించడంపై సూచనలను యాక్సెస్ చేయడానికి సైట్.
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కి దగ్గరగా సెట్ చేయమని Intel సిఫార్సు చేయదు.
- ప్రస్తుత కాన్ఫిగరేషన్ను శుభ్రం చేయడానికి 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 డిజైన్ను కంపైల్ చేయండి మాజీample Cyclone V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ను లక్ష్యంగా చేసుకున్న కస్టమ్ ప్లాట్ఫారమ్గా.
9. .rbf ఉంచండి file ఫ్లాష్ కార్డ్ ఇమేజ్ యొక్క fat32 విభజనలోకి.
శ్రద్ధ: fat32 విభజన తప్పనిసరిగా zImage రెండింటినీ కలిగి ఉండాలి file మరియు .rbf file. .rbf లేకుండా file, మీరు డ్రైవర్ను చొప్పించినప్పుడు ఘోరమైన లోపం సంభవిస్తుంది. - మీరు ఇంతకు ముందు సవరించిన లేదా సృష్టించిన SD కార్డ్ ఇమేజ్ని కలిగి ఉన్న ప్రోగ్రామ్ చేయబడిన మైక్రో SD కార్డ్ని సైక్లోన్ V SoC డెవలప్మెంట్ కిట్లో చొప్పించి, ఆపై SoC FPGA బోర్డ్ను పవర్ అప్ చేయండి.
- uname -r ఆదేశాన్ని అమలు చేయడం ద్వారా ఇన్స్టాల్ చేయబడిన Linux కెర్నల్ సంస్కరణను ధృవీకరించండి.
- మీరు SoC FPGA బోర్డ్ పవర్తో కెర్నల్లో CMAని విజయవంతంగా ప్రారంభించారని ధృవీకరించడానికి, grep init_cma /proc/kallsyms ఆదేశాన్ని అమలు చేయండి.
అవుట్పుట్ ఖాళీగా లేకుంటే CMA ప్రారంభించబడుతుంది. - SDKతో తిరిగి కంపైల్ చేయబడిన Linux కెర్నల్ను ఉపయోగించడానికి, Linux కెర్నల్ డ్రైవర్ను కంపైల్ చేసి ఇన్స్టాల్ చేయండి.
సంబంధిత లింకులు
- గోల్డెన్ సిస్టమ్ రిఫరెన్స్ డిజైన్ (GSRD) యూజర్ మాన్యువల్లు
- పేజీ 13లో SD ఫ్లాష్ కార్డ్ ఇమేజ్ని రూపొందించడం
సైక్లోన్ V SoC FPGA అనేది చిప్లో పూర్తి సిస్టమ్ అయినందున, సిస్టమ్ యొక్క పూర్తి నిర్వచనాన్ని అందించడానికి మీరు బాధ్యత వహిస్తారు.
1.6.2 OpenCL Linux కెర్నల్ డ్రైవర్ను కంపైల్ చేయడం మరియు ఇన్స్టాల్ చేయడం
కంపైల్ చేయబడిన కెర్నల్ మూలానికి వ్యతిరేకంగా OpenCL Linux కెర్నల్ డ్రైవర్ను కంపైల్ చేయండి.
OpenCL కోసం Intel FPGA రన్టైమ్ ఎన్విరాన్మెంట్ యొక్క సైక్లోన్ V SoC FPGA వెర్షన్లో డ్రైవర్ మూలం అందుబాటులో ఉంది. అదనంగా, మీరు OpenCL-ఉత్పత్తి .rbf కోసం Intel FPGA SDKని లోడ్ చేశారని నిర్ధారించుకోండి file Linux కెర్నల్ మాడ్యూల్ యొక్క తప్పు సంస్థాపనను నిరోధించడానికి FPGA లోకి.
- OpenCL ప్యాకేజీ కోసం Intel FPGA రన్టైమ్ ఎన్విరాన్మెంట్ యొక్క సైక్లోన్ V SoC FPGA వెర్షన్ను ఆల్టెరాలోని డౌన్లోడ్ సెంటర్ నుండి డౌన్లోడ్ చేయండి webసైట్.
a. క్వార్టస్ ప్రైమ్ సాఫ్ట్వేర్ ఎడిషన్ పక్కన ఉన్న డౌన్లోడ్ బటన్ను క్లిక్ చేయండి.
బి. విడుదల సంస్కరణ, ఆపరేటింగ్ సిస్టమ్ మరియు డౌన్లోడ్ పద్ధతిని పేర్కొనండి.
సి. అదనపు సాఫ్ట్వేర్ ట్యాబ్ను క్లిక్ చేసి, 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 డైరెక్టరీని సైక్లోన్ V SoC FPGA బోర్డ్కి బదిలీ చేయండి.
scp -rని అమలు చేస్తోంది root@your-ipaddress: కమాండ్ రన్టైమ్ వాతావరణాన్ని/హోమ్/రూట్ డైరెక్టరీలో ఉంచుతుంది. - మీరు SD కార్డిమేజ్ని నిర్మించినప్పుడు మీరు సృష్టించిన init_opencl.sh స్క్రిప్ట్ని అమలు చేయండి.
- aocl నిర్ధారణ యుటిలిటీ కమాండ్ను ప్రారంభించండి. మీరు init_opencl.shని విజయవంతంగా అమలు చేసిన తర్వాత డయాగ్నసిస్ యుటిలిటీ పాసింగ్ ఫలితాన్ని అందిస్తుంది.
1.7 తెలిసిన సమస్యలు
ప్రస్తుతం, సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్తో OpenCL కోసం Intel FPGA SDK వినియోగంపై నిర్దిష్ట పరిమితులు ఉన్నాయి.
- clGetDeviceInfo() కాల్ యొక్క CL_DEVICE_VENDOR మరియు CL_DEVICE_NAME స్ట్రింగ్ల ద్వారా నివేదించబడిన విక్రేత మరియు బోర్డు పేర్లను మీరు భర్తీ చేయలేరు.
- హోస్ట్ భాగస్వామ్య DDR సిస్టమ్లో స్థిరమైన మెమరీని కేటాయించినట్లయితే (అంటే, HPS DDR) మరియు అది కెర్నల్ అమలు తర్వాత స్థిరమైన మెమరీని సవరించినట్లయితే, మెమరీలోని డేటా పాతది కావచ్చు. CPU-to-HPS DDR లావాదేవీలపై FPGA కోర్ స్నూప్ చేయలేనందున ఈ సమస్య తలెత్తుతుంది.
గడువు ముగిసిన డేటాను యాక్సెస్ చేయకుండా తదుపరి కెర్నల్ ఎగ్జిక్యూషన్లను నిరోధించడానికి, కింది పరిష్కారాలలో ఒకదాన్ని అమలు చేయండి:
• దాని ప్రారంభించిన తర్వాత స్థిరమైన మెమరీని సవరించవద్దు.
• మీకు బహుళ __నిరంతర డేటా సెట్లు అవసరమైతే, బహుళ స్థిరమైన మెమరీ బఫర్లను సృష్టించండి.
• అందుబాటులో ఉంటే, మీ యాక్సిలరేటర్ బోర్డ్లోని FPGA DDRలో స్థిరమైన మెమరీని కేటాయించండి. - ARMలోని SDK యుటిలిటీ ప్రోగ్రామ్కు మాత్రమే మద్దతు ఇస్తుంది మరియు యుటిలిటీ ఆదేశాలను నిర్ధారిస్తుంది.
ఫ్లాష్, ఇన్స్టాల్ మరియు అన్ఇన్స్టాల్ యుటిలిటీ కమాండ్లు కింది కారణాల వల్ల సైక్లోన్ V SoC డెవలప్మెంట్ కిట్కి వర్తించవు:
a. ఇన్స్టాల్ యుటిలిటీ aclsoc_drv Linux కెర్నల్ డ్రైవర్ను కంపైల్ చేయాలి మరియు దానిని SoC FPGAలో ప్రారంభించాలి. అభివృద్ధి యంత్రం సంకలనాన్ని నిర్వహించాలి; అయినప్పటికీ, ఇది ఇప్పటికే SoC FPGA కోసం Linux కెర్నల్ మూలాలను కలిగి ఉంది. డెవలప్మెంట్ మెషీన్ కోసం Linux కెర్నల్ మూలాలు SoC FPGAకి భిన్నంగా ఉంటాయి. SoC FPGA కోసం Linux కెర్నల్ మూలాల స్థానం SDK వినియోగదారుకు తెలియకపోవచ్చు. అదేవిధంగా, అన్ఇన్స్టాల్ యుటిలిటీ కూడా సైక్లోన్ V SoC డెవలప్మెంట్ కిట్కు అందుబాటులో లేదు.
అలాగే, సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ యొక్క డిఫాల్ట్ డిస్ట్రిబ్యూషన్ Linux కెర్నల్ను కలిగి లేనందున SoC బోర్డ్కు aclsoc_drv డెలివరీ చేయడం సవాలుగా ఉంది fileలు లేదా GNU కంపైలర్ కలెక్షన్ (GCC) కంపైలర్.
బి. ఫ్లాష్ యుటిలిటీకి .rbfని ఉంచడం అవసరం file మైక్రో SD ఫ్లాష్ కార్డ్ యొక్క FAT32 విభజనపై OpenCL డిజైన్. ప్రస్తుతం, SDK వినియోగదారు బోర్డ్ను శక్తివంతం చేసినప్పుడు ఈ విభజన మౌంట్ చేయబడదు. అందువల్ల, విభజనను నవీకరించడానికి ఉత్తమ మార్గం ఫ్లాష్ కార్డ్ రీడర్ మరియు అభివృద్ధి యంత్రాన్ని ఉపయోగించడం. - OpenCL ఆఫ్లైన్ కంపైలర్ ఎక్జిక్యూటబుల్ కోసం Intel FPGA SDK మధ్య మారుతున్నప్పుడు files (.aocx) వివిధ బోర్డ్ వేరియంట్లకు అనుగుణంగా ఉంటుంది (అంటే c5soc మరియు c5soc_sharedonly), మీరు .aocxని లోడ్ చేయడానికి తప్పనిసరిగా SDK ప్రోగ్రామ్ యుటిలిటీని ఉపయోగించాలి file మొదటి సారి కొత్త బోర్డు వేరియంట్ కోసం. మీరు కొత్త బోర్డ్ వేరియంట్ని ఉపయోగించి హోస్ట్ అప్లికేషన్ను అమలు చేస్తే కానీ FPGA మరొక బోర్డ్ వేరియంట్ నుండి ఇమేజ్ని కలిగి ఉంటే, ప్రాణాంతకమైన లోపం సంభవించవచ్చు.
- .qxp file క్వార్టస్ ప్రైమ్ సాఫ్ట్వేర్ స్థిరంగా ఈ విభజన యొక్క సమయ అవసరాలను తీరుస్తుంది కాబట్టి ఇంటర్ఫేస్ విభజన అసైన్మెంట్లను చేర్చదు.
- మీరు బోర్డుని పవర్ అప్ చేసినప్పుడు, దాని మీడియా యాక్సెస్ కంట్రోల్ (MAC) చిరునామా యాదృచ్ఛిక సంఖ్యకు సెట్ చేయబడుతుంది. మీ LAN విధానం ఈ ప్రవర్తనను అనుమతించకపోతే, క్రింది పనులను చేయడం ద్వారా MAC చిరునామాను సెట్ చేయండి:
a. U-Boot పవర్-అప్ సమయంలో, U-Boot కమాండ్ ప్రాంప్ట్లోకి ప్రవేశించడానికి ఏదైనా కీని నొక్కండి.
బి. కమాండ్ ప్రాంప్ట్ వద్ద 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 | • OpenCL కోసం రీబ్రాండెడ్ Altera SDK నుండి OpenCL కోసం Intel FPGA SDK. •OpenCL ఆఫ్లైన్ కంపైలర్ కోసం Intel FPGA SDKకి ఆల్టెరా ఆఫ్లైన్ కంపైలర్ రీబ్రాండెడ్. |
మే-16 | 2016.05.02 | •SD ఫ్లాష్ కార్డ్ చిత్రాన్ని నిర్మించడం మరియు సవరించడంపై సవరించిన సూచనలు. •Linux కెర్నల్ మరియు OpenCL Linux కెర్నల్ డ్రైవర్ను తిరిగి కంపైల్ చేయడంపై సవరించిన సూచనలు. |
నవంబర్-15 | 2015.11.02 | •మెయింటెనెన్స్ విడుదల, మరియు క్వార్టస్ II యొక్క ఉదంతాలు క్వార్టస్ ప్రైమ్కి మార్చబడ్డాయి. |
మే-15 | 15.0.0 | •FPGA రీకాన్ఫిగరేషన్లో, FPGA కోర్ని రీప్రోగ్రామ్ చేయడానికి సూచనలను తొలగించారు ఒక తో పిల్లిని పిలవడం ద్వారా rbf చిత్రం fileపేరు>. rbf > /dev/ fpga0 ఆదేశం ఎందుకంటే ఈ పద్ధతి సిఫార్సు చేయబడలేదు. |
డిసెంబర్ -14 | 14.1.0 | •పత్రం ఆల్టెరా సైక్లోన్ V SoC డెవలప్మెంట్ కిట్ రిఫరెన్స్ ప్లాట్ఫారమ్ పోర్టింగ్ గైడ్గా పేరు మార్చబడింది. •రిప్రోగ్రామ్ యుటిలిటీని aocl ప్రోగ్రామ్కి అప్డేట్ చేసారుfilename>.aocx యుటిలిటీ కమాండ్. •aocl రోగనిర్ధారణ మరియు aocl నిర్ధారణకు డయాగ్నస్టిక్ యుటిలిటీని నవీకరించారు యుటిలిటీ కమాండ్. •గ్యారంటీ టైమింగ్ క్లోజర్ ఫ్లో కోసం టైమింగ్-క్లీన్ పార్టిషన్ను రూపొందించడానికి c5soc బోర్డ్ విభజనను పోర్టింగ్ చేయడం మరియు సవరించడంపై సూచనలను చేర్చడానికి మీ SoC బోర్డ్ విభాగంలో పోర్టింగ్ ది రిఫరెన్స్ ప్లాట్ఫారమ్లోని విధానాన్ని నవీకరించారు. • కింది టాస్క్ల కోసం విధానాలను వివరించడానికి పోర్టెడ్ రిఫరెన్స్ ప్లాట్ఫారమ్ను నవీకరిస్తున్న అంశం చొప్పించబడింది: 1.బోర్డ్ విభజనలో హార్డ్ ప్రాసెసర్ సిస్టమ్ (HPS) బ్లాక్ను మినహాయించడం 2.SD ఫ్లాష్ కార్డ్ ఇమేజ్ని అప్డేట్ చేస్తోంది •బిల్డింగ్ ఒక SD ఫ్లాష్ కార్డ్ ఇమేజ్ విభాగం అప్డేట్ చేయబడింది. SoC ఎంబెడెడ్ డిజైన్ సూట్ (EDS)తో అందుబాటులో ఉన్న చిత్రానికి బదులుగా గోల్డెన్ సిస్టమ్ రిఫరెన్స్ డిజైన్ (GSRD) చిత్రం యొక్క వెర్షన్ 14.0ని ప్రారంభ బిందువుగా ఉపయోగించడం సిఫార్సు చేయబడింది. • Linux కెర్నల్ మరియు OpenCL Linux కెర్నల్ డ్రైవర్ విభాగాన్ని రీకంపైల్ చేయడం నవీకరించబడింది: 1.CROSS COMPILE వేరియబుల్ని సెట్ చేయడానికి సూచనలను జోడించారు. 2.CMA విజయవంతంగా ప్రారంభించబడిందని ధృవీకరించడానికి మీరు అమలు చేసే ఆదేశాన్ని మార్చారు. |
జూలై-14 | 14.0.0 | •ప్రారంభ విడుదల. |
పత్రాలు / వనరులు
![]() |
OpenCL కోసం intel FPGA SDK [pdf] యూజర్ గైడ్ OpenCL కోసం FPGA SDK, FPGA SDK, OpenCL కోసం SDK, SDK |