माइक्रोसेमी-लोगो

माइक्रोसेमी इन-सर्किट FPGA डीबग

माइक्रोसेमी-इन-सर्किट-FPGA-डीबग-उत्पाद

उत्पाद की जानकारी

विशेष विवरण

  • डिवाइस प्रकार: माइक्रोसेमी स्मार्टफ्यूजन2 SoC FPGA
  • रिलीज़ की तारीख: मई 2014
  • डिबगिंग क्षमताएं: इन-सर्किट FPGA डिबग, एम्बेडेड लॉजिक एनालाइज़र
  • अधिकतम डेटा कैप्चर आवृत्ति: 100MHz तक

अमूर्त
FPGAs कई डिजाइन लाभों के साथ एम्बेडेड सिस्टम में शक्तिशाली डिजाइन तत्व हैं।tagलेकिन इन डिवाइस में जटिल डिज़ाइन हो सकते हैं जिनमें जटिल डिज़ाइन समस्याएँ हो सकती हैं जिन्हें डीबग करने की आवश्यकता होती है। परिभाषा त्रुटियाँ, सिस्टम इंटरैक्शन समस्याएँ और सिस्टम टाइमिंग त्रुटियाँ जैसी डिज़ाइन समस्याओं का पता लगाना एक चुनौती हो सकती है। FPGA में इन-सर्किट डीबग क्षमताओं को शामिल करने से हार्डवेयर डीबग में नाटकीय रूप से सुधार हो सकता है, और निराशा के अनगिनत घंटों से बचा जा सकता है। यह पेपर FPGAs के लिए इन-सर्किट डीबग के कई अलग-अलग तरीकों का वर्णन करता है, प्रमुख ट्रेड-ऑफ़ की पहचान करता है, और एक एक्स के माध्यम सेampमाइक्रोसेमी स्मार्टफ्यूजन®2 SoC FPGA डिवाइस के लिए लक्षित यह डिज़ाइन दिखाएगा कि किस प्रकार नई क्षमताओं का उपयोग डिबग और परीक्षण की गति बढ़ाने के लिए किया जा सकता है।

परिचय

FPGA व्यापक और शक्तिशाली डिज़ाइन तत्व हैं और अब लगभग हर एम्बेडेड सिस्टम में पाए जाते हैं। बढ़ती क्षमता, जटिल ऑन-चिप फ़ंक्शनल ब्लॉक और उन्नत सीरियल इंटरफ़ेस के समावेश के साथ इन डिवाइस में जटिल डिज़ाइन समस्याएं भी हो सकती हैं जिन्हें डीबग करने की आवश्यकता होती है। फ़ंक्शनल डेफ़िनेशन त्रुटियाँ (FPGA या सिस्टम स्तर पर), फ़ंक्शनल सिस्टम इंटरैक्शन समस्याएँ, सिस्टम टाइमिंग समस्याएँ और IC के बीच सिग्नल फ़िडेलिटी समस्याएँ (जैसे शोर, क्रॉसस्टॉक या रिफ़्लेक्शन) जैसी समस्याओं का पता लगाना उन्नत FPGA का उपयोग करते समय बहुत अधिक जटिल हो जाता है। सिमुलेशन निश्चित रूप से कई डिज़ाइन समस्याओं की पहचान करने में एक बड़ी मदद है, लेकिन कई वास्तविक दुनिया की बातचीत तब तक दिखाई नहीं देंगी जब तक कि डिज़ाइन को हार्डवेयर में लागू नहीं किया जाता है। प्रक्रिया को सरल बनाने के लिए जटिल डिज़ाइन समस्याओं को डीबग करने के लिए कई अलग-अलग तकनीकें विकसित की गई हैं।tagएस और डिसदवानtagयह तब उपयोगी होता है जब यह विचार किया जाता है कि कौन सी तकनीक या तकनीकों का संयोजन किसी विशेष डिज़ाइन के लिए उपयुक्त है।
एक पूर्वampमाइक्रोसेमी स्मार्टफ्यूजन2 SoC FPGA डिवाइस के लिए लक्षित एक FPGA डिज़ाइन, कुछ लाभों को प्रदर्शित करने के लिए इस्तेमाल किया जा सकता हैtagएस और डिसदवानtagइन मानक तकनीकों के साथ-साथ नवीनतम इन-सर्किट डिबग क्षमताओं का भी विवरण दिया गया है। यह उदाहरणात्मक उदाहरणampवह दिखाएगा कि हार्डवेयर डिबग के दौरान हार्डवेयर समस्याओं की पहचान और उन्मूलन में तेजी लाने के लिए इन विभिन्न तकनीकों का उपयोग कैसे किया जा सकता है।

FPGA डिबगिंग सिस्टम डिजाइन और विकास का एक महत्वपूर्ण पहलू क्यों है?
FPGAs के दो मुख्य उपयोग मॉडल हैं जो उन्हें अन्य डिज़ाइन तत्वों से अलग करते हैं। FPGAs का उपयोग उत्पादन उत्पाद में किया जा सकता है या उत्पादन डिज़ाइन अवधारणा को साबित करने या प्रोटोटाइप करने के लिए विकास वाहन के रूप में उपयोग किया जा सकता है। जब उत्पादन वाहन के रूप में उपयोग किया जाता है, तो FPGAs ASIC या CPU-आधारित उत्पादन वाहनों की तुलना में बहुत अधिक लचीला लक्ष्य हो सकता है। यह विशेष रूप से एक नए डिज़ाइन के लिए महत्वपूर्ण है, जिसे अभी तक हार्डवेयर में लागू नहीं किया गया है। विभिन्न वास्तुशिल्प विकल्पों वाले डिज़ाइन आसानी से बनाए और परखे जा सकते हैं ताकि इष्टतम डिज़ाइन की पहचान की जा सके। ऑन-चिप प्रोसेसर वाले FPGAs (SoC FPGAs) CPU-आधारित प्रोसेसिंग को हार्डवेयर सहायता प्राप्त FPGA-आधारित त्वरण फ़ंक्शन के साथ व्यापार-ऑफ़ करना भी संभव बनाते हैं।tagइससे नए उत्पाद विकास के लिए डिजाइन, सत्यापन, परीक्षण और विफलता विश्लेषण के लिए आवश्यक समय में नाटकीय रूप से कमी आ सकती है।
जब किसी डिज़ाइन के प्रोटोटाइप के लिए उपयोग किया जाता है, शायद किसी उत्पादन ASIC के लिए, FPGA लचीलापन एक महत्वपूर्ण लाभ है। एक वास्तविक हार्डवेयर प्लेटफ़ॉर्म, यहाँ तक कि वह जो पूरी गति से नहीं चलता है, विस्तृत सिस्टम प्रदर्शन मीट्रिक, थ्रूपुट विश्लेषण डेटा और आर्किटेक्चर प्रूफ़-ऑफ़-कॉन्सेप्ट परिणाम प्राप्त करना बहुत आसान बनाता है। उद्योग मानक बसों (जैसे PCIe®, गीगाबिट ईथरनेट, XAUI, USB, CAN, और अन्य) के कठोर कार्यान्वयन के लिए FPGA समर्थन इन इंटरफ़ेस से जुड़े परीक्षण को सरल बनाता है। ऑन-चिप ARM प्रोसेसर (SoC FPGA) के साथ FPGA के नवीनतम परिवार, एम्बेडेड प्रोसेसर के साथ कार्यान्वयन को प्रोटोटाइप करना आसान बनाते हैं। पहले से विकसित प्रोसेसर कोड को प्रोटोटाइप में पोर्ट किया जा सकता है और हार्डवेयर डिज़ाइन प्रयास के समानांतर नया कोड बनाया जा सकता है।

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

FPGA डिज़ाइन को डीबग करते समय सामान्य समस्याएँ

आधुनिक FPGAs द्वारा लाई गई विस्तारित क्षमताओं के साथ, संबंधित बढ़ी हुई जटिलता त्रुटि-मुक्त डिज़ाइन बनाना अधिक कठिन बनाती है। वास्तव में, यह अनुमान लगाया गया है कि डिबगिंग एम्बेडेड सिस्टम डिज़ाइन चक्र का 50% से अधिक ले सकती है। विकास चक्र को निचोड़ने के लिए समय-समय पर दबाव के साथ, प्रारंभिक सिस्टम की हार्डवेयर डिबगिंग को बाद में विचार के लिए छोड़ दिया जाता है - अक्सर यह मानते हुए कि सत्यापन (स्वयं एक बड़ा प्रतिशत है)tagविकास कार्यक्रम के ई), प्रारंभिक सिस्टम लाने से पहले सभी बग को पकड़ लेगा। आइए सिस्टम समस्याओं के कुछ सामान्य प्रकारों पर नज़र डालें ताकि यह बेहतर ढंग से समझा जा सके कि प्रारंभिक सिस्टम लाने के दौरान एक सामान्य डिज़ाइन को किन चुनौतियों का सामना करना पड़ेगा।

कार्यात्मक परिभाषा त्रुटियों को ढूंढना दोगुना मुश्किल हो सकता है क्योंकि डिजाइनर ने किसी विशेष आवश्यकता को गलत समझा है, इसलिए डिजाइन के विवरण को ध्यान से देखने पर भी त्रुटि को अनदेखा किया जा सकता है।ampएक सामान्य कार्यात्मक परिभाषा त्रुटि का कारण वह होगा जहां स्टेट मशीन संक्रमण सही स्थिति में समाप्त नहीं होता है। त्रुटियाँ सिस्टम इंटरफ़ेस में एक इंटरैक्शन समस्या के रूप में भी दिखाई दे सकती हैं। इंटरफ़ेस विलंबता, उदाहरण के लिएampले, गलत तरीके से निर्दिष्ट किया जा सकता है, जिसके परिणामस्वरूप अप्रत्याशित बफर ओवरफ़्लो या अंडरफ़्लो स्थिति उत्पन्न हो सकती है।
सिस्टम स्तर की टाइमिंग समस्याएँ डिज़ाइन त्रुटियों का एक और बहुत ही सामान्य स्रोत हैं। विशेष रूप से, एसिंक्रोनस घटनाएँ त्रुटियों का एक सामान्य स्रोत हैं जब सिंक्रोनाइज़ेशन या क्रॉसिंग टाइमिंग डोमेन प्रभावों पर सावधानीपूर्वक विचार नहीं किया जाता है। गति पर संचालन करते समय इस प्रकार की त्रुटियाँ बहुत समस्याग्रस्त हो सकती हैं और बहुत कम बार दिखाई दे सकती हैं, शायद केवल तभी जब विशिष्ट डेटा पैटर्न स्वयं प्रकट होते हैं। कई सामान्य टाइमिंग उल्लंघन इस श्रेणी में आते हैं और आमतौर पर बहुत मुश्किल होते हैं, अगर अनुकरण करना असंभव नहीं है।

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

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

डिबगिंग के लिए सिमुलेशन का उपयोग
आम तौर पर एक डिज़ाइन सिमुलेशन में, डिज़ाइन के अंदर और बाहर सभी वास्तविक जीवन घटकों को गणितीय रूप से सॉफ़्टवेयर प्रक्रियाओं के रूप में मॉडल किया जाता है जो एक मानक CPU पर क्रमिक रूप से निष्पादित होते हैं। डिज़ाइन पर उत्तेजना की एक विस्तृत श्रृंखला को लागू करना और सिम्युलेटेड डिज़ाइन आउटपुट के विरुद्ध अपेक्षित आउटपुट की जाँच करना, सबसे स्पष्ट डिज़ाइन त्रुटियों को पकड़ने का एक आसान तरीका है। एक विशिष्ट सिमुलेशन रन दिखाने वाली विंडो नीचे चित्र 1 में दी गई है। स्पष्ट लाभtagसिमुलेशन बनाम हार्डवेयर-आधारित डिबगिंग का सबसे बड़ा अंतर यह है कि सिमुलेशन को सॉफ़्टवेयर में किया जा सकता है - किसी वास्तविक हार्डवेयर-आधारित डिज़ाइन और टेस्टबेंच की आवश्यकता नहीं है। सिमुलेशन कई डिज़ाइन त्रुटियों को जल्दी से पकड़ सकता है, विशेष रूप से गलत विनिर्देशों, इंटरफ़ेस आवश्यकताओं की गलतफहमी, फ़ंक्शन त्रुटियों और कई अन्य 'सकल' प्रकार की त्रुटियों से जुड़ी हुई हैं जिन्हें सरल उत्तेजना वैक्टर के माध्यम से आसानी से पता लगाया जा सकता है।

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (1)

सिमुलेशन विशेष रूप से तब प्रभावी होता है जब डिजाइनर के लिए व्यापक उत्तेजना संयोजन उपलब्ध होते हैं और परिणामी आउटपुट अच्छी तरह से ज्ञात होते हैं। इन मामलों में, सिमुलेशन एक डिजाइन का लगभग संपूर्ण परीक्षण कर सकता है। दुर्भाग्य से, अधिकांश डिजाइनों में व्यापक परीक्षण सूट तक आसान पहुंच नहीं होती है और उन्हें बनाने की प्रक्रिया में बहुत समय लग सकता है। एक ऐसा परीक्षण सूट बनाना जो डिजाइन के 100% को कवर करता हो बड़े FPGA-आधारित डिजाइनों के लिए लगभग असंभव है और डिजाइन के प्रमुख तत्वों को कवर करने के लिए शॉर्ट कट का उपयोग किया जाना चाहिए। सिमुलेशन के साथ एक और कठिनाई यह है कि यह 'वास्तविक दुनिया' का कार्यान्वयन नहीं है और अतुल्यकालिक घटनाओं, तेज गति से सिस्टम इंटरैक्शन या समय उल्लंघन को नहीं पकड़ सकता है। अंत में, सिमुलेशन प्रक्रिया बहुत धीमी हो सकती है

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

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

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

लॉजिक एनालाइजर कार्यक्षमता को डिज़ाइन में डाला गया है, जिसमें FPGA फैब्रिक और एम्बेडेड मेमोरी ब्लॉक का उपयोग ट्रेस बफर के रूप में किया गया है, जैसा कि चित्र 2 में दर्शाया गया है। ट्रिगरिंग संसाधन भी बनाए गए हैं ताकि जटिल सिग्नल इंटरैक्शन को आसानी से चुना और कैप्चर किया जा सके। नियंत्रण और डेटा ट्रांसफर के लिए एनालाइजर तक पहुंच आमतौर पर मानक J के माध्यम से की जाती हैTAG इंटरफ़ेस आवश्यकताओं को सरल बनाने के लिए पोर्ट। कैप्चर किए गए डेटा को सामान्य का उपयोग करके पीसी पर प्रदर्शित किया जा सकता है viewयह सॉफ्टवेयर एक लॉजिक सिम्युलेटर वेवफॉर्म आउटपुट को दर्शाता है viewशैली.

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (2)

लाभtagइस दृष्टिकोण के लाभ यह हैं कि कोई अतिरिक्त FPGA I/O पिन का उपयोग नहीं किया जाता है, केवल मानक J का उपयोग किया जाता है।TAG सिग्नल। एम्बेडेड लॉजिक एनालाइजर आईपी कोर आमतौर पर अपेक्षाकृत सस्ते होते हैं और कुछ मामलों में मौजूदा FPGA संश्लेषण, या सिमुलेशन टूल का विकल्प हो सकते हैं। कुछ मामलों में, एम्बेडेड लॉजिक एनालाइजर अप्रयुक्त I/O पर अतिरिक्त आउटपुट भी प्रदान कर सकता है, अगर यह अधिक सुविधाजनक हो।tagइस दृष्टिकोण का एक बड़ा नुकसान यह है कि इसके लिए बड़ी मात्रा में FPGA संसाधनों की आवश्यकता होती है। विशेष रूप से, यदि ट्रेस बफ़र्स का उपयोग किया जाता है तो इससे उपलब्ध ब्लॉक मेमोरी की संख्या कम हो जाएगी। यदि एक विस्तृत बफ़र की आवश्यकता है तो यह मेमोरी की गहराई के विरुद्ध एक समझौता भी होगा (क्योंकि एक विस्तृत मेमोरी के उपयोग से मेमोरी की गहराई कम होती है) - एक बड़ा नुकसानtagछोटे उपकरणों का उपयोग करते समय। शायद इस तकनीक की सबसे बड़ी खामी यह है कि हर बार जब जांच प्लेसमेंट में समायोजन किया जाता है, तो डिज़ाइन को फिर से संकलित और पुनः प्रोग्राम करना आवश्यक होता है। बड़े उपकरण का उपयोग करते समय इस प्रक्रिया में काफी समय लग सकता है। सिग्नल जांच को डिज़ाइन में जिस तरह से रखा जाता है, उसके कारण सिग्नल टाइमिंग संबंधों को सहसंबंधित करना मुश्किल हो सकता है। इसके अतिरिक्त, सिग्नल जांच के बीच देरी सुसंगत नहीं होती है और इस प्रकार समय संबंधों की तुलना करना मुश्किल होता है। एसिंक्रोनस सिग्नल या विभिन्न समय डोमेन से सिग्नल की तुलना करते समय यह एक विशेष कठिनाई है।

इन-सर्किट FPGA डीबग – बाहरी परीक्षण उपकरण
बाहरी परीक्षण उपकरणों के साथ संयोजन में इन-सर्किट डिबग कोड का उपयोग एक स्वाभाविक विकास था जब सिस्टम परीक्षण के लिए बाहरी लॉजिक विश्लेषक पहले से ही उपलब्ध था। आंतरिक परीक्षण संकेतों को पहचानने और चुनने और उन्हें FPGA I/O पर लागू करने के लिए कुछ सरल डिबग कोड बनाकर, जैसा कि चित्र 3 में दिखाया गया है, विश्लेषक की उन्नत क्षमताओं (जैसे बड़े ट्रेस बफ़र्स, जटिल ट्रिगरिंग अनुक्रम और कई) का लाभ उठाना संभव था। viewसरल लेकिन शक्तिशाली डीबग वातावरण बनाने के लिए ing विकल्प) का उपयोग करें। उन्नत ट्रिगरिंग विकल्पों के लिए अधिक जटिल इन-सर्किट क्षमताएँ आवश्यक आउटपुट की संख्या को कम कर सकती हैं। उदाहरण के लिएampयदि बाह्य पिन की आवश्यकता हो तो विस्तृत बस पर विशिष्ट पतों का चयन करना निषेधात्मक हो सकता है।
आंतरिक FPGA तर्क का उपयोग करने से I/O आवश्यकताओं में नाटकीय रूप से कमी आती है और अधिक जटिल समस्याओं को डीबग करने के लिए विशिष्ट पता पैटर्न (शायद कॉल और रिटर्न अनुक्रम) की तलाश भी की जा सकती है। यदि एक सामान्य उपयोगकर्ता इंटरफ़ेस उपलब्ध है, तो यह सीखने की प्रक्रिया को सरल बना सकता है और उत्पादकता में सुधार कर सकता है।

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (3)

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

आम नुकसानtagइन दो तकनीकों के उपयोग के कारण - ऑन-चिप संसाधनों का उपयोग (जो डिज़ाइन के समय प्रदर्शन को भी प्रभावित कर सकता है और अतिरिक्त डिबगिंग आवश्यकताएँ पैदा कर सकता है) डिज़ाइन को फिर से संकलित और पुनः प्रोग्राम करने की आवश्यकता (जो डिबग शेड्यूल में घंटों या दिन भी जोड़ सकता है) संभावित परीक्षण परिदृश्यों की पहचान करने के लिए आवश्यक अप-फ्रंट प्लानिंग, और अतिरिक्त चिप I/O संसाधनों के उपयोग ने इन कमियों के बिना एक दृष्टिकोण की आवश्यकता पैदा की। एक प्रतिक्रिया कुछ उपकरणों पर FPGA फैब्रिक में समर्पित डिबग लॉजिक को जोड़ना था। हार्डवेयर जांच का उपयोग करके इन-सर्किट डिबग परिणाम था।

इन-सर्किट FPGA डीबग – हार्डवेयर जांच
हार्डवेयर जांच का उपयोग FPGAs के लिए इन-सर्किट डिबग तकनीकों को नाटकीय रूप से सरल बनाता है। SmartFusion2®SoC FPGA और IGLOO®2 FPGA डिवाइस पर लाइव जांच सुविधा के रूप में कार्यान्वित यह तकनीक, किसी भी लॉजिक एलिमेंट रजिस्टर बिट के आउटपुट का निरीक्षण करने के लिए FPGA फैब्रिक में समर्पित जांच लाइनें जोड़ती है। जैसा कि चित्र 4 में ब्लॉक आरेख में दिखाया गया है, हार्डवेयर जांच दो जांच चैनल A और B में उपलब्ध हैं।

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (3)

चयनित रजिस्टर आउटपुट (जांच बिंदु), जैसे कि चित्र के निचले भाग में स्रोत, दो जांच चैनलों के ऊपर रूट किए जाते हैं और यदि चयनित होते हैं तो उन्हें A या B चैनल पर लागू किया जा सकता है। इन वास्तविक समय चैनल संकेतों को तब डिवाइस पर समर्पित जांच A और जांच B पिन पर भेजा जा सकता है। जांच A और जांच B संकेतों को आंतरिक रूप से एक एम्बेडेड लॉजिक विश्लेषक पर भी रूट किया जा सकता है।

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

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (5)

कई मामलों में, लाइव प्रोब जैसी हार्डवेयर जांच क्षमता का उपयोग पहले वर्णित एम्बेडेड लॉजिक विश्लेषक और बाहरी परीक्षण तकनीकों के साथ संयोजन में किया जा सकता है।

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

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (6)

स्मार्टफ्यूजन2 SoC FPGA और IGLOO2 FPGA डिवाइस पर अतिरिक्त हार्डवेयर डिबग क्षमताएं भी उपलब्ध हैं। इनमें से एक क्षमता, जिसे एक्टिव प्रोब कहा जाता है, किसी भी लॉजिक एलिमेंट रजिस्टर बिट को डायनेमिकली और एसिंक्रोनसली पढ़ या लिख ​​सकती है। एक लिखा हुआ मान एक सिंगल क्लॉक साइकिल के लिए बना रहता है ताकि सामान्य ऑपरेशन जारी रह सके, जिससे यह एक बहुत ही मूल्यवान डिबगिंग टूल बन जाता है। एक्टिव प्रोब विशेष रूप से दिलचस्प है अगर किसी आंतरिक सिग्नल का त्वरित अवलोकन वांछित है (शायद बस यह जांचने के लिए कि यह सक्रिय है या वांछित स्थिति में है, जैसे रीसेट सिग्नल), या अगर किसी लॉजिक फ़ंक्शन को जांच बिंदु पर लिखकर जल्दी से जांचने की आवश्यकता है
(संभवतः नियंत्रण प्रवाह समस्या को अलग करने के लिए इनपुट मान को शीघ्रता से निर्धारित करके स्टेट मशीन संक्रमण आरंभ करने के लिए)।

माइक्रोसेमी द्वारा प्रदान की गई एक और डीबग क्षमता मेमोरी डीबग है। यह सुविधा डिज़ाइनर को चयनित FPGA फैब्रिक SRAM ब्लॉक को गतिशील और अतुल्यकालिक रूप से पढ़ने या लिखने की अनुमति देती है। जैसा कि डीबग टूल (चित्र 7) के स्क्रीन शॉट में दिखाया गया है, जब मेमोरी ब्लॉक टैब चुना जाता है तो उपयोगकर्ता पढ़ने के लिए वांछित मेमोरी का चयन कर सकता है, मेमोरी का स्नैपशॉट कैप्चर निष्पादित कर सकता है, मेमोरी मानों को संशोधित कर सकता है और फिर मानों को डिवाइस पर वापस लिख सकता है। यह विशेष रूप से कम्प्यूटेशन ओरिएंटेड स्क्रैच-पैड के लिए संचार पोर्ट में उपयोग किए जाने वाले डेटा बफ़र्स की जाँच या सेटिंग के लिए या एम्बेडेड CPU द्वारा निष्पादित कोड के लिए भी उपयोगी हो सकता है। जब मेमोरी को इतनी जल्दी देखा और नियंत्रित किया जा सकता है तो जटिल डेटा पर निर्भर त्रुटियों को डीबग करना काफी तेज़ और आसान होता है।

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (7)

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

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

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (8)

सिग्नल वर्गीकरण
कुछ सबसे आम प्रकार के संकेतों के बीच एक उपयोगी अंतर किया जा सकता है और यह डिबगिंग दृष्टिकोण की योजना बनाते समय मदद कर सकता है। उदाहरण के लिएampले, सिग्नल जो सिस्टम स्टार्ट-अप के अलावा नहीं बदलते हैं, जैसे सिस्टम रीसेट, ब्लॉक रीसेट या इनिशियलाइज़ेशन रजिस्टर को स्टैटिक सिग्नल के रूप में वर्गीकृत किया जा सकता है। इस प्रकार के सिग्नल को सबसे अधिक कुशलता से एक ऐसी सुविधा के माध्यम से एक्सेस किया जाता है जो सिग्नल को आसानी से देख और नियंत्रित कर सकती है, बिना किसी लंबे रीकंपाइल चक्र की आवश्यकता के। एक्टिव प्रोब स्टैटिक सिग्नल को डीबग करने के लिए एक बेहतरीन सुविधा है। इसी तरह, सिग्नल जो अधिक बार बदलते हैं लेकिन अधिकांश समय के लिए स्थिर रहते हैं, उन्हें छद्म-स्थिर के रूप में वर्गीकृत किया जा सकता है और एक्टिव प्रोब का उपयोग करके सबसे प्रभावी ढंग से डीबग भी किया जा सकता है। सिग्नल जो अक्सर बदलते हैं, जैसे क्लॉक सिग्नल, को डायनेमिक के रूप में वर्गीकृत किया जा सकता है और उन्हें एक्टिव प्रोब के माध्यम से आसानी से एक्सेस नहीं किया जा सकता है। इन सिग्नल को देखने के लिए लाइव प्रोब एक बेहतर विकल्प है।

सरल डीबग उपयोग मामला

अब जब हमें विभिन्न इन-सर्किट डिबग विकल्पों की बेहतर समझ हो गई है, तो आइए एक सरल डिज़ाइन उदाहरण देखेंampआइए देखें कि ये तकनीकें कैसे प्रदर्शन करती हैं। चित्र 9, एक SmartFusion2 SoC FPGA डिवाइस में एक सरल FPGA डिज़ाइन दिखाता है। माइक्रोकंट्रोलर सबसिस्टम (MSS) को CoreSF2Reset Soft IP ब्लॉक द्वारा रीसेट किया जाता है। इस ब्लॉक के इनपुट पावर ऑन रीसेट, एक यूजर फैब्रिक रीसेट और एक एक्सटर्नल रीसेट हैं। आउटपुट यूजर फैब्रिक के लिए एक रीसेट, एक MSS रीसेट और एक M3 रीसेट हैं। त्रुटि के लक्षण यह हैं कि I/O पर कोई गतिविधि नहीं होती है, भले ही डिवाइस POR स्थिति से सफलतापूर्वक बाहर निकल जाए। इस त्रुटि को डीबग करने के तीन अलग-अलग विकल्प चित्र में भी चित्रित किए गए हैं: नीला बॉक्स (ETE लेबल किया गया) एक्सटर्नल टेस्ट इक्विपमेंट विधि के लिए है

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (9)

आइए अब पहले वर्णित तीन इन-सर्किट विधियों की डिबग प्रक्रिया पर नजर डालें।

बाह्य परीक्षण उपकरण
इस विधि का उपयोग करते हुए, यह माना जाता है कि परीक्षण उपकरण उपलब्ध है और उच्च प्राथमिकता वाली परियोजना द्वारा इसका उपयोग नहीं किया जा रहा है। इसके अतिरिक्त, पहले से योजना बनाना महत्वपूर्ण है ताकि कुछ FPGA I/O उपलब्ध हों और उन्हें आसानी से परीक्षण उपकरण से जोड़ा जा सके। उदाहरण के लिए PCB पर हेडर होनाample, बहुत मददगार होगा और जांच के दौरान 'संभावित संदिग्ध' या पिन के संभावित शॉर्टिंग की पहचान करने और उससे जुड़ने में लगने वाले समय को कम करेगा। जिस सिग्नल की हम जांच करना चाहते हैं, उसे चुनने के लिए डिज़ाइन को फिर से संकलित करने की आवश्यकता होगी। उम्मीद है कि हम 'प्याज को छीलने' की कोशिश नहीं करेंगे और आगे की जांच के लिए अतिरिक्त सिग्नल चुनने की जरूरत नहीं पड़ेगी, क्योंकि अक्सर हमारी शुरुआती जांच से और सवाल ही पैदा होते हैं। किसी भी स्थिति में, पुनर्संकलन और पुनर्प्रोग्रामिंग प्रक्रिया में काफी समय लग सकता है, और अगर इसके परिणामस्वरूप समय का उल्लंघन होता है तो फिर से डिज़ाइन की आवश्यकता होती है (हम सभी इस बात से परिचित हैं कि समय बंद करने के मुद्दों को हल करने की कोशिश करना कितना निराशाजनक हो सकता है, खासकर, जब आप डिज़ाइन में कोई बग खोजने के लिए बदलाव कर रहे हों - पूरी प्रक्रिया में मिनटों से लेकर घंटों तक का समय लग सकता है)! यह याद रखना भी महत्वपूर्ण है कि अगर डिज़ाइन में कोई मुफ़्त उपयोगकर्ता I/O नहीं है, तो इस विधि को लागू नहीं किया जा सकता है। इसके अलावा, यह विधि डिज़ाइन के लिए संरचनात्मक रूप से दखल देने वाली है - और समय से संबंधित बग पुनरावृत्तियों के बीच गायब हो सकते हैं या फिर से दिखाई दे सकते हैं।

आंतरिक तर्क विश्लेषक
इस विधि का उपयोग करते हुए ILA को फैब्रिक संसाधनों का उपयोग करके डिज़ाइन में डाला जाना चाहिए, और फिर इसे फिर से संकलित करने की आवश्यकता है। ध्यान दें कि यदि ILA पहले से ही इंस्टेंटिएटेड है, तो जिन संकेतों की हम जांच करना चाहते हैं, वे इंस्ट्रूमेंटेड नहीं हो सकते हैं, जिसके लिए फिर से संकलित करने की भी आवश्यकता होगी। इस प्रक्रिया में मूल डिज़ाइन को बदलने और समय की बाध्यताओं का उल्लंघन करने का जोखिम है। यदि समय पूरा हो जाता है, तो डिज़ाइन को फिर से प्रोग्राम करने और फिर से आरंभ करने की आवश्यकता होती है। यदि पुन: संकलित करने का समय लंबा है और कई पास की आवश्यकता है, तो इस पूरी प्रक्रिया में कई मिनट या घंटे भी लग सकते हैं। यह दृष्टिकोण संरचनात्मक रूप से दखल देने वाला है और उपरोक्त विधि का उपयोग करते समय वर्णित समस्याओं के समान परिणाम हो सकता है।

सक्रिय जांच
इस विधि का उपयोग करके सक्रिय जांच को विभिन्न रीसेट संकेतों के स्रोत की ओर इंगित किया जा सकता है, जिनमें से सभी रजिस्टर आउटपुट द्वारा स्रोतित होते हैं (जैसा कि किसी भी अच्छे डिजिटल डिज़ाइन अभ्यास में आम है)। नीचे चित्र 10 में दिखाए गए सक्रिय जांच मेनू से एक बार में एक संकेत का चयन किया जाता है। चयनित सिग्नल मान पढ़े जा सकते हैं और सक्रिय जांच डेटा विंडो पर प्रदर्शित किए जाते हैं। किसी भी गलत दावे को आसानी से पहचाना जा सकता है। यह परीक्षण डिवाइस को फिर से संकलित और पुनः प्रोग्राम करने की आवश्यकता के बिना तुरंत किया जा सकता है और यह संरचनात्मक या प्रक्रियात्मक रूप से दखल देने वाला नहीं है। पूरी प्रक्रिया में बस कुछ सेकंड लगते हैं। यह विधि नियंत्रणीयता (मूल्यों को अतुल्यकालिक रूप से बदलना) भी बना सकती है जिसकी अनुमति अन्य दो विधियाँ नहीं देंगी। इस विशेष उदाहरण मेंampइस प्रकार, रजिस्टर द्वारा प्राप्त रीसेट सिग्नल की आसानी से जांच की जा सकती है और पाया जा सकता है कि वह सक्रिय अवस्था में है।

रीसेट सिग्नल की क्षणिक टॉगलिंग को शेष सिग्नल उत्पन्न करने वाले रजिस्टर में अतुल्यकालिक रूप से हेरफेर करके प्राप्त किया जा सकता है।

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (10)

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

यदि यह सही आवृत्ति पर नहीं चल रहा है तो वर्णित त्रुटियाँ उत्पन्न होंगी।

माइक्रोसेमी-इन-सर्किट-एफपीजीए-डीबग- (11)

इस स्थिति में सक्रिय जांच दृष्टिकोण को लाइव जांच के साथ बदलना शायद बेहतर रणनीति है। इसे ऊपर दिए गए चित्र में नारंगी रंग के एलपी बॉक्स द्वारा दर्शाया गया है, जिसमें J का उपयोग किया गया है।TAG जांच स्रोत चयन के लिए संकेत.

बाह्य परीक्षण उपकरण
इस मामले के लिए, कार्यप्रणाली पहले वर्णित सरल उदाहरण के समान ही हैampले. उपयोगकर्ता क्लॉक सिग्नल को परीक्षण बिंदु पर लाया जाता है (उम्मीद है कि हेडर पर) और समय लेने वाली पुनःसंकलन की आवश्यकता होती है। एक संदर्भ संकेत लाना भी सहायक हो सकता है, शायद एक सिस्टम क्लॉक जिसका उपयोग तुलना संकेत के रूप में उपयोगकर्ता के आईपी को क्लॉक करने के लिए किया जाता है। हमें फिर से पुनःसंकलन और पुनःप्रोग्राम करने की आवश्यकता होगी, इसलिए पूरी प्रक्रिया में काफी समय लग सकता है।

आंतरिक तर्क विश्लेषक
यह मामला साधारण उदाहरण से बहुत मिलता जुलता हैampले. ILA को डाला जाना चाहिए, या वांछित संकेत परिभाषित किया जाना चाहिए, और एक पुनर्संकलन और पुनर्प्रोग्राम चक्र निष्पादित किया जाना चाहिए। पहले वर्णित सभी मुद्दे अभी भी एक महत्वपूर्ण डीबग चक्र समय में परिणाम देते हैं। हालाँकि, एक अतिरिक्त जटिलता है। ILA को चलाने वाली घड़ी को समकालिक होना चाहिए, और उपयोगकर्ता सॉफ्ट IP कोर से देखी जाने वाली घड़ी के संबंध में आदर्श रूप से बहुत तेज़ होना चाहिए। यदि ये घड़ियाँ अतुल्यकालिक हैं, या उनमें सही समय संबंध नहीं हैं, तो डेटा कैप्चर अप्रत्याशित होगा और डीबग प्रक्रिया के लिए भ्रम का एक संभावित स्रोत होगा।
ध्यान दें कि यदि उपयोगकर्ता सॉफ्ट आईपी क्लॉक चिप पर उत्पन्न नहीं होती है (संभवतः इसे सीरियल इंटरफ़ेस से पुनर्प्राप्त किया जाता है) तो डिज़ाइनर को अतिरिक्त संसाधनों का उपयोग करके तेज ILA क्लॉक उत्पन्न करने के लिए क्लॉक मॉड्यूल जोड़ने की आवश्यकता हो सकती है और संभवतः समय उल्लंघन पैदा हो सकता है।

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

सीरियल इंटरफेस के लिए अन्य डीबग सुविधाएँ
यह बताना भी महत्वपूर्ण है कि स्मार्टफ्यूजन2 SoC FPGA और IGLOO2 FPGA उपकरणों में कई अतिरिक्त डिबग क्षमताएं हैं, जिनका उपयोग सीरियल इंटरफेस पर किया जा सकता है, जैसे कि पिछले उदाहरण में।ampले डिज़ाइन जहाँ त्रुटियाँ और भी जटिल हैं। SERDES डीबग, उदाहरण के लिएample, समर्पित उच्च गति वाले सीरियल इंटरफेस के लिए विशिष्ट डीबग क्षमताएं प्रदान करता है। SERDES डीबग सुविधाओं में से कुछ में PMA परीक्षण समर्थन (जैसे PRBS पैटर्न जनरेशन और लूपबैक परीक्षण) रजिस्टर-स्तर पुनर्संरचना के साथ कई SERDES परीक्षण कॉन्फ़िगरेशन के लिए समर्थन शामिल है ताकि कॉन्फ़िगरेशन परिवर्तन करने के लिए पूर्ण डिज़ाइन प्रवाह के उपयोग से बचा जा सके, और कॉन्फ़िगर किए गए प्रोटोकॉल, SERDES कॉन्फ़िगरेशन रजिस्टर और लेन कॉन्फ़िगरेशन रजिस्टर दिखाने वाली टेक्स्ट रिपोर्ट। ये सुविधाएँ SERDES डीबग को बहुत आसान बनाती हैं और जटिल सर्किट की डीबगिंग को और तेज़ करने के लिए लाइव प्रोब और एक्टिव प्रोब के साथ संयोजन में उपयोग की जा सकती हैं।
पहले वर्णित मेमोरी डिबग टूल का उपयोग SERDES डिबग के साथ संयोजन में परीक्षण की गति बढ़ाने के लिए भी किया जा सकता है। चूँकि मेमोरी बफ़र्स को मेमोरी डिबग के साथ जल्दी और आसानी से जांचा और बदला जा सकता है, इसलिए जल्दी से 'टेस्ट पैकेट' बनाना और लूपबैक या इंटर-सिस्टम संचार परिणामों का निरीक्षण करना संभव है। डिज़ाइनर इन क्षमताओं का लाभ उठा सकते हैं और इस प्रकार विशेष 'टेस्ट हार्नेस' की आवश्यकता को कम कर सकते हैं जो अतिरिक्त FPGA फ़ैब्रिक का उपभोग करते हैं और जो चिप टाइमिंग को प्रभावित कर सकते हैं।

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

अधिक जानने के लिए

  1. IGLOO2 FPGAs
  2. स्मार्टफ्यूजन2 SoC FPGAs

माइक्रोसेमी कॉर्पोरेशन (नैस्डैक: एमएससीसी) संचार, रक्षा और सुरक्षा, एयरोस्पेस और औद्योगिक बाजारों के लिए सेमीकंडक्टर और सिस्टम समाधानों का एक व्यापक पोर्टफोलियो प्रदान करता है। उत्पादों में उच्च-प्रदर्शन और विकिरण-कठोर एनालॉग मिश्रित-संकेत एकीकृत सर्किट, FPGAs, SoCs और ASICs शामिल हैं; पावर प्रबंधन उत्पाद; समय और सिंक्रनाइज़ेशन डिवाइस और सटीक समय समाधान, जो समय के लिए दुनिया के मानक निर्धारित करते हैं; वॉयस प्रोसेसिंग डिवाइस; RF समाधान; असतत घटक; सुरक्षा तकनीक और स्केलेबल एंटी-टीampईआर उत्पाद; पावर-ओवर-ईथरनेट आईसी और मिडस्पैन; साथ ही कस्टम डिज़ाइन क्षमताएं और सेवाएँ। माइक्रोसेमी का मुख्यालय एलिसो विएजो, कैलिफ़ोर्निया में है, और दुनिया भर में इसके लगभग 3,400 कर्मचारी हैं। अधिक जानकारी के लिए यहाँ जाएँ www.microsemi.com.

© 2014 माइक्रोसेमी कॉर्पोरेशन। सर्वाधिकार सुरक्षित। माइक्रोसेमी और माइक्रोसेमी लोगो माइक्रोसेमी कॉर्पोरेशन के ट्रेडमार्क हैं। अन्य सभी ट्रेडमार्क और सेवा चिह्न उनके संबंधित स्वामियों की संपत्ति हैं।

माइक्रोसेमी कॉर्पोरेट मुख्यालय

सामान्य प्रश्न

  • प्रश्न: डिवाइस की अधिकतम डेटा कैप्चर आवृत्ति क्या है?
    उत्तर: यह डिवाइस 100 मेगाहर्ट्ज तक डेटा कैप्चर का समर्थन करता है, जो अधिकांश लक्ष्य डिजाइनों के लिए उपयुक्त है।
  • प्रश्न: क्या मुझे डिबगिंग के लिए जांच सर्किट का उपयोग करते समय डिज़ाइन को पुनः संकलित करने की आवश्यकता है?
    उत्तर: नहीं, जांच बिंदु स्थानों को डिज़ाइन पुनःसंकलन या पुनःप्रोग्रामिंग की आवश्यकता के बिना शीघ्रता से बदला जा सकता है।

दस्तावेज़ / संसाधन

माइक्रोसेमी इन-सर्किट FPGA डीबग [पीडीएफ] निर्देश
इन-सर्किट FPGA डीबग, FPGA डीबग, डीबग

संदर्भ

एक टिप्पणी छोड़ें

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड चिह्नित हैं *