Altifigence Academy

35 / 37 · अवधारणा

कम्पाइल, lint और संश्लेषण: निदान क्या साबित करते हैं

स्रोत, top और भाषा तय करें; वाक्यरचना, चौड़ाई, latch और कार्यात्मक जाँच अलग रखें।

औज़ार से माँगा काम तय करें

परिणाम स्रोत, top, पैरामीटर, भाषा और संस्करण पर निर्भर है। निर्भरता समेत DUT कम्पाइल करें और टेस्टबेंच अलग top रखें। बेंच का क्लॉक जनरेटर संश्लेषित न करें और गैर-इंस्टेंस मॉड्यूल को जाँचा हुआ न समझें। उदाहरण व्यावहारिक संश्लेषण योग्य subset लेते हैं; सिमुलेटर और उत्पाद engine अलग भाग समर्थन कर सकते हैं। .sv अपने आप सभी सुविधाएँ चालू नहीं करता।

कम्पाइल और सिमुलेशन की सीमा अलग है

कम्पाइल वाक्यरचना, लापता मॉड्यूल या गलत संदर्भ रोक सकता है, लेकिन गणना और प्राथमिकता साबित नहीं करता। सिमुलेशन चले परिदृश्यों की तुलना करता है; PASS उन्हीं तुलना और स्रोत के लिए है। अभ्यास में:

text
iverilog -g2012 -s tb -o sim.vvp modulo_tick.sv tb.sv
vvp sim.vvp

दोनों status लिखें। कम्पाइल विफल होने के बाद पुरानी sim.vvp चलाना भ्रामक PASS दे सकता है। हर सेटिंग का नया फ़ाइल बनाएँ और कम्पाइल न हो तो रुकें।

कारण देखें

निदानप्रश्न
मॉड्यूल लापताफ़ाइल और नाम सही हैं?
कटौतीकौन से बिट, carry या चिह्न खोते हैं?
Latch निकलाकौन सा संयोजन पथ असाइन नहीं करता?
कई ड्राइवरचर का मालिक कौन?
अनुपयोगी सिग्नलजानबूझकर या कनेक्शन छूटा?
संयोजन लूपबिना रजिस्टर इनपुट पर लौटता है?

लॉग साफ दिखाने को सभी चेतावनी बंद न करें। ठीक करें या सीमित, जानबूझकर और जाँचा अपवाद लिखें। संस्करण से श्रेणी बदलती है। Verilator का आधिकारिक चेतावनी संदर्भ WIDTH, LATCH समझाता है। लगा हो तो अतिरिक्त विकल्प:

text
verilator --lint-only --top-module periodic_accumulator modulo_tick.sv periodic_accumulator.sv

यह सुझाया रास्ता है, निष्पादन का प्रमाण नहीं। चलाई गई और सुझाई कमांड अलग लिखें।

संश्लेषण एक और सीमा है

Yosys की सामान्य जाँच:

text
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 कम्पाइल हो सकता है: आवश्यकता से तुलना करें। एक प्रासंगिक विफलता बहाल स्रोत के साथ रखें। बिना समझाया निदान अभी बाकी है।

आपका चयन इस ब्राउज़र पर लागू होता है। फ़ुटर से कभी भी बदलें।