FPGA में माइक्रोकंट्रोलर क्यों लागू करें?


16

मैं वर्तमान में FPGAs की "जांच" कर रहा हूं, वे क्या कर सकते हैं, वे कैसे करते हैं आदि।

एक से अधिक स्थानों पर ( उदाहरण के लिए यहां ) मैंने उन परियोजनाओं को देखा है जो FPGA के साथ एक सरल माइक्रोकंट्रोलर को लागू करते हैं।

तो मेरा प्रश्न:
मैं जानना चाहूंगा कि इस तरह के कार्यान्वयन करने का उद्देश्य क्या है? बोर्ड पर माइक्रो रखने के बजाय FPGA में लागू एक माइक्रोकंट्रोलर का उपयोग क्यों करें? क्या लाभ हैं? और शायद यह भी कि डाउनसाइड क्या हैं?


इनमें से कई डिब्बाबंद आईपी कोर का उपयोग करते हैं, हालांकि अपना खुद का रोल करना एक महान सीखने का अनुभव हो सकता है।
क्रिस स्ट्रैटन

1
@ChrisStratton - क्या आप अधिक बता सकते हैं, या डिब्बाबंद आईपी कोर के बारे में एक लिंक पोस्ट कर सकते हैं? हां, मुझे यकीन है कि यह सीखने का एक बेहतरीन अनुभव हो सकता है। लेकिन यह एक कारण है कि मैं यह सवाल पूछ रहा हूं। मुझे आश्चर्य है कि यह सिर्फ सीखने के अनुभव से अधिक कुछ भी है।
जेम्स सी।

1
ऐसा करने वाले अधिकांश लोग एक माइक्रोब्लज़, पिकोब्लोज़, एनआईओएस II, आदि जैसे कुछ का उपयोग कर रहे हैं - ये मूल रूप से "एक कैन" (पुस्तकालय) में प्रोसेसर डिज़ाइन हैं, जिन्हें आप लाइसेंस दे सकते हैं और अपनी परियोजना में डाल सकते हैं। इसके विपरीत एचडीएल स्रोत में स्वयं को विकसित किया जा सकता है, शायद आपके ठेठ CS101 व्याख्यान में प्रस्तुत ब्लॉक आरेख से। काम करने वाले हार्डवेयर में व्याख्यान ड्राइंग को मोड़ने के लिए कई दिलचस्प व्यावहारिकताएं हैं।
क्रिस स्ट्रैटन

1
ओपन सोर्स सीपीयू कोर के बहुत सारे उदाहरणों के लिए ओपन कोर देखें ।
RBerteig

3
मेरे पास एक उदाहरण है। हमारे पास एक पुराने उत्पाद के लिए एक माइक्रोकंट्रोलर अप्रचलित था। हम बाह्य उपकरणों के सही मिश्रण के साथ एक उपयुक्त प्रतिस्थापन माइक्रोकंट्रोलर नहीं पा सके। एक एम्बेडेड प्रोसेसर के साथ एक FPGA का उपयोग करने से हमें FPGA पर बाह्य उपकरणों के हमारे आदर्श मिश्रण को लागू करने की अनुमति मिली।
क्रकम्बो

जवाबों:


24

लाभ:

  • माइक्रोकंट्रोलर और किसी भी कस्टम इंटरफ़ेस या I / O तर्क के बीच चिप पर तेजी से इंटरफ़ेस।
  • अनुकूलन प्रोसेसर और डिबग इंटरफेस
  • इसके अलावा, अक्सर VHDL के साथ कंट्रोल कोड लिखने से कंट्रोल लॉजिक आसान हो जाता है

downsides:

  • FPGA पर कस्टम तर्क रखने की तुलना में संभवतः अधिक महंगा FPGA को माइक्रोकंट्रोलर और कस्टम तर्क दोनों को फिट करने की आवश्यकता है
  • संभवतः इसे लागू करना अधिक कठिन है, खासकर यादों के साथ और यदि कोर जटिल है, तो एक अलग चिप पर तैयार माइक्रोकंट्रोलर की तुलना में।

3
अतिरिक्त लाभ: सरल डिजाइन, एक कम चिप।
DoxyLover

4
अतिरिक्त नकारात्मक: अधिक आईपी लाइसेंसिंग
मिखाइल

कैसे एक नकारात्मक पक्ष के रूप में बिजली की खपत के बारे में?
क्रेग मैकक्वीन

@CraigMcQueen यह FPGA में एक माइक्रोकंट्रोलर उत्पन्न करने के लिए सैद्धांतिक रूप से संभव है, जो अभी तक अकेले-अकेले हार्डवेयर के रूप में उत्पादित नहीं किया गया है। उस मामले में, तुलना करने के लिए कोई बिजली की खपत नहीं है। किसी भी मामले में, यह सामान्य / उल्टा होने के लिए विशिष्ट उपकरण है।
मस्त

सभी बहुत अच्छी टिप्पणियाँ। और अच्छी तरह से, मैं कहूंगा कि आम तौर पर FPGAs की एक बड़ी बिजली खपत होती है, क्योंकि तर्क का उपयोग आमतौर पर एक मैक्रोसेल के भीतर 100% से बहुत दूर है। यह इस तथ्य से थोड़ा दूर है कि FPGAs परिष्कृत शक्ति कम से कम तकनीक का उपयोग कर सकते हैं। विनिर्माण प्रक्रिया (प्रौद्योगिकियां) FPGA और उसी युग के प्रोसेसर के बीच काफी समान हो सकती हैं। प्रोसेसर के पास मेमोरी ब्लॉक, साथ ही साथ FPGAs भी हैं। क्या ये आपकी आवश्यकताओं से मेल खाते हैं, ठीक है, इस बात पर निर्भर करता है कि आप FPGA को खोजने के लिए कितने भाग्यशाली हैं जो आपकी आवश्यकताओं से बिल्कुल मेल खाता है।
17

26

यदि आपका प्रोजेक्ट ग्रंट कार्य के लिए एक FPGA का उपयोग करने जा रहा है, और इसमें अतिरिक्त क्षमता है, तो आप अतिरिक्त चिप के खर्च पर क्यों जाएंगे जब आप इसे FPGA में लागू कर सकते हैं?

कई प्रक्रियात्मक नियंत्रण परिवेशों के लिए, सी में वीएचडीएल या वेरिलोग में इसे करने की कोशिश करने की तुलना में सी जैसी भाषा में आवश्यक सेटअप को लागू करना काफी आसान हो सकता है। FPGA में माइक्रोकंट्रोलर को शामिल करने से आपको तर्क और इंटरफ़ेसिंग सिस्टम के लिए VHDL / वेरिलॉग आदि की शक्ति और कोर नियंत्रण और प्रबंधन प्रणालियों के लिए एक प्रक्रियात्मक भाषा की सादगी - दोनों दुनिया का सबसे अच्छा मिलता है।


10
इस उत्तर का पहला वाक्य मुख्य कारण है। यह मुख्य रूप से तब होता है जब आपके पास पहले से ही बोर्ड पर कुछ अतिरिक्त क्षमता के साथ एक FPGA होता है। (कम से कम) एक कम चिप और कम बोर्ड जटिलता। आप केवल इसके साथ एक माइक्रोकंट्रोलर को लागू करने के लिए एक बोर्ड पर एक FPGA नहीं डालेंगे, लेकिन जब आपके पास पहले से ही एक FPGA है, तो यह भागों की लागत और बोर्ड जटिलता पर कटौती करने का एक अच्छा तरीका है। कम से कम इसलिए हम इसे करते हैं।
रीहैब

13

माजेंको और पीकेपी के जवाब के विस्तार में:

FPGA डिजाइन में सीपीयू को एम्बेड करने के इस चलन ने कई विषम प्रणालियों को जन्म दिया है जैसे:

  • Xilinx 'Zynq-7000 परिवार
  • एल्टेरा का अररिया / साइक्लोन / स्ट्रेटिक्स SoC FPGAs
  • माइक्रोसेमी का स्मार्टफ्यूजन एफपीजीए

बाजार पर एक इंटेल एटम + एल्टर एफपीजीए चिप भी है: http://www.altera.com/devices/processor/intel/e6xx/proc-e6x5c.html

FPGA के लिए अधिकांश फ्री माइक्रो कंट्रोलर खराब टूल चेन सपोर्ट से पीड़ित हैं। एंबेडेड एआरएम सीपीयू ट्रेस / डिबग सपोर्ट, कंपाइलर्स (जीसीसी टूल चेन) और फुल लाइनक्स सपोर्ट के साथ आते हैं। यहाँ FPL 2014 में प्रस्तुत एक सर्वेक्षण है: http://dx.doi.org/10.1109/FPL.2014.6927482

संपादन 1:
सरू से PSoC (चिप पर प्रोग्रामेबल सिस्टम) उपकरणों की श्रेणी भी है। इन उपकरणों में एक माइक्रो कंट्रोलर (M8C, 8051, ARM Cortex M0 या Cortex M3) और क्लासिक SoC एकीकृत I / O कंट्रोलर या डिवाइस (I²C, SPI, टाइमर, CAN, DAC, ADC, OpAmp, ...) और एक प्रोग्रामेबल शामिल हैं। अंश। यह हिस्सा क्लासिक एफपीजीए के रूप में ठीक अनाज प्रोग्राम योग्य नहीं है, लेकिन इसका उपयोग I / O नियंत्रक या निर्मित हार्डवेयर त्वरक को लागू करने के लिए किया जा सकता है। PSoC आपको अपने डिज़ाइन में एनालॉग घटकों का उपयोग करने की अनुमति देता है।
http://www.cypress.com/psoc/?source=CY-ENG-HEADER

PSoC अवलोकन: PSoC


10

यदि आपको बस एक माइक्रोकंट्रोलर की आवश्यकता है, और एक FPGA नहीं है, तो माइक्रोकंट्रोलर फ़र्मवेयर के साथ FPGA का उपयोग करना असामान्य होगा। हालांकि, सभी परियोजनाएं उस दिशा में नहीं बढ़ती हैं। FPGA के लिए कई कार्यों की स्पष्ट आवश्यकता होती है, लेकिन अंततः एक ऐसा कार्य होता है जो वास्तव में VHDL समाधान के लिए उपयुक्त नहीं है। कभी-कभी एक समस्या सामान्य प्रयोजन सीपीयू द्वारा सबसे अच्छी तरह से नियंत्रित की जाती है। या, कभी-कभी यह दूसरा तरीका है: कुछ कार्य केवल सामान्य प्रयोजन के लिए उपयुक्त नहीं हैं सीपीयू - उन्हें समानता की आवश्यकता है।

उस समय, आपके पास एक विकल्प है। आप या तो अपने डिवाइस में एक अतिरिक्त चिप जोड़ सकते हैं, या आप महसूस कर सकते हैं कि आपके पास FPGA पर अतिरिक्त फाटकों का एक गुच्छा है जिसका आप उपयोग नहीं कर रहे हैं। एक छोटे से आईपी लाइसेंस, और आप कुछ ही समय में एक सामान्य कार्यशील सीपीयू हो सकता है!

एक और दिलचस्प विवरण यह है कि आप कुछ माइक्रोकंट्रोलर फर्मों को अनुकूलित कर सकते हैं। मैं उन परियोजनाओं के बारे में जानता हूं जो एक पावर पीसी को एम्बेड करती हैं, लेकिन फ्लोटिंग पॉइंट सपोर्ट के लिए आवश्यक सभी गेटों को हटा दिया गया, और शाखा भविष्यवाणी का एक अच्छा हिस्सा। इसने VHDL आधारित फर्मवेयर के साथ साइड-बाय-साइड फिट होने के लिए इसे छोटा बना दिया।


9

एक FPGA में एक माइक्रोप्रोसेसर या माइक्रोकंट्रोलर को तत्काल करने के कई वैध कारण हैं। यहाँ तीन हैं:

  1. आप बस एक प्रोसेसर के संचालन के बारे में सीखना चाहते हैं। FPGAs आपको प्रोसेसर के अंदर क्या हो रहा है इसकी जांच करने के लिए अनंत तरीके देता है क्योंकि यह कोड निष्पादित करता है। यह सिर्फ सीखने के लिए है।

  2. आप एक बड़ी प्रणाली को लागू कर रहे हैं जिसमें एक FPGA के हार्डवेयर-स्तर की गति (माइक्रोप्रोसेसर पर सॉफ़्टवेयर निष्पादित करने की तुलना में तेज़) की आवश्यकता होती है, लेकिन आपके डिज़ाइन के लिए एक जटिल स्टेट मशीन की आवश्यकता होती है, जिसे Xxx PicoBlaze जैसे सरल प्रोसेसर पर चलने वाले सॉफ़्टवेयर का उपयोग करके अधिक आसानी से लागू किया जाता है एक हार्डवेयर FSM की तुलना में। ध्यान दें कि एक PicoBlaze नवीनतम FPGA प्रक्रिया प्रौद्योगिकियों में 240MHz के रूप में तेजी से चल सकता है और PicoBlaze प्रोसेसर प्रत्येक दो घड़ी चक्रों में एक निर्देश निष्पादित करता है, इसलिए आपको एक तेज़, सुसंगत राज्य मशीन मिलती है जो आसानी से सॉफ़्टवेयर में प्रोग्राम की जाती है।

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

यहाँ एक चेतावनी है: यदि आप एक मानक अनुदेश सेट और एक बड़े विकास पारिस्थितिकी तंत्र के साथ एक तेज प्रोसेसर चाहते हैं, तो आप एक Xilinx Zynq SoC में दो ARM Cortex-A9s जैसे तेज, हार्ड-कोर प्रोसेसर चाहते हैं। Zynq SoC में FPGA फैब्रिक अभी भी आपको प्रोग्रामेबल लॉजिक में अधिक प्रोसेसर कोर को इंस्टेंट करने की अनुमति देता है लेकिन ARM Cortex-A9s ऑपरेटिंग सिस्टम जैसे कि Linux और मानक IDE जैसे Android चला सकते हैं।

ARM Cortex-A9 और PicoBlaze के बीच में कई सॉफ्ट प्रोसेसर हैं जिन्हें आप कई स्रोतों से उपलब्ध प्रोग्रामेबल लॉजिक के साथ लागू कर सकते हैं। कुछ लोग अपने स्वयं के प्रोसेसर को रोल करना पसंद करते हैं और यह एक महान शैक्षिक गतिविधि है। हालाँकि, माइक्रोप्रोसेसरों को सॉफ्टवेयर डेवलपमेंट टूल्स की आवश्यकता होती है और उन टूल्स को बनाने / डिबग करने के लिए प्रोसेसर बनाने से ज्यादा परिमाण के आदेश की आवश्यकता होती है। प्रोसेसर कोर और टूल्स को बनाने / डिबग करने के लिए आवश्यक समय और प्रयास के खिलाफ आपको कस्टम माइक्रोप्रोसेसर के संभावित लाभ का व्यापार करना चाहिए।

पूर्ण प्रकटीकरण: मैं Xilinx के लिए काम करता हूं, लेकिन मुझे पूरा यकीन है कि मैंने यह नहीं कहा कि FPGAs हमेशा समाधान होते हैं। यदि 50-प्रतिशत माइक्रोकंट्रोलर काम कर सकता है, तो आप इसका उपयोग करना बेहतर समझते हैं। FPGAs और Zynq SoCs उन परियोजनाओं के लिए हैं जिन्हें माइक्रोकंट्रोलर्स की क्षमताओं से परे भारी उठाने की आवश्यकता होती है।


गर्मजोशी से स्वागत, स्टीवन!
17

1
अच्छा जवाब है, लेकिन कौन एक राज्य मशीन की जरूरत है जो अंतर्संबंधों को संभाल सके? भ्रूण-डिकोड-निष्पादित प्रोसेसर के लिए व्यवधान एक आवश्यक बुराई है क्योंकि बाहरी उत्तेजना को संभालने के लिए आईएसआर को चलाने के लिए प्रोसेसर के अनन्य उपयोग की आवश्यकता होती है। एक FPGA में, बाहरी उत्तेजना को एक अलग लॉजिक ब्लॉक में संभाला जाता है जबकि राज्य मशीन भी चलती रहती है; राज्य को बचाने और बहाल करने की कोई आवश्यकता नहीं है। मूल रूप से, इंटरप्ट एक समस्या का एक अपूर्ण समाधान है जो HDL के पास नहीं है।
बेन वोइगट

आप निश्चित रूप से हार्डवेयर-कार्यान्वित राज्य मशीनों, बेन के लिए सही हैं। आप हमेशा दूसरे राज्य-मशीन इनपुट के रूप में "इंटरप्ट" पिन तार कर सकते हैं। हालाँकि, कई जटिल राज्य मशीनें सी-रनिंग प्रोसेसर के साथ कार्यान्वित होने पर, या कुछ डेवलपर्स के लिए कम से कम अधिक विश्वसनीय होने पर बस अधिक सहज होती हैं। जब आपको एक बाधा की आवश्यकता होती है।
स्टीवन लिबसन

2

कभी-कभी आप एक FPGA का उपयोग कर सकते हैं क्योंकि आपके पास एक सॉफ़्टवेयर है जो एक लंबे समय से अप्रचलित और अनुपलब्ध भौतिक प्रोसेसर पर चलता है जिसे आप पुनर्जीवित करना चाहते हैं। जबकि पिन-कम्पेटिबल नहीं है (हालाँकि डीआईपी-स्टाइल माउंट्स देखे गए हैं) यह आपको सटीक चक्र करने देता है। कमोडिटी माइक्रोप्रोसेसर पर एक शुद्ध सॉफ्टवेयर इम्यूलेशन की संभावना नहीं है। उदाहरण के लिए apple2fpga

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.