35 / 37 · अवधारणा
कम्पाइल, lint और संश्लेषण: निदान क्या साबित करते हैं
स्रोत, top और भाषा तय करें; वाक्यरचना, चौड़ाई, latch और कार्यात्मक जाँच अलग रखें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
औज़ार से माँगा काम तय करें
परिणाम स्रोत, top, पैरामीटर, भाषा और संस्करण पर निर्भर है। निर्भरता समेत DUT कम्पाइल करें और टेस्टबेंच अलग top रखें। बेंच का क्लॉक जनरेटर संश्लेषित न करें और गैर-इंस्टेंस मॉड्यूल को जाँचा हुआ न समझें। उदाहरण व्यावहारिक संश्लेषण योग्य subset लेते हैं; सिमुलेटर और उत्पाद engine अलग भाग समर्थन कर सकते हैं। .sv अपने आप सभी सुविधाएँ चालू नहीं करता।
कम्पाइल और सिमुलेशन की सीमा अलग है
कम्पाइल वाक्यरचना, लापता मॉड्यूल या गलत संदर्भ रोक सकता है, लेकिन गणना और प्राथमिकता साबित नहीं करता। सिमुलेशन चले परिदृश्यों की तुलना करता है; PASS उन्हीं तुलना और स्रोत के लिए है। अभ्यास में:
iverilog -g2012 -s tb -o sim.vvp modulo_tick.sv tb.sv
vvp sim.vvpदोनों status लिखें। कम्पाइल विफल होने के बाद पुरानी sim.vvp चलाना भ्रामक PASS दे सकता है। हर सेटिंग का नया फ़ाइल बनाएँ और कम्पाइल न हो तो रुकें।
कारण देखें
| निदान | प्रश्न |
|---|---|
| मॉड्यूल लापता | फ़ाइल और नाम सही हैं? |
| कटौती | कौन से बिट, carry या चिह्न खोते हैं? |
| Latch निकला | कौन सा संयोजन पथ असाइन नहीं करता? |
| कई ड्राइवर | चर का मालिक कौन? |
| अनुपयोगी सिग्नल | जानबूझकर या कनेक्शन छूटा? |
| संयोजन लूप | बिना रजिस्टर इनपुट पर लौटता है? |
लॉग साफ दिखाने को सभी चेतावनी बंद न करें। ठीक करें या सीमित, जानबूझकर और जाँचा अपवाद लिखें। संस्करण से श्रेणी बदलती है। Verilator का आधिकारिक चेतावनी संदर्भ WIDTH, LATCH समझाता है। लगा हो तो अतिरिक्त विकल्प:
verilator --lint-only --top-module periodic_accumulator modulo_tick.sv periodic_accumulator.svयह सुझाया रास्ता है, निष्पादन का प्रमाण नहीं। चलाई गई और सुझाई कमांड अलग लिखें।
संश्लेषण एक और सीमा है
Yosys की सामान्य जाँच:
yosys -p 'read_verilog -sv modulo_tick.sv periodic_accumulator.sv; hierarchy -check -top periodic_accumulator; proc; opt; check -assert; stat'यह front end और सामान्य संरचना जाँचती है, किसी FPGA संसाधन, placement, routing, timing closure या निर्माण को नहीं। तकनीकी mapping और constraints अतिरिक्त काम हैं।
अभ्यास: त्रुटि वाली प्रतियाँ अलग रखें
तीन अस्थायी प्रतियाँ बनाएँ: गलत बच्चे का नाम, नौ-बिट जोड़ को आठ में रखना, संयोजन असाइनमेंट छूटना। देखें कौन सा औज़ार क्या पकड़ता है और कहाँ कार्यात्मक टेस्ट चाहिए। चौड़ाई जानबूझकर हो सकती और latch कम्पाइल हो सकता है: आवश्यकता से तुलना करें। एक प्रासंगिक विफलता बहाल स्रोत के साथ रखें। बिना समझाया निदान अभी बाकी है।