प्रोग्रामेबल लॉजिक IC का उपयोग विभिन्न जटिलता के लिए किया जाता है?


10

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

  1. PAL / PLA / GAL : प्रोग्रामेबल तर्क सरणी; डिजीकाइ में dedएंबेडेड - पीएलडी ’केरूप में सूचीबद्ध होने के लिए, अतुल्यकालिक 10/8 I / O (ATF16V8C) को 50MHz, 192 मैक्रोसेल, (CY7C341B) के रूप मेंसूचीबद्ध किया गया है, और ज्यादातर रिप्रोग्रामेबल हैं।
  2. CPLD : जटिल प्रोग्रामेबल लॉजिक डिवाइस; Digikey उन्हें इस तरह सूचीबद्ध करता है, जो 7.5ns 10 I / O (ATF750C) में 233 मेगाहर्ट्ज, 428 I / O "FPGA घनत्व पर CPLDs" (CY39100V484B) में उपलब्ध है।
  3. FPGA : फील्ड-प्रोग्रामेबल गेट ऐरे; 58 I / O (XC2064) से 1023 I / O BGA जानवरों (EP1S80F1508C7N) में उपलब्ध है।
  4. FPGA हार्ड MCU के साथ : यह तब होता है जब FPGA IC में MCU को शारीरिक रूप से रखा जाता है, अनुकरण नहीं किया जाता है।

विकिपीडिया बोली:

FPGAs और CPLD के बीच का अंतर यह है कि FPGAs आंतरिक रूप से लुक-अप तालिकाओं (LUTs) पर आधारित होते हैं, जबकि CPLDs समुद्र के द्वार (जैसे उत्पादों का योग) के साथ तर्क कार्य करते हैं। CPLDs सरल डिज़ाइन के लिए होते हैं जबकि FPGAs अधिक जटिल डिज़ाइन के लिए होते हैं। सामान्य तौर पर, CPLDs व्यापक कॉम्बिनेशन लॉजिक अनुप्रयोगों के लिए एक अच्छा विकल्प है, जबकि FPGAs बड़े राज्य मशीनों (यानी माइक्रोप्रोसेसरों) के लिए अधिक उपयुक्त हैं।

यह 233 मेगाहर्ट्ज, 400 I / O CPLD और एक तुलनीय FPGA का उपयोग करने के बीच के अंतर को स्पष्ट नहीं करता है ; या एक 192 मैक्रोसेल PLD और एक तुलनीय CPLD के बीच । मैं विश्वसनीय दिशानिर्देशों को संकुचित नहीं कर सकता जिसके द्वारा डिज़ाइन विकल्पों को संकीर्ण किया जा सके। ध्यान दें कि मेरे पास वर्तमान में कोई विशिष्ट एप्लिकेशन नहीं है, लेकिन अक्सर सोचता है, "मैं ऐसा करने के लिए क्या उपयोग करूंगा?"

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


XC2064 एक प्राचीन हिस्सा है। मुझे नहीं पता कि CY7C341B और CY39100V484B अभी भी बने हैं या नहीं। आपको इस बात पर विचार करना चाहिए कि कोई तुलना / निर्णय लेते समय।
ब्रायन कार्लटन

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

अच्छी सलाह, @ क्रिसस्ट्रैटन। यह आमतौर पर पहली चीज है जिसे मैं अधिकांश हिस्सों के साथ जांचता हूं, लेकिन यह जानना अभी भी अच्छा है कि यह विशेष रूप से पीएलडी के साथ समस्याग्रस्त है।
tyblu

जवाबों:


7

दो मापदंड हैं जिनका उपयोग करके आप एक डिजिटल प्रोजेक्ट का मूल्यांकन कर सकते हैं जो आपको यह तय करने में मदद करता है कि कौन सा हिस्सा आपके मानदंडों से सबसे अच्छा मेल खाता है। पहला डिज़ाइन आकार / जटिलता है - कितना तर्क शामिल है। दूसरा पिन गणना के संदर्भ में इनपुट और आउटपुट आवश्यकताएं हैं। यदि आप अनुमान लगा सकते हैं कि आपकी सबसे धीमी गति क्या होगी, तो गति को गति दी जा सकती है। वेंडर टूल (अलटेरा क्वार्टस 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 पैकेजों के लिए कई पावर सप्लाई का उपयोग करना शुरू करते हैं।

अपनी डिज़ाइन आवश्यकताओं को कम करने के कदमों में शामिल होंगे:

  1. अपने FPGA / CPLD के लिए सभी इनपुट और आउटपुट को पहचानें। यह आमतौर पर डिजाइन चरण का एक आसान हिस्सा है। इस तरह से आप जानते हैं कि आप किस पैकेज को देख रहे हैं, और आप उस मार्जिन के कितने करीब पहुंच सकते हैं।

  2. आंतरिक तर्क का एक ब्लॉक आरेख बनाएं। यदि आपके ब्लॉक सरल दिखते हैं (प्रत्येक ब्लॉक में लॉजिक गेट्स और रजिस्टरों का पूरा हाथ होगा), तो आप शायद सीपीएलडी का उपयोग कर सकते हैं। यदि, हालांकि, आपके ब्लॉक में "ईथरनेट ट्रांससीवर", "पीसीआई-एक्सप्रेस एक्स 16 इंटरफेस", "डीडीआर 2 नियंत्रक", या "एच 264 एनकोड / डिकोड" जैसे लेबल हैं, तो आप लगभग निश्चित रूप से एक एफपीजीए देख रहे हैं और एचडीएल का उपयोग कर रहे हैं।

  3. देखो और देखो अगर आपके इंटरफेस में विशेष I / O आवश्यकताएं हैं, जैसे कि विशेष वोल्टेज, LVDS, DDR, या उच्च गति SERIES। एक अतिरिक्त ट्रांसलेटर चिप प्राप्त करने की तुलना में इसका समर्थन करने वाली चिप प्राप्त करना आसान है।

उदाहरण CPLD अनुप्रयोग:

  • मल्टी चैनल पीडब्लूएम एसपीआई इंटरफेस के साथ
  • आई / ओ एक्सपैंडर
  • सीपीयू एड्रेस स्पेस डिकोडिंग
  • घड़ियाँ (समय रखते हुए)
  • मल्टीप्लेक्स प्रदर्शित करें
  • सरल डीएसपी
  • कुछ सरल कार्यक्रमों को CPLD डिजाइन में बदला जा सकता है

उदाहरण हॉबीस्ट FPGA अनुप्रयोग:

  • स्मॉल सिस्टम-ऑन-चिप (SoC) डिजाइन
  • वीडियो
  • जटिल प्रोटोकॉल पुल
  • संकेत प्रसंस्करण
  • एन्क्रिप्शन / डिक्रिप्शन
  • विरासत प्रणाली अनुकरण
  • तर्क विश्लेषक / पैटर्न जनरेटर

अधिकांश हॉबीस्ट कार्य के लिए, आप अपेक्षाकृत छोटे FPGAs तक सीमित रहेंगे जब तक आप BGA पैकेजों को मिलाप नहीं करना चाहते। मैं एक बड़े CPLD या एक सस्ते FPGA के बीच चयन करूंगा, और आकार / गति की आवश्यकताएं तय करेगा कि मुझे कौन सा चाहिए।


आपके उत्तर को थोड़ा बढ़ाते हुए, मैं ग्रुप PAL / PLA / GAL को एक ही टोकरी में PLD / CPLD के रूप में शामिल करना चाहूंगा, जो बिना किसी कॉन्फ़िगरेशन समय के तुरंत शुरू हो सकता है, और यह कि विक्रेता CPLD को PAL / PLA / के आगे धकेलना शुरू कर रहे हैं। जीएएल डिवाइस। उदाहरण के लिए मैं कुछ जाली उपकरणों के साथ काम कर रहा हूं और उनके CPLD परिवार IC काफी सस्ते हैं और अधिक फाटक प्रदान करते हैं तो PAL / GAL / PLA चचेरे भाई। पूर्व की तुलना में वे जो पेशकश करते हैं उसके लिए उत्तरार्द्ध की लागत निषेधात्मक है।
स्मैशटैटिक

रेखा निश्चित रूप से थोड़ा धुंधला हो रही है। मुझे नहीं लगा कि PAL / PLA / GALs में स्टोरेज एलिमेंट्स थे, या CLPD का SRAM था, जब तक कि मैं लिस्टेड टायब्लू को सूचीबद्ध नहीं करता। ऐसा लगता है कि PAL / PLA / GAL एक कोर हिस्सा होने की तुलना में एक डिजाइन में बतख टेप की तरह हैं।
W5VO

3

एक अच्छी "रूल ऑफ थंब" सूची कुछ इस तरह होगी:

  • PAL / PLA / GAL: असतत आईसी लॉजिक गेट के स्थान पर एक PCB पर उपयोग किया जाता है
  • CPLD: जहां जटिल, नॉन डीएसपी और संभवतः समय-महत्वपूर्ण कार्यों का उपयोग किया जाता है, (मेमोरी से एक FPGA पर बूट कोड लोड करना, DAC के लिए LUT सिन्यूव जनरेटर)
  • FPGA: जब समय महत्वपूर्ण, गुणा, या DSP क्षमता की आवश्यकता होती है (एफआईआर फिल्टर, एफएफटी, आदि)
  • FPGA हार्ड MCU के साथ: FPGA कार्यक्षमता की आवश्यकता होने पर उपयोग किया जाता है और FPGA पर बाह्य उपकरणों को accesed (अस्थायी सेंसर) होना चाहिए या सादगी (UART / सीरियल पोर्ट कार्यक्षमता) की तुलना में VHDL के बजाय C में एक कम समय के संवेदनशील कार्य की अनुमति दी जानी चाहिए। पीसीबी हाउसकीपिंग, आदि)

कम मात्रा में एक रुपये के नीचे सस्ते CPLD के साथ, PAL / PLA / GAL विरासत अनुप्रयोगों को छोड़कर बहुत अधिक मृत हैं।
क्रिस स्ट्रैटन

मैं यह तर्क नहीं दूंगा। मैं केवल यह कह सकता हूं कि संभवत: जहां कम (बैटरी) शक्ति / छोटे आकार की बाधा है, वे अभी भी उपयोग किए जा सकते हैं क्योंकि वे सीपीडीएल से अधिक लाभप्रद हो सकते हैं, लेकिन मैं अभी भी सबसे छोटी / शक्ति-कुशल सीपीएलडी का उपयोग करूंगा यदि यह मेरे थे डिज़ाइन।
जोएल बी

2

एक सरल उत्तर यह हो सकता है कि दो तरीके हैं:

1. आप पहली बार अपने सिस्टम को उच्च अमूर्त स्तर (जैसे कि एचडीएल या स्कीमैटिक्स) पर डिज़ाइन करते हैं। फिर आप इसे PAL / CPLD / FPGA में फिट करने की कोशिश करते हैं और अपनी आवश्यकताओं (गेट्स / लॉजिक-एलिमेंट्स, परफॉर्मेंस आदि की संख्या) को संतुष्ट करने वाले का चयन करते हैं और फिर इनमें से सबसे सस्ते में से किसी एक को चुनते हैं जिसे आप सबसे सस्ता (डेवलपमेंट कॉस्ट) कहते हैं। उत्पादन लागत, आदि)।

2. लेकिन आमतौर पर इससे पहले कि आप कोई एचडीएल कोडिंग या योजनाबद्ध विकास शुरू करें, आप पहले से ही सिस्टम की जटिलता का अनुमान लगा सकते हैं (आपको कितने गेट चाहिए, अगर ऐसा लगता है कि आपको 8-बिट एमसीयू या 32-बिट एमसीयू, या कोई माइक्रोकंट्रोलर की आवश्यकता है सब)। उसके आधार पर आप अपना प्रोग्राम डिवाइस भी चुन सकते हैं। यह कम सटीक होगा, लेकिन प्रोग्रामेबल हार्डवेयर और सॉफ्टवेयर (यदि हो तो) के समानांतर अपने गैर-प्रोग्रामेबल एनालॉग और डिजिटल हार्डवेयर को डिजाइन करने की अनुमति देगा।


2

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

FPGA स्थान के भीतर सस्ते / कम बिजली के पुर्ज़े और महंगे / तेज़ हिस्से हैं। आम तौर पर माइक्रोकंट्रोलर केवल एक महंगी में होता है; इससे लागत व्यापार बनाम असतत MCU ऑन-एफपीजीए समाधान के लिए और भी बदतर हो जाता है।

कोई भी नए डिजाइन में PAL का उपयोग नहीं करता है, कम से कम 10+ वर्षों के लिए। CPLD ने उस जगह पर कब्जा कर लिया है।

अंतिम 5 में? साल CPLDs FPGA की तरह होते हैं, लेकिन मेमोरी को ऑन-चिप रखने के लिए। चूंकि FPGAs अब मेगाहर्ट्ज के 100 के हैं, इसलिए गति CP CP में तर्क देने के लिए 10-15 साल पहले की तुलना में बहुत कम है। हालाँकि FPGAs में अभी भी कई विशेषताएं हैं जैसे कि मल्टीप्लायर, धारावाहिक और कई यादें जो एक डिज़ाइन को एक में मजबूर कर सकती हैं, भले ही उसमें उतना तर्क न हो।


1
CPLD रखने का एक कारण यह है कि वर्तमान कम लागत वाले CPLD को अभी भी एकल-आपूर्ति वोल्टेज प्रौद्योगिकियों में बनाया जा रहा है, जबकि अधिकांश वर्तमान FPGAs को कई आपूर्ति वोल्टेज की आवश्यकता होती है। इसलिए अगर आपको बोर्ड पर cpld लगाने के लिए बहुत सस्ता करने की ज़रूरत नहीं है - लेकिन अगर आप एक बड़े CPLD के बारे में बात कर रहे हैं, तो कम-अंत वाला fpga सस्ता हो सकता है और आपको भविष्य में वृद्धि के लिए अधिक जगह दे सकता है, खासकर अगर आपके पास पहले से ही किसी अन्य कारण से कोर वोल्टेज की आपूर्ति उपलब्ध है।
क्रिस स्ट्रैटन

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