FPGAs सर्वव्यापी क्यों नहीं हैं?


65

FPGAs के बारे में पढ़ना, अगर मैं सही ढंग से समझूं, तो वे मूल रूप से पूरी तरह से विन्यास योग्य तर्क गेट सर्किट हैं। यह होने के नाते, कोई भी उनके साथ कुछ भी डिजाइन कर सकता है। कोई भी संभव सबसे अनुकूलित तरीके से सब कुछ डिजाइन कर सकता है और इसलिए, एक बहुत ही कुशल तरीके से एक ही छोर को पूरा करता है जो एक माइक्रोकंट्रोलर का उपयोग करके प्राप्त किया जा सकता है। ऐसा होने पर, ऐसा लगता है कि FPGA किसी भी दिन, किसी भी समय एक माइक्रोकंट्रोलर को हरा देता है। तो मेरा सवाल है, अगर FPGAs वास्तव में यह भयानक हैं, तो उन्हें माइक्रोकंट्रोलर की तुलना में बहुत अधिक प्रचलित होने से क्या है? इस दृष्टि से, मुझे ऐसा लगता है कि FPGAs को बहुत समय पहले माइक्रोकंट्रोलर्स को मिटा देना चाहिए था। तो ऐसा क्यों नहीं है? क्या यह FPGA, या पूरी तरह से कुछ और प्रोग्राम करने के लिए लागत, कठिनाई है?



आप इस सूत्र को भी पढ़ना चाह सकते हैं: Electronics.stackexchange.com/questions/4382/…
टॉम एल।

43
हेलीकॉप्टर कारों की तुलना में अधिक लचीले होते हैं, इसलिए कोई भी अभी भी काम करने के लिए कार का उपयोग क्यों नहीं करता है?
ओलिन लेथ्रोप

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

@ आर .. ... या कम से कम पूर्ण अंतिम विकल्प का विकल्प नहीं है।
दान नीली

जवाबों:


94

आप बहुत सारे कारकों की अनदेखी कर रहे हैं जो डिजाइन विकल्प बनाने में जाते हैं:

  1. लागत । FPGAs तर्क की एक ही जटिलता के लिए माइक्रो से अधिक महंगे हैं।

  2. तर्क जटिलता । निष्पादन योग्य कोड सीधे उपयोग किए गए माइक्रो में समान फाटकों की तुलना में कहीं अधिक जटिल तर्क को लागू कर सकता है।

  3. विकास में आसानी । सभी लेकिन छोटी समस्याओं के लिए तर्क को परिभाषित करने की तुलना में निष्पादन योग्य कोड लिखना आसान है। यहां तक ​​कि मामूली माइक्रोकंट्रोलर परियोजनाओं में कोड की हजारों लाइनें हैं। समतुल्य तर्क परिभाषाओं को विकसित करने में अधिक समय लगेगा और डिबग और सत्यापित करना अधिक कठिन होगा।

  4. बिजली की खपत । चूँकि FPGAs उच्च गति संचालन के लिए अभिप्रेत हैं जो कि micros नहीं संभाल सकते हैं (अन्यथा आप माइक्रो का उपयोग करेंगे), वे कम बिजली के लिए अनुकूलित नहीं हैं। यह उन्हें कुछ कम बिजली अनुप्रयोगों के लिए अनुपयुक्त बनाता है। कुछ माइक्रोस में 1 rosA के तहत नींद की धाराएं होती हैं, और धीमी घड़ी दरों पर कुछ ही currA पर काम कर सकती हैं। ऐसा FPGA खोजने की कोशिश करें जो ऐसा कर सके।

FPGAs बनाम micros का मुख्य लाभ यह है कि वे तेज होते हैं और समानांतर में अधिक काम कर सकते हैं। इसके अलावा, आप बल्कि एक माइक्रो का उपयोग करेंगे। इसलिए डिजाइन प्रक्रिया में, आप आमतौर पर एक माइक्रो के साथ शुरू करते हैं, फिर गंभीर रूप से एक एफपीजीए पर जाते हैं जब आपको वास्तव में गति और / या समवर्ती उच्च गति ऑपरेशन की आवश्यकता होती है। फिर भी, आप एक FPGA में केवल गति-महत्वपूर्ण भागों को लागू करते हैं, और कम गति नियंत्रण कार्यों और माइक्रो की तरह छोड़ देते हैं।


2
"फिर भी, आप एक FPGA में केवल गति-महत्वपूर्ण भागों को लागू करते हैं, और कम गति नियंत्रण कार्यों और माइक्रो की तरह छोड़ देते हैं।" और ऐसा इसलिए है क्योंकि FPGA के लिए विकास एक दर्द है, है ना?
उत्कु

2
@Utku: हाँ, यह कारण 3 से ऊपर है, हालांकि 1-2 कारण आमतौर पर भी लागू होते हैं। FPGAs सिर्फ एक ही कार्य के लिए माइक्रो के रूप में प्रभावी नहीं हैं, जब तक कि उस कार्य में इतनी अधिक गति की आवश्यकताएं नहीं होती हैं कि एक माइक्रो बस नहीं कर सकता।
ओलिन लेट्रोप

4
यह बताना आसान है कि यह उत्तर सीपीयू-उपयोगकर्ता के दृष्टिकोण से लिखा गया है। "जब आप वास्तव में गति और / या समवर्ती उच्च गति के संचालन की आवश्यकता होती है, तो एक FPGA पर जाएं"। वे उस बुरे नहीं हैं । ऐसे अनुप्रयोग हैं जहां कोई FPGA पर सीपीयू का उपयोग करने के बारे में भी नहीं सोचता
stanri

26
जिस तरह से मैं आमतौर पर इसे समझाता हूं: एक सीपीयू पर समानांतर में चीजों को करना मुश्किल है, और एक एफपीजीए में सीरियसली चीजें करना मुश्किल है।
बेन जैक्सन

14
FPGAs के बारे में याद रखने के लिए एक बड़ी बात: तर्क की पुनर्संरगक्षमता एक कीमत पर आती है - समतुल्य तर्क कि FPGA लागू करना FPGA की तुलना में कहीं कम जटिल है। तालिकाओं, रूटिंग मैट्रिक्स घटकों, आदि के सभी हार्ड लॉजिक में समान कार्यान्वयन की तुलना में कहीं अधिक सिलिकॉन क्षेत्र और शक्ति का उपभोग करते हैं। इसका मतलब यह है कि FPGAs सभी प्रदर्शन मेट्रिक्स - सक्रिय और निष्क्रिय बिजली की खपत, घनत्व, घड़ी की गति, आदि में बदतर हैं - सिलिकॉन में सीधे समान कार्यक्षमता के निर्माण की तुलना में जैसा कि माइक्रोकंट्रोलर, सामान्य उद्देश्य सीपीयू और एफपीजीए के साथ ही किया जाता है।
alex.forencich

45

एक भेद जो मैंने यहाँ पर विस्तार से नहीं देखा है वह यह है कि FPGAs का उपयोग किया जाता है, और व्यवहार करते हैं, प्रोसेसर के लिए पूरी तरह से अलग तरीके से।

एक FPGA वास्तव में एक ही काम करने में अच्छा है, बार-बार। उदाहरण के लिए, वीडियो, ऑडियो या RF संकेतों को संसाधित करना। या ईथरनेट पैकेट को रूट करना। या द्रव प्रवाह का अनुकरण। किसी भी स्थिति में जहां आपके पास बहुत सारे समान डेटा होते हैं, जो वास्तव में आप पर तेजी से फेंके जाते हैं और आप सभी के साथ उसी तरह से निपटना चाहते हैं। या आप एक ही एल्गोरिदम को बार-बार चलाना चाहते हैं। FPGA के पास वास्तव में 'कार्य' नहीं होते हैं जो [1] शुरू करते हैं और रोकते हैं, इसका पूरा काम यह है कि इसे जो भी डेटा मिलता है, उसे उसी समय तक करना है जब तक यह चालू है। यह गियर नहीं बदलता है, यह कुछ और नहीं करता है। यह परम उत्पादन-लाइन कार्यकर्ता है। यह एक ही काम बार-बार करेगा, जितनी तेजी से, हमेशा के लिए कर सकता है।

दूसरी ओर सीपीयू, लचीलेपन का प्रतीक है। उन्हें कुछ भी करने के लिए प्रोग्राम किया जा सकता है, और उन्हें एक ही समय में कई अलग-अलग चीजें करने के लिए प्रोग्राम किया जा सकता है। उनके पास ऐसे कार्य हैं जो शुरू और बंद हो जाते हैं, वे गियर बदलते हैं, मल्टीटास्क, लगातार स्विच कर रहे हैं और फ़ंक्शन बदल रहे हैं।

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

FPGA का कमोडिटी स्पेस है। आपका FPGA केवल इतना बड़ा है, और आपके द्वारा इच्छित कार्य को करने के लिए बहुत सारे उपलब्ध द्वार हैं। अधिकांश समय, मुद्दा गति [2] की तुलना में अधिक आकार का है।

FPGA को सीपीयू की तरह बनाना संभव है। आप एक सीपीजी आईपी कोर को एक एफपीजीए में रख सकते हैं, हालांकि दूसरों द्वारा वर्णित कारणों के कारण इसे सही ठहराना बहुत मुश्किल है। FPGA और CPU विपरीत हैं, दोनों की अपनी ताकत और कमजोरियां हैं, और परिणामस्वरूप दोनों का अपना स्थान है।


टिप्पणियाँ:

1) एक FPGA को विभिन्न कार्यों को करने के लिए डिज़ाइन किया जा सकता है, लेकिन फिर भी यह एक विशिष्ट संख्या होगी जिसे इसके लिए पूर्व-डिज़ाइन किया गया था।

2) स्पीड भी एक FPGA डिजाइन विनिर्देश है। यह वास्तव में गति और आकार के बीच का व्यापार है।

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

और अंत में: यह उत्तर एक बड़ा सरलीकरण है - FPGAs का उपयोग बड़े पैमाने पर विविध और जटिल तरीकों से किया जाता है और यह सामान्य रूप से उपयोग किए जाने वाले तरीके पर बहुत संक्षिप्त अवलोकन है।


1
"या ईथरनेट पैकेट को रूट करना। या द्रव प्रवाह का अनुकरण करना।" यद्यपि, जहां तक ​​मुझे पता है, एएसआईसी आमतौर पर पूर्व (बड़े पैमाने पर उत्पादन में, कम से कम) के लिए उपयोग किया जाता है और जीपीयू तेजी से, सस्ती, कम शक्ति, और बाद के लिए अधिक आसानी से प्रोग्राम करने योग्य है।
रीहराब

1
@reirab वे ऑपरेशन के प्रकार थे जो FPGAs अच्छी तरह से कर सकते हैं, उनके दिमाग में आया क्योंकि वे दोनों अनुप्रयोग हैं जिन्हें मैंने व्यक्तिगत रूप से FPGAs के लिए कोडित किया है। एक बिल्ली की त्वचा के लिए एक से अधिक तरीके हैं। डिवाइस का विकल्प कई डिज़ाइन कारकों पर निर्भर करता है।
स्टेनरी

5
@ FreA कुछ भी एक FPGA कर सकता है एक ASIC कम बिजली और एक सीमांत उत्पादन लागत के लिए कर सकता है। FPGA के लाभ प्रोटोटाइप और कम मात्रा में उत्पादन में हैं क्योंकि ASIC के लिए अग्रिम लागत कहीं अधिक बड़ी है; उत्तरार्द्ध केवल तभी समझ में आता है जब डिजाइन को अंतिम रूप दिया जाता है और आप उनमें से बहुत कुछ बना रहे होते हैं।
डैन नीली

यह दावा करना अजीब है कि एक FPGA की तुलना में सीपीयू अधिक लचीला है, यह देखते हुए कि आप एक FPGA के भीतर एक सीपीयू को आसानी से लागू कर सकते हैं (किसी भी गंभीर सीएस छात्र को कम से कम एक बार ऐसा करना चाहिए)। एक FPGA एक CPU की तुलना में बहुत कम अवधारणा है, इसलिए यह सीधे imho की तुलना करने के लिए बहुत समझ में नहीं आता है।
वू

यह जवाब वास्तव में मुझे परेशान करता है। "CPU का कमोडिटी टाइम है", "FPGAs कमोडिटी स्पेस है।" है ना? ASICs और CPU ध्रुवीय विपरीत हैं, और FPGAs दोनों दुनिया के सबसे अच्छे और बुरे दोनों के बीच में बैठते हैं।
जॉटरियस

20

जैसा कि ओलिन कहता है, एक माइक्रो जैसा कुछ कई कार्यों के लिए अधिक कुशल है, और आप लगभग हमेशा एक माइक्रो का उपयोग करेंगे जहां कहीं भी एफपीजीए दिखाई देता है। इस्तेमाल किए गए सिलिकॉन का एकरेज (जो एक बिना रेखा के फैशन में लागत में बदल जाता है) और बिजली की खपत बहुत कम है। इस कारण से, FPGA पर 'सॉफ्ट' MCU को लागू करना असामान्य नहीं है, लेकिन इस तरह के माइक्रो की लागत और प्रदर्शन बहुत ही कम है।

कुछ आधुनिक FPGAs में एक या अधिक 'हार्ड' कोर होते हैं जैसे सर्वव्यापी ARM श्रृंखला। इसके अलावा, वे समर्पित मेमोरी ब्लॉक शामिल कर सकते हैं क्योंकि यह फाटकों से बाहर स्मृति बनाने के लिए वास्तव में अक्षम है। एक 32-बिट माइक्रो कोर एक विशिष्ट FPGA में सिलिकॉन क्षेत्र का एक छोटा सा हिस्सा लेता है, जो आपको सापेक्ष लागतों का विचार देता है।

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

एक और जटिलता यह है कि अधिकांश जटिल एफपीजीए कॉन्फ़िगरेशन के लिए रैम-आधारित हैं और प्रक्रिया की लागत ऐसी है कि बोर्ड पर किसी भी एमसीयू के लिए कॉन्फ़िगरेशन और प्रोग्राम मेमोरी को स्टोर करने के लिए बाहरी गैर-वाष्पशील मेमोरी की आवश्यकता होती है। इस मेमोरी को पावर-अप में RAM में लोड करना होता है।

FPGAs टूलबॉक्स में बेहद उपयोगी उपकरण हैं, लेकिन वे MCU या ASICs को सार्वभौमिक रूप से जल्द ही बदलने जा रहे हैं।


10

नौकरी के लिए सिलिकॉन का सबसे अच्छा उपयोग एक एएसआईसी है, कुछ भी बर्बाद नहीं हुआ है, लेकिन उनके पास सीखने की अवस्था, एनआरई और अनम्यता है।

एक चिप में लचीलापन बनाने के दो तरीके हैं। क) एक अंतरिक्ष-अनुकूलित ALU है, और इसे संग्रहीत डेटा पर बार-बार उपयोग करें। इसे MCU कहा जाता है, और इसके लिए सिलिकॉन के एक विशाल क्षेत्र की आवश्यकता होती है, जो 'कुछ भी नहीं कर रहा है', प्रोग्राम मेमोरी, यूनिट से यूनिट तक चलने वाले वाइड बूस और बस एक्सेस स्विच। बी) ठीक-ठीक तर्क है, कुछ वैकल्पिक अंतरिक्ष-अनुकूलित भागों जैसे मल्टीप्लायर, छोटे रैम और सरल सीपीयू के साथ। इसे FPGA कहा जाता है, और इसके लिए सिलिकॉन के एक विशाल क्षेत्र की आवश्यकता होती है जो 'कुछ भी नहीं कर रहा है', प्रोग्राम स्विच और कनेक्शन लाइन।

स्पष्ट रूप से उन संरचनाओं के साथ, MCUs उन कार्यों के लिए सबसे अच्छा काम करते हैं जिन्हें सीरियल चंक्स में तोड़ा जा सकता है, और FPGAs उच्च गति समानांतर ऑपरेशन की आवश्यकता वाले कार्यों के लिए सबसे अच्छा काम करते हैं। जब आवेदन भारी होता है, और लागत सिलिकॉन लागत पर हावी होती है, तो यह है कि दो प्रकार के प्राकृतिक रूप से कैसे उपयोग किया जाएगा।

जब आवेदन हल्का लेकिन उच्च मात्रा में होता है, तो लागत सिलिकॉन के बजाय पैकेजिंग पर हावी होती है, और या तो प्रकार व्यवहार्य होता है। Altera के पास एक बहुत कम बहुत कम बिजली FPGAs है जो एक डॉलर-ए-मुट्ठी भर MCUs के साथ प्रतिस्पर्धा करने के लिए है।

कम वॉल्यूम ऐप्स के लिए, विकास लागत हावी हो जाती है, और एमसीयू जीतता है, यह मानते हुए कि उनके पास गति है


9

बिजली की खपत और सिलिकॉन उपयोग के संदर्भ में एक माइक्रोप्रोसेसर की तुलना में एक FPGA बहुत खराब है।

एक FPGA तर्क विन्यास सर्किटरी में अपने सिलिकॉन क्षेत्र का अधिक उपभोग करता है जो कि एक माइक्रो पर लागू नहीं होता है। माइक्रोप्रोसेसर के समर्पित कार्यान्वयन पर जरूरत से ज्यादा कई इंटरकनेक्ट उपलब्ध होंगे।

FPGA एक समर्पित ASIC से अधिक बिजली की खपत करता है जैसे कि एक माइक्रोप्रोसेसर जैसे तर्क को कुशलता से लागू नहीं किया जाता है।

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


यदि लक्ष्य माइक्रोप्रोसेसर के पूरे फीचर सेट को लागू करना है, तो सुनिश्चित करें। एक बार जब आप किसी विशिष्ट कार्य के लिए नीचे आते हैं, तो आप माइक्रोकंट्रोलर में बहुत सारे व्यर्थ सिलिकॉन की भी पहचान कर सकते हैं - हो सकता है कि एन्क्रिप्शन इंजन आपके प्रोजेक्ट में जगह बर्बाद कर रहा हो। या परिधीय कर सकते हैं? या फ़्लोटिंग-पॉइंट यूनिट? FPGA का सबसे अच्छा उपयोग कम है, लेकिन बड़े क्षेत्रों में जिस तरह से एक माइक्रोकंट्रोलर करता है, आप भी 0% उपयोग को नहीं झेलते हैं। (दूसरी तरफ, क्लॉक गेटिंग के साथ, बड़े सर्किट का 0% उपयोग एक शक्ति के दृष्टिकोण से बहुत वांछनीय है)
बेन वायगेट

8

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

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

अटारी 2600 में दो खिलाड़ी ऑब्जेक्ट्स, प्रत्येक दो मिसाइल ऑब्जेक्ट्स के क्षैतिज स्थिति के लिए एक स्लिप काउंटर है, और एक अतिरिक्त ऑब्जेक्ट "बॉल" कहा जाता है जो कॉम्बैट में उपयोग नहीं किया जाता है लेकिन कुछ अन्य खेलों में उपयोग किया जाता है। प्रत्येक खिलाड़ी ऑब्जेक्ट के लिए, इसमें 8-बिट कुंडी में संग्रहीत पैटर्न को आउटपुट करने के लिए हार्डवेयर होता है, साथ ही साथ प्रत्येक खिलाड़ी के लिए "विलंबित" आठ-बिट कुंडी जो प्राथमिक 8-बिट कुंडी में कॉपी हो जाती है जब भी अन्य खिलाड़ी आकार अद्यतन किया गया है। इसमें एक क्षैतिज बीम पोजिशन काउंटर और 20-बिट प्लेफील्ड-शेप कुंडी है जो स्क्रीन पर प्रति स्कैन लाइन में दो बार आउटपुट होती है, जिसमें राइट-साइड कॉपी या तो रिपीट या लेफ्ट का प्रतिबिंब होता है। इसमें टकरावों का पता लगाने के लिए हार्डवेयर हैं, लेकिन उनके परिणामस्वरूप कुछ भी करने के लिए नहीं। यह नहीं है किसी भी ऑब्जेक्ट के वर्टिकल पोज़िशन के लिए कोई हार्डवेयर है, न ही रैस्टर बीम की वर्टिकल पोज़िशन (!), और न ही इसमें स्कोर कीपिंग, स्कोर डिस्प्ले, गेम की अवधि, आदि से जुड़ा कोई हार्डवेयर है।

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

एक FPGA में "टैंक" जैसे खेल को लागू करने के लिए सामान्य दृष्टिकोण अलग-अलग कार्यों के लिए अलग-अलग सर्किट का उपयोग उसी तरह करना होगा जैसे कि 1976 आर्केड मशीन ने किया था। ऐसा दृष्टिकोण काम करेगा, लेकिन पर्याप्त मात्रा में हार्डवेयर का उपयोग करें। माइक्रोप्रोसेसर-आधारित दृष्टिकोण माइक्रोप्रोसेसर को जोड़ने के बदले में आधे से अधिक हार्डवेयर को समाप्त कर सकता है, जो कि संभवतया इसके स्थान पर हार्डवेयर की तुलना में कम सर्किटरी होगा (2600 टैंक की तुलना में कहीं अधिक परिष्कृत गेम को लागू कर सकता है, जिसमें बहुत अधिक हार्डवेयर की आवश्यकता होगी अगर वे एक माइक्रोप्रोसेसर का उपयोग नहीं किया)।

FPGAs उन मामलों में उत्कृष्ट हैं, जहां एक ऐसे उपकरण की आवश्यकता होती है जो एक साथ कई सरल कार्य कर सके । माइक्रोप्रोसेसर-आधारित (या माइक्रोकंट्रोलर-आधारित) सिस्टम आम तौर पर बेहतर होते हैं, हालांकि, ऐसे मामलों में जहां कई कार्य हैं जिन्हें करने की आवश्यकता है, लेकिन उन्हें एक साथ संसाधित करने की आवश्यकता नहीं है, क्योंकि वे एक छोटी राशि का उपयोग करना आसान बनाते हैं बड़ी संख्या में विशिष्ट उद्देश्यों को पूरा करने के लिए सर्किटरी।


क्या आप खदानें भी नहीं बिछा सकते, ?? ;-)
स्कॉट सीडमैन

@ScottSeidman: आर्केड मशीन में हार्डवेयर्ड पोजिशन में कुछ खदानें थीं, जिन्हें एक्स के रूप में तैयार किया गया था। दोनों खिलाड़ियों और दोनों मिसाइलों को दिखाते हुए 2600 के लिए खानों को दिखाना बहुत मुश्किल होता। अगर किसी को 60 हर्ट्ज पर खानों की झिलमिलाहट से ऐतराज नहीं है, तो बाद में खोजे गए कुछ ट्रिक्स का उपयोग करना संभव होगा, लेकिन अधिक कोड की आवश्यकता होगी (COMBAT एक 2K कारतूस है जो बहुत अधिक भरा हुआ है - यहां तक ​​कि अप्रयुक्त में दो बाइट्स भी। $ FFFE / FFFF में BRK / IRQ वेक्टर का उपयोग दो-बाइट टेबल को रखने के लिए किया जाता है!)।
सुपरकैट

यह संभवत: कॉम्बैट के लिए खानों को चमकाने वाले वर्गों के रूप में लागू करने के लिए संभव हो सकता है अगर यह अपने कुछ अन्य विकल्पों जैसे शेख़ी शॉट्स आदि को आगे बढ़ाने के लिए तैयार था, लेकिन मुझे लगता है कि जो डेयुइर (प्रोग्रामर) ने खेलने के विकल्प चुनने का अच्छा काम किया। मेरा एक गुण यह है कि अगर बमबारी 4x स्प्राइट के बजाय 2x होती तो बाइप्लेन-बनाम-बॉम्बर अधिक मजेदार होता।
Supercat

5

यह पूरी तरह से लागत है। जब एक सूक्ष्म 30 सेंटीमीटर के रूप में कम हो सकता है, तो एक सस्ता FPGA $ 5 क्षेत्र में है। लागत इतनी अधिक नहीं लग सकती है, लेकिन जब आप $ 10 पर बेचने के लिए एक फ़ार्टिंग नवीनता वाले खिलौने का एक लाख बनाते हैं तो एफपीजीए की कीमत आपके नीचे की रेखा को मार देती है।


6
लागत निश्चित रूप से एक मुद्दा है, लेकिन यह कहना कि अंतर पूरी तरह से लागत के रूप में अनुभवहीन है क्योंकि सभी माइक्रोफ़ोन को FPGAs द्वारा प्रतिस्थापित किया जा सकता है।
ओलिन लेथ्रोप

@OlinLathrop अगर लागत एक मुद्दा नहीं था, तो एक सूक्ष्म कुछ भी कर सकता है, एक FPGA द्वारा किया जा सकता है। यह एक FPGA की क्षमता के साथ एक नरम माइक्रोकंट्रोलर कोर धारण करने के लिए दिखाया गया है। समस्या यह है कि एक FPGA जो इस तरह के कोर को धारण कर सकती है, वह कम से कम है और परिमाण का आदेश अधिक महंगा है, फिर माइक्रो जिसे कोर का अनुकरण किया जा रहा है।
विन्नी_

लागत का अर्थ प्रति यूनिट मूल्य से बहुत अधिक हो सकता है, लेकिन आप इस विश्लेषण में फेंकना चाहते हैं।
स्कॉट सीडमैन

2
मैं नहीं बता सकता कि क्या आप जानबूझकर इस बिंदु को याद करने का नाटक कर रहे हैं, या बस घने हैं। किसी भी तरह से, आप किसी को कुछ भी नहीं कह रहे हैं का जवाब दे रहे हैं। सभी सहमत हैं कि FPGAs की लागत अधिक है, और यह लागत एक मुद्दा है। लेकिन फिर, यह दावा करने के लिए कि केवल मुद्दा ही गलत है। अगर मैंने आपको मुफ्त माइक्रो और FPGAs का एक गुच्छा दिया, तो अभी भी कई महत्वपूर्ण कारण हैं कि आप कई डिज़ाइनों में FPGAs पर माइक्रो का उपयोग क्यों करेंगे।
19-28 को ओलिन लेथ्रोप

4
@ एसएलबी: नहीं, लागत अंतर केवल वॉल्यूम के कारण नहीं है। वितरित गेट के लिए आवश्यक सिलिकॉन क्षेत्र एक FPGA में एक माइक्रोकंट्रोलर जैसी कस्टम चिप की तुलना में काफी बड़ा है। गेट इंटरकनेक्ट स्तर पर सभी कॉन्फ़िगरेशन को लागू करने के लिए सिलिकॉन क्षेत्र लेता है। उच्च मात्रा में, एक चिप की लागत इसके सिलिकॉन क्षेत्र के बारे में है।
ओलिन लेथ्रोप

5

बस दूसरे बहुत अच्छे उत्तरों को जोड़ने के लिए, मुझे लगता है कि FPGA को अपनाना भी एक डोमेन की बात है: उदाहरण के लिए, न्यूरोमॉर्फिक उपकरणों के लिए, FPGA बोर्ड काफी सर्वव्यापी होते जा रहे हैं क्योंकि समानता के लिए एक बहुत बड़ी आवश्यकता है, जो एक मजबूत बिंदु है FPGA की।

यदि आप न्यूरोमोर्फिक उपकरणों के लिए हमारे द्वारा देखे जाने वाले रुझान को एक्सट्रपलेशन करते हैं, तो कोई कल्पना कर सकता है कि अन्य क्षेत्र जो आधारित हैं, या गंभीर रूप से आवश्यकता है, समानांतरवाद शायद FPGAs को बहुत अधिक अपनाएगा। तो शायद FPGA उपभोक्ता ग्रेड उत्पादों के लिए सर्वव्यापी नहीं बन जाएगा, लेकिन यह विशिष्ट डोमेन के लिए हो सकता है क्योंकि ऐसा लगता है कि वर्तमान में यह न्यूरोमॉर्फिक उपकरणों के लिए हो रहा है।


हालांकि यह सच हो सकता है, यह एक पूर्ण उत्तर के लिए पर्याप्त नहीं लगता है। शायद यह एक टिप्पणी के रूप में बेहतर होगा, या आप इस पर विस्तार कर सकते हैं।
नल

यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका अनुरोध करने के लिए, उनके पोस्ट के नीचे एक टिप्पणी छोड़ दें।
फंकीगुडी

3
@Funkyguy, यह सवाल का जवाब देता है। वे अनिवार्य रूप से कह रहे हैं कि FPGAs सर्वव्यापी नहीं हैं क्योंकि आम उपभोक्ता अनुप्रयोगों को FPGAs मजबूत सूट की समानता की आवश्यकता नहीं है।
स्टेनरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.