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

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

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

उत्पादन माहिती

तपशील

  • डिव्हाइस प्रकार: मायक्रोसेमी स्मार्टफ्यूजन२ एसओसी एफपीजीए
  • प्रकाशन तारीख: मे 2014
  • डीबगिंग क्षमता: इन-सर्किट FPGA डीबग, एम्बेडेड लॉजिक अॅनालायझर
  • कमाल डेटा कॅप्चर वारंवारता: १००MHz पर्यंत

गोषवारा
एफपीजीए हे एम्बेडेड सिस्टीममध्ये शक्तिशाली डिझाइन घटक आहेत ज्यात अनेक डिझाइन फायद्यांचा समावेश आहेtages, परंतु या उपकरणांमध्ये जटिल डिझाइन समस्यांसह जटिल डिझाइन असू शकतात ज्यांना डीबग करणे आवश्यक आहे. व्याख्या त्रुटी, सिस्टम परस्परसंवाद समस्या आणि सिस्टम वेळेच्या त्रुटी यासारख्या डिझाइन समस्यांचा मागोवा घेणे एक आव्हान असू शकते. FPGA मध्ये इन-सर्किट डीबग क्षमतांचा समावेश केल्याने हार्डवेअर डीबगमध्ये नाटकीयरित्या सुधारणा होऊ शकते आणि काउंटेस तासांच्या निराशा टाळता येते. हे पेपर FPGA साठी इन-सर्किट डीबग करण्यासाठी अनेक वेगवेगळ्या पद्धतींचे वर्णन करते, प्रमुख ट्रेड-ऑफ ओळखते आणि एक एक्सद्वारेampमायक्रोसेमी स्मार्टफ्यूजन®२ एसओसी एफपीजीए उपकरणासाठी लक्ष्यित हे डिझाइन, डीबगिंग आणि चाचणी जलद करण्यासाठी नवीन क्षमता कशा वापरता येतील हे दर्शवेल.

परिचय

FPGAs हे व्यापक आणि शक्तिशाली डिझाइन घटक आहेत आणि आता ते जवळजवळ प्रत्येक एम्बेडेड सिस्टममध्ये आढळतात. वाढत्या क्षमतेसह, जटिल ऑन-चिप फंक्शनल ब्लॉक्स आणि प्रगत सिरीयल इंटरफेसचा समावेश या उपकरणांमध्ये जटिल डिझाइन समस्या देखील असू शकतात ज्या डीबग करणे आवश्यक आहे. प्रगत FPGAs वापरताना फंक्शनल डेफिनेशन एरर (FPGA किंवा सिस्टम स्तरावर), फंक्शनल सिस्टम इंटरॅक्शन समस्या, सिस्टम टाइमिंग समस्या आणि ICs मधील सिग्नल फिडेलिटी समस्या (जसे की नॉइज, क्रॉसस्टॉक किंवा रिफ्लेक्शन्स) यासारख्या समस्यांचा मागोवा घेणे अधिक जटिल बनते. अनेक डिझाइन समस्या ओळखण्यात सिम्युलेशन निश्चितच मोठी मदत करते, परंतु हार्डवेअरमध्ये डिझाइन लागू होईपर्यंत अनेक वास्तविक जगातील परस्परसंवाद दिसून येणार नाहीत. प्रक्रिया सुलभ करण्यासाठी जटिल डिझाइन समस्या डीबग करण्यासाठी अनेक भिन्न तंत्रे विकसित केली गेली आहेत. या प्रत्येक प्रमुख तंत्रांची काळजीपूर्वक समज, ज्यामध्ये विविध फायद्यांचा समावेश आहेtages आणि disadvantagविशिष्ट डिझाइनसाठी कोणते तंत्र किंवा तंत्रांचे संयोजन योग्य आहे याचा विचार करताना es उपयुक्त आहे.
एक माजीampमायक्रोसेमी स्मार्टफ्यूजन२ एसओसी एफपीजीए उपकरणासाठी लक्ष्यित एफपीजीए डिझाइन, काही फायद्यांचे प्रदर्शन करण्यासाठी वापरले जाऊ शकतेtages आणि disadvantagया मानक तंत्रांचे तसेच नवीनतम इन-सर्किट डीबग क्षमतांचे उदाहरण. हे उदाहरणात्मक उदाहरणampहार्डवेअर डीबगिंग दरम्यान हार्डवेअर समस्या ओळखण्यासाठी आणि दूर करण्यासाठी या विविध तंत्रांचा वापर कसा करता येईल हे ले दाखवेल.

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

मानक प्रोसेसर आणि मानक इंटरफेस बसेसचे हे संयोजन उपलब्ध कोड लायब्ररी, ड्रायव्हर्स, फंक्शनल एपीआय, रिअल टाइम ऑपरेटिंग सिस्टम आणि अगदी संपूर्ण ऑपरेटिंग सिस्टम्सच्या मोठ्या इकोसिस्टमचा वापर करून एक कार्यरत प्रोटोटाइप तयार करणे शक्य करते. याव्यतिरिक्त, एकदा डिझाइन मजबूत झाल्यानंतर, FPGA प्रोटोटाइपचा वापर विस्तृत सिम्युलेशन चाचणी संच (उत्तेजना आणि प्रतिसाद दोन्हीसाठी) कॅप्चर करण्यासाठी केला जाऊ शकतो जे वास्तविक सिस्टम डेटा प्रतिबिंबित करतात. हे डेटा सेट ASIC किंवा इतर उत्पादन अंमलबजावणीसाठी अंतिम सिम्युलेशन तयार करण्यात अमूल्य ठरू शकतात. फायदाtagडिझाइन प्रोटोटाइप म्हणून FPGA वापरल्याने अंतिम उत्पादन अंमलबजावणीसाठी डिझाइन, प्रमाणीकरण, चाचणी आणि अपयश विश्लेषणासाठी लागणारा वेळ नाटकीयरित्या कमी होऊ शकतो.
या दोन्ही सामान्य FPGA वापर मॉडेल्समध्ये डिझाइन लक्ष्य म्हणून FPGA ची लवचिकता हा एक महत्त्वाचा फायदा आहेtage. याचा अर्थ असा की अनेक डिझाइन बदल आणि पुनरावृत्ती हे सर्वसामान्य प्रमाण असेल, आणि अशा प्रकारे डिझाइन त्रुटी जलद डीबग करण्याची क्षमता शक्य तितके डिझाइन पर्याय सक्षम करण्यासाठी महत्त्वपूर्ण असेल. कार्यक्षम डीबग क्षमताशिवाय बहुतेक प्रगतीtagअतिरिक्त डीबगिंग वेळेमुळे FPGA डिझाइनची लवचिकता कमी होईल. सुदैवाने, FPGAs अतिरिक्त हार्डवेअर वैशिष्ट्ये देखील प्रदान करू शकतात जी रिअल-टाइम डीबगिंगला नाटकीयरित्या सुलभ करतात. या क्षमता पाहण्यापूर्वी, प्रथम FPGA डिझाइनला येणाऱ्या सर्वात सामान्य समस्यांकडे पाहूया जेणेकरून आपल्याकडे विविध डीबगिंग साधनांच्या कार्यक्षमतेचे आणि संबंधित तडजोडींचे मूल्यांकन करण्यासाठी योग्य पार्श्वभूमी असेल.

FPGA डिझाइन डीबग करताना येणाऱ्या सामान्य समस्या

आधुनिक FPGAs द्वारे आणल्या जाणाऱ्या विस्तारित क्षमतांसह, संबंधित वाढत्या जटिलतेमुळे त्रुटी-मुक्त डिझाइन तयार करणे अधिक कठीण होते. खरं तर, असा अंदाज आहे की डीबगिंग एम्बेडेड सिस्टम डिझाइन सायकलच्या 50% पेक्षा जास्त व्यापू शकते. टाइम-टू-मार्केट दबाव विकास चक्र दाबत राहिल्याने, प्रारंभिक सिस्टमचे हार्डवेअर डीबगिंग नंतरच्या विचारात सोडले जाते - बहुतेकदा असे गृहीत धरले जाते की पडताळणी (स्वतः एक मोठी टक्केवारी)tagविकास वेळापत्रकाचा e). प्रारंभिक सिस्टम आणण्यापूर्वी सर्व बग्स पकडतील. प्रारंभिक सिस्टम आणताना सामान्य डिझाइनला कोणत्या आव्हानांना तोंड द्यावे लागते हे चांगल्या प्रकारे समजून घेण्यासाठी काही सामान्य प्रकारच्या सिस्टम समस्या पाहूया.

डिझायनरने एका विशिष्ट आवश्यकताचा गैरसमज केला असल्याने कार्यात्मक व्याख्या त्रुटी शोधणे दुप्पट कठीण असू शकते, म्हणून डिझाइनच्या तपशीलांकडे काळजीपूर्वक पाहताना देखील त्रुटी दुर्लक्षित केली जाऊ शकते. एक उदाहरणampसामान्य फंक्शनल डेफिनेशन एरर म्हणजे जिथे स्टेट मशीन ट्रांझिशन योग्य स्थितीत येत नाही. सिस्टम इंटरफेसमध्ये परस्परसंवादाच्या समस्येच्या रूपात एरर देखील दिसू शकतात. इंटरफेस लेटन्सी, उदा.ample, चुकीच्या पद्धतीने निर्दिष्ट केले जाऊ शकते ज्यामुळे अनपेक्षित बफर ओव्हरफ्लो किंवा अंडरफ्लो स्थिती निर्माण होऊ शकते.
सिस्टम लेव्हल टायमिंग समस्या हे डिझाइन त्रुटींचे आणखी एक सामान्य स्रोत आहेत. विशेषतः, असिंक्रोनस इव्हेंट्स, जेव्हा सिंक्रोनाइझेशन किंवा क्रॉसिंग टायमिंग डोमेन इफेक्ट्सचा काळजीपूर्वक विचार केला जात नाही तेव्हा त्रुटींचे एक सामान्य स्रोत असतात. वेगाने काम करताना या प्रकारच्या त्रुटी खूप समस्याप्रधान असू शकतात आणि क्वचितच दिसून येतात, कदाचित जेव्हा विशिष्ट डेटा पॅटर्न स्वतः प्रकट होतात तेव्हाच. अनेक सामान्य वेळेचे उल्लंघन या श्रेणीत येतात आणि सहसा खूप कठीण असतात, जर अनुकरण करणे अशक्य नसले तरी.

वेळेचे उल्लंघन हे एकात्मिक सर्किट्समधील कमी सिग्नल फिडेलिटीचा परिणाम देखील असू शकते, विशेषतः प्रत्येक सर्किटसाठी अनेक पॉवर रेल असलेल्या सिस्टममध्ये. कमी सिग्नल फिडेलिटीमुळे सिग्नल नॉइज, क्रॉसटॉक, रिफ्लेक्शन्स, जास्त लोडिंग आणि इलेक्ट्रो-मॅग्नेटिक इंटरफेरन्स (EMI) समस्या उद्भवू शकतात ज्या बहुतेकदा वेळेचे उल्लंघन म्हणून दिसून येतात. पॉवर सप्लाय समस्या, जसे की ट्रान्झिएंट्स (विशेषतः सिस्टम स्टार्ट-अप किंवा शट-डाऊन दरम्यान), लोड व्हेरिएशन आणि उच्च पॉवर डिसिपेशन स्ट्रेसमुळे देखील गूढ त्रुटी येऊ शकतात, ज्या बहुतेकदा पॉवर सप्लाय स्रोताकडे सहजपणे शोधल्या जात नाहीत. डिझाइन पूर्णपणे योग्य असताना देखील बोर्ड फॅब्रिकेशन समस्यांमुळे त्रुटी येऊ शकतात. सदोष सोल्डर जॉइंट्स आणि अयोग्यरित्या जोडलेले कनेक्टर, उदा.ampले, त्रुटींचे स्रोत असू शकते आणि तापमान किंवा बोर्ड स्थानावर अवलंबून देखील असू शकते. प्रगत FPGA पॅकेजिंग तंत्रांचा वापर केल्याने प्रिंटेड सर्किट बोर्डवरील सिग्नल तपासणे कठीण होऊ शकते, म्हणून फक्त इच्छित सिग्नल मिळवणे अनेकदा समस्याप्रधान असू शकते. बर्‍याचदा डिझाइनच्या अनेक समस्या तात्काळ त्रुटी निर्माण करत नाहीत आणि त्रुटी प्रत्यक्षात प्रकट होईपर्यंत डिझाइनमध्ये पसरत राहणे आवश्यक आहे. सुरुवातीच्या त्रुटीचा मूळ कारणापर्यंत शोध घेणे हे अनेकदा निराशाजनक, कठीण आणि वेळखाऊ काम असू शकते.

उदाampपण, भाषांतर सारणीमध्ये थोडीशी चूक झाल्यास अनेक चक्रांनंतर त्रुटी येऊ शकत नाही. या पेपरमध्ये आपण नंतर चर्चा करणार असलेल्या काही साधनांची, जे समर्पित इन-सर्किट डीबग हार्डवेअर वापरतात, विशेषतः या 'बग हंट्स' जलद आणि सोप्या बनवण्यासाठी लक्ष्यित आहेत. या साधनांच्या तपशीलात जाण्यापूर्वी, प्रथम एक लोकप्रिय सॉफ्टवेअर-आधारित डीबगिंग तंत्र सिम्युलेशन पाहू जेणेकरून अॅडव्हान्स अधिक चांगल्या प्रकारे समजून घेता येईल.tages आणि disadvantagडीबगिंगसाठी सिम्युलेशन वापरण्याचे उदाहरण.

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

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

जेव्हा डिझायनरकडे व्यापक उत्तेजक संयोजन उपलब्ध असतात आणि परिणामी आउटपुट सर्वज्ञात असतात तेव्हा सिम्युलेशन विशेषतः प्रभावी असते. या प्रकरणांमध्ये, सिम्युलेशन डिझाइनची जवळजवळ संपूर्ण चाचणी करू शकते. दुर्दैवाने, बहुतेक डिझाइनमध्ये विस्तृत चाचणी संचांमध्ये सहज प्रवेश नसतो आणि ते तयार करण्याची प्रक्रिया खूप वेळखाऊ असू शकते. मोठ्या FPGA-आधारित डिझाइनसाठी 100% डिझाइन कव्हर करणारा चाचणी संच तयार करणे जवळजवळ अशक्य आहे आणि डिझाइनच्या प्रमुख घटकांना कव्हर करण्याचा प्रयत्न करण्यासाठी शॉर्टकट वापरणे आवश्यक आहे. सिम्युलेशनमधील आणखी एक अडचण म्हणजे ती 'वास्तविक जगात' अंमलबजावणी नाही आणि असिंक्रोनस घटना, वेगाने होणारे सिस्टम परस्परसंवाद किंवा वेळेचे उल्लंघन पकडू शकत नाही. शेवटी, सिम्युलेशन प्रक्रिया खूप मंद असू शकते आणि जर अनेक पुनरावृत्ती आवश्यक असतील तर सिम्युलेशन त्वरीत सर्वात जास्त वेळ घेणारे आणि अनेकदा विकास प्रक्रियेचा सर्वात महाग भाग बनते.

पर्याय म्हणून (किंवा कदाचित अधिक चांगल्या प्रकारे सांगायचे तर, सिम्युलेशनमध्ये भर म्हणून) FPGA डिझायनर्सना असे आढळून आले की ते डिव्हाइसमधील की सिग्नलचे निरीक्षण आणि नियंत्रण करण्यासाठी FPGA डिझाइनमध्ये डीबग हार्डवेअर जोडू शकतात. या तंत्रे मूळतः अॅड-हॉक दृष्टिकोन म्हणून विकसित केल्या गेल्या होत्या, परंतु हळूहळू मानक हार्डवेअर डीबग धोरणात विकसित झाल्या आहेत. इन-सर्किट डीबग क्षमतांचा हा वापर लक्षणीय फायदा देतोtagFPGA-आधारित डिझाइनसाठी ES आणि पुढील विभागात तीन सर्वात सामान्य धोरणे आणि त्यांचे विविध फायदे एक्सप्लोर केले जातील.tages आणि disadvantages

FPGA साठी सामान्य इन-सर्किट डीबग दृष्टिकोन
FPGA मध्ये इन-सर्किट डीबग क्षमता लागू करण्यासाठी सर्वात सामान्य तंत्रे एम्बेडेड लॉजिक अॅनालायझर, बाह्य चाचणी उपकरणे किंवा FPGA फॅब्रिकमध्ये एम्बेड केलेले समर्पित सिग्नल प्रोब हार्डवेअर वापरतात. एम्बेडेड लॉजिक अॅनालायझर सामान्यतः FPGA फॅब्रिक वापरून अंमलात आणले जाते आणि डिझाइनमध्ये घातले जाते. JTAG विश्लेषक प्रवेश करण्यासाठी पोर्टचा वापर केला जातो आणि कॅप्चर केलेला डेटा पीसीवर प्रदर्शित केला जाऊ शकतो. जेव्हा बाह्य चाचणी उपकरणे वापरली जातात, तेव्हा चाचणी अंतर्गत FPGA डिझाइनमध्ये बदल केले जातात जेणेकरून निवडलेले अंतर्गत FPGA सिग्नल आउटपुट पिनवर राउट केले जातात. नंतर हे पिन बाह्य चाचणी उपकरणांद्वारे पाहिले जाऊ शकतात. जेव्हा समर्पित सिग्नल प्रोब हार्डवेअर वापरले जाते, तेव्हा अंतर्गत सिग्नलची विस्तृत निवड रिअल टाइममध्ये वाचता येते. काही प्रोब अंमलबजावणीचा वापर नोंदणी किंवा मेमरी स्थानांवर लिहिण्यासाठी देखील केला जाऊ शकतो ज्यामुळे डीबग क्षमता आणखी वाढतात. चला अॅडव्हानवर अधिक तपशीलवार पाहूयाtages आणि disadvantagया प्रत्येक तंत्राचे उदाहरण घ्या आणि नंतर एक माजी पहाampहे वेगवेगळे दृष्टिकोन एकूण डीबगिंग वेळेवर कसा परिणाम करू शकतात हे पाहण्यासाठी डिझाइन करा.

इन-सर्किट FPGA डीबग-एम्बेडेड लॉजिक अॅनालायझर
एम्बेडेड लॉजिक अॅनालायझरची संकल्पना ही FPGAs पहिल्यांदा वापरताना डिझाइनर्सनी अंमलात आणलेल्या अॅड-हॉक इन-सर्किट डीबगिंग क्षमतांचा थेट परिणाम होती. एम्बेडेड लॉजिक अॅनालायझरने नवीन क्षमता जोडल्या आणि डिझायनरला स्वतःचे अॅनालायझर विकसित करण्याची आवश्यकता काढून टाकली. बहुतेक FPGAs या क्षमता देतात आणि तृतीय पक्ष मानक अॅनालायझर देतात (Synopsys कडून Identify® हे एक लोकप्रिय उदाहरण आहे).ample) जे उत्पादकता सुधारण्यासाठी उच्च स्तरीय साधनांशी सहजपणे संवाद साधू शकते.

आकृती २ मध्ये दाखवल्याप्रमाणे, लॉजिक अॅनालायझर कार्यक्षमता डिझाइनमध्ये समाविष्ट केली आहे, ज्यामध्ये FPGA फॅब्रिक आणि एम्बेडेड मेमरी ब्लॉक्सचा वापर ट्रेस बफर म्हणून केला आहे. ट्रिगरिंग संसाधने देखील तयार केली आहेत जेणेकरून जटिल सिग्नल परस्परसंवाद सहजपणे निवडता येतील आणि कॅप्चर करता येतील. नियंत्रण आणि डेटा ट्रान्सफरसाठी अॅनालायझरमध्ये प्रवेश सामान्यतः मानक J द्वारे केला जातो.TAG इंटरफेस आवश्यकता सुलभ करण्यासाठी पोर्ट. कॅप्चर केलेला डेटा सामान्य वापरून पीसीवर प्रदर्शित केला जाऊ शकतो viewसॉफ्टवेअर वापरते आणि सामान्यत: लॉजिक सिम्युलेटर वेव्हफॉर्म आउटपुट मिरर करते viewशैली.

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

अडवानtagया दृष्टिकोनाचे मुख्य मुद्दे असे आहेत की कोणतेही अतिरिक्त FPGA I/O पिन वापरले जात नाहीत, फक्त मानक JTAG सिग्नल. एम्बेडेड लॉजिक अॅनालायझर आयपी कोर सहसा तुलनेने स्वस्त असतात आणि काही प्रकरणांमध्ये ते विद्यमान एफपीजीए सिंथेसिस किंवा सिम्युलेशन टूल्सचा पर्याय असू शकतात. काही प्रकरणांमध्ये, एम्बेडेड लॉजिक अॅनालायझर अधिक सोयीस्कर असल्यास, न वापरलेल्या आय/ओ वर अतिरिक्त आउटपुट देखील प्रदान करू शकते. यातील एक तोटाtagया दृष्टिकोनाचा उद्देश असा आहे की मोठ्या प्रमाणात FPGA संसाधनांची आवश्यकता असते. विशेषतः, जर ट्रेस बफर वापरले गेले तर उपलब्ध ब्लॉक मेमरींची संख्या कमी होईल. जर विस्तृत बफरची आवश्यकता असेल तर हे मेमरी डेप्थ विरुद्ध ट्रेड-ऑफ देखील असेल (कारण विस्तृत मेमरी वापरल्याने मेमरी डेप्थ कमी होते) - एक मोठा तोटाtagलहान उपकरणे वापरताना. कदाचित या तंत्राचा सर्वात मोठा तोटा असा आहे की प्रत्येक वेळी प्रोब प्लेसमेंटमध्ये समायोजन केले जाते तेव्हा डिझाइन पुन्हा कंपाईल करणे आणि पुन्हा प्रोग्राम करणे आवश्यक असते. मोठे उपकरण वापरताना या प्रक्रियेला बराच वेळ लागू शकतो. डिझाइनमध्ये सिग्नल प्रोब ज्या पद्धतीने ठेवल्या जातात त्यामुळे सिग्नल वेळेचे संबंध सहसंबंधित करणे कठीण होऊ शकते. याव्यतिरिक्त, सिग्नल प्रोबमधील विलंब सुसंगत नसतात आणि त्यामुळे वेळेचे संबंध तुलना करणे कठीण असते. वेगवेगळ्या वेळ डोमेनमधील असिंक्रोनस सिग्नल किंवा सिग्नलची तुलना करताना ही एक विशिष्ट अडचण आहे.

इन-सर्किट FPGA डीबग - बाह्य चाचणी उपकरणे
जेव्हा सिस्टम चाचणीसाठी बाह्य लॉजिक विश्लेषक आधीच उपलब्ध होते तेव्हा बाह्य चाचणी उपकरणांसह इन-सर्किट डीबग कोडचा वापर करणे ही एक नैसर्गिक घटना होती. आकृती 3 मध्ये दर्शविल्याप्रमाणे, अंतर्गत चाचणी सिग्नल ओळखण्यासाठी आणि निवडण्यासाठी आणि त्यांना FPGA I/Os वर लागू करण्यासाठी काही साधे डीबग कोड तयार करून, विश्लेषकांच्या प्रगत क्षमतांचा (जसे की मोठे ट्रेस बफर, जटिल ट्रिगरिंग अनुक्रम आणि एकाधिक) फायदा घेणे शक्य झाले. viewing पर्याय) साधे पण शक्तिशाली डीबग वातावरण तयार करण्यासाठी. प्रगत ट्रिगरिंग पर्यायांसाठी अधिक जटिल इन-सर्किट क्षमता आवश्यक आउटपुटची संख्या कमी करू शकतात. उदा.ampपण, जर बाह्य पिन आवश्यक असतील तर रुंद बसमध्ये विशिष्ट पत्ते निवडणे निषिद्ध असू शकते.
अंतर्गत FPGA लॉजिक वापरल्याने I/O आवश्यकता नाटकीयरित्या कमी होतात आणि अधिक जटिल समस्या डीबग करण्यासाठी विशिष्ट अॅड्रेस पॅटर्न (कदाचित कॉल आणि रिटर्न सीक्वेन्स) देखील शोधता येतात. जर एक सामान्य वापरकर्ता इंटरफेस उपलब्ध असेल, तर हे शिकण्याची प्रक्रिया सुलभ करू शकते आणि उत्पादकता सुधारू शकते.

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

अडवानtagया दृष्टिकोनाचा फायदा असा आहे की ते बाह्य चाचणी उपकरणांच्या किमतीचा फायदा घेते आणि त्यामुळे कोणतेही अतिरिक्त साधन खर्च येत नाही. काही डीबग सर्किट आयपी कोर उपकरणे उत्पादक किंवा FPGA उत्पादकांकडून उपलब्ध असतात आणि ते खूप कमी किमतीचे किंवा अगदी मोफत देखील असू शकतात. सिग्नल सिलेक्शन लॉजिक अंमलात आणण्यासाठी आवश्यक असलेल्या FPGA संसाधनांचे प्रमाण खूप कमी आहे आणि ट्रेस फंक्शन बाह्य लॉजिक अॅनालायझर वापरून केले जात असल्याने, ब्लॉक मेमरीजची आवश्यकता नाही. सिलेक्शन लॉजिक स्वस्त असल्याने, विस्तृत ट्रिगरिंगसह मोठ्या संख्येने चॅनेल देखील समर्थित केले जाऊ शकतात. लॉजिक अॅनालायझर टायमिंग मोड आणि स्टेट मोड दोन्हीमध्ये ऑपरेट करू शकते जे काही वेळेच्या समस्यांना वेगळे करण्यास मदत करते.
Disadvantagया दृष्टिकोनाच्या काही वैशिष्ट्यांमध्ये जर प्रकल्पासाठी आधीच नियुक्त केलेले नसेल तर लॉजिक अॅनालायझर खरेदी करण्याची आवश्यकता असू शकते. हा तोटाtagअनेक प्रकरणांमध्ये या दृष्टिकोनाला परावृत्त करण्यासाठी e पुरेसे असू शकते. तथापि, लक्षात ठेवा की काही कमी किमतीचे लॉजिक अॅनालायझर पर्याय उपलब्ध होत आहेत जे डिस्प्लेसाठी पीसी किंवा टॅब्लेट वापरतात, ज्यामुळे साध्या डीबग आवश्यकतांसाठी हा पर्याय अधिक किफायतशीर बनतो.
वापरलेल्या FPGA पिनची संख्या ही आणखी एक गैरसोय असू शकते.tage आणि जर रुंद बसेसचे निरीक्षण करायचे असेल तर बोर्ड लेआउटसाठी महत्त्वपूर्ण नियोजन आणि डीबग कनेक्टर जोडणे आवश्यक आहे. डिझाइन टप्प्याच्या सुरुवातीला आणि आणखी एक अवांछित गुंतागुंतीचा अंदाज लावणे बहुतेक वेळा कठीण असते. एम्बेडेड लॉजिक अॅनालायझर दृष्टिकोनाप्रमाणेच, बाह्य चाचणी धोरणासाठी प्रत्येक नवीन प्रयोगाची आवश्यकता असताना डिझाइनचे पुनर्संकलन आणि पुनर्प्रोग्रामिंग आवश्यक असते.

सामान्य गैरसोयtagया दोन तंत्रांपैकी - ऑन-चिप संसाधनांचा वापर (ज्यामुळे डिझाइनच्या वेळेच्या कामगिरीवर देखील परिणाम होऊ शकतो आणि अतिरिक्त डीबगिंग आवश्यकता निर्माण होऊ शकतात), डिझाइन पुन्हा कंपाईल आणि रीप्रोग्राम करण्याची आवश्यकता (ज्यामुळे डीबग वेळापत्रकात तास किंवा अगदी दिवस देखील जोडता येतात), संभाव्य चाचणी परिस्थिती ओळखण्यासाठी आवश्यक असलेले आगाऊ नियोजन आणि अतिरिक्त चिप I/O संसाधनांचा वापर यामुळे या कमतरतांशिवाय दृष्टिकोनाची आवश्यकता निर्माण झाली. एक प्रतिसाद म्हणजे काही उपकरणांवर FPGA फॅब्रिकमध्ये समर्पित डीबग लॉजिक जोडणे. हार्डवेअर प्रोब वापरून इन-सर्किट डीबग करणे हे परिणाम होते.

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

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

निवडलेले रजिस्टर आउटपुट (प्रोब पॉइंट्स), आकृतीच्या तळाशी असलेल्या आउटपुटप्रमाणे, दोन प्रोब चॅनेलच्या वर राउट केले जातात आणि निवडल्यास ते A किंवा B चॅनेलवर लागू केले जाऊ शकतात. हे रिअल-टाइम चॅनेल सिग्नल नंतर डिव्हाइसवरील समर्पित प्रोब A आणि प्रोब B पिनवर पाठवले जाऊ शकतात. प्रोब A आणि प्रोब B सिग्नल अंतर्गतरित्या एम्बेडेड लॉजिक अॅनालायझरकडे देखील राउट केले जाऊ शकतात.

लक्षात ठेवा की प्रोब पिनची वेळेची वैशिष्ट्ये नियमित असतात आणि एका प्रोब पॉइंटपासून दुसऱ्या प्रोब पॉइंटमध्ये नगण्य विचलन असते, ज्यामुळे रिअल-टाइम सिग्नलच्या वेळेच्या वैशिष्ट्यांची तुलना करणे खूप सोपे होते. डेटा 100MHz पर्यंत कॅप्चर केला जाऊ शकतो ज्यामुळे तो बहुतेक लक्ष्य डिझाइनसाठी योग्य बनतो.
कदाचित सर्वात महत्त्वाचे म्हणजे प्रोब पॉइंट लोकेशन्स, कारण ते अंमलात आणलेल्या डिझाइनचा भाग म्हणून निवडले जात नाहीत (डिझाइन FPGA वर चालू असताना ते समर्पित हार्डवेअरद्वारे निवडले जातात), फक्त डिव्हाइसला निवड डेटा पाठवून ते त्वरित बदलता येतात. डिझाइन रीकंपाइल आणि रीप्रोग्रामिंगची आवश्यकता नाही.
लाईव्ह प्रोब क्षमतेचा वापर आणखी सोपा करण्यासाठी, संबंधित डीबग सॉफ्टवेअर टूलला स्वयंचलितपणे जनरेट केलेल्या डीबगद्वारे सर्व प्रोब सिग्नल स्थानांवर प्रवेश आहे. file. आकृती ५ मध्ये दाखवल्याप्रमाणे, सिग्नलचे नाव सिग्नल यादीतून निवडले जाऊ शकते आणि इच्छित चॅनेलवर लागू केले जाऊ शकते. डिझाइन चालू असताना देखील हे केले जाऊ शकते जेणेकरून डिझाइनमधील प्रोबिंग क्रियाकलाप अखंड आणि अतिशय कार्यक्षम असेल.

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

बऱ्याच प्रकरणांमध्ये, लाईव्ह प्रोब सारखी हार्डवेअर प्रोब क्षमता, पूर्वी वर्णन केलेल्या एम्बेडेड लॉजिक अॅनालायझर आणि बाह्य चाचणी तंत्रांसह वापरली जाऊ शकते.

आकृती ६ मध्ये दाखवल्याप्रमाणे, 'ऑन द फ्लाय' सिग्नल निवडण्याची लाईव्ह प्रोब क्षमता डिझाइन पुन्हा कंपाईल न करता निरीक्षणाखालील सिग्नल जलद आणि सहजपणे बदलणे शक्य करते. समर्पित प्रोब आउटपुट पिनवरील आकृतीच्या वरच्या उजव्या भागात दाखवल्याप्रमाणे, बाह्य लॉजिक अॅनालायझर किंवा स्कोप सहजपणे प्रोब केलेल्या सिग्नलचे निरीक्षण करू शकतो. पर्यायी (किंवा कदाचित त्याव्यतिरिक्त) अंतर्गत लॉजिक अॅनालायझर (आकृतीमध्ये दर्शविलेला ILA आयडेंटिफाई ब्लॉक) प्रोब पिनचे निरीक्षण करण्यासाठी वापरला जाऊ शकतो. प्रोब सिग्नल ILA द्वारे कॅप्चर केले जाऊ शकतात आणि वेव्हफॉर्म विंडोवर निरीक्षण केले जाऊ शकतात. लक्ष्य डिझाइन पुन्हा कंपाईल न करता प्रोबची ठिकाणे बदलता येतात.
लक्षात ठेवा की ट्रिगरिंग आणि ट्रेससाठी अतिरिक्त क्षमतांचा वापर प्रोब कार्यक्षमता वाढविण्यासाठी केला जाऊ शकतो, ज्यामुळे जटिल डिझाइन समस्या देखील ओळखणे सोपे होते.

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

SmartFusion2 SoC FPGA आणि IGLOO2 FPGA डिव्हाइसेसवर अतिरिक्त हार्डवेअर डीबग क्षमता देखील उपलब्ध आहेत. यापैकी एक क्षमता, ज्याला Active Probe म्हणतात, कोणत्याही लॉजिक एलिमेंट रजिस्टर बिटवर गतिमान आणि असिंक्रोनसपणे वाचू किंवा लिहू शकते. एक लिखित मूल्य एका घड्याळाच्या चक्रासाठी टिकून राहते जेणेकरून सामान्य ऑपरेशन चालू राहू शकेल, ज्यामुळे ते एक अतिशय मौल्यवान डीबगिंग साधन बनते. जर अंतर्गत सिग्नलचे जलद निरीक्षण हवे असेल (कदाचित ते सक्रिय आहे की इच्छित स्थितीत आहे हे तपासण्यासाठी, जसे की रीसेट सिग्नल), किंवा जर प्रोब पॉइंटवर लिहून लॉजिक फंक्शनची द्रुत चाचणी करण्याची आवश्यकता असेल तर Active Probe विशेष रसपूर्ण आहे.
(कदाचित नियंत्रण प्रवाह समस्येचे निराकरण करण्यासाठी इनपुट मूल्य त्वरित सेट करून स्टेट मशीन संक्रमण सुरू करण्यासाठी).

मायक्रोसेमीने प्रदान केलेली आणखी एक डीबग क्षमता म्हणजे मेमरी डीबग. हे वैशिष्ट्य डिझायनरला निवडलेल्या FPGA फॅब्रिक SRAM ब्लॉकमध्ये गतिमान आणि असिंक्रोनसपणे वाचण्याची किंवा लिहिण्याची परवानगी देते. डीबग टूल (आकृती 7) च्या स्क्रीनशॉटमध्ये दाखवल्याप्रमाणे, जेव्हा मेमरी ब्लॉक्स टॅब निवडला जातो तेव्हा वापरकर्ता वाचण्यासाठी इच्छित मेमरी निवडू शकतो, मेमरीचा स्नॅपशॉट कॅप्चर करू शकतो, मेमरी व्हॅल्यूज सुधारू शकतो आणि नंतर व्हॅल्यूज डिव्हाइसवर परत लिहू शकतो. हे विशेषतः कॉम्प्युटेशन ओरिएंटेड स्क्रॅच-पॅडसाठी कम्युनिकेशन्स पोर्टमध्ये वापरल्या जाणाऱ्या डेटा बफर तपासण्यासाठी किंवा सेट करण्यासाठी किंवा एम्बेडेड CPU द्वारे अंमलात आणलेल्या कोडसाठी देखील उपयुक्त ठरू शकते. जेव्हा मेमरी इतक्या लवकर पाहिल्या आणि नियंत्रित केल्या जाऊ शकतात तेव्हा जटिल डेटा-आधारित त्रुटी डीबग करणे लक्षणीयरीत्या जलद आणि सोपे होते.

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

एकदा डिझाइन डीबग केले की, संवेदनशील माहितीचे संरक्षण करण्यासाठी हार्डवेअर डीबग क्षमता बंद करणे इष्ट असू शकते. हल्लेखोर याच सुविधांचा वापर करून गंभीर माहिती वाचू शकतो किंवा सिस्टम सेटिंग्ज बदलू शकतो ज्यामुळे सिस्टमच्या संवेदनशील भागांमध्ये सहज प्रवेश मिळू शकतो. डिबगिंग पूर्ण झाल्यानंतर डिझायनरला डिव्हाइस सुरक्षित करण्याची परवानगी देण्यासाठी मायक्रोसेमीने वैशिष्ट्ये जोडली आहेत. उदा.ampतसेच, लाईव्ह प्रोब आणि अ‍ॅक्टिव्ह प्रोबचा अ‍ॅक्सेस लॉक करून फंक्शन पूर्णपणे अक्षम करता येते जेणेकरून हल्ल्याचा एक संभाव्य मार्ग म्हणून ते बंद करता येईल (ते प्रोब अ‍ॅक्टिव्हिटीमुळे पुरवठा करंटमध्ये कोणतेही पॅटर्न तयार होण्याची शक्यता देखील काढून टाकते ज्याचा वापर प्रोब डेटा अप्रत्यक्षपणे पाहण्यासाठी आणि निरीक्षण करण्यासाठी केला जाऊ शकतो). पर्यायीरित्या, डिझाइनच्या निवडक भागांमध्ये अ‍ॅक्सेस लॉक करून फक्त त्या विभागांमध्ये अ‍ॅक्सेस रोखता येतो. जर डिझाइनचा फक्त एक भाग सुरक्षित ठेवण्याची आवश्यकता असेल तर उर्वरित डिझाइन फील्ड चाचणी किंवा त्रुटी विश्लेषणासाठी अद्याप उपलब्ध असेल तर हे सोयीस्कर असू शकते.

इन-सर्किट डीबग तुलना चार्ट
आता सविस्तर माहितीview तीन मुख्य इन-सर्किट हार्डवेअर डीबग तंत्रांचे वर्णन केले आहे, आकृती 8 मध्ये दाखवल्याप्रमाणे, एक सारांश चार्ट तयार केला आहे जो विविध फायद्यांचा तपशील देतो.tages आणि disadvantagप्रत्येक पद्धतीचे es. काही तंत्रे एकत्रितपणे वापरली जाऊ शकतात हे लक्षात ठेवणे (लाइव्ह प्रोब आणि इंटरनल लॉजिक अॅनालायझर (ILA), जसे की Synopsys Identify, उदा.ample), आपण प्रत्येक तंत्राची प्रमुख ताकद आणि कमकुवतपणा पाहू शकतो. इन-सर्किट हार्डवेअर डीबग क्षमतांचा संग्रह (लाइव्ह प्रोब, अ‍ॅक्टिव्ह प्रोब आणि मेमरी डीबग—एकत्रितपणे स्मार्टडिबग म्हणतात), उपलब्ध एकूण प्रोबच्या संख्येच्या बाबतीत इतर तंत्रांच्या तुलनेत सर्वात कमकुवत आहेत (लाल वर्तुळ) आणि कॅप्चर गतीचा विचार केला तर सर्वोत्तम (पिवळ्या वर्तुळ) पेक्षा कमकुवत आहेत (बाह्य चाचणी उपकरणे जलद असू शकतात).
इतर तंत्रांच्या तुलनेत आणि FPGA संसाधन आवश्यकता विचारात घेतल्यास, Synopsys Identify सारख्या ILA-आधारित तंत्रे सर्वात कमकुवत असतात. बाह्य चाचणी उपकरणे-आधारित तंत्रे अनेक बाबींमध्ये सर्वात कमकुवत असतात ज्यात किंमत, डिझाइन वेळेचा प्रभाव आणि प्रोब हालचालीचा ओव्हरहेड (डिझाइन पुन्हा कंपाईल करण्याची आवश्यकता असल्यामुळे) सर्वात कठीण असतात. कदाचित सर्वोत्तम उपाय म्हणजे स्मार्टडिबग आणि इतर तंत्रांपैकी एकाचे संयोजन, जेणेकरून स्मार्टडिबगच्या चॅनेलची संख्या कमकुवतपणा कमी करता येईल आणि प्रोब पॉइंट हालचालीचा तोटा कमी करता येईल.tagइतर तंत्रांचे प्रमाण देखील कमी झाले.

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

सिग्नल वर्गीकरण
काही सर्वात सामान्य प्रकारच्या सिग्नलमध्ये एक उपयुक्त फरक करता येतो आणि डीबगिंग दृष्टिकोनाची योजना आखताना हे मदत करू शकते. उदा.ampम्हणजेच, सिस्टम स्टार्ट-अप दरम्यान बदलत नसलेले सिग्नल, जसे की सिस्टम रीसेट, ब्लॉक रीसेट किंवा इनिशिएलायझेशन रजिस्टर, स्टॅटिक सिग्नल म्हणून वर्गीकृत केले जाऊ शकतात. या प्रकारचे सिग्नल अशा सुविधेद्वारे सर्वात कार्यक्षमतेने अॅक्सेस केले जातात जे सिग्नल सहजपणे निरीक्षण करू शकते आणि नियंत्रित करू शकते, दीर्घ रीकंपाइल सायकलची आवश्यकता न पडता. अ‍ॅक्टिव्ह प्रोब ही स्टॅटिक सिग्नल डीबग करण्यासाठी एक उत्कृष्ट सुविधा आहे. त्याचप्रमाणे, जे सिग्नल अधिक वारंवार बदलतात परंतु बहुतेक वेळेस स्थिर असतात, त्यांना स्यूडो-स्टॅटिक म्हणून वर्गीकृत केले जाऊ शकते आणि अ‍ॅक्टिव्ह प्रोब वापरून सर्वात प्रभावीपणे डीबग केले जाऊ शकते. जे सिग्नल वारंवार बदलतात, जसे की घड्याळ सिग्नल, डायनॅमिक म्हणून वर्गीकृत केले जाऊ शकतात आणि अ‍ॅक्टिव्ह प्रोबद्वारे ते सहज अॅक्सेस केले जात नाहीत. या सिग्नलचे निरीक्षण करण्यासाठी लाईव्ह प्रोब हा एक चांगला पर्याय आहे.

साधे डीबग वापर केस

आता आपल्याला विविध इन-सर्किट डीबग पर्यायांची चांगली समज झाली आहे, चला एक साधी डिझाइन उदाहरण पाहूयाampया तंत्रांचे कार्य कसे आहे ते पाहण्यासाठी. आकृती 9, SmartFusion2 SoC FPGA डिव्हाइसमध्ये एक साधे FPGA डिझाइन दर्शविते. मायक्रोकंट्रोलर सबसिस्टम (MSS) CoreSF2Reset सॉफ्ट आयपी ब्लॉकद्वारे रीसेट केले जाते. या ब्लॉकमधील इनपुट पॉवर ऑन रीसेट, यूजर फॅब्रिक रीसेट आणि एक्सटर्नल रीसेट आहेत. आउटपुट यूजर फॅब्रिकवर रीसेट, एमएसएस रीसेट आणि एम3 रीसेट आहेत. एररची लक्षणे अशी आहेत की डिव्हाइस POR स्थितीतून यशस्वीरित्या बाहेर पडले तरीही I/Os वर कोणतीही क्रियाकलाप नाही. या एरर डीबग करण्यासाठी तीन वेगवेगळे पर्याय आकृतीमध्ये देखील दर्शविले आहेत: निळा बॉक्स (ETE लेबल केलेला) बाह्य चाचणी उपकरण पद्धतीसाठी आहे; हिरवा बॉक्स (ILA लेबल केलेला) अंतर्गत लॉजिक अॅनालायझर पद्धतीसाठी आहे; आणि नारंगी बॉक्स (AP लेबल केलेला) सक्रिय प्रोब पद्धतीसाठी आहे. आपण असे गृहीत धरू की त्रुटीची संभाव्य मूळ कारणे CoreSF2Reset सॉफ्ट आयपी ब्लॉकमध्ये अयोग्यरित्या दावा केलेले रीसेट इनपुट आहेत.

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

आता आपण पूर्वी वर्णन केलेल्या तीन इन-सर्किट पद्धतींसाठी डीबग प्रक्रिया पाहू.

बाह्य चाचणी उपकरणे
या पद्धतीचा वापर करून, असे गृहीत धरले जाते की चाचणी उपकरणे उपलब्ध आहेत आणि उच्च प्राधान्य प्रकल्पाद्वारे वापरली जात नाहीत. याव्यतिरिक्त, काही FPGA I/O उपलब्ध असतील आणि चाचणी उपकरणांशी सहजपणे जोडता येतील यासाठी आगाऊ नियोजन करणे महत्वाचे आहे. उदाहरणार्थ, PCB वर हेडर असणेampले, खूप उपयुक्त ठरेल आणि 'संभाव्य संशयित' किंवा प्रोबिंग दरम्यान पिनच्या संभाव्य शॉर्टिंगला ओळखण्यासाठी आणि कनेक्ट करण्यात घालवलेला वेळ कमी करेल. आम्हाला तपासायचे असलेले सिग्नल निवडण्यासाठी डिझाइन पुन्हा कंपाइल करावे लागेल. आशा आहे की, आम्ही 'कांदा परत सोलणार नाही' आणि पुढील तपासणीसाठी अतिरिक्त सिग्नल निवडावे लागतील, कारण बहुतेकदा आमच्या सुरुवातीच्या तपासणीत फक्त अधिक प्रश्न उद्भवतात. कोणत्याही परिस्थितीत, रिकम्पाइल आणि रीप्रोग्रामिंग प्रक्रियेला बराच वेळ लागू शकतो आणि जर त्यामुळे वेळेचे उल्लंघन झाले तर पुन्हा डिझाइन करणे आवश्यक आहे (टाइमिंग क्लोजर समस्या सोडवण्याचा प्रयत्न करणे किती निराशाजनक असू शकते हे आपल्या सर्वांना माहित आहे, विशेषतः जेव्हा तुम्ही डिझाइन बग शोधण्यासाठी डिझाइन बदल करत असता - संपूर्ण प्रक्रियेला काही मिनिटांपासून ते तास लागू शकतात)! हे लक्षात ठेवणे देखील महत्त्वाचे आहे की जर डिझाइनमध्ये कोणतेही विनामूल्य वापरकर्ता I/O नसतील तर ही पद्धत अंमलात आणता येणार नाही. शिवाय, ही पद्धत डिझाइनमध्ये संरचनात्मकदृष्ट्या घुसखोर आहे - आणि वेळेशी संबंधित बग पुनरावृत्ती दरम्यान अदृश्य होऊ शकतात किंवा पुन्हा दिसू शकतात.

अंतर्गत तर्कशास्त्र विश्लेषक
या पद्धतीचा वापर करून, फॅब्रिक रिसोर्सेस वापरून डिझाइनमध्ये ILA घालावे लागते आणि नंतर ते पुन्हा कंपाइल करावे लागते. लक्षात ठेवा की जर ILA आधीच इन्स्टँशिएट केले गेले असेल, तर आपण ज्या सिग्नलची तपासणी करू इच्छितो ते कदाचित इन्स्ट्रुमेंट केलेले नसतील, ज्यासाठी रीकम्पाइल देखील आवश्यक असेल. या प्रक्रियेमुळे मूळ डिझाइन बदलण्याचा आणि वेळेच्या मर्यादांचे उल्लंघन होण्याचा धोका असतो. जर वेळेची पूर्तता झाली, तर डिझाइन पुन्हा प्रोग्राम करणे आणि पुन्हा सुरू करणे आवश्यक आहे. जर रीकम्पाइल वेळ मोठा असेल आणि अनेक पास आवश्यक असतील तर या संपूर्ण प्रक्रियेला काही मिनिटे किंवा तास देखील लागू शकतात. हा दृष्टिकोन संरचनात्मकदृष्ट्या अनाहूत आहे आणि वरील पद्धती वापरताना वर्णन केलेल्या समस्यांसारख्याच समस्या उद्भवू शकतात.

सक्रिय चौकशी
या पद्धतीचा वापर करून अ‍ॅक्टिव्ह प्रोबला विविध रीसेट सिग्नलच्या स्त्रोताकडे निर्देशित केले जाऊ शकते, जे सर्व रजिस्टर आउटपुटद्वारे मिळवले जातात (कोणत्याही चांगल्या डिजिटल डिझाइन प्रॅक्टिसमध्ये सामान्य आहे). खालील आकृती १० मध्ये दर्शविलेल्या अ‍ॅक्टिव्ह प्रोब मेनूमधून सिग्नल एका वेळी एक निवडले जातात. निवडलेल्या सिग्नल मूल्ये वाचता येतात आणि अ‍ॅक्टिव्ह प्रोब डेटा विंडोवर प्रदर्शित केल्या जातात. कोणतेही चुकीचे प्रतिपादन सहजपणे ओळखले जाऊ शकते. ही चाचणी डिव्हाइस पुन्हा कंपाइल आणि रीप्रोग्राम न करता त्वरित केली जाऊ शकते आणि ती संरचनात्मक किंवा प्रक्रियात्मकदृष्ट्या अनाहूत नाही. संपूर्ण प्रक्रियेला फक्त काही सेकंद लागतात. ही पद्धत नियंत्रणक्षमता (असिंक्रोनसपणे मूल्ये बदलणे) देखील तयार करू शकते जी इतर दोन पद्धती परवानगी देणार नाहीत. या विशिष्ट उदाहरणातampम्हणजे, रजिस्टरद्वारे मिळवलेला रीसेट सिग्नल सहजपणे तपासला जाऊ शकतो आणि सक्रिय स्थितीत असल्याचे आढळून येते.

रीसेट सिग्नलचे क्षणिक टॉगलिंग रजिस्टरमध्ये असिंक्रोनसपणे फेरफार करून आणि उर्वरित सिग्नल तयार करून साध्य केले जाऊ शकते.

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

अधिक जटिल डीबग वापर केस
वरील डिझाइन खूप सोपे होते आणि वर्णन केलेल्या डिझाइन तंत्रांचा वापर करण्यासाठी परिचय म्हणून उपयुक्त आहे, परंतु अधिक जटिल उदाहरणample हे आणखी स्पष्टीकरणात्मक असू शकते. बऱ्याचदा स्वारस्याचा सिग्नल हा आपल्या साध्या माजी मध्ये होता तसा स्थिर सिग्नल नसतो.ample पण डायनॅमिक आहे. एक सामान्य डायनॅमिक सिग्नल हा एक इंटरमीडिएट घड्याळ आहे, जो कदाचित सिरीयल इंटरफेससाठी हँडशेकच्या वेळेसाठी वापरला जाऊ शकतो. आकृती ११ मध्ये युजर सॉफ्ट आयपी कोरसह अशी रचना दर्शविली आहे, या प्रकरणात, सिस्टम एपीबी बसशी जोडलेला एक कस्टम सिरीयल इंटरफेस. त्रुटींची लक्षणे अशी आहेत की युजर कस्टम सिरीयल इंटरफेसवर कोणतीही क्रियाकलाप नाही आणि जेव्हा एपीबी बस मास्टर सिरीयल इंटरफेसमध्ये प्रवेश करण्यासाठी व्यवहार जारी करतो तेव्हा तो चुकीच्या हँडशेक दर्शविणाऱ्या अपवाद स्थितीत जातो. या परिस्थिती चुकीच्या रीसेट सिग्नलसारख्या स्थिर कारणाला नकार देतात असे दिसते, कारण ट्रान्झॅक्शन स्टेट मशीन अपेक्षित दराने कार्य करत नाही असे दिसते आणि त्यामुळे अपवाद निर्माण होतो. मूळ कारण युजर आयपी कोरमधील क्लॉक फ्रिक्वेन्सी जनरेटर असल्याचे मानले जाते.

जर ते योग्य वारंवारतेवर चालत नसेल तर वर्णन केलेल्या त्रुटी उद्भवतील.

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

या परिस्थितीत अ‍ॅक्टिव्ह प्रोब दृष्टिकोनाला लाईव्ह प्रोबने बदलणे कदाचित एक चांगले धोरण असेल. वरील आकृतीमध्ये हे नारिंगी रंगाच्या एलपी बॉक्सद्वारे स्पष्ट केले आहे, जे J वापरूनTAG प्रोब स्रोत निवडीसाठी सिग्नल.

बाह्य चाचणी उपकरणे
या प्रकरणात, पद्धत पूर्वी वर्णन केलेल्या साध्या उदाहरणासारखीच आहे.ampले. वापरकर्ता घड्याळ सिग्नल चाचणी बिंदूवर आणला जातो (आशा आहे की हेडरवर) आणि वेळखाऊ पुनर्संकलन आवश्यक आहे. संदर्भ सिग्नल आणणे देखील उपयुक्त ठरू शकते, कदाचित एक सिस्टम घड्याळ जे वापरकर्त्यांचे आयपी तुलना सिग्नल म्हणून घडविण्यासाठी वापरले जाते. आम्हाला पुन्हा पुनर्संकलन आणि पुनर्प्रोग्राम करण्याची आवश्यकता असेल जेणेकरून संपूर्ण प्रक्रियेस बराच वेळ लागू शकेल.

अंतर्गत तर्कशास्त्र विश्लेषक
हे प्रकरण साध्या उदाहरणासारखेच आहे.ample. ILA घालणे आवश्यक आहे, किंवा इच्छित सिग्नल परिभाषित करणे आवश्यक आहे, आणि एक पुनर्संकलन आणि पुनर्प्रोग्राम सायकल कार्यान्वित करणे आवश्यक आहे. पूर्वी वर्णन केलेल्या सर्व समस्यांमुळे अजूनही लक्षणीय डीबग सायकल वेळ निर्माण होतो. तथापि, एक अतिरिक्त जटिलता आहे. ILA चालवणारे घड्याळ समकालिक असणे आवश्यक आहे, आणि वापरकर्त्याच्या सॉफ्ट आयपी कोरमधून पाहिल्या जाणाऱ्या घड्याळाच्या तुलनेत आदर्शपणे बरेच वेगवान असणे आवश्यक आहे. जर ही घड्याळे असिंक्रोनस असतील, किंवा त्यांचे वेळेचे योग्य संबंध नसतील, तर डेटा कॅप्चर अप्रत्याशित असेल आणि डीबग प्रक्रियेसाठी गोंधळाचे संभाव्य स्रोत असेल.
लक्षात ठेवा की जर वापरकर्ता सॉफ्ट आयपी घड्याळ चिपवर जनरेट केले नसेल (कदाचित ते सिरीयल इंटरफेसमधून पुनर्प्राप्त केले असेल), तर डिझायनरला अतिरिक्त संसाधनांचा वापर करून वेगवान आयएलए घड्याळ निर्माण करण्यासाठी आणि कदाचित वेळेचे उल्लंघन निर्माण करण्यासाठी क्लॉक मॉड्यूल जोडण्याची आवश्यकता असू शकते.

थेट प्रोब
या पद्धतीचा वापर करून, त्रुटीचे मूळ कारण शोधण्यासाठी, लाइव्ह प्रोबला वापरकर्त्याच्या घड्याळाच्या स्त्रोताकडे आणि रजिस्टरमधून इतर कोणत्याही घड्याळाच्या स्त्रोताकडे त्वरित निर्देशित केले जाऊ शकते. लाइव्ह प्रोब निवडलेले सिग्नल आउटपुट रिअल टाइममध्ये दर्शवेल आणि त्यामुळे सिग्नलमधील कोणताही वेळेचा संबंध निश्चित करणे खूप सोपे होईल. संपूर्ण प्रक्रियेला फक्त काही सेकंद लागतात.

सिरीयल इंटरफेससाठी इतर डीबग वैशिष्ट्ये
हे देखील लक्षात ठेवणे महत्त्वाचे आहे की SmartFusion2 SoC FPGA आणि IGLOO2 FPGA डिव्हाइसेसमध्ये अनेक अतिरिक्त डीबग क्षमता आहेत ज्या मागील एक्सप्लोरर प्रमाणेच सिरीयल इंटरफेसवर वापरल्या जाऊ शकतात.ampअशी रचना जिथे चुका आणखी गुंतागुंतीच्या असतात. SERDES डीबग, उदाहरणार्थample, समर्पित हाय-स्पीड सिरीयल इंटरफेससाठी विशिष्ट डीबग क्षमता प्रदान करते. SERDES डीबग वैशिष्ट्यांपैकी काहींमध्ये PMA चाचणी समर्थन (जसे की PRBS पॅटर्न जनरेशन आणि लूपबॅक चाचणी) अनेक SERDES चाचणी कॉन्फिगरेशनसाठी समर्थन समाविष्ट आहे ज्यामध्ये रजिस्टर-लेव्हल रिकॉन्फिगरेशनसह कॉन्फिगरेशन बदल करण्यासाठी पूर्ण डिझाइन फ्लोचा वापर टाळण्यासाठी आणि कॉन्फिगर केलेले प्रोटोकॉल, SERDES कॉन्फिगरेशन रजिस्टर आणि लेन कॉन्फिगरेशन रजिस्टर दर्शविणारे मजकूर अहवाल टाळले जातात. ही वैशिष्ट्ये SERDES डीबग करणे खूप सोपे करतात आणि जटिल सर्किट्सच्या डीबगिंगला गती देण्यासाठी लाइव्ह प्रोब आणि अ‍ॅक्टिव्ह प्रोबसह एकत्रितपणे वापरले जाऊ शकतात.
पूर्वी वर्णन केलेले मेमरी डीबग टूल SERDES डीबग सोबत एकत्रितपणे चाचणीची गती वाढवण्यासाठी देखील वापरले जाऊ शकते. मेमरी डीबग वापरून मेमरी बफरची जलद आणि सहजपणे तपासणी आणि बदल करता येत असल्याने, 'चाचणी पॅकेट' जलद तयार करणे आणि लूपबॅक किंवा इंटर-सिस्टम कम्युनिकेशन परिणामांचे निरीक्षण करणे शक्य आहे. डिझायनर या क्षमतांचा फायदा घेऊ शकतो आणि अशा प्रकारे अतिरिक्त FPGA फॅब्रिक वापरणाऱ्या विशेष 'चाचणी हार्नेस'ची आवश्यकता कमी करू शकतो आणि त्याचा चिप वेळेवर परिणाम होऊ शकतो.

निष्कर्ष
या पेपरमध्ये FPGAs आणि SoC FPGAs साठी इन-सर्किट डीबग लागू करण्यासाठी अनेक वेगवेगळ्या पद्धतींचे तपशीलवार वर्णन केले आहे - एकात्मिक लॉजिक अॅनालायझरचा वापर, बाह्य चाचणी उपकरणांचा वापर आणि FPGA फॅब्रिकमध्ये एकत्रित केलेल्या समर्पित प्रोब सर्किटचा वापर. स्मार्टफ्यूजन2 SoC FPGA आणि IGLOO2 FPGA डिव्हाइसेसवर मायक्रोसेमीने ऑफर केलेल्या अ‍ॅक्टिव्ह प्रोब आणि लाईव्ह प्रोब सारख्या विशेष आणि समर्पित प्रोब सर्किट्सची भर घालणे, डीबग प्रक्रियेला लक्षणीयरीत्या वेगवान आणि सुलभ करते हे दर्शविले गेले. अंतर्गत सिग्नलची निवड जलद सुधारित करण्याची क्षमता (खूप वेळखाऊ रीकंपाइल आणि री-प्रोग्राम सायकल कार्यान्वित न करता), आणि अंतर्गत सिग्नलची तपासणी करण्याची क्षमता (FPGA फॅब्रिक वापरण्याची आणि संभाव्यतः वेळेचे उल्लंघन न करता) हे प्रमुख फायदे असल्याचे दिसून आले.tagFPGA डिझाइन डीबग करताना वापरता येतात. याव्यतिरिक्त, अधिक व्यापक डीबग क्षमता प्रदान करण्यासाठी एकत्रितपणे कार्य करू शकणार्‍या अनेक पद्धतींचा वापर वर्णन करण्यात आला. शेवटी, दोन माजीampवर्णन केलेल्या पद्धतींमधील तडजोड स्पष्ट करण्यासाठी डीबग वापर प्रकरणे दिली गेली.

अधिक जाणून घेण्यासाठी

  1. IGLOO2 FPGAs
  2. स्मार्टफ्यूजन२ एसओसी एफपीजीए

मायक्रोसेमी कॉर्पोरेशन (Nasdaq: MSCC) संचार, संरक्षण आणि सुरक्षा, एरोस्पेस आणि औद्योगिक बाजारपेठांसाठी सेमीकंडक्टर आणि सिस्टम सोल्यूशन्सचा एक व्यापक पोर्टफोलिओ ऑफर करते. उत्पादनांमध्ये उच्च-कार्यक्षमता आणि रेडिएशन-कडक अॅनालॉग मिश्रित-सिग्नल इंटिग्रेटेड सर्किट्स, FPGAs, SoCs आणि ASICs समाविष्ट आहेत; ऊर्जा व्यवस्थापन उत्पादने; वेळ आणि समक्रमण साधने आणि अचूक वेळ उपाय, वेळेसाठी जागतिक मानक सेट करणे; व्हॉइस प्रोसेसिंग उपकरणे; आरएफ उपाय; स्वतंत्र घटक; सुरक्षा तंत्रज्ञान आणि स्केलेबल अँटी-टीampईआर उत्पादने; पॉवर-ओव्हर-इथरनेट आयसी आणि मिडस्पॅन; तसेच कस्टम डिझाइन क्षमता आणि सेवा. मायक्रोसेमीचे मुख्यालय अलिसो व्हिएजो, कॅलिफोर्निया येथे आहे आणि जगभरात अंदाजे ३,४०० कर्मचारी आहेत. येथे अधिक जाणून घ्या www.microsemi.com.

© 2014 मायक्रोसेमी कॉर्पोरेशन. सर्व हक्क राखीव. मायक्रोसेमी आणि मायक्रोसेमी लोगो हे मायक्रोसेमी कॉर्पोरेशनचे ट्रेडमार्क आहेत. इतर सर्व ट्रेडमार्क आणि सेवा चिन्ह त्यांच्या संबंधित मालकांची मालमत्ता आहेत.

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

वारंवार विचारले जाणारे प्रश्न

  • प्रश्न: डिव्हाइसची कमाल डेटा कॅप्चर वारंवारता किती आहे?
    अ: हे उपकरण १०० मेगाहर्ट्झ पर्यंत डेटा कॅप्चरला समर्थन देते, जे बहुतेक लक्ष्य डिझाइनसाठी योग्य आहे.
  • प्रश्न: डीबगिंगसाठी प्रोब सर्किट वापरताना मला डिझाइन पुन्हा कंपाईल करावे लागेल का?
    अ: नाही, डिझाइन रीकंपिलेशन किंवा रीप्रोग्रामिंगची आवश्यकता न पडता प्रोब पॉइंटची ठिकाणे लवकर बदलता येतात.

कागदपत्रे / संसाधने

मायक्रोसेमी इन-सर्किट FPGA डीबग [pdf] सूचना
इन-सर्किट FPGA डीबग, FPGA डीबग, डीबग

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *