क्या ऐसी परियोजना के लिए एफपीजीए व्यवहार्य है?


12

मैं वर्तमान में सुपर ओएसडी पर काम कर रहा हूं - ऑन स्क्रीन डिस्प्ले प्रोजेक्ट। http://code.google.com/p/super-osd में सभी विवरण हैं।

फिलहाल मैं नौकरी करने के लिए dsPIC MCU का उपयोग कर रहा हूं। यह एक बहुत शक्तिशाली DSP (40 MIPS @ 80 MHz, तीन-रजिस्टर एकल-चक्र संचालन और एक MAC इकाई) है और, महत्वपूर्ण बात, यह एक DIP पैकेज में आता है (क्योंकि मैं इसे प्रोटोटाइप करने के लिए ब्रेडबोर्ड का उपयोग कर रहा हूं।) मी वास्तव में OSD को चलाने से इसका हर अंतिम बिट प्राप्त होता है - चिप में आउटपुट स्टेज पर प्रति पिक्सेल लगभग 200ns या 10 चक्र होते हैं, इसलिए इस भाग में कोड को बहुत अनुकूलित किया जाना चाहिए (इस कारण से इसे हमेशा लिखा जाएगा सभा।)

अब मैं इसके लिए एक FPGA का उपयोग करने पर विचार कर रहा था क्योंकि इस तरह की चिप की समानांतर वास्तुकला के कारण ओएसडी को चलाने के लिए एक सरल लॉजिक प्रोग्राम होना संभव है। रेखाओं और एल्गोरिदम कोड जैसी चीजों को एक MCU द्वारा नियंत्रित किया जाएगा, लेकिन वास्तविक उत्पादन एक FPGA के साथ किया जाएगा। और कुछ साधारण चीजें जैसे पिक्सेल सेट करना या क्षैतिज और ऊर्ध्वाधर रेखाएँ खींचना मैं गति को बेहतर बनाने के लिए FPGA पर एकीकृत करना चाहूंगा।

मेरे कुछ सवाल है:

  1. क्या यह काफी अधिक खर्च होगा? सबसे सस्ता FPGA मुझे मिला ~ £ 5 प्रत्येक और dsPIC £ 3 प्रत्येक है। तो यह अधिक खर्च होगा, लेकिन कितना द्वारा?
  2. DsPIC एक SO28 पैकेज में फिट बैठता है। मैं SO28 या TQFP44 से बड़ा नहीं जाना चाहूंगा। ज्यादातर FPGA के BGA या TQFP> 100 पैकेज में मैंने देखा है, जो फिलहाल एक विकल्प नहीं हैं, कतरनी आकार के कारण, और उन्हें खुद को सोल्डर करने की कठिनाई के कारण।
  3. FPGA द्वारा कितना करंट इस्तेमाल किया जाता है? DsPIC समाधान वर्तमान में लगभग 55mA +/- 10mA की खपत करता है, जो इस समय ठीक है। क्या एक FPGA कम या ज्यादा खपत करेगा? क्या यह परिवर्तनशील है, या यह dsPIC की तरह बहुत अधिक स्थिर है?
  4. ओएसडी ग्राफिक्स को स्टोर करने के लिए मुझे कम से कम 12KB ग्राफिक्स मेमोरी की आवश्यकता होती है। क्या FPGA की इस तरह की मेमोरी चिप पर उपलब्ध है या यह केवल बाहरी चिप्स के साथ उपलब्ध है?

जवाबों:


7

सिद्धांत रूप में यह FPGA आधारित डिजाइन के लिए अच्छा उम्मीदवार है। अपनी आवश्यकताओं के बारे में:

विज्ञापन 1. FPGA सबसे अधिक संभावना है कि आपके द्वारा चुने गए डिवाइस पर कितना निर्भर करता है। पहली नज़र में Xilinx (XC3S50AN) से सबसे छोटा स्पार्टन 3 इस कार्य के लिए तब (फ़ार्नेल से ~ 10 पाउंड) अधिक होगा। मुझे लगता है कि आप मान सकते हैं कि यह लागत के लिए ऊपरी सीमा है (इसमें 56kB रैम है, इसलिए यह अधिक है तो आपको आवश्यकता है)। आपको Xilinx की पेशकश या उनके प्रतिस्पर्धियों Altera और Lattice से सस्ता डिवाइस मिल सकता है।

ad 2. पैकेज कठिन मुद्दा है, मैंने FPGA को छोटे पदचिह्न के साथ नहीं देखा। हालाँकि शायद आप CPLD डिवाइस का उपयोग कर सकते हैं (तर्क के लिए CPLD छोटे FPGAs हैं) जो छोटे पैकेज (PLCC या QFN) में हो सकता है। प्लस साइड पर वे सस्ते होंगे (यहां तक ​​कि एकल $) नकारात्मक पक्ष पर सबसे अधिक संभावना है कि अंदर रैम नहीं होगा। CPLD के साथ शायद आपको बाहरी SRAM चिप की आवश्यकता होगी।

विज्ञापन 3. FPGAs और CPLD वर्तमान खपत प्रोग्राम किए गए डिज़ाइन पर अत्यधिक निर्भर है। हालाँकि इस बात की अच्छी संभावना है कि FPGA और विशेष रूप से CPLD डिज़ाइन आपके वर्तमान समाधान से कम खपत करेगा।

ad 4. FPGA में उस तरह की मेमोरी होती है, CPLD सबसे निश्चित रूप से नहीं। यह बाहरी श्रम चिप (या दो) द्वारा हल किया जा सकता है। उदाहरण के लिए:

| एसआरएएम 1 | <-> | CPLD | <-> | uC |
| एसआरएएम 2 | <->

ऐसी व्यवस्था में जब यूआर एसआरएएम 1 को लिख रहा है, तो सीपीएलडी एसआरएएम 2 से डेटा प्रदर्शित करेगा। सीपीएलडी को एक साथ दोनों कार्य संभालने में सक्षम होना चाहिए।

बेशक आप इसे अन्य तरीकों से भी हल कर सकते हैं:
1) तेजी से uController (उदाहरण के लिए ARM)
2 का उपयोग करें) कुछ प्रोग्रामेबल कपड़े और यूसी के साथ डिवाइस का उपयोग करें (उदाहरण के लिए Atmel से FPSLIC, हालांकि मैंने ऐसे उपकरणों का उपयोग कभी नहीं किया है और मुझे बहुत पता है उन के बारे में थोड़ा)

मानक अस्वीकरण -> जैसा कि डिजाइन खुली समस्याएं हैं, कई बाधाओं और संभव समाधानों के साथ जो मैंने ऊपर लिखा है वह आपके मामले के लिए सच नहीं हो सकता है। मेरा मानना ​​है कि यह उन विकल्पों की जाँच करने लायक है, हालाँकि।


4

आप FPGA के बजाय CPLD का उपयोग कर सकते हैं, जैसे कि Altera MAX II भागों में से एक। वे FPGAs के विपरीत, QFP44 पैकेज में उपलब्ध हैं। वे वास्तव में छोटे FPGAs हैं, लेकिन Altera उस पहलू को निभाता है। CPLD को अधिकांश FPGAs पर एक फायदा है कि उनके पास ऑन-चिप कॉन्फ़िगरेशन मेमोरी है, FPGAs को आमतौर पर एक बाहरी फ्लैश चिप की आवश्यकता होती है। अन्य CPLD हैं, बेशक, लेकिन मुझे MAX II पसंद है।

यह कहना असंभव है कि वर्तमान खपत क्या होगी, क्योंकि यह घड़ी की गति और तर्क की मात्रा पर निर्भर करता है जो वास्तव में उपयोग में है।

FPGAs में आमतौर पर सीमित मात्रा में ऑन-चिप मेमोरी का उपयोग किया जा सकता है, लेकिन आपको CPLD के साथ बाहरी मेमोरी की आवश्यकता होगी।

एक अन्य विकल्प एक XMOS चिप होगा, लेकिन सबसे छोटा एक (XS1-L1) एक QFP64 पैकेज में है। इसमें ऑन-चिप रैम - 64k है।


2

1) हाँ, FPGA अधिक महंगा होगा। न केवल चिप स्वयं अधिक महंगा है, बल्कि प्रोग्रामिंग को स्टोर करने के लिए आपको फ्लैश मेमोरी की भी आवश्यकता होगी। FPGA + फ्लैश शायद 3x की लागत है केवल dsPIC ... एक छोटे FPGA के लिए $ 10 और छोटे फ्लैश के लिए $ 3।

2) वे मौजूद हो सकते हैं, लेकिन मुझे वास्तव में किसी भी FPGA के बारे में पता नहीं है जो कि सतह माउंट नहीं है। उनमें से ज्यादातर संभवतः QFP या BGA हैं।

3) FPGA शायद dsPIC के मौजूदा 3x को लगभग खींच लेगा, लेकिन जो आपके द्वारा उपयोग की जाने वाली सुविधाओं के आधार पर ऊपर या नीचे जा सकता है। FPGAs में कई विशेषताएं हैं जो पावर ड्रा को बढ़ा सकती हैं। लेकिन कम से कम 150 एमए की उम्मीद करें।

4) FPGAs आमतौर पर उनके अंदर रैम है। सभी लेकिन सबसे छोटे FPGAs के पास इतना मेमोरी होना चाहिए।

अन्य CPLD का उल्लेख करते हैं। यदि आप सावधानी से अपने डिज़ाइन को विभाजित करते हैं, तो आप शायद CPLD में कुछ छोटे लेकिन महंगे ऑपरेशन कर सकते हैं। यह मिनी को-प्रोसेसर की तरह होगा।


2

सबसे कम सीखने की अवस्था के साथ सबसे सस्ता समाधान एक उच्च शक्ति वाले प्रोसेसर, एआरएम सबसे अधिक संभावना है।

VHDL / Verilog में एक FPGA / CPLD प्रोग्रामिंग कई लोगों के लिए C से आने वाला एक बहुत ही महत्वपूर्ण सीखने की अवस्था है। वे भी सस्ते भागों नहीं हैं।

एक सक्षम सक्षम एआरएम का उपयोग करना शायद LPC1769? (कोर्टेक्स-एम 3) आप संभवतः अपने डिजाइन में PIC18 को बदलने में सक्षम होंगे।

छेद के मुद्दे के लिए के रूप में, जब तक आप एक उजागर पिन QFP प्रकार पैकेज में SoC प्राप्त कर सकते हैं, बस अपने प्रोटोटाइप के लिए आवश्यक पिन के लिए इनमें से कुछ एडेप्टर को पकड़ो


वह dsPIC का उपयोग कर रहा है, PIC18 का नहीं।
लियोन हेलर

2
वह दोनों का उपयोग कर रहा है, उसने जो दस्तावेज़ीकरण जोड़ा है, उसमें योजनाशास्त्र को देखें। PIC18 बटन / इंटरफ़ेस चला रहा है और I2C पर dsPIC से बात कर रहा है। DsPIC सिर्फ वीडियो प्रोसेसिंग करता है।
मार्क

1

मेरा झुकाव प्रोसेसर और डिस्प्ले के बीच के समय को संतुलित करने के लिए कुछ का उपयोग करना होगा। ऐसा हार्डवेयर होना जो प्रोसेसर के हस्तक्षेप के बिना वीडियो का एक पूरा फ्रेम दिखा सके, अच्छा हो सकता है, लेकिन शायद ओवरकिल। मेरा सुझाव है कि हार्डवेयर और सॉफ्टवेयर जटिलता के बीच सबसे अच्छा समझौता संभवतः दो या तीन स्वतंत्र 1024-बिट शिफ्ट रजिस्टरों (पिक्सेल के प्रति दो बिट्स, काले, सफेद, ग्रे या पारदर्शी) और एक साधन के लिए कुछ करने के लिए होगा। उन दोनों के बीच स्विच करना। PIC को एक शिफ्ट रजिस्टर लोड करें, और फिर हार्डवेयर को शिफ्ट करना शुरू कर दें, जबकि यह एक ध्वज सेट करता है ताकि PIC अगले एक को लोड कर सके। दो शिफ्ट रजिस्टर के साथ, पीआईसी के पास उस समय के बीच 64us होगा, जिसमें बताया गया है कि शिफ्ट रजिस्टर उपलब्ध है और समय के साथ सभी डेटा को स्थानांतरित करना होगा। तीन शिफ्ट रजिस्टर के साथ,

ध्यान दें कि जबकि 1024-बिट FIFO दो 1024-बिट शिफ्ट रजिस्टर के रूप में अच्छा होगा, और CPLD में एक FIFO प्रति बिट केवल एक मैक्रोसेल, साथ ही कुछ नियंत्रण तर्क, अधिकांश अन्य प्रकार के लॉजिक में शिफ्ट रजिस्टर के दो बिट्स खर्च होंगे FIFO के एक बिट से सस्ता होगा।

एक वैकल्पिक दृष्टिकोण एक CPLD को SRAM से जोड़ना और उसके साथ एक सरल वीडियो सबसिस्टम बनाना होगा। एस्थेटिक रूप से, मुझे ऑन-द-फ्लाई वीडियो पीढ़ी पसंद है, और अगर किसी ने अच्छा सस्ता 1024-बिट शिफ्ट-रजिस्टर चिप्स बनाया है, तो मैं इसे पसंद करूंगा, लेकिन बाहरी SRAM का उपयोग करना FPGA का उपयोग करने के लिए पर्याप्त संसाधनों के साथ सस्ता हो सकता है। कई 1024-बिट शिफ्ट रजिस्टर करें। आपके आउटपुट रिज़ॉल्यूशन के लिए 12M पिक्सेल / सेकंड या 3MBytes / sec पर डेटा को देखना आवश्यक होगा। मेमोरी साइकल द्वारा बहुत अधिक कठिनाई के बिना 10mbps तक की दर से डेटा को देखने की अनुमति देने के लिए चीजों को व्यवस्थित करना संभव होना चाहिए; सबसे बड़ी चाल डेटा भ्रष्टाचार को रोकना होगा अगर एक सिंक पल्स अपेक्षित सटीक समय पर नहीं आता है।

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