दो मापदंड हैं जिनका उपयोग करके आप एक डिजिटल प्रोजेक्ट का मूल्यांकन कर सकते हैं जो आपको यह तय करने में मदद करता है कि कौन सा हिस्सा आपके मानदंडों से सबसे अच्छा मेल खाता है। पहला डिज़ाइन आकार / जटिलता है - कितना तर्क शामिल है। दूसरा पिन गणना के संदर्भ में इनपुट और आउटपुट आवश्यकताएं हैं। यदि आप अनुमान लगा सकते हैं कि आपकी सबसे धीमी गति क्या होगी, तो गति को गति दी जा सकती है। वेंडर टूल (अलटेरा क्वार्टस II, Xilinx ISE, आदि) आपको सही बॉलपार्क में पहुंचने से पहले मदद करेंगे।
PAL / PLA / GAL: इनका उद्देश्य एक छोटे से मध्यम आकार के सर्किट को बदलना है जिसे आप सामान्यतः LSI लॉजिक चिप्स (7400, 4000 श्रृंखला) के रूप में लागू कर सकते हैं। ये I / O रीमैपिंग, और बहुत सारे सरल तर्क कार्यों के कारण बेहतर बोर्ड लेआउट की पेशकश कर सकते हैं। इन चिप्स में गैर-वाष्पशील मेमोरी (या एक समय प्रोग्राम योग्य फ़्यूज़) होती है और इसके लिए किसी पावर-अप कॉन्फ़िगरेशन समय की आवश्यकता नहीं होती है। उनमें डेटा संग्रहण तत्व नहीं हो सकते हैं।
CPLD: ये PLA के बड़े चचेरे भाई हैं। डिजाइन छोटे राज्य मशीन, या यहां तक कि एक बहुत ही सरल माइक्रोप्रोसेसर कोर हो सकते हैं। सीपीएलडी के अधिकांश चिप्स जो मैंने देखे हैं उनमें कोई भी ऑन-चिप एसआरएएम नहीं है, हालांकि आपके द्वारा जुड़े बड़े साइप्रस सीपीएलडी। सीपीएलडी फ्लैश मेमोरी के साथ फिर से प्रोग्राम करने योग्य है, और उन्हें पावर-अप पर कॉन्फ़िगरेशन समय की भी आवश्यकता नहीं है।
FPGA: CPLD के विपरीत, तर्क ब्लॉक फ्लैश मेमोरी के बजाय SRAM पर आधारित होते हैं, जिसके परिणामस्वरूप तेजी से तर्क संचालन होता है। FPGAs के साथ प्रमुख पक्ष यह है कि चूंकि SRAM में कॉन्फ़िगरेशन संग्रहीत है, हर बार डिवाइस FPGA द्वारा संचालित होने के कारण इस SRAM में अपनी प्रोग्रामिंग को लोड करना होगा। आपके डिजाइन के आकार और आपके गैर-वाष्पशील भंडारण की गति के आधार पर, यह पावर-ऑन से पूरी तरह से काम करने में ध्यान देने योग्य देरी का कारण बन सकता है। कुछ FPGAs के पास अपने डेटा को संग्रहीत करने के लिए ऑन-चिप फ्लैश है, लेकिन अधिकांश अलग मेमोरी चिप्स का उपयोग करते हैं। FPGAs में अक्सर हार्ड-वायर्ड मल्टीप्लायर, PLL और अन्य लॉजिक फ़ंक्शन होते हैं, जो कंप्यूटिंग गति में सुधार करते हैं। ऑन-चिप रैम के बड़े ब्लॉक भी उपलब्ध हैं। आप LVDS, PCI, और PCI-Express जैसे उच्च-प्रदर्शन I / O विनिर्देशों का उपयोग करने में भी सक्षम होंगे।
माइक्रोप्रोसेसर हार्ड कोर के साथ FPGA: मैं इन से परिचित नहीं हूं, लेकिन मुझे लगता है कि आपका डिज़ाइन माइक्रोकंट्रोलर प्रोग्रामिंग के आसपास केंद्रित होगा, और FPGA माइक्रोकंट्रोलर को संवर्धित करेगा। जिन हिस्सों की आपने पहचान की है, वे यह देखते हैं कि आप अपने डिज़ाइन को एक माइक्रोकंट्रोलर और एक FPGA के साथ शुरू करेंगे, और फिर दोनों को एक चिप / पैकेज में जोड़ देंगे।
कैसे तय करें जो आपके लिए सही है:
सबसे अच्छा तरीका यह है कि आपके कोड (वेरिलॉग / वीएचडीएल) को समाप्त कर दिया जाए, और फिर विक्रेता के साधनों का उपयोग करके इसे छोटे से छोटे हिस्से में फिट करने की कोशिश करें। मुझे पता है कि एल्टर का उपकरण आपको प्रोग्रामिंग लक्ष्यों को काफी आसानी से बदलने देता है, इसलिए आप छोटे FPGAs को उठा सकते हैं, और तब तक छोटे CPLDs जब तक आपके डिज़ाइन का उपयोग लगभग 75% नहीं हो जाता। यदि आपको प्रदर्शन की आवश्यकता होती है, तो उन उपकरणों को लेने की कोशिश करें जिनमें विशेषताएं हैं (तेज गुणक) जो तर्क की गति आवश्यकताओं को कम करते हैं। फिर से, विक्रेता उपकरण आपको यह पहचानने में मदद करेंगे कि क्या आपको अपग्रेड करने की आवश्यकता है या यदि आप डाउनग्रेड कर सकते हैं।
जिस भाग का उपयोग करना है उसका एक अन्य कारक आसानी से उपयोग करना है। PAL / PLA / GAL लॉजिक का उपयोग करना असतत लॉजिक गेट्स (74HC *, 4000, आदि) का उपयोग करके फ़ंक्शन के निर्माण की तुलना में अधिक प्रयास है। CPLD को आम तौर पर केवल एक आपूर्ति वोल्टेज की आवश्यकता होती है, और अतिरिक्त सर्किटरी की आवश्यकता नहीं होती है। वे प्रभावी रूप से अकेले खड़े हैं। FPGAs I / O और लॉजिक कोर, कॉम्प्लेक्स I / O मानकों, अलग-अलग प्रोग्राम मेमोरी, मल्टी-लेयर (> 2) PCBs, और BGA पैकेजों के लिए कई पावर सप्लाई का उपयोग करना शुरू करते हैं।
अपनी डिज़ाइन आवश्यकताओं को कम करने के कदमों में शामिल होंगे:
अपने FPGA / CPLD के लिए सभी इनपुट और आउटपुट को पहचानें। यह आमतौर पर डिजाइन चरण का एक आसान हिस्सा है। इस तरह से आप जानते हैं कि आप किस पैकेज को देख रहे हैं, और आप उस मार्जिन के कितने करीब पहुंच सकते हैं।
आंतरिक तर्क का एक ब्लॉक आरेख बनाएं। यदि आपके ब्लॉक सरल दिखते हैं (प्रत्येक ब्लॉक में लॉजिक गेट्स और रजिस्टरों का पूरा हाथ होगा), तो आप शायद सीपीएलडी का उपयोग कर सकते हैं। यदि, हालांकि, आपके ब्लॉक में "ईथरनेट ट्रांससीवर", "पीसीआई-एक्सप्रेस एक्स 16 इंटरफेस", "डीडीआर 2 नियंत्रक", या "एच 264 एनकोड / डिकोड" जैसे लेबल हैं, तो आप लगभग निश्चित रूप से एक एफपीजीए देख रहे हैं और एचडीएल का उपयोग कर रहे हैं।
- देखो और देखो अगर आपके इंटरफेस में विशेष I / O आवश्यकताएं हैं, जैसे कि विशेष वोल्टेज, LVDS, DDR, या उच्च गति SERIES। एक अतिरिक्त ट्रांसलेटर चिप प्राप्त करने की तुलना में इसका समर्थन करने वाली चिप प्राप्त करना आसान है।
उदाहरण CPLD अनुप्रयोग:
- मल्टी चैनल पीडब्लूएम एसपीआई इंटरफेस के साथ
- आई / ओ एक्सपैंडर
- सीपीयू एड्रेस स्पेस डिकोडिंग
- घड़ियाँ (समय रखते हुए)
- मल्टीप्लेक्स प्रदर्शित करें
- सरल डीएसपी
- कुछ सरल कार्यक्रमों को CPLD डिजाइन में बदला जा सकता है
उदाहरण हॉबीस्ट FPGA अनुप्रयोग:
- स्मॉल सिस्टम-ऑन-चिप (SoC) डिजाइन
- वीडियो
- जटिल प्रोटोकॉल पुल
- संकेत प्रसंस्करण
- एन्क्रिप्शन / डिक्रिप्शन
- विरासत प्रणाली अनुकरण
- तर्क विश्लेषक / पैटर्न जनरेटर
अधिकांश हॉबीस्ट कार्य के लिए, आप अपेक्षाकृत छोटे FPGAs तक सीमित रहेंगे जब तक आप BGA पैकेजों को मिलाप नहीं करना चाहते। मैं एक बड़े CPLD या एक सस्ते FPGA के बीच चयन करूंगा, और आकार / गति की आवश्यकताएं तय करेगा कि मुझे कौन सा चाहिए।