वेरिलोग ट्यूटोरियल: जानने के लिए 5 रोचक तथ्य

वेरिलॉग ट्यूटोरियल: चर्चा के बिंदु

  • वेरिलॉग क्या है?
  • इतिहास और मानकीकरण
  • वेरिलोग डिजाइन
  • वेरिलोग मॉडलिंग
  • वेरिलोग ऑपरेटर्स

वेरिलॉग ट्यूटोरियल से संबंधित अन्य विषयों के लिए, यहाँ क्लिक करें!

वेरिलॉग क्या है?

वेरिलॉग "सत्यापन" और "लॉजिक" शब्दों का संयोजन है। यह हार्डवेयर विवरण भाषा या एक विशेष प्रकार की प्रोग्रामिंग भाषा है जो डिजिटल सिस्टम और सर्किट के हार्डवेयर कार्यान्वयन का वर्णन करती है। यह एक दृढ़ता से टाइप की गई भाषा है और याद किए जाने वाले बिंदु हैं कि यह प्रोग्रामिंग भाषा नहीं है।

चरण-दर-चरण VHDL ट्यूटोरियल के लिए, यहाँ क्लिक करें!

वेरिलोग का इतिहास और मानकीकरण

प्रभु गोयल, ची-लाई हुआंग, डगलस वार्मके और फिल मूरबी ने वर्ष 1983 के आसपास वेरिलॉग विकसित किया। पहला नाम "ऑटोमेटेड इंटीग्रेटेड डिज़ाइन सिस्टम्स" था जिसे आगे "गेटवे डिज़ाइन ऑटोमेशन" के रूप में नाम दिया गया था और वर्ष 1990 में ताल द्वारा खरीदा गया था। ताल अब वेरिलॉग और वेरिलॉग-एक्सएल का कॉपीराइट स्वामी है।

मुख्य रूप से, वेरिलोग का उपयोग परिभाषित करना और अनुकरण शुरू करना था। बाद में भाषा की लोकप्रियता ने अधिक विकास की मांग उठाई, और यह तर्क सर्किट के संश्लेषण की ओर जाता है।

640px वेरिलॉग बस.एसवीजी
वेरिलोग बस, इमेज क्रेडिट - इंडक्टिव लोडवेरिलोग बससार्वजनिक डोमेन के रूप में चिह्नित किया गया है, और अधिक विवरण विकिमीडिया कॉमन्स

वेरिलॉग ट्यूटोरियल: मानकीकरण

के लिए लोकप्रियता VHDL वेरिलोग भाषा को ओपन सोर्स के रूप में प्रकाशित करने के लिए मजबूर ताल। IEEE द्वारा Verilog के पहले मानकीकरण को 1364-1995 के रूप में लेबल किया गया था और इसे Verilog-95 नाम दिया गया था।

संशोधनअपडेट
IEEE 1364 - 2001वेरिलोग -२००१। हस्ताक्षर किए गए चर और घोंसले का समर्थन करता है। बड़े पैमाने पर EDA पैकेज द्वारा उपयोग किया जाता है।
आईईईई 1364-2005वेरिलॉग 2005. थोड़ा सुधार और स्पष्टीकरण के साथ आया था।
आईईईई P1800-2005सिस्टम वेरिलॉग।
आईईईई 1800-2017SystemVerilog और Verilog का विलय। SystemVerilog 2009 के रूप में जाना जाता है।
वेरिलॉग का आईईईई मानकीकरण, वेरिलॉग ट्यूटोरियल तालिका -1

वेरिलोग डिजाइन

वेरिलॉग में दो तरह की डिज़ाइन कार्यप्रणाली हैं। वो हैं - नीचे-ऊपर दृष्टिकोण और ऊपर-नीचे दृष्टिकोण।

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

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

वेरिलोग मॉडलिंग

वेरिलोग मॉडलिंग में कुछ डिज़ाइन इकाइयाँ हैं। आइए हम प्राथमिक घटकों पर चर्चा करें।

वेरिलोग कोड 1
वेरिलोग कोड फ्लिप-फ्लॉप के लिए

A. मॉड्यूल

एक वेरिलोग मॉडल पोर्ट घोषणाओं, डेटा प्रकार घोषणाओं, सर्किट कार्यक्षमता, समय विनिर्देशों के साथ आता है। मॉड्यूल की एक बुनियादी संरचना नीचे दी गई है।

  • वेरिलॉग मामला संवेदनशील है।
  • आरक्षित कीवर्ड निचले मामलों में लिखे गए हैं।
  • स्टेटमेंट को समाप्त करने के लिए एक अर्धविराम का उपयोग किया जाता है।
  • टिप्पणी नियम सी प्रोग्रामिंग भाषा के समान है।
  • एकल पंक्ति टिप्पणी "//" से शुरू होती है.

उदाहरण के लिए - // वेरिलॉग सिंगल लाइन टिप्पणी का उदाहरण

  • बहुस्तरीय टिप्पणियां - '/ *' से शुरू होती हैं और '* /' के साथ समाप्त होती हैं।

उदाहरण के लिए -

/* उदाहरण

वेरिलोग मल्टीपल की

लाइन टिप्पणी * /

  • सिमुलेशन प्रक्रिया के लिए समय विनिर्देशों का उपयोग किया जाता है।

एक मॉड्यूल में अधिकतम चार स्तर की धारणा होती है। स्तर नीचे परिभाषित किए गए हैं।

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

डाटा प्रवाह: वेरिलोग मॉड्यूल का यह स्तर वांछित डिज़ाइन के डेटाफ्लो का वर्णन करता है। इस स्तर को डिजाइन करते समय घटकों के माध्यम से डेटाफ्लो के हार्डवेयर कार्यान्वयन को ध्यान में रखा जाता है।

इमेज 26 1024x464 1
डेटाफ्लो मॉडलिंग, वेरिलॉग ट्यूटोरियल

गेट: इस वेरिलॉग मॉड्यूल स्तर में तर्क फाटकों को लागू किया जाता है। गेटों के बीच इंटरकनेक्ट लागू होते हैं।

स्विच: धारणा का निम्नतम स्तर। स्विच, भंडारण गांठ को लागू किया जाता है। इंटरकनेक्ट भी उनके बीच डिज़ाइन किए गए हैं।

बी। मॉड्यूल घोषणाएँ

मॉड्यूल की घोषणाएं 'से शुरू होती हैंमॉड्यूल'कीवर्ड। इसमें पोर्ट सूची (यदि मौजूद है) शामिल है।

पोर्ट प्रकार: बंदरगाह तीन प्रकार के होते हैं। नाम और इसकी कार्यक्षमता नीचे दी गई है।

  • निवेश - इनपुट पोर्ट
  • उत्पादन - आउटपुट पोर्ट
  • अंदर बाहर - द्वि-दिशात्मक बंदरगाह
मॉड्यूल मिश्रण 1
मॉड्यूल मिश्रण के लिए वेरिलॉग कोड, वेरिलॉग ट्यूटोरियल

पोर्ट घोषणाएँ: पोर्ट घोषणाओं के लिए सामान्य संरचना नीचे दी गई है।

<पोर्ट_टाइप>पोर्ट_नाम>;

C. डेटा प्रकार

वेरिलोग में कई प्रकार के डेटा प्रकार हैं।

 नेट डेटा प्रकार: इस प्रकार के डेटा में प्रवाह के बीच भौतिक अंतर का वर्णन है।

नेट्स -> फंक्शनल ब्लॉक: एमयूएक्स -> फंक्शनल ब्लॉक्स: ऐडर्स -> नेट्स

नीचे दी गई तालिका नेट डेटाटाइप के बारे में अधिक जानकारी प्रदान करेगी।

प्रकारनिस्र्पण
तारनोड या कनेक्शन का वर्णन करता है
तीनएक त्रि-राज्य नोड का वर्णन करता है
आपूर्ति 0तर्क 0 का प्रतिनिधित्व करता है
आपूर्ति1तर्क 1 का प्रतिनिधित्व करता है
नेट डेटा प्रकार, वेरिलॉग ट्यूटोरियल टेबल - 2
  •  बस घोषणाएँ: बस घोषणाओं की सामान्य संरचना नीचे दी गई है।

<डाटा प्रकार> [सबसे महत्वपूर्ण बिट (MSB): कम से कम महत्वपूर्ण बिट (LSB)]सिग्नल_नाम>;

          <डाटा प्रकार> [सबसे महत्वपूर्ण बिट (LSB): सबसे महत्वपूर्ण बिट (MSB)]सिग्नल_नाम>;

उदाहरण के लिए -

तार [3: 1] in;

चर डेटा प्रकार: इस डेटाटाइप में उस समय के लिए डेटा सहेजने के लिए तत्व का वर्णन किया गया है।

वेरिलॉग द्वारा समर्थित कई प्रकार के चर हैं। उनमें से कुछ हैं -

पूर्णांक - 32 बिट्स, हस्ताक्षरित।

REG - किसी भी बिट आकार, अहस्ताक्षरित। हस्ताक्षरित reg को लागू करने के लिए, कीवर्ड - 'साइन किए हुए हस्ताक्षर' का उपयोग करें।

वास्तविक, समय, वास्तविक समय - संश्लेषण के लिए कोई समर्थन नहीं।

D. मॉड्यूल तात्कालिकता

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

तात्कालिकता के लिए सामान्य प्रारूप नीचे दिया गया है।

<emonenet_name> #<देरी>instance_name> (port_list);

घटक का नाम: यह निचले स्तर के घटक के लिए मॉड्यूल का नाम है।

देरी: यह एक वैकल्पिक विकल्प है। देरी पूरे घटक में देरी का परिचय देती है।

उदाहरण के नाम: यह प्रत्येक व्यक्ति के उदाहरण के लिए डिजाइनर द्वारा दिया गया अनन्य नाम है।

पोर्ट सूची: पोर्ट सूची सिग्नल सूचियाँ देती है जो घटक से जुड़ी होगी।

ई। अनुकरण घटक

डिजाइनिंग प्रक्रिया पूरी होने के बाद, परीक्षण प्रक्रिया शुरू होती है। यह परीक्षण उत्तेजना ब्लॉक का उपयोग करके किया जा सकता है। स्टिमुलस ब्लॉक आमतौर पर एक परीक्षण बेंच के रूप में जाना जाता है।

स्टिमुलस एप्लिकेशन दो प्रकार के हो सकते हैं। प्राथमिक डिज़ाइन डिज़ाइन ब्लॉक से शुरू होता है और सीधे पोर्ट सिग्नल को डिज़ाइन ब्लॉक में ले जाता है।

दूसरा डिज़ाइन उत्तेजना ब्लॉक और उच्च-स्तरीय प्रतिकृति मॉडल में डिज़ाइन ब्लॉक को तुरंत बदल देता है। इंटरफ़ेस ब्लॉक के बीच संचार लिंक है।

कुछ बेसिक वेरिलॉग कॉन्सेप्ट्स

वेरिलोग ऑपरेटर्स

वेरिलोग एचडीएल के लिए तीन मौलिक ऑपरेटर हैं। उन्हें नीचे दिया गया है।

यूनीरी वेरिलोग ऑपरेटर: इस प्रकार के वेरिलोग ऑपरेटर पहले ऑपरेंड में आते हैं।

उदाहरण के लिए: x = ~ y; यहाँ Here ~ ’एक अपर संचालक है

बाइनरी वेरिलोग ऑपरेटर: इस प्रकार के वेरिलोग ऑपरेटर दो ऑपरेंड के बीच आते हैं।

उदाहरण के लिए: x = y || z; यहाँ '||' एक बाइनरी ऑपरेटर है।

टर्नरी वेरिलोग ऑपरेटर: Tवेरिलोग ऑपरेटरों के प्रकार दो अलग ऑपरेटरों को तीन ऑपरेटरों को अलग करने के लिए उपयोग करते हैं।

उदाहरण के लिए: x = y? z: w; यहाँ '?' और ':' टर्नरी ऑपरेटर हैं।

वेरिलॉग एचडीएल के श्रेणीबद्ध ऑपरेटर हैं - अंकगणितीय, तार्किक, संबंधपरक, बिटवाइज़, शिफ्ट, कॉन्टेक्टेशन और इक्वैलिटी। विभिन्न प्रकार के वेरिलोग ऑपरेटरों और उनके प्रतीकों को नीचे दी गई तालिका में दिया गया है।

संचालक का प्रकारआइकॉनआपरेशनसंचालन की जरूरत है
अंकगणित*गुणनदो
अंकगणित/विभाजनदो
अंकगणित+इसके अलावादो
अंकगणित-घटावदो
अंकगणित%मापांकदो
तार्किक!इनकारएक
तार्किक&&औरदो
तार्किक||ORदो
संबंधपरकसे अधिकदो
संबंधपरककम से कमदो
संबंधपरक> =इससे बड़ा या इसके बराबरदो
संबंधपरक<=से कम या बराबरदो
समानता==बराबर हैदो
समानता! = =के बराबर नहीं हैदो
समानता===मामला बराबरदो
समानता! ==मामला न के बराबरदो
बिटवाइज़~नकारएक
बिटवाइज़&बिटवाइज़ औरदो
बिटवाइज़|बिटवार यादो
बिटवाइज़^बिटवाइज़ XORदो
बिटवाइज़~^बिटवाइन्स XNORदो
कमी&कटौती औरएक
कमी~&कटौती नंदएक
कमी|कमी याएक
कमी~|कटौती NORएक
कमी^कटौती XORएक
कमी^~XNOR को कम करनाएक
पाली>> सही बदलावदो
पाली<< बायां शिफ्टदो
कड़ी{}कड़ीकिसी भी संख्या का हो सकता है
प्रतिकृति{{}}प्रतिकृतिकिसी भी संख्या का हो सकता है
सशर्त? :सशर्ततीन
वेरिलोग ऑपरेटर, वेरिलॉग ट्यूटोरियल टेबल - 3

वेरिलोग ऑपरेटर्स में भी पूर्वता है। उनकी प्राथमिकता नीचे दी गई तालिका में दी गई है।

ऑपरेटरचिह्नप्रधानता
यूनिरी गुणन, विभाजन, मापांक +, -,; ~ ~, /,%उच्चतम
जोड़, घटाव पारी+, - <<, >> 
संबंधपरक समानता<, <=>,> = ==; =! =, ===; = == 
तार्किक रूप से कमी&, ~ & ^, ^ ~ |, ~ | && || 
सशर्त?:निम्नतम
वेरिलोग ऑपरेटर, वेरिलॉग ट्यूटोरियल टेबल - 4

वेरिलॉग नंबर विनिर्देशों

वेरिलॉग नंबर दो प्रकार के होते हैं, आकार की संख्या और असूचीबद्ध संख्या।

Sized Verilog नंबर: वेरिलोग एचडीएल में आकार की संख्या का प्रतिनिधित्व करने के लिए सामान्य संरचना नीचे दी गई है।

'

उदाहरण के लिए - 8'b3456;

यह एक आकार का वेरिलॉग नंबर है जो बताता है कि यह 8-बिट संख्या और बाइनरी प्रकार है।

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

अनसाइज़्ड वेरिलॉग नंबर: इन नंबरों को किसी निर्दिष्ट आकार की आवश्यकता नहीं है।

वेरिलोग एचडीएल में अनइंस्टॉल किए गए नंबरों का प्रतिनिधित्व करने के लिए सामान्य संरचना नीचे दी गई है।

'

उदाहरण के लिए - 'h3456;

यह एक अनसुलझा वेरिलॉग नंबर है जो बताता है कि यह एक हेक्साडेसिमल संख्या है।

नकारात्मक संख्या: यदि आप संख्या को ऋणात्मक संख्या के रूप में घोषित करना चाहते हैं, तो संख्या से पहले माइनस सिंबल (-) डालें।

उदाहरण के लिए: - 345; यह एक ऋणात्मक, असमान, दशमलव संख्या है।

वेरिलोग एरेस

Verilog HDL में पूर्णांक, रजिस्टरों (reg), वैक्टर (reg या नेट डेटा प्रकारों, कई बिट लंबाई) और समय की सरणी संभव है। सरणियों की मूल घोषणा एक उदाहरण के साथ नीचे दी गई है।

पूर्णांक मैट्रिक्स [0: 3];

इसका मतलब सात मानों की एक सरणी है।

  • वेरिलोग वास्तविक चर के लिए किसी भी सरणी की अनुमति नहीं देता है।
  • वेरिलॉग एचडीएल किसी भी बहुआयामी सरणी का समर्थन नहीं करता है।
  • एरे तत्वों का उपयोग करके पुनः प्राप्त किया जा सकता है - [ ]

वेरिलॉग ट्यूटोरियल से संबंधित अन्य विषयों के लिए, यहाँ क्लिक करें!

Xilinx का उपयोग करके चरण-दर-चरण Verilog ट्यूटोरियल के लिए, हमारा अगला लेख देखें!

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