2010-07-26 33 views
9

मुझे सी (और शायद कुछ सी ++) के साथ एम्बेडेड सीखना शुरू हो रहा है और कार्यालय के किसी ने कहा कि वे एक मुफ्त xilinx चिप दान करने के इच्छुक हैं जो वे अपने शेल्फ पर बैठे हैं। मैं Arduino की तर्ज पर और सोच रहा था, विशेष रूप से Arduino ट्यूटोरियल और नमूना परियोजनाओं प्रचुर मात्रा में हैं।xilinx चिप्स का उपयोग आमतौर पर किया जाता है?

  • क्या कोई यह पुष्टि कर सकता है कि xilinx चिप्स Arduino से तुलना कैसे करते हैं? क्या वे उद्योग के भीतर किसी भी तरह से "असली दुनिया" होने के लिए जाने जाते हैं? या नहीं?

  • क्या विशिष्ट xilinx चिप्स (शायद पुराने मॉडल) हैं जिन्हें मुझे टालना चाहिए, कम से कम जब भी मैं अभी भी शुरू कर रहा हूं?

  • क्या उनके पास ट्यूटोरियल की कमी के कारण Arduino की अपेक्षा अपेक्षाकृत तेज सीखने की वक्र है?

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

उत्तर

9

के साथ प्रोग्राम कर सकते हैं आप चाक और पनीर की तुलना कर रहे हैं। Xilinx एक कंपनी है, एक चिप नहीं है और Arduino एटम एवीआर microcontroller पर आधारित एक खुला विकास मंच है।

इसके अलावा अकेले 'चिप' शायद आपके लिए बेकार है; इसे सहायक घटक और बिजली आपूर्ति आदि के साथ एक विकास बोर्ड पर इकट्ठा किया जाना होगा।

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

जबकि Arduino, या अधिक विशेष रूप से एवीआर (अन्य एवीआर हैं विकास मंच उपलब्ध हैं) सी और सी ++ में प्रोग्राम किया जा सकता है, यदि आप एम्बेडेड सिस्टम में सी ++ का उपयोग करने के बारे में गंभीर हैं, तो 32-बिट प्लेटफॉर्म अधिक उपयुक्त हो सकता है (साथ ही प्रदर्शन लाभ भी हो सकता है)। एआरएम कॉर्टेक्स-एम 3 या एआरएम 7 के आधार पर एक विकास बोर्ड अच्छी शुरुआत होगी, खासकर जब से एआरएम एफपीजीए पर सॉफ्ट-कोर प्रोसेसर के लिए एक आम विकल्प है, यदि आप अंततः उस पर प्रगति करते हैं।

10

एक्सिलिनक्स एफपीजीए चिप्स बेचने के कारोबार में है। ऐसी चिप आपको तर्कसंगत डिज़ाइन बनाने और चिप को जलाने के लिए आवश्यक टूलिंग के बिना बेकार होने जा रही है। टूलींग काफी महंगी होती थी लेकिन कम-से-मध्यम अंत चिप्स के लिए मुफ्त में उपलब्ध होती है (जैसा कि टिप्पणियों में बताया गया है)। Google "वेरिलोग" और "एफपीजीए प्रोग्रामिंग"।

एफपीजीए और आपके आर्डिनो के बीच आवश्यक अंतर यह है कि आप एक एफपीजीए पर हार्डवेयर प्रोग्राम करते हैं, एक Arduino पर सॉफ्टवेयर।

+0

@ हंस, हाँ, वेरिलोग और वीएचडीएल बातचीत के साथ एक घंटी बजती है जो मैंने उनके साथ की थी। तो एफपीजीए एक अच्छा विकल्प नहीं है जब तक कि आप उस कंपनी के लिए काम न करें जिसमें टूलींग टूलींग हो? – cooper

+0

@ नाथन और @ हंस, संदेह नहीं करना, लेकिन क्या आप निश्चित हैं कि सी का उपयोग एफपीजीए के साथ नहीं किया जा सकता है? मैंने सोचा कि क्या कई एम्बेडेड इंजीनियरों कम से कम चिप को स्थानांतरित करने से पहले कोड का परीक्षण करने के लिए उपयोग करते हैं, या कुछ ... – cooper

+2

टूलसेट का हिस्सा एक सिम्युलेटर है, जिससे आप इसे जलाने से पहले कस्टम तर्क डिजाइन का परीक्षण कर सकते हैं। हां, कोड वीएचडीएल है, सी नहीं। आप हार्डवेयर प्रोग्रामिंग कर रहे हैं, सॉफ़्टवेयर नहीं। –

13

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

+1

हार्डवेयर विवरण के लिए SystemC भी है जो लोकप्रियता प्राप्त कर रहा है। लेकिन यह अभी भी कूपर नहीं चाहता है। –

4

Xilinx FPGAs और संबंधित सॉफ़्टवेयर टूल बनाता है। एफपीजीए हैं - संक्षेप में - लैंड-अप-टेबल के साथ कॉन्फ़िगर किए गए NAND द्वारों का भार। जब वे इकाइयों की संख्या एएसआईसी बनाने के औचित्य को उचित ठहराने के लिए पर्याप्त नहीं होती है तो उन्हें अक्सर अतिरिक्त तेज तर्क के लिए कस्टम सिलिकॉन चिप्स के स्थान पर उपयोग किया जाता है।

एफपीजीए वीएचडीएल या वेरिलोग में प्रोग्राम किए गए हैं, जो - अमूर्त रूप से - हार्डवेयर विवरण भाषाएं हैं। वे जैसे वॉन न्यूमैन या कार्यात्मक भाषाएं हैं।

आपको याद है, आप एक नियमित सीपीयू के एक 'सॉफ्ट-कोर' विवरण को लोड कर सकते हैं और सीपीयू सीपीयू के साथ प्रोग्राम जिसे एफपीजीए लोड किया गया है .... आप एम्बेडेड सीखते समय ऐसा नहीं करना चाहते हैं। आप अपने सीपीयू डीबग करने की आवश्यकता को बंद कर सकते हैं। कौन सा, अच्छा, मजेदार हो सकता है। यदि आप ऐसा करना चाहते हैं।

एम्बेडेड काम के लिए, Arduino वर्तमान लोकप्रिय चिप है। आप इसे सी

+0

Arduino एक चिप है? मैंने सोचा कि यह सिर्फ एक शौकिया/छात्र देव बोर्ड था। –

+2

Arduino एक पैकेज चीज की तरह है। यह एटमेल एवीआर श्रृंखला पर निर्भर करता है, जैसा कि मुझे याद है। इस्तेमाल किया गया आर्किटेक्चर 16-बिट हार्वर्ड था। –

+0

हाल ही में? Arduino सॉफ़्टवेयर में g ++ कंपाइलर शामिल है, इसलिए कई सी ++ सुविधाएं उपलब्ध हैं। आप हमेशा बाहरी एवीआर जी ++ कंपाइलर का उपयोग कर सकते हैं – Anycorn

1

जैसा कि यहां पहले से ही कहा गया है कि एक्सिलिनक्स एफपीजीए हैं। एफपीजीए "सॉफ्टब्लिक" हैं, जिसमें आप एक एएसआईसी विकसित करने के लिए सिमलर विकास प्रक्रिया का उपयोग करते हैं, लेकिन आप ऐसा करने के लिए फैब्रिकेशन प्लांट की आवश्यकता के बिना हार्डवेयर पर अपने डिज़ाइन का परीक्षण कर सकते हैं। व्यापार बंद गति है, वे परंपरागत "नंद-नंद" या "न ही-न ही" तर्क से बना एक डिजाइन लेआउट के बजाय "मेटा-लॉजिक" लागू करते हैं, उनके पास प्रोग्राम करने योग्य लुकअप टेबल हैं जिन्हें मनमाने ढंग से तर्क द्वार लागू करने के लिए प्रोग्राम किया जा सकता है। यह मूल कोड के बजाय एक प्रोसेसर के लिए एक व्याख्याता चलाने के लिए अवधारणा में simalar है।

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

एम्बेडेड डिज़ाइनों के लिए एफपीजीए आपको कुछ ऐसा करने की इजाजत देता है जिसे आप आम तौर पर शेल्फ प्रोसेसर से बाहर नहीं निकाल सकते हैं, आपके डिज़ाइन में आपको आवश्यक सटीक हार्डवेयर हो सकता है, आपको 1000 अलग-अलग माइक्रोस्कोस फेंकने की आवश्यकता नहीं है "बहतरीन मैच!" इसके शीर्ष पर मैंने पुरानी प्रणालियों को देखा है जो या तो 16 बिट या 32 बिट प्रोसेसर का उपयोग एफपीजीए में चले गए और प्रोसेसर आधारित डिजाइनों की तुलना में बेहतर प्रदर्शन, कम लागत और कम शक्ति प्राप्त की। "सही" हार्डवेयर सहित कुछ कहा जाना है।

वीएचडीएल और वेरिलोग दोनों उच्च स्तर के लैंगुग हैं और सी और सी ++ से अलग होने पर वे काफी अलग नहीं हैं और एक अलग विचार प्रक्रिया की आवश्यकता है। आपको पुस्तकालयों में आपके लिए सब कुछ करने के लिए बहुत कुछ नहीं मिला है, इसलिए आप "OpenCores.com" जैसी साइटों से "कोर" प्राप्त कर सकते हैं और अतिरिक्त डिज़ाइन के साथ अपने डिज़ाइन को लागू करने के लिए उन्हें एक साथ जोड़ सकते हैं। एफपीजीए कोड आम तौर पर पैरारलल होने जा रहा है, आपको विशेष रूप से धारावाहिक व्यवहार लागू करना होगा, और आपको पाइपलाइन चरणों और देरी पर विचार करना होगा। इसलिए जबकि भाषाएं स्वयं अधिक कठिन नहीं हैं, कुछ अवधारणाएं शायद। लेकिन वे एक और घर के बारे में लिखने के बजाय घर बनाने की तरह भी अधिक फायदेमंद हैं।