हार्डवेयर विवरण भाषा

From alpha
Jump to navigation Jump to search

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

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

एक हार्डवेयर विवरण भाषा काफी हद तक C (प्रोग्रामिंग भाषा) या ALGOL जैसी प्रोग्रामिंग भाषा की तरह दिखती है; यह एक पाठ्य विवरण है जिसमें भाव, कथन और नियंत्रण संरचनाएं शामिल हैं। अधिकांश प्रोग्रामिंग भाषाओं और एचडीएल के बीच एक महत्वपूर्ण अंतर यह है कि एचडीएल में स्पष्ट रूप से समय की अवधारणा शामिल होती है।

एचडीएल इलेक्ट्रॉनिक डिजाइन स्वचालन (ईडीए) सिस्टम का एक अभिन्न अंग है, विशेष रूप से जटिल सर्किट के लिए, जैसे कि एप्लिकेशन-विशिष्ट एकीकृत सर्किट, माइक्रोप्रोसेसर और प्रोग्राम करने योग्य तर्क उपकरण

प्रेरणा

1970 के दशक से डिजिटल इलेक्ट्रॉनिक सर्किट की विस्फोटक जटिलता के कारण (मूर का नियम देखें), सर्किट डिजाइनरों को एक विशिष्ट इलेक्ट्रॉनिक तकनीक, जैसे एमिटर-युग्मित तर्क, ट्रांजिस्टर-ट्रांजिस्टर से बंधे बिना उच्च स्तर पर डिजिटल तर्क विवरण करने की आवश्यकता थी तर्क या CMOS. एचडीएल को रजिस्टर-स्थानांतरण स्तर एब्स्ट्रैक्शन, एक सर्किट के डेटा प्रवाह और समय का एक मॉडल लागू करने के लिए बनाया गया था।[1] दो प्रमुख हार्डवेयर विवरण भाषाएँ हैं: वीएचडीएल और Verilog । उनमें विभिन्न प्रकार के विवरण हैं: डेटाफ़्लो, व्यवहारिक और संरचनात्मक। वीएचडीएल के डेटाफ्लो का उदाहरण:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY not1 IS
    PORT(
        a : IN  STD_LOGIC;
        b : OUT STD_LOGIC;
    );
END not1;

ARCHITECTURE behavioral OF not1 IS
BEGIN
    b <= NOT a;
END behavioral;


एचडीएल की संरचना

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

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

नियंत्रण-प्रवाह भाषाओं के साथ तुलना

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

हार्डवेयर विवरण भाषा के उचित उपसमुच्चय का उपयोग करते हुए, एक प्रोग्राम जिसे सिंथेसाइज़र या लॉजिक सिंथेसिस कहा जाता है, भाषा कथनों से हार्डवेयर तर्क संचालन का अनुमान लगा सकता है और सामान्य हार्डवेयर प्राइमेटिव्स के समतुल्य नेटलिस्ट का उत्पादन कर सकता है।[jargon explanation needed] निर्दिष्ट व्यवहार को लागू करने के लिए।[citation needed] सिंथेसाइज़र आम तौर पर पाठ में किसी भी समय निर्माण की अभिव्यक्ति को अनदेखा करते हैं। उदाहरण के लिए, डिजिटल लॉजिक सिंथेसाइज़र, आमतौर पर किसी भी समय निर्माण की अनदेखी करते हुए, सर्किट को समय देने के तरीके के रूप में घड़ी का संकेत का उपयोग करते हैं। भाषा का एक संश्लेषित उपसमुच्चय रखने की क्षमता स्वयं एक हार्डवेयर विवरण भाषा नहीं बनाती है।

इतिहास

पहली हार्डवेयर विवरण भाषाएँ 1960 के दशक के अंत में सामने आईं, जो अधिक पारंपरिक भाषाओं की तरह दिखती थीं।[2] सबसे पहले जिसका स्थायी प्रभाव था उसका वर्णन 1971 में गॉर्डन बेल|सी में किया गया था। गॉर्डन बेल और एलन नेवेल का पाठ कंप्यूटर स्ट्रक्चर्स।[3] इस पाठ ने रजिस्टर स्थानांतरण स्तर की अवधारणा पेश की, जिसका उपयोग पहली बार डिजिटल उपकरण निगम (डीईसी) पीडीपी-8 के व्यवहार का वर्णन करने के लिए आईएसपी भाषा में किया गया था।[4] डीईसी के पीडीपी-16 आरटी-लेवल मॉड्यूल (आरटीएम) और उनके उपयोग का वर्णन करने वाली एक पुस्तक की शुरुआत के साथ भाषा अधिक व्यापक हो गई।[5] बुनियादी आईएसपी भाषा (आईएसपीएल और आईएसपीएस) के कम से कम दो कार्यान्वयन किए गए।[6][7] आईएसपीएस डिज़ाइन के इनपुट और आउटपुट के बीच संबंधों का वर्णन करने के लिए उपयुक्त था और इसे डीईसी में वाणिज्यिक टीमों के साथ-साथ अमेरिका और उसके नाटो सहयोगियों के बीच कई शोध टीमों द्वारा तुरंत अपनाया गया था।

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

कैसरस्लॉटर्न विश्वविद्यालय में 1979 के आसपास किए गए अलग-अलग काम ने KARL (KAiserslauern रजिस्टर ट्रांसफर लैंग्वेज) नामक एक भाषा का निर्माण किया, जिसमें वीएलएसआई चिप फ़्लोरप्लानिंग का समर्थन करने वाली डिज़ाइन कैलकुलस भाषा सुविधाएँ शामिल थीं।[jargon explanation needed] और संरचित हार्डवेयर डिज़ाइन। यह कार्य KARL की इंटरैक्टिव ग्राफ़िक सिस्टर लैंग्वेज ABL का भी आधार था, जिसका नाम A ब्लॉक डायग्राम लैंग्वेज का प्रारंभिक नाम था।[8] एबीएल को 1980 के दशक की शुरुआत में टोरिनो, इटली में सेंट्रो स्टडी ई लेबोरेटरी टेलीकॉम्युनिकाज़ियोनी (सीएसईएलटी) द्वारा लागू किया गया था, जिसने एबीएलईडी ग्राफिक वीएलएसआई डिजाइन संपादक का निर्माण किया था। 1980 के दशक के मध्य में, यूरोपीय संघ आयोग द्वारा वित्त पोषित एक अंतरराष्ट्रीय संघ द्वारा KARL और ABL के आसपास एक वीएलएसआई डिजाइन ढांचा लागू किया गया था।[9] 1970 के दशक के अंत तक, प्रोग्रामेबल लॉजिक डिवाइस (पीएलडी) का उपयोग करने वाला डिज़ाइन लोकप्रिय हो गया, हालाँकि ये डिज़ाइन मुख्य रूप से परिमित-राज्य मशीनों को डिज़ाइन करने तक ही सीमित थे। 1980 में डेटा जनरल के काम में डेटा जनरल एक्लिप्स एमवी/8000 को डिज़ाइन करने के लिए इन्हीं उपकरणों का उपयोग किया गया, और एक ऐसी भाषा की व्यावसायिक आवश्यकता बढ़ने लगी जो उन्हें अच्छी तरह से मैप कर सके। 1983 तक डेटा I/O ने उस आवश्यकता को पूरा करने के लिए ABEL की शुरुआत की।

1985 में, जैसे ही डिज़ाइन वीएलएसआई में स्थानांतरित हुआ, गेटवे डिज़ाइन ऑटोमेशन ने वेरिलॉग पेश किया, और इंटरमेट्रिक्स ने वीएचएसआईसी हार्डवेयर विवरण भाषा (वीएचडीएल) का पहला पूर्ण संस्करण जारी किया। वीएचडीएल को संयुक्त राज्य अमेरिका के रक्षा विभाग | संयुक्त राज्य अमेरिका के रक्षा विभाग के वीएचएसआईसी के आदेश पर विकसित किया गया था, और यह एडा (प्रोग्रामिंग भाषा) के साथ-साथ आईएसपीएस के पहले विकास से प्राप्त अनुभव पर आधारित था।[10] प्रारंभ में, वेरिलॉग और वीएचडीएल का उपयोग पहले से ही कैप्चर किए गए और दूसरे रूप (जैसे योजनाबद्ध फ़ाइलें) में वर्णित सर्किट डिज़ाइनों को दस्तावेज और अनुकरण करने के लिए किया जाता था। एचडीएल सिमुलेशन ने इंजीनियरों को योजनाबद्ध स्तर पर सिमुलेशन की तुलना में अमूर्तता के उच्च स्तर पर काम करने में सक्षम बनाया, और इस प्रकार डिजाइन क्षमता को सैकड़ों ट्रांजिस्टर से बढ़ाकर हजारों तक कर दिया।[citation needed] 1986 में, अमेरिकी रक्षा विभाग के सहयोग से, VHDL को IEEE मानक (IEEE Std 1076) के रूप में प्रायोजित किया गया था, और VHDL का पहला IEEE-मानकीकृत संस्करण, IEEE Std 1076-1987, दिसंबर 1987 में अनुमोदित किया गया ताल डिजाइन सिस्टम ने बाद में वेरिलॉग-एक्सएल, एचडीएल सिम्युलेटर के अधिकारों के लिए दरवाज़ा वे डिज़ाइन ऑटोमेशन का अधिग्रहण किया जो अगले दशक के लिए वेरिलॉग सिमुलेटरों का वास्तविक मानक बन जाएगा।

एचडीएल के लिए तर्क संश्लेषण की शुरूआत ने एचडीएल को पृष्ठभूमि से डिजिटल डिजाइन के अग्रभूमि में धकेल दिया। संश्लेषण उपकरण ने गेट्स और ट्रांजिस्टर के संदर्भ में एचडीएल स्रोत फ़ाइलों (आरटीएल नामक एक सीमित प्रारूप में लिखी गई) को एक विनिर्माण योग्य नेटलिस्ट विवरण में संकलित किया। संश्लेषित करने योग्य आरटीएल फाइलों को लिखने के लिए डिजाइनर की ओर से अभ्यास और अनुशासन की आवश्यकता होती है; पारंपरिक योजनाबद्ध लेआउट की तुलना में, संश्लेषित आरटीएल नेटलिस्ट लगभग हमेशा क्षेत्र में बड़े और प्रदर्शन में धीमे होते थे[citation needed]. श्रम-गहन योजनाबद्ध-कैप्चर/हैंड-लेआउट का उपयोग करके एक कुशल इंजीनियर से एक सर्किट डिजाइन, लगभग हमेशा अपने तार्किक रूप से संश्लेषित समकक्ष से बेहतर प्रदर्शन करेगा, लेकिन संश्लेषण द्वारा प्राप्त उत्पादकता लाभ ने जल्द ही डिजिटल योजनाबद्ध कैप्चर को उन क्षेत्रों में विस्थापित कर दिया जो समस्याग्रस्त थे आरटीएल संश्लेषण: अत्यंत उच्च गति, कम-शक्ति, या अतुल्यकालिक सर्किटरी।

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

पिछले कुछ वर्षों में, एचडीएल को बेहतर बनाने के लिए काफी प्रयास किए गए हैं। वेरिलॉग का नवीनतम पुनरावृत्ति, जिसे औपचारिक रूप से IEEE 1800-2005 SystemVerilog के रूप में जाना जाता है, बेहतर परीक्षण बेंच रैंडमाइजेशन, डिज़ाइन पदानुक्रम और पुन: उपयोग की बढ़ती आवश्यकता को पूरा करने के लिए कई नई सुविधाएँ (वर्ग, यादृच्छिक चर और गुण / दावे) पेश करता है। वीएचडीएल का भविष्य में संशोधन भी विकास में है[when?], और SystemVerilog के सुधारों से मेल खाने की उम्मीद है।

एचडीएल का उपयोग करके डिज़ाइन

एचडीएल का उपयोग करके प्राप्त दक्षता लाभ के परिणामस्वरूप, अधिकांश आधुनिक डिजिटल सर्किट डिज़ाइन इसके चारों ओर घूमते हैं। अधिकांश डिज़ाइन आवश्यकताओं के एक सेट या उच्च-स्तरीय वास्तुशिल्प आरेख के रूप में शुरू होते हैं। नियंत्रण और निर्णय संरचनाएं अक्सर प्रवाह संचित्र अनुप्रयोगों में प्रोटोटाइप की जाती हैं, या संपादक में दर्ज की जाती हैं। एचडीएल विवरण लिखने की प्रक्रिया सर्किट की प्रकृति और कोडिंग शैली के लिए डिजाइनर की प्राथमिकता पर अत्यधिक निर्भर है। एचडीएल केवल 'कैप्चर लैंग्वेज' है, जो अक्सर C++ गणितीय मॉडल जैसे उच्च-स्तरीय एल्गोरिथम विवरण से शुरू होती है। डिज़ाइनर अक्सर एचडीएल भाषा में दोहरावदार सर्किट संरचनाओं को स्वचालित रूप से उत्पन्न करने के लिए पर्ल जैसी स्क्रिप्टिंग भाषाओं का उपयोग करते हैं। विशेष पाठ संपादक स्वचालित इंडेंटेशन, सिंटैक्स-निर्भर रंगाई और इकाई/आर्किटेक्चर/सिग्नल घोषणा के मैक्रो (कंप्यूटर विज्ञान)-आधारित विस्तार के लिए सुविधाएँ प्रदान करते हैं।

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

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

एचडीएल कोड का अनुकरण और डिबगिंग

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

एचडीएल मॉडल का अनुकरण करने के लिए, एक इंजीनियर एक शीर्ष-स्तरीय सिमुलेशन वातावरण (जिसे परीक्षण बेंच कहा जाता है) लिखता है। कम से कम, एक टेस्टबेंच में मॉडल का इंस्टेंटेशन (जिसे परीक्षण या डीयूटी के तहत डिवाइस कहा जाता है), मॉडल के I/O के लिए पिन/सिग्नल घोषणाएं और एक क्लॉक वेवफॉर्म शामिल होता है। टेस्टबेंच कोड इवेंट संचालित होता है: इंजीनियर (टेस्टबेंच-जनरेटेड) रीसेट-सिग्नल को लागू करने के लिए, इंटरफ़ेस लेनदेन को मॉडल करने के लिए (जैसे होस्ट-बस रीड/राइट) और डीयूटी के आउटपुट की निगरानी करने के लिए एचडीएल स्टेटमेंट लिखता है। एक एचडीएल सिम्युलेटर - वह प्रोग्राम जो टेस्टबेंच को निष्पादित करता है - सिम्युलेटर घड़ी को बनाए रखता है, जो टेस्टबेंच सिमुलेशन में सभी घटनाओं के लिए मास्टर संदर्भ है। घटनाएँ केवल टेस्टबेंच एचडीएल (जैसे कि टेस्टबेंच में कोडित रीसेट-टॉगल) द्वारा निर्धारित क्षणों में होती हैं, या उत्तेजना और ट्रिगरिंग घटनाओं की प्रतिक्रिया में (मॉडल द्वारा)। आधुनिक एचडीएल सिमुलेटर में डिबग टूल के एक सूट के साथ पूर्ण-विशेषताओं वाले ग्राफिकल यूज़र इंटरफ़ेस हैं। ये उपयोगकर्ता को किसी भी समय सिमुलेशन को रोकने और पुनः आरंभ करने, सिम्युलेटर ब्रेकप्वाइंट (एचडीएल कोड से स्वतंत्र) डालने और एचडीएल मॉडल पदानुक्रम में किसी भी तत्व की निगरानी या संशोधित करने की अनुमति देते हैं। आधुनिक सिमुलेटर एक परिभाषित वेरिलॉग#प्रोग्राम लैंग्वेज इंटरफ़ेस (पीएलआई)/वीएचडीएल प्रोग्रामिंग लैंग्वेज इंटरफ़ेस इंटरफ़ेस के माध्यम से एचडीएल वातावरण को उपयोगकर्ता-संकलित पुस्तकालयों से भी जोड़ सकते हैं। लिंकिंग सिस्टम-निर्भर है (x86, SPARC आदि जो Microsoft Windows/Linux/Solaris (ऑपरेटिंग सिस्टम) चला रहा है), क्योंकि HDL सिम्युलेटर और उपयोगकर्ता लाइब्रेरीज़ को HDL वातावरण के बाहर संकलित और लिंक किया गया है।

डिज़ाइन सत्यापन अक्सर डिज़ाइन प्रक्रिया का सबसे अधिक समय लेने वाला हिस्सा होता है, जो डिवाइस के कार्यात्मक विनिर्देश, डिज़ाइनर द्वारा विनिर्देश की व्याख्या और अशुद्धि के बीच डिस्कनेक्ट के कारण होता है।[citation needed] एचडीएल भाषा का। अधिकांश प्रारंभिक परीक्षण/डिबग चक्र एचडीएल सिम्युलेटर वातावरण में आयोजित किया जाता है, क्योंकि डिज़ाइन का प्रारंभिक चरण लगातार और बड़े सर्किट परिवर्तनों के अधीन होता है। एचडीएल विवरण को हार्डवेयर में प्रोटोटाइप और परीक्षण भी किया जा सकता है - इस उद्देश्य के लिए प्रोग्राम करने योग्य तर्क उपकरणों का अक्सर उपयोग किया जाता है। हार्डवेयर प्रोटोटाइप एचडीएल सिमुलेशन की तुलना में तुलनात्मक रूप से अधिक महंगा है, लेकिन डिजाइन का वास्तविक दुनिया का दृश्य प्रदान करता है। प्रोटोटाइपिंग अन्य हार्डवेयर उपकरणों और हार्डवेयर प्रोटोटाइप के विरुद्ध इंटरफेसिंग की जांच करने का सबसे अच्छा तरीका है। यहां तक ​​कि धीमे एफपीजीए पर चलने वाले भी शुद्ध एचडीएल सिमुलेशन की तुलना में बहुत कम सिमुलेशन समय प्रदान करते हैं।

एचडीएल के साथ डिजाइन सत्यापन

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

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

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

एचडीएल और प्रोग्रामिंग भाषाएँ

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

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

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

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

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

उच्च स्तरीय संश्लेषण

अमूर्तता के अपने स्तर में, एचडीएल की तुलना असेंबली भाषाओं से की गई है।[citation needed] एचडीएल में प्रोग्रामिंग की जटिलता को कम करने के लिए उच्च-स्तरीय संश्लेषण नामक एक उप-क्षेत्र बनाकर हार्डवेयर डिज़ाइन के अमूर्त स्तर को बढ़ाने का प्रयास किया जा रहा है।

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

इंटेल की एक समान पहल उच्च स्तरीय संश्लेषण भाषा के रूप में एसवाईसीएल से संबंधित डेटा पैरेलल सी++ का उपयोग है।

एनापोलिस माइक्रो सिस्टम्स, इंक. का कोरफ़ायर डिज़ाइन सूट[11] और राष्ट्रीय वाद्ययंत्र लैबव्यू एफपीजीए उच्च-स्तरीय डिजाइन प्रविष्टि के लिए एक ग्राफिकल डेटा प्रवाह दृष्टिकोण प्रदान करते हैं और SystemVerilog, सिस्टमवीएचडीएल और हैंडल-सी जैसी भाषाएं एक ही लक्ष्य को पूरा करना चाहती हैं, लेकिन इसका उद्देश्य एफपीजीए बनाने के बजाय मौजूदा हार्डवेयर इंजीनियरों को अधिक उत्पादक बनाना है। मौजूदा सॉफ्टवेयर इंजीनियरों के लिए अधिक सुलभ।

मैथवर्क्स एचडीएल कोडर टूल का उपयोग करके MATLAB और Simulink का उपयोग करके हार्डवेयर मॉड्यूल डिजाइन करना भी संभव है[12] या Intel FPGAs के लिए DSP बिल्डर[13] या Xilinx से Xilinx सिस्टम जेनरेटर (XSG)।[14]


एचडीएल के उदाहरण

एनालॉग सर्किट डिजाइन के लिए एचडीएल

Name Description
HDL-A A proprietary analog HDL
SpectreHDL A proprietary analog HDL from Cadence Design Systems for its Spectre circuit simulator
Verilog-AMS (Verilog for Analog and Mixed-Signal) An Accellera standard extension of IEEE Std 1364 Verilog for analog and mixed-signal simulation
VHDL-AMS (VHDL with Analog/Mixed-Signal extension) An IEEE standard extension (IEEE Std 1076.1) of VHDL for analog and mixed-signal simulation


डिजिटल सर्किट डिजाइन के लिए एचडीएल

उद्योग में उपयोग की जाने वाली दो सबसे व्यापक रूप से उपयोग की जाने वाली और अच्छी तरह से समर्थित एचडीएल किस्में वेरिलॉग और वीएचडीएल हैं।

Status Name Host Language Description
In Use Altera Hardware Description Language (AHDL) A proprietary language from Altera
AHPL (A Hardware Programming language) Used as a tool for teaching
Amaranth Python
Bluespec High-level HDL based on Haskell (not embedded DSL)[15]
Bluespec SystemVerilog (BSV) Based on Bluespec, with Verilog HDL like syntax, by Bluespec, Inc.
C-to-Verilog Converter from C to Verilog
Chisel (Constructing Hardware in a Scala Embedded Language)[16] Scala Based on Scala (embedded DSL)
Clash Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell
COLAMO (Common Oriented Language for Architecture of Multi Objects)[17] A proprietary language from “Supercomputers and Neurocomputers Research Center” Co Ltd.
CUPL (Compiler for Universal Programmable Logic)[18] A proprietary language from Logical Devices, Inc.
DSLX A domain-specific language targeting the XLS toolchain
ESys.net .NET framework written in C#
Handel-C A C-like design language
Hardcaml OCaml Based on OCaml (embedded DSL). Try it online.
HHDL Haskell Based on Haskell (embedded DSL).
Hardware Join Java (HJJ) Join Java Based on Join Java
HML (Hardware ML) Standard ML Based on Standard ML[19]
Hydra Haskell Based on Haskell
Impulse C C-like HDL
ParC (Parallel C++) kusu extended with HDL style threading and communication for task-parallel programming
JHDL Java Based on Java
Lava Haskell Based on Haskell (embedded DSL).[20][21][22][23]
Lola A simple language used for teaching
M A HDL from Mentor Graphics
MyHDL Python Based on Python (embedded DSL)
PALASM For Programmable Array Logic (PAL) devices
PipelineC C-like hardware description language adding High-level synthesis-like automatic pipelining as a language construct/compiler feature.
PyMTL Python Based on Python, from Cornell University
PyRTL Python Based on Python, from University of California, Santa Barbara
ROCCC (Riverside Optimizing Compiler for Configurable Computing) Free and open-source C to HDL tool
RHDL Ruby Based on the Ruby programming language
ROHD (Rapid Open Hardware Development framework)[24] Dart A framework for hardware design and verification, written in Dart
Ruby (hardware description language)
SystemC Standardized class of C++ libraries for high-level behavioral and transaction modeling of digital hardware at a high level of abstraction, i.e. system-level
SystemVerilog Superset of Verilog, with enhancements to address system-level design and verification
SpinalHDL Scala Based on Scala (embedded DSL)
SystemTCL SDL based on Tcl.
THDL++ (Templated HDL inspired by C++) Extension of VHDL with inheritance, advanced templates and policy classes
Verik Kotlin reinterpreted with the semantics of an HDL. It is transpiled to SystemVerilog.
TL-Verilog (Transaction-Level Verilog) Extension of Verilog/SystemVerilog with constructs for pipelines and transactions.
Verilog One of the most widely used and well-supported HDLs
VHDL (VHSIC HDL) One of the most widely used and well-supported HDLs
No longer in common use Advanced Boolean Expression Language (ABEL) Obsolete HDL made by Data I/O Corporation in 1983
Confluence A functional HDL, Has been discontinued
CoWareC C-based HDL by CoWare. Now discontinued in favor of SystemC
ELLA No longer in common use
ISPS Original HDL from CMU. No longer in common use.
KARL (KAiserslautern Register Language)[9] A pascalish hardware descriptive language. No longer in common use.


मुद्रित सर्किट बोर्ड डिजाइन के लिए एचडीएल

भाषा आधारित, पाठ्य-प्रविष्टि विधियों का उपयोग करके मुद्रित सर्किट बोर्ड कनेक्टिविटी को परिभाषित करने के लिए कई परियोजनाएं मौजूद हैं।

Name Description
PHDL (PCB HDL) A free and open source HDL for defining printed circuit board connectivity
EDAsolver An HDL for solving schematic designs based on constraints
SKiDL Open source python module to design electronic circuits


यह भी देखें

संदर्भ

  1. Ciletti, Michael D. (2011). वेरिलॉग एचडीएल के साथ उन्नत डिजिटल डिज़ाइन (2nd ed.). Prentice Hall. ISBN 9780136019282.
  2. Barbacci, M. "A comparison of register transfer languages for describing computers and digital systems," Carnegie-Mellon Univ., Dept. of Computer Science, March 1973
  3. Bell, C. G.; Newell, A. (1971). Computer Structures: Readings and Examples. McGraw-Hill. ISBN 0-07-004357-4.
  4. Reilly, E.D. (2003). कंप्यूटर विज्ञान और सूचना प्रौद्योगिकी में मील के पत्थर. Greenwood Press. p. 183. ISBN 1-57356-521-0.
  5. Bell, C.G.; Grason, J.; Newell, A. (1972). कंप्यूटर और डिजिटल सिस्टम डिजाइन करना. Digital Press. LCCN 72-89566. OCLC 440245727.
  6. Barbacci, M.C. (1976). "The Symbolic Manipulation of Computer Descriptions: ISPL Compiler and Simulator". Department of Computer Science, Carnegie-Mellon University. doi:10.1184/R1/6610790.v1. {{cite journal}}: Cite journal requires |journal= (help)
  7. Barbacci, M.C.; Barnes, G.E.; Cattell, R.G.G.; Siewiorek, D.P. (1977). "आईएसपीएस कंप्यूटर विवरण भाषा". Department of Computer Science, Carnegie-Mellon University. doi:10.1184/R1/6610637.v1. {{cite journal}}: Cite journal requires |journal= (help)
  8. Girardi, G.; Hartenstein, R. (1983). एबीएल विशिष्टता (Report). CSELT and University of Kaiserslautern.
  9. 9.0 9.1 Hartenstein, Reiner W. (2012) [1993], "KARL and ABL", in Mermet, J. (ed.), Fundamentals and Standards in Hardware Description Languages, Nato Science Series E, vol. 249, Springer, pp. 447–, ISBN 9789401119146
  10. Barbacci, M.C.; Grout, S.; Lindstrom, G.; Maloney, M.P. (1984). "Ada as a hardware description language : an initial report". Department of Computer Science, Carnegie-Mellon University. CiteSeerX 10.1.1.938.8003. doi:10.1184/R1/6602984.v1. {{cite journal}}: Cite journal requires |journal= (help)
  11. "वीएचडीएल-आधारित एफपीजीए प्रोग्रामिंग एप्लीकेशन सॉफ्टवेयर टूल". Annapolis Micro Systems, Inc. Retrieved 2018-12-01.
  12. "वीएचडीएल कोड - एचडीएल कोडर - मैटलैब और सिमुलिंक". Mathworks.com. 2011-04-30. Retrieved 2012-08-11.
  13. "Digital Signal Processing (DSP) Builder - Intel® FPGAs". Intel. Retrieved 2021-09-20.
  14. "डीएसपी के लिए सिस्टम जेनरेटर". Xilinx.com. Archived from the original on 2012-07-12. Retrieved 2012-08-11.
  15. A History of Haskell: being lazy with class §12.4.2
  16. "Chisel/FIRRTL Hardware Compiler Framework".
  17. "Higher-level language COLAMO | НИЦ супер-ЭВМ и нейрокомпьютеров".
  18. Eurich, J.P.; Roth, G. (1990). "EDIF grows up". IEEE Spectrum. 27 (11): 68–72. doi:10.1109/6.62219. S2CID 381119.
  19. Yanbing Li; Leeser, M. (1995). "HML: An innovative hardware description language and its translation to VHDL". Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair. pp. 691–696. doi:10.1109/ASPDAC.1995.486388. ISBN 4-930813-67-0. S2CID 14198160.
  20. Chalmers Lava
  21. Xilinx Lava
  22. Kansas Lava
  23. York Lava
  24. "Rapid Open Hardware Development (ROHD) Framework". GitHub. 17 November 2021.


बाहरी संबंध

  • HCT - The HDL Complexity tool, used to determine design complexity.