FPGA कैसे चुनें?


17

मुझे 8 एनालॉग लाइनों पर 10 kHz पर डिजिटल सिग्नल प्रोसेसिंग करने की आवश्यकता है। यह काफी मांग वाला काम है, और मैं सोच रहा था कि एक एफपीजीए सही तरीका हो सकता है। मैं वर्तमान में Xilinx से देव किट को देख रहा हूं, और चूंकि मुझे FPGA के साथ कोई अनुभव नहीं है, इसलिए मुझे यह जानना बहुत मुश्किल है कि सही चिप कैसे चुनें। मैंने एक देव-किट का उपयोग करने और 8 /-चैनल A / D चिप और 8-चैनल D / A चिप से कनेक्ट करने के लिए I / O पिन का उपयोग करके इसका विस्तार करने की कल्पना की।

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

मुझे ऐसे समाधान की आवश्यकता है जो लिनक्स का उपयोग करके प्रोग्राम करने योग्य हो। Xilinx यह प्रदान करता है, लेकिन मुझे यकीन नहीं है कि सीमाएं क्या हैं।


5
यह जानने में बहुत मदद मिलेगी कि आपको किस प्रकार के एल्गोरिदम को लागू करने की आवश्यकता है। संभावना है कि आपको एक FPGA की आवश्यकता नहीं है, जो आपको विकास के समय की बहुत बचत करेगा ;-)
geschema

मैं geschema से सहमत हूं; आपको FPGA की आवश्यकता नहीं हो सकती है। शायद एक डीएसपी एक बेहतर समाधान है। यदि आपके पास केवल यूसीएस का अनुभव है, तो किसी भी मामले में शुरुआत करना आसान है। FPGAs बहुत अलग हैं!
स्टीवनवह

जवाबों:


13

मैं FPGA का उपयोग नहीं करूंगा।

आप उल्लेख करते हैं कि आपके पास FPGA के साथ कोई अनुभव नहीं है, और फिर भी आप एक FPGA पर डिजिटल सिग्नल प्रोसेसिंग करने में रुचि रखते हैं ... संख्यात्मक हेरफेर + सिग्नल प्रोसेसिंग कंप्यूटर / DSP / माइक्रोप्रोसेसर पर सही तरीके से प्राप्त करना मुश्किल है, जहां प्रोग्रामिंग टूल पारंपरिक हैं प्रोग्रामिंग। यह मुझे लगता है कि पहली FPGA परियोजना के लिए डिजिटल सिग्नल प्रोसेसिंग प्रोजेक्ट का उपयोग करने से निराशा की संभावना है।

यदि आप FPGAs सीखना चाहते हैं, तो राज्य के मशीनों या संचार पैकेट प्रसंस्करण जैसे विकास के साधनों के अनुकूल कुछ और करने की कोशिश करें।

एक डीएसपी परियोजना के लिए जैसा आपने वर्णित किया है, मैं इसके बजाय एक डीएसपी या सरू पीएसओसी या एक एनालॉग डिवाइसेस माइक्रोकंट्रैक्टर (= एडीसी + डीएसी बिलिन के साथ माइक्रोकंट्रोलर) की सिफारिश करूंगा ।

(पूर्ण प्रकटीकरण, जो मेरी सलाह के लिए कुछ संदर्भ प्रदान करता है: मैं खुद FPGAs का उपयोग नहीं करता हूं। मैंने दुर्लभ अवसरों पर प्रोग्रामेबल लॉजिक = PLDs का उपयोग किया है। मेरा ऑफिसर FPGAs का अक्सर उपयोग करता है, और मैंने पर्याप्त VHDL / वेरिलॉग कोड देखा है। कंधे को पता है कि यह बिट जोड़तोड़ के लिए अच्छी तरह से अनुकूल है। वह FPGAs के साथ बहुत सारे अनुभव वाले अनुभवी इंजीनियर हैं, हाल ही में उनके साथ बातचीत में जहां वे अलग-अलग बिट चौड़ाई के साथ पूर्णांक पर कुछ काफी सरल गणित कर रहे थे, मैंने उन्हें बताया कि उन्हें उसकी आवश्यकता है इसे ठीक से घटाने के लिए छोटी बिट चौड़ाई संख्या पर साइन-विस्तार करना, और उसने अपने चेहरे पर यह रूप देखा, जैसे "ओह यार, मुझे साइन एक्सटेंशन नहीं करना है ..." जोड़ना और घटाना एक FPGA में बहुत मुश्किल नहीं है। इसके अलावा और घटाव के अलावा, आपको वास्तव में उपकरण और पुस्तकालयों को जानना होगा।और फ़्लोटिंग-पॉइंट प्रोसेसिंग ??!? !! ??!? !!? "


2
MyHDL उन समस्याओं में से कुछ को ठीक करने की कोशिश करता है।
शॉन जे। गोफ

मुझे नहीं लगता कि FPGAs माइक्रो की तुलना में उपयोग करना अधिक कठिन है, उनके पास बस एक अलग सेट है।
कॉनर वुल्फ

10

वे सभी बहुत अच्छे हैं। आपको FPGA से बाहर बहुत कुछ करने की ज़रूरत नहीं होगी जैसे कि कुछ सरल, इसलिए किसी भी शुरुआत FPGA (जैसे स्पार्टन -3 लाइन) को पर्याप्त होना चाहिए।

हालांकि चेतावनी का एक शब्द है, एक FPGA प्रोग्रामिंग COO, C, perl की तरह कुछ से अलग एक LOOOOTTTTTT है ... मैं सुझाव देना चाहूंगा कि verilog के साथ शुरू करना क्योंकि यह शायद संक्रमण करना आसान है ... VHDL बहुत पसंद है लेकिन वेरिलॉग आधुनिक प्रोग्रामिंग भाषाओं के समान है।

घड़ी की गति के बारे में: इसके बारे में चिंता मत करो। FPGAs का उपयोग करने का लाभ यह है कि वे बड़े पैमाने पर समानांतर होते हैं, इसलिए जबकि 50MHz घड़ी आज के मानकों से हास्यास्पद धीमी लग सकती है, ध्यान रखें कि वे एक साथ सैकड़ों चीजें कर सकते हैं, जबकि 3GHz में "सामान्य" सीपीयू को चीजों को कतार में रखना पड़ता है। एक समय में एक। यह FPGA का उपयोग करने के लिए लाभ है: समानता। तो कुछ विशेष के लिए, आपको गति के बारे में चिंता करने की ज़रूरत नहीं है।

लेकिन अन्य टिप्पणी की तरह, यह पूरी तरह से एक अलग प्रतिमान है। सीखने की अवस्था खड़ी है, लेकिन एक बार जब आप भाषा को समझ लेते हैं, तो यह सब समझ में आता है (बस यह सुनिश्चित करें कि आप बिल्डिंग ब्लॉक्स को समझते हैं)।

हैप्पी FPGA'ing :)


2
VHDL वास्तव में Ada पर आधारित है! लियोन
लियोन हेलर

2
इसके अलावा, वेरिलोग या वीएचडीएल को चुनने में, इसके बारे में प्रकाश में भाषा पर विचार करें जो आपके भविष्य के विपणन में निवेश है। अमेरिका में, वेरिलोग वीएचडीएल की तुलना में आईसी / चिप विकास में अधिक लोकप्रिय है, इसलिए वेरिलोग (और इसके वर्धित संस्करण, सिस्टम वेरिलॉग) को जानना बेहतर दीर्घकालिक निवेश होगा। ऐसा भी लगता है कि ईडीए की सभी बड़ी कंपनियां वेरिलॉग और सिस्टम वेरिलॉग में निवेश कर रही हैं, जबकि वीएचडीएल पर ज्यादा ध्यान नहीं दिया जा रहा है। (साक्षी वीसीएस वीएचडी बनाम वीसीएस वर्लॉग सिम्युलेटर प्रदर्शन अंतर के साथ मिश्रित सिमुलेशन)। (पंक्ति ज्वलंत) हाँ आप दोनों सीख सकते हैं, लेकिन प्राथमिकता क्यों नहीं।
रॉस रोजर्स

आप इसे किसी भी भाषा में लिख सकते हैं। मुझे लगता है कि Xilinx टूल वेरिलॉग और VHDL ले सकते हैं, यहां तक ​​कि एक ही प्रोजेक्ट में भी। एफडब्ल्यूआईडब्ल्यू, मैं यूएस में हूं और मैंने कभी वेरिलॉग का इस्तेमाल नहीं किया।
ajs410

1
"VHDL बहुत COBOL की तरह है"। एक लाख मील तक नहीं!
स्टीवनव

9

कुछ समय पहले मैंने दो FPGA विक्रेताओं Xilinx और Altera से प्रवेश स्तर FPGA बोर्डों के एक तुलना चार्ट को एक साथ रखा था । वे FPGAs में दो प्रमुख खिलाड़ी हैं, जैसे PIC बनाम AVR या Sony बनाम Nintendo। वे सबसे अच्छा बैंग-फॉर-हिरन प्रदान करते हैं। अन्य विक्रेता हैं जो विशिष्ट सुविधाएँ प्रदान करते हैं, लेकिन आप आमतौर पर या तो अधिक भुगतान करते हैं, या सुविधाओं / प्रसंस्करण शक्ति को खो देते हैं।

मुझे पता है कि यह सीधे आपके विशिष्ट प्रश्न का उत्तर नहीं देता है, लेकिन यह किसी भी व्यक्ति के लिए सहायक होना चाहिए जो FPGA बोर्ड के साथ आरंभ करना चाहता है।


7

कितने सारे सवाल; चलो उन्हें क्रम में जवाब देने की कोशिश करते हैं:

  1. सिग्नल प्रोसेसिंग के लिए संसाधन की आवश्यकता: इस बात का निर्धारण करने के लिए कि आपको किन-किन हार्डवेयरों का उपयोग / निर्माण करने की आवश्यकता है, इस बात की आवश्यकता है कि आप उस सिग्नल पर कितनी प्रोसेसिंग करना चाहते हैं। 8 चैनल @ 10 kHz एक बहुत ही उच्च डेटा दर नहीं है, इसलिए जब तक आपकी आवश्यकताएं बहुत विशेष नहीं हैं FPGAs और DSPs डेटा को संसाधित करने में सक्षम होना चाहिए।
  2. मैं सही उपकरण कैसे चुनूं?आपके सिग्नल प्रोसेसिंग की आवश्यकताओं के आधार पर आपको यह पता लगाने में सक्षम होना चाहिए कि आपके एप्लिकेशन के लिए कौन सा डिवाइस आवश्यक है। मुख्य बिंदु मेमोरी आवश्यकता है, हार्ड मल्टीप्लायर की आवश्यकता है, विशेष IO विचार, आदि। अधिकांश FPGA विक्रेताओं के पास उपकरण (वेब ​​आधारित) हैं जो आपको ऐसे कारकों के आधार पर अपने पोर्टफोलियो की खोज करने देते हैं।
  3. मैं DSP से कैसे आरंभ कर सकता हूं?डीएसपी केवल सामान्य कंप्यूटर हैं जिनमें आमतौर पर SIMD [सिंगल इंस्ट्रक्शन, मल्टीपल डेटा] सिग्नल प्रोसेसिंग के लिए प्रासंगिक निर्देश होते हैं। आरंभ करने के लिए आपको "एम्बेडेड" हार्डवेयर और सी कंपाइलर की सीमाओं को समझने की आवश्यकता है ताकि आप एक साधारण पीसी पर अपने कोड का परीक्षण कर सकें।
  4. मैं FPGAs के साथ कैसे आरंभ करूं?FPGAs को हार्डवेयर विवरण भाषा में प्रोग्राम किया जाता है। ये सी या जावा जैसी अनुक्रमिक भाषाओं से काफी अलग हैं। FPGA के लिए विकसित करने के लिए आपको वास्तविक हार्डवेयर के समवर्ती प्रकृति को समझने की आवश्यकता है। आपको जिन उपकरणों को शुरू करने की आवश्यकता है, वह एक एचडीएल सिम्युलेटर है जैसे कि सिमिली (छोटे डिजाइनों के लिए मुफ्त) या मॉडलिम। यह आपको पीसी पर अपना कोड अनुकरण करने देता है। उसके बाद आपको एक विक्रेता विशिष्ट संश्लेषण उपकरण की आवश्यकता होती है जो आपको एचडीएल-कोड को एक बिट-फाइल में संकलित करता है जिसका उपयोग एफपीजीए को कॉन्फ़िगर करने के लिए किया जाता है। यदि आपको अल्टर, एक्टेल या एक्सिलिनक्स से स्टार्टर किट मिलती है, तो आपके लिए आवश्यक सभी उपकरण किट का हिस्सा हैं।
  5. लिनक्स समर्थन: अधिकांश विक्रेताओं के FPGA उपकरण लिनक्स पर चलते हैं, लेकिन DSP क्षेत्र में आप आमतौर पर Windows- केवल संकलन का उपयोग करने के लिए मजबूर होते हैं जब तक कि आपका DSP GCC द्वारा समर्थित नहीं होता है (एनालॉग से ब्लैकफिन और टेक्सास इंस्ट्रूमेंट्स के कई मॉडल हैं)।

+1 के लिए "8 चैनल @ 10 kHz एक बहुत ही उच्च डेटा दर नहीं है" - मैं विश्वास नहीं कर सकता कि किसी ने भी अभी तक ऐसा नहीं कहा है।
केविन वर्मर

नहीं तो वह 8-चैनल FFT कर रहा है ...
ajs410

डीएसपी अक्सर एकल-थ्रेडेड समानांतर प्रसंस्करण इकाइयाँ होती हैं, जो प्रत्येक एक अलग निर्देश को क्रियान्वित करने में सक्षम होती हैं (SIMD के विपरीत जहाँ सभी इकाइयाँ समान निर्देश साझा करती हैं)।
बेन Voigt


4

बस के बारे में किसी भी FPGA विक्रेता करेंगे। यह इंटेल बनाम AMD की तरह है ... Xilinx और Altera के बीच अंतर हैं, लेकिन वे कार्यक्षमता के मामले में उल्लेखनीय रूप से समान हैं। आपकी मूल्य सीमा में जो भी विकास किट है, उसे खरीदें - मुझे व्यक्तिगत रूप से स्पार्टन 3 की एक्सलिनक्स से पसंद है - और इसके साथ चलें।

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

उचित डिजाइन तकनीकों के साथ, घड़ी की गति कोई समस्या नहीं होगी। वास्तव में, आप आमतौर पर 12 मेगाहर्ट्ज की तरह एक अपेक्षाकृत कम गति वाले क्रिस्टल का उपयोग कर सकते हैं, और FPGA एक बहुत तेज घड़ी (या कई तेज घड़ियों!) को संश्लेषित कर सकता है यदि आप वास्तव में मल्टीप्ले-एड के बारे में चिंतित हैं, तो मुझे पता है कि विराट x 4 श्रृंखला। समर्पित डीएसपी स्लाइस जो उन गणनाओं को तेज कर सकते हैं। लेकिन FPGAs बड़े पैमाने पर समानांतर हैं, इसलिए आपको एक टन काम करने के लिए बहुत सारे मेगाहर्ट्ज की आवश्यकता नहीं है।

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

FPGAs के साथ आरंभ करने का सबसे अच्छा तरीका है? एक वर्ग या एक संगोष्ठी या कुछ और खोजें। यदि आप प्रौद्योगिकी से अपरिचित हैं, तो विकास उपकरण बहुत भ्रमित हो जाएंगे, क्योंकि बहुत कुछ ऐसा है जो गलत हो सकता है। MCU के लिए उपकरण अधिक क्षमाशील होते हैं और अंतर्निहित वास्तुकला के साथ कम अंतरंगता की आवश्यकता होती है।

ओह, और आपको FPGA की डेटशीट पढ़नी चाहिए, बैक टू बैक।



0

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

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