कार्यात्मक सत्यापन

From alpha
Jump to navigation Jump to search

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

एक साधारण डिज़ाइन में मौजूद संभावित परीक्षण-मामलों की विशाल मात्रा के कारण कार्यात्मक सत्यापन बहुत कठिन है। डिज़ाइन को व्यापक रूप से सत्यापित करने के लिए अक्सर 10^80 से अधिक संभावित परीक्षण होते हैं - एक संख्या जिसे जीवन भर में हासिल करना असंभव है। यह प्रयास कार्यक्रम सत्यापन के बराबर है, और एनपी कठिन या इससे भी बदतर है - और कोई समाधान नहीं मिला है जो सभी मामलों में अच्छा काम करता है। हालाँकि, इस पर कई तरीकों से हमला किया जा सकता है। उनमें से कोई भी पूर्ण नहीं है, लेकिन प्रत्येक कुछ परिस्थितियों में सहायक हो सकता है:

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

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

एक सिमुलेशन वातावरण आमतौर पर कई प्रकार के घटकों से बना होता है:

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

विभिन्न कोड कवरेज़ मेट्रिक्स को यह आकलन करने के लिए परिभाषित किया गया है कि डिजाइन का पर्याप्त रूप से प्रयोग किया गया है। इनमें कार्यात्मक कवरेज शामिल है (क्या डिजाइन की हर कार्यक्षमता का प्रयोग किया गया है?), स्टेटमेंट कवरेज (क्या एचडीएल की प्रत्येक पंक्ति का प्रयोग किया गया है?), और शाखा कवरेज (क्या प्रत्येक शाखा की प्रत्येक दिशा का प्रयोग किया गया है?)

उपकरण

यह भी देखें

संदर्भ


==