जब एक FPGA चालू होता है और अपुष्ट छोड़ दिया जाता है तो क्या होता है?


10

मैं एक सामान्य समझ पाने की कोशिश कर रहा हूं कि क्या होता है यदि आप लंबे समय तक एक एफपीजीए अप्रमाणित छोड़ देते हैं।

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

क्या परिणाम विभिन्न उपकरणों या निर्माताओं (Xilinx बनाम Altera बनाम अन्य) पर अलग-अलग हैं?


अतिरिक्त जानकारी:

मेरे पास एक कस्टम SoC बोर्ड है जो एक Xilinx Virtex-6 FPGA का उपयोग करता है। मेरे पास एक Xilinx ML605 भी है जिसका उपयोग मैं संदर्भ उद्देश्यों के लिए करता हूं।

कस्टम बोर्ड: मैं बोर्ड पर बिजली। मुझे लगता है कि मुझे XMD (Xilinx माइक्रोप्रोसेसर डीबगर) का उपयोग करके इसे प्रोग्राम करने के लिए बहुत कम समय मिलता है। यदि मैं 20-30 सेकंड की खिड़की खो देता हूं, तो मुझे फिर से कोशिश करने से पहले बोर्ड पर स्विच और स्विच करना होगा। ऐसा ML605 के साथ नहीं होता है।

जब मैं XMD पर कस्टम बोर्ड को प्रोग्राम करने की कोशिश करता हूं, तो मुझे कुछ ऐसा मिलता है:

Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.

आप क्या सोचते हैं मुझे बताओ।


1
आप अपने प्रश्न पर जोर देते हैं और अपने "समय की लंबी अवधि" को संपादित करते हैं। क्या यह वास्तव में मायने रखता है अगर यह कुछ सेकंड या कुछ घंटे है? मुझे नहीं लगता कि यह करता है ..
m.Alin

मैं एक कस्टम FPGA बोर्ड पर एक घटना देख रहा हूं जहां मुझे 20-30 सेकंड की प्रोग्रामिंग विंडो मिलती है। यदि मैं इस विंडो में प्रोग्राम नहीं करता हूं, तो मैं सफलतापूर्वक कार्यक्रम नहीं कर सकता हूं। मेरे प्रश्न का केंद्रीय विषय समय की अवधि नहीं है, बल्कि घटना की समझ प्राप्त करना है।
बोफिन

क्या आप डिवाइस से कनेक्ट करने में सक्षम हैं? या जब आप प्रोग्राम करने की कोशिश करते हैं तो यह विफल हो जाता है? प्रोग्रामर क्या त्रुटि दे रहा है?
एम्बेड।

1
क्या आप सीधे JTAG के माध्यम से FPGA की प्रोग्रामिंग कर रहे हैं, या आप पहले Flash चिप लोड कर रहे हैं और फिर FPGA को उसी के माध्यम से कॉन्फ़िगर करने दे रहे हैं?
ajs410

@fpga_boffin, क्या आप अपने विवरण में उन विवरणों को जोड़ सकते हैं?
जॉन एल

जवाबों:


7

यह एक दिलचस्प सवाल है। व्यक्तिगत अनुभव से, मैंने FPGAs को एक असंबद्ध राज्य में घंटों तक संचालित किया है, जबकि विधानसभा के घर से एक नया बोर्ड आने पर बाकी सर्किटरी पर चेक प्रदर्शन करते हैं। मैंने ऐसा करने से कोई हानिकारक प्रभाव नहीं देखा है। लेकिन मैंने ईमानदारी से इसके बारे में कभी नहीं सोचा।

मैंने FPGA निर्माता से एक सिफारिश की कोशिश करने और खोजने के लिए चारों ओर देखा, लेकिन एक नहीं मिला। इस राज्य के बारे में मैंने जो एकमात्र बयान पाया है वह एक जालीदार श्वेतपत्र से है और खुद FPGA के डिजाइन के संबंध में है कि इसका उपयोग कैसे किया जाना चाहिए:

प्री-प्रोग्राम्ड स्टेटिक क्वाइसेंट डिवाइस पावर कंजम्पशन FPGA द्वारा उपभोग की जाने वाली बिजली की मात्रा है, जो डिवाइस को प्रोग्राम किया जा रहा है। Quisscent डिवाइस बिजली की खपत के लिए FPGA एक गैर-प्रोग्राम राज्य में है, फिर भी संचालित किया गया है। यह महत्वपूर्ण है कि इस समय के दौरान डिवाइस महत्वपूर्ण शक्ति का उपभोग नहीं करता है, क्योंकि वैचारिक रूप से FPGA उपकरण अत्यधिक बिजली खींच सकता है और संभावित रूप से बिजली की आपूर्ति को बंद कर सकता है, जिससे बोर्ड को सफलतापूर्वक खुद को और सिस्टम को प्रारंभिक रूप से रोका जा सके।
इसलिए FPGA आपूर्तिकर्ता को ध्यान से उन ट्रांजिस्टर को डिजाइन करना पड़ता है, जिसमें कम पावर वाले एक Lattice सेमीकंडक्टर व्हाइट पेपर पावर पदचिह्न के लिए कम स्थैतिक 3 डिजाइनिंग होती है, उन क्षेत्रों में समझौता किए बिना जहां उच्च प्रदर्शन की आवश्यकता होती है (जैसे I / O और SERDES)

इसी तरह से एक्सिलिनक्स का उल्लेख है कि वर्तमान में क्या है ताकि आप अपने बिजली की आपूर्ति को तदनुसार डिजाइन कर सकें। लेकिन यह उल्लेख नहीं करता है कि इस तरह की स्थिति में डिवाइस पर इसका क्या प्रभाव पड़ता है:

स्टैटिक या क्वाइसेंट पावर मुख्य रूप से ट्रांजिस्टर लीकेज करंट से प्रभावित होती है। जब यह वर्तमान डेटा शीट में सूचीबद्ध होता है, तो इसे ICCINTQ के रूप में सूचीबद्ध किया जाता है और यह FCCA कोर को पावर देने वाली VCCINT आपूर्ति के माध्यम से खींचा जाता है।

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


6

मैं स्पार्टन 3 डेटशीट का संदर्भ दे रहा हूं , क्योंकि मैं FPGA से सबसे ज्यादा परिचित हूं।

यदि आप अध्याय 2 (कार्यात्मक विवरण) को देखते हैं, तो अनुभाग "कॉन्फ़िगरेशन" में युगल प्रवाह आरेख है। चित्र 27 (पृष्ठ 50) फ्लैश से लोड करने के लिए प्रवाह आरेख दिखाता है। चित्रा 28 JTAG प्रवाह आरेख को दर्शाता है।

यहाँ एक संक्षिप्त सारांश है।

1) आवश्यक स्तरों तक पहुँचने के लिए Vccint, Vccaux और Vcco की प्रतीक्षा करें।

2) स्पष्ट विन्यास latches

3) उच्च जाने के लिए INIT_B की प्रतीक्षा करें। INIT_B एक ओपन-ड्रेन आउटपुट है जिसे कॉन्फ़िगरेशन में देरी के लिए बाहरी मास्टर कम पकड़ सकता है।

4) नमूना मोड पिन। यह निर्धारित करता है कि क्या आप JTAG या Flash के माध्यम से लोड करने जा रहे हैं, और यदि Flash चाहे FPGA या फ़्लैश मास्टर है।

5) लोड कॉन्फ़िगरेशन डेटा फ़्रेम।

6) सत्यापित करें कि डेटा फ़्रेम के लिए CRC सही है। यदि यह सही नहीं है, तो FPGA INC_B को CRC त्रुटि का संकेत देने के लिए कम चलाएगा और यह स्टार्टअप को निरस्त कर देगा।

चरण 5 संभवत: वह जगह है जहां आपका असली सवाल है - अगर लोड करने के लिए कुछ नहीं है तो क्या होगा? ठीक है, तुम नहीं करना चाहिए पाने के लिए चरण 5 यदि आप चीजों को सही कर रहे हैं। जब तक यह FPGA को डेटा परोसने के लिए तैयार नहीं हो जाता तब तक Flash चिप INIT_B कम रहेगा। यदि आप JTAG का उपयोग कर रहे हैं, तो मुझे यकीन नहीं है कि आपका JTAG प्रोग्रामर INIT_B को कम रखेगा, लेकिन जब यह FPGA को प्रोग्राम करने के लिए गया, तो यह लगभग निश्चित रूप से PROG_B (इसे कम चलाकर) को बढ़ाएगा, जिसके कारण FPGA वापस चला जाता है चरण 2 के लिए।

अगर मैं आप होते, तो पावर-ऑन के दौरान INIT_B सिग्नल को देख लेता कि क्या हो रहा है। यदि यह कम शुरू होता है, उच्च जाता है, और फिर फिर से कम हो जाता है, तो FPGA ने स्टार्टअप अनुक्रम को निरस्त कर दिया और आपको FPGA को रीसेट करने के लिए संभवतः PROG_B को मुखर करने की आवश्यकता होगी।


आपका उत्तर चरण 5 से पहले FPGA की आंतरिक स्थिति के बारे में कुछ नहीं कहता है, जो ओपी जानना चाहता है।
स्टीवनव

चरण 2. स्पष्ट कॉन्फ़िगरेशन Latches। चरण 3, INIT_B की प्रतीक्षा कर रहा है। मैं यह भी चर्चा करता हूं कि FPGA किस तरह का निर्णय ले सकता है जब भी वह पाता है कि लोड करने के लिए कोई कॉन्फ़िगरेशन डेटा नहीं है (CRIT त्रुटि को इंगित करने के लिए INIT_B कम हो रहा है)।
ajs410

1
मेरी क्षमा याचना, मैं जिस डेटशीट का उल्लेख कर रहा था वह 2005 का था, और इसे 2009 में अपडेट किया गया था। हालाँकि, क्या आपने वास्तव में मेरी टिप्पणी को अच्छी तरह से पढ़ा था, तो आप इसे पा सकते थे। अध्याय 2, कार्यात्मक विवरण, विन्यास शीर्षक के तहत। लिंक को नवीनतम डेटाशीट के साथ-साथ नए पेज नंबर को इंगित करने के लिए अपडेट किया गया है।
ajs410

0

डिफ़ॉल्ट कॉन्फ़िगरेशन को डिवाइस को सार्वभौमिक रूप से प्रयोग करने योग्य बनाने के लिए यथासंभव निष्क्रिय बनाया गया है।

Altera चक्रवात श्रृंखला के लिए (जिसका मुझे सबसे अधिक अनुभव है) इसका मतलब है

  • I / O पिन को कमजोर रूप से VCCIO तक खींचा जाता है (सक्रिय-कम चिप वाले IC को बस से दूर रखने के लिए IC को रखने के लिए),
  • CONF_DONE आउटपुट कम खींचा गया है (आप इसे अन्य ICs के रीसेट पिन से कनेक्ट कर सकते हैं ताकि उन्हें रीसेट करने के लिए तब तक रखा जा सके जब तक कॉन्फ़िगरेशन लोड नहीं हो जाता है और पुन: कॉन्फ़िगर होने पर उन्हें ज्ञात स्थिति में पुनर्स्थापित करें), और
  • घड़ी इनपुट्स को घड़ी नेटवर्क के लिए अग्रेषित नहीं किया जाता है।

अन्य FPGA प्रकार समान रूप से मौन रहना चाहिए, और गैर-उलटा और उल्टे आउटपुट प्रदान करना चाहिए जो कि बोर्ड के बाकी हिस्सों में कॉन्फ़िगरेशन की स्थिति को दर्शाता है।

डिवाइस को उस स्थिति में छोड़ना हानिरहित है, क्योंकि कोर बाहरी दुनिया से काफी अलग-थलग है, और केवल पुल-अप में उनके बीच एक छोटा सा प्रवाह हो सकता है।

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