Test generation has been a critical and labor-intensive process in hardware design verification. Recently, the emergence of Large Language Model (LLM) with their advanced understanding and inference capabilities, has introduced a novel approach. In this work, we investigate the integration of LLM into the Coverage Directed Test Generation (CDG) process, where the LLM functions as a Verilog Reader. It accurately grasps the code logic, thereby generating stimuli that can reach unexplored code branches. We compare our framework with random testing, using our self-designed Verilog benchmark suite. Experiments demonstrate that our framework outperforms random testing on designs within the LLM's comprehension scope. Our work also proposes prompt engineering optimizations to augment LLM's understanding scope and accuracy.
- पेपर ID: 2406.04373
- शीर्षक: VerilogReader: LLM-Aided Hardware Test Generation
- लेखक: Ruiyang Ma, Yuxin Yang, Ziqian Liu, Jiaxi Zhang, Min Li, Junhua Huang, Guojie Luo
- वर्गीकरण: cs.SE cs.AI
- प्रकाशन तिथि: 3 जून 2024 (arXiv प्रीप्रिंट)
- पेपर लिंक: https://arxiv.org/abs/2406.04373
- ओपन सोर्स कोड: https://github.com/magicYang1573/llm-hardware-test-generation
परीक्षण पीढ़ी हार्डवेयर डिजाइन सत्यापन में एक महत्वपूर्ण और श्रम-गहन प्रक्रिया रही है। हाल के वर्षों में, बड़े भाषा मॉडल (LLM) अपनी उन्नत समझ और तर्क क्षमताओं के साथ इस क्षेत्र में नई विधियां लाए हैं। यह अनुसंधान कवरेज-निर्देशित परीक्षण पीढ़ी (CDG) प्रक्रिया में LLM को एकीकृत करने की खोज करता है, जहां LLM Verilog कोड रीडर के रूप में कार्य करता है, कोड तर्क को सटीक रूप से समझता है, और ऐसे प्रेरणा उत्पन्न करता है जो अन्वेषित कोड शाखाओं तक पहुंच सकते हैं। लेखकों ने स्व-डिजाइन किए गए Verilog बेंचमार्क सूट का उपयोग करके इस ढांचे की तुलना यादृच्छिक परीक्षण से की है, प्रयोग दर्शाते हैं कि यह ढांचा LLM समझ के दायरे में डिजाइन पर यादृच्छिक परीक्षण से बेहतर है, और LLM की समझ की सीमा और सटीकता को बढ़ाने के लिए प्रॉम्प्ट इंजीनियरिंग अनुकूलन प्रस्तावित करता है।
- हार्डवेयर सत्यापन का महत्व: हार्डवेयर जटिलता में वृद्धि के साथ, हार्डवेयर सत्यापन विकास प्रक्रिया में तेजी से महत्वपूर्ण हो गया है। अपरिचित हार्डवेयर त्रुटियां गंभीर परिणाम और विशाल आर्थिक नुकसान का कारण बन सकती हैं।
- मौजूदा सत्यापन विधियां: इंजीनियर मुख्य रूप से दो सत्यापन विधियों का उपयोग करते हैं:
- औपचारिक सत्यापन: सिस्टम की सही्ता साबित करने के लिए गणितीय तकनीकों का उपयोग
- गतिशील सत्यापन: परीक्षण के तहत डिजाइन (DUT) का अनुकरण करने के लिए विविध परीक्षण मामलों का निर्माण
- परीक्षण पीढ़ी चुनौतियां: कवरेज लक्ष्यों की प्राप्ति के लिए उच्च गुणवत्ता वाले परीक्षण इनपुट की आवश्यकता होती है, जो सत्यापन इंजीनियरों पर भारी मानव बोझ डालता है।
- स्वचालन की आवश्यकता: मानव हस्तक्षेप को कम करने के लिए, कवरेज-निर्देशित परीक्षण पीढ़ी (CDG) स्वचालित हार्डवेयर परीक्षण पीढ़ी के लिए एक महत्वपूर्ण तकनीक बन गई है।
- LLM के अवसर: LLM की समझ और तर्क में शक्तिशाली क्षमता हार्डवेयर परीक्षण पीढ़ी के क्षेत्र में नए अवसर प्रदान करती है।
- विभेदकारी स्थिति: कार्यात्मक कवरेज बिंदुओं पर केंद्रित पूर्व अनुसंधान के विपरीत, यह पेपर कोड कवरेज पर केंद्रित है, जो एक अधिक मौलिक परीक्षण लक्ष्य है, LLM को "VerilogReader" के रूप में स्थापित करता है।
- ओपन सोर्स ढांचा: CDG प्रक्रिया में LLM को एकीकृत करने वाला पहला ओपन सोर्स ढांचा, LLM को Verilog कोड और कवरेज को समझने के लिए VerilogReader के रूप में उपयोग करता है, जिसका उद्देश्य कोड कवरेज समापन परीक्षण उत्पन्न करना है।
- प्रॉम्प्ट अनुकूलन मॉड्यूल: Coverage Explainer और DUT Explainer मॉड्यूल प्रस्तावित करता है जो प्रॉम्प्ट को समृद्ध करते हैं, डिजाइन और परीक्षण इरादे की LLM समझ को बढ़ाते हैं, ढांचे की स्केलेबिलिटी में सुधार करते हैं।
- बेंचमार्क सूट: 24 सरल, मध्यम और जटिल स्तर के Verilog डिजाइन वाला एक बेंचमार्क सूट बनाता है, प्रयोग दर्शाते हैं कि ढांचा सरल और मध्यम स्तर के DUT पर यादृच्छिक परीक्षण से बेहतर है।
- क्षमता सीमा अन्वेषण: Verilog पढ़ने में वर्तमान LLM की अधिकतम क्षमता सीमा को स्पष्ट करता है।
इस पेपर का कार्य Verilog कोड तर्क और वर्तमान कवरेज स्थिति को समझने के लिए LLM का उपयोग करना है, ऐसे बहु-चक्र इनपुट प्रेरणा उत्पन्न करना है जो अकवर कोड शाखाओं को ट्रिगर कर सकते हैं, कोड कवरेज में सुधार प्राप्त करने के लिए।
संपूर्ण ढांचा एक पुनरावृत्तिमूलक CDG प्रक्रिया को अपनाता है, जिसमें निम्नलिखित मुख्य घटक शामिल हैं:
- LLM कोर: प्रत्येक पुनरावृत्ति में JSON प्रारूप में बहु-चक्र इनपुट उत्पन्न करता है
- इनपुट डिकोडर: JSON प्रारूप इनपुट को हार्डवेयर प्रेरणा में डिकोड करता है
- कवरेज मॉनिटर: वर्तमान कोड कवरेज जानकारी प्रदान करता है
- व्याख्याकार मॉड्यूल: Coverage Explainer और DUT Explainer शामिल हैं
दो-दौर प्रश्नोत्तर तंत्र को अपनाता है:
- पहला दौर: LLM को परीक्षण लक्ष्य बताता है, DUT जानकारी और कवरेज डेटा प्रदान करता है, LLM प्राकृतिक भाषा में प्रतिक्रिया देता है
- दूसरा दौर: LLM को प्रतिक्रिया को मानकीकृत JSON प्रारूप में परिवर्तित करने के लिए निर्देशित करता है
जटिल कवरेज रिपोर्ट को LLM-समझने योग्य प्रारूप में परिवर्तित करता है:
- मूल प्रारूप: Verilator कवरेज रिपोर्ट, जिसमें अद्वितीय पहचानकर्ता और हिट गणना शामिल है
- टिप्पणीकृत प्रारूप: verilator_coverage उपकरण का उपयोग करके बनाई गई टिप्पणीकृत रिपोर्ट
- LLM-पठनीय प्रारूप: विशेष रूप से डिजाइन किया गया प्रारूप, अकवर पंक्तियों के लिए 'TO BE COVERED' ध्वज जोड़ता है
LLM की DUT समझ को बढ़ाने के लिए दो कार्य प्रदान करता है:
- डिजाइन विवरण: DUT कार्यक्षमता और आंतरिक तर्क की प्राकृतिक भाषा व्याख्या प्रदान करता है
- परीक्षण मार्गदर्शन: विशिष्ट DUT परीक्षण बनाने के लिए पूरक जानकारी और मूल परीक्षण तर्क नियम प्रदान करता है
- कोड कवरेज फोकस: पहली बार LLM को कार्यात्मक कवरेज बिंदुओं के बजाय हार्डवेयर कोड कवरेज पर लागू करता है
- चरणबद्ध प्रसंस्करण: परीक्षण पीढ़ी कार्य को DUT समझ और इनपुट तर्क अनुमान दो चरणों में विभाजित करता है
- प्राकृतिक भाषा टैगिंग: अकवर पंक्तियों को चिह्नित करने के लिए प्राकृतिक भाषा का उपयोग करता है, LLM के तर्क को सरल बनाता है
- दोहरी-दौर इंटरैक्शन: दो-दौर प्रश्नोत्तर के माध्यम से LLM की क्रमिक सोच प्रक्रिया को बढ़ावा देता है
स्व-निर्मित बेंचमार्क सूट में 24 Verilog डिजाइन शामिल हैं, तीन कठिनाई स्तरों में विभाजित:
- सरल स्तर (s01-s10): 10 मूल संयोजन तर्क सर्किट (मल्टीप्लेक्सर, ALU, आदि)
- मध्यम स्तर (m01-m08): 8 अनुक्रमिक तर्क सर्किट (FSM, काउंटर, आर्बिटर, आदि)
- जटिल स्तर (c01-c06): 6 बड़े FSM सर्किट (16-128 राज्य)
- प्राथमिक मेट्रिक: पूर्ण कवरेज प्राप्त करने के लिए आवश्यक इनपुट प्रेरणा की कुल लंबाई (घड़ी चक्र में)
- कवरेज: लाइन कवरेज प्रतिशत
- समय दक्षता: लक्ष्य कवरेज प्राप्त करने के लिए पुनरावृत्तियों की संख्या
- यादृच्छिक परीक्षण: बेसलाइन तुलना विधि के रूप में
- विभिन्न कवरेज रिपोर्ट प्रारूप: मूल प्रारूप, टिप्पणीकृत प्रारूप, LLM-पठनीय प्रारूप
- भाषा मॉडल: OpenAI GPT-4 और GPT-4-Turbo-0125
- सिम्युलेटर: Verilator
- कोड पार्सिंग: Pyverilog
- प्रयोग दोहराव: LLM की यादृच्छिकता को संभालने के लिए प्रत्येक प्रयोग 5 बार दोहराया गया
मध्यम स्तर के DUT पर GPT-4 का उपयोग करके प्रयोग के परिणाम दिखाते हैं:
- LLM-पठनीय कवरेज रिपोर्ट मूल और टिप्पणीकृत प्रारूपों से काफी बेहतर है
- मूल अपठनीय कवरेज रिपोर्ट LLM के लिए सबसे बड़ी चुनौती है
- प्राकृतिक भाषा-टैग किए गए 'TO BE COVERED' ध्वज ने समझ प्रभाव को प्रभावी ढंग से बढ़ाया
सरल और मध्यम स्तर के DUT पर प्रयोग के परिणाम दर्शाते हैं:
- LLM ढांचा 100% कवरेज प्राप्त करने के लिए काफी कम इनपुट का उपयोग करता है
- यादृच्छिक परीक्षण अक्सर कठिन-से-पहुंचने वाली शाखाओं वाले अनुक्रमिक डिजाइन पर एक मिनट के भीतर पूर्ण कवरेज प्राप्त नहीं कर सकता
- GPT-4 और GPT-4-Turbo हार्डवेयर परीक्षण पीढ़ी कार्य पर समान प्रदर्शन करते हैं
- डिजाइन विवरण: LLM-उत्पन्न डिजाइन विवरण परीक्षण पीढ़ी के दौरान डिजाइन समझ में सुधार करता है
- परीक्षण मार्गदर्शन: प्रभाव असंगत है, कुछ डिजाइन (m05, m06) में इनपुट विविधता को कम करता है
जटिल स्तर के FSM पर प्रयोग के परिणाम दिखाते हैं:
- 16-राज्य FSM: 20 पुनरावृत्तियों के बाद 100% लाइन कवरेज के करीब
- 64-राज्य से अधिक FSM: कवरेज 50% से अधिक नहीं हो सकता
- DUT आकार बढ़ने के साथ, परीक्षण पीढ़ी गुणवत्ता में तेजी से गिरावट आती है
- LLM सरल और मध्यम जटिलता के डिजाइन पर उत्कृष्ट प्रदर्शन करता है
- वर्तमान LLM में बड़े Verilog डिजाइन को संभालने में स्पष्ट सीमाएं हैं
- उचित प्रॉम्प्ट इंजीनियरिंग LLM प्रदर्शन में काफी सुधार कर सकता है
- कवरेज रिपोर्ट प्रारूप LLM समझ के लिए महत्वपूर्ण है
- इनपुट स्पेस की खोज के लिए अनुमानी विधियों पर आधारित
- नए परीक्षण मामलों की पीढ़ी के लिए मूल प्रतिक्रिया के रूप में कवरेज स्थिति का उपयोग
- परीक्षण पीढ़ी को निर्देशित करने के लिए सर्किट संरचना जानकारी (नियंत्रण/डेटा प्रवाह ग्राफ, मॉड्यूल कनेक्शन ग्राफ) का उपयोग
- RTL लेखन: हार्डवेयर विवरण भाषा कोड की स्वचालित पीढ़ी
- दावा पीढ़ी: सत्यापन दावों की पीढ़ी
- त्रुटि मरम्मत: हार्डवेयर डिजाइन में त्रुटियों की मरम्मत
- कार्यात्मक सत्यापन: Zhang आदि द्वारा कार्यात्मक कवरेज बिंदु सत्यापन कार्य
उच्च-स्तरीय कार्यात्मक परीक्षण योजना विवरण पर केंद्रित पूर्व कार्य की तुलना में, यह पेपर अधिक मौलिक कोड कवरेज लक्ष्य पर केंद्रित है, जिसके लिए LLM को Verilog कोड तर्क की गहन समझ की आवश्यकता है।
- LLM सरल और मध्यम जटिलता के Verilog डिजाइन को प्रभावी ढंग से समझ सकता है और लक्षित परीक्षण इनपुट उत्पन्न कर सकता है
- उचित प्रॉम्प्ट इंजीनियरिंग (विशेष रूप से कवरेज व्याख्या) LLM प्रदर्शन के लिए महत्वपूर्ण है
- वर्तमान LLM में बड़े, जटिल हार्डवेयर डिजाइन को संभालने में स्पष्ट सीमाएं हैं
- स्केल सीमा: 100 पंक्तियों से अधिक कोड वाले जटिल डिजाइन के लिए, LLM प्रदर्शन में काफी गिरावट आती है
- संरचना समझ: LLM को Verilog की अत्यधिक संरचित प्रकृति को समझने में कठिनाई होती है
- अंत-से-अंत अनुप्रयोग: औद्योगिक-स्तर के हार्डवेयर डिजाइन में LLM का सीधा अनुप्रयोग अभी भी चुनौतीपूर्ण है
- DUT Explainer को बढ़ाना: अधिक व्यापक उच्च-स्तरीय डिजाइन सार और सत्यापन इरादे प्रदान करना
- बहु-मोडल संलयन: LLM और ग्राफ न्यूरल नेटवर्क (GNN) को संयोजित करना, LLM का उपयोग शब्दार्थ व्याख्या के लिए, GNN संरचना जानकारी को संभालने के लिए
- स्तरीय प्रसंस्करण: व्यापक दृष्टिकोण से परीक्षण पीढ़ी कार्य को संभालने के लिए LLM को निर्देशित करना
- मजबूत नवाचार: पहली बार LLM को हार्डवेयर कोड कवरेज परीक्षण पीढ़ी में लागू करता है, स्पष्ट स्थिति के साथ
- व्यवस्थित विधि: कई अनुकूलन मॉड्यूल सहित एक संपूर्ण ढांचा प्रस्तावित करता है
- पर्याप्त प्रयोग: बहु-स्तरीय बेंचमार्क सूट का निर्माण, उचित प्रयोग डिजाइन
- ओपन सोर्स योगदान: ओपन सोर्स ढांचा प्रदान करता है, क्षेत्र विकास को बढ़ावा देता है
- सीमा अन्वेषण: वर्तमान LLM क्षमता की सीमा को स्पष्ट करता है
- स्केल सीमा: केवल अपेक्षाकृत सरल डिजाइन पर प्रभावी, वास्तविक औद्योगिक अनुप्रयोग से दूर
- बेंचमार्क सीमा: स्व-निर्मित बेंचमार्क पूर्ण नहीं हो सकता, औद्योगिक मानक बेंचमार्क के साथ तुलना की कमी
- लागत विश्लेषण: LLM कॉल लागत और पारंपरिक विधियों की विस्तृत तुलना की कमी
- सैद्धांतिक विश्लेषण: इस बात के लिए कि LLM इस कार्य पर प्रभावी क्यों हैं, इसके गहन सैद्धांतिक विश्लेषण की कमी
- शैक्षणिक मूल्य: हार्डवेयर सत्यापन क्षेत्र में LLM के अनुप्रयोग की नई दिशा खोलता है
- व्यावहारिक संभावना: शिक्षा और मध्यम-स्तरीय डिजाइन सत्यापन में वास्तविक अनुप्रयोग मूल्य है
- प्रेरणादायक: बाद के अनुसंधान के लिए मूल्यवान बेसलाइन और विचार प्रदान करता है
- शैक्षणिक वातावरण: हार्डवेयर डिजाइन पाठ्यक्रमों में स्वचालित परीक्षण पीढ़ी के लिए उपयुक्त
- प्रोटोटाइप सत्यापन: प्रारंभिक डिजाइन चरण में तेजी से सत्यापन के लिए उपयुक्त
- मध्यम-स्तरीय डिजाइन: 100 पंक्तियों से कम Verilog मॉड्यूल के लिए व्यावहारिक मूल्य
- सहायक उपकरण: सत्यापन इंजीनियरों के लिए सहायक उपकरण के रूप में कार्य कर सकता है, कुछ कार्य बोझ को कम करता है
पेपर 19 संबंधित संदर्भों का हवाला देता है, जिसमें औपचारिक सत्यापन, गतिशील सत्यापन, CDG विधियां, हार्डवेयर क्षेत्र में LLM के अनुप्रयोग आदि कई पहलू शामिल हैं, जो अनुसंधान के लिए एक मजबूत सैद्धांतिक आधार प्रदान करते हैं।
समग्र मूल्यांकन: यह LLM और हार्डवेयर सत्यापन के क्रॉस-डोमेन में एक नवाचारी कार्य है, हालांकि स्केल-अप अनुप्रयोग में सीमाएं हैं, लेकिन इस क्षेत्र के विकास के लिए मूल्यवान अन्वेषण और आधार प्रदान करता है। पेपर विधि व्यवस्थित है, प्रयोग पर्याप्त हैं, ओपन सोर्स योगदान स्पष्ट है, अच्छे शैक्षणिक मूल्य और प्रेरणादायक महत्व है।