वेरिलॉग प्रक्रियात्मक इंटरफ़ेस

Verilog प्रक्रियात्मक इंटरफ़ेस (VPI), जिसे मूल रूप से PLI 2.0 के रूप में जाना जाता है, मुख्य रूप से C (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा के लिए अभिप्रेत इंटरफ़ेस है। यह व्यावहारिक Verilog कोड को C फ़ंक्शंस, और C फ़ंक्शंस को मानक Verilog सिस्टम कार्यों को प्रारंभ करने की अनुमति देता है। Verilog प्रक्रियात्मक इंटरफ़ेस IEEE सी (प्रोग्रामिंग भाषा) इंटरफ़ेस मानक का हिस्सा है; मानक का नवीनतम संस्करण 2005 से है। वीपीआई को कभी-कभी पीएलआई 2 के रूप में भी जाना जाता है, क्योंकि यह पदावनत वेरिलोग#प्रोग्राम लैंग्वेज इंटरफेस (पीएलआई) | प्रोग्राम लैंग्वेज इंटरफेस (पीएलआई) को प्रतिस्थापित करता है।

जबकि पीएलआई 1 को वीपीआई (उर्फ पीएलआई 2) के पक्ष में बहिष्कृत किया गया था, पीएलआई 1 अभी भी आमतौर पर वीपीआई पर उपयोग किया जाता है क्योंकि इसके अधिक व्यापक रूप से प्रलेखित tf_put, tf_get फ़ंक्शन इंटरफ़ेस है जो कई वेरिलॉग संदर्भ पुस्तकों में वर्णित है।

सी ++ का प्रयोग करें

सी ++ कंपाइलर्स में निर्मित बाहरी सी/सी ++ कीवर्ड का उपयोग करके सी ++ वीपीआई (पीएलआई 2.0) और पीएलआई 1.0 के साथ पूर्णांक है।

उदाहरण
उदाहरण के रूप में, निम्नलिखित Verilog कोड खंड पर विचार करें: मान लीजिए  सिस्टम टास्क इसके पहले पैरामीटर को  से बढ़ाता है। C और VPI तंत्र का उपयोग करते हुए,   कार्य को निम्नानुसार कार्यान्वित किया जा सकता है:

साथ ही, इस सिस्टम कार्य को पंजीकृत करने वाला फ़ंक्शन आवश्यक है। यह फ़ंक्शन विस्तार या संदर्भों के संकल्प से पहले लागू किया जाता है जब इसे बाह्य रूप से दृश्यमान में रखा जाता है   सरणी।

सी कोड को साझा वस्तु में संकलित किया गया है जिसका उपयोग वेरिलॉग सिम्युलेटर द्वारा किया जाएगा। पहले उल्लेखित Verilog अंश का अनुकरण अब निम्नलिखित आउटपुट में परिणाम देगा:



वीपीआई रूटीन को 41 मिले $ वृद्धि के बाद, वैल = 42



यह भी देखें

 * सिस्टम वेरिलॉग डीपीआई

स्रोत

 * IEEE एक्सप्लोर

वेरिलोग वीपीआई इंटरफ़ेस के लिए स्रोत

 * चैती, सी ++  के लिए
 * JOVE, जावा (प्रोग्रामिंग भाषा) के लिए
 * Ruby-VPI, रूबी (प्रोग्रामिंग लैंग्वेज) के लिए
 * ScriptEDA, पर्ल, पायथन (प्रोग्रामिंग लैंग्वेज), Tcl के लिए
 * Cocotb, Python (प्रोग्रामिंग भाषा) के लिए
 * OrigenSim, रूबी (प्रोग्रामिंग भाषा) के लिए

बाहरी संबंध

 * Verilog PLI primer
 * Verilog VPI tutorial