से स्ट्रिंग कैसे बनाएं मेरे पास प्रीप्रोसेसर मैक्रो है जो मेरे डिज़ाइन में पदानुक्रमित पथ का प्रतिनिधित्व करता है।प्री-प्रोसेसर मैक्रो
उदाहरण:
`define HPATH top.chip.block
मैं एक स्ट्रिंग जो, `HPATH
का मूल्य रखता है तो मेरे उदाहरण में स्ट्रिंग top.chip.block
के बराबर होना चाहिए का निर्माण करने की जरूरत है।
क्या ऐसी स्ट्रिंग बनाने का कोई तरीका है? निम्नलिखित प्रयासों की
कोई भी काम किया:
string hpath;
hpath = "`HPATH"; // Results in hpath = "`HPATH"
hpath = \"``HPATH\"; // Doesn't compile
hpath = `HPATH; // Doesn't compile
मैं hpath
इस असाइनमेंट hpath = "top.chip.block"
कर के बराबर होना चाहता हूँ, लेकिन `HPATH
का उपयोग कर के बजाय पथ फिर से निर्दिष्ट करने के द्वारा।
मैं %m
का उपयोग नहीं कर सकता क्योंकि मुझे मॉड्यूल के भीतर नहीं, मेरे शीर्ष-स्तर के यूवीएम वातावरण में स्ट्रिंग की आवश्यकता है।
थोड़ा और पृष्ठभूमि: कारण मैं ऐसा करना चाहता हूं क्योंकि मैं यूवीएम कक्षा पुस्तकालय में बैकडोर रजिस्टर पहुंच का उपयोग कर रहा हूं। बैकडोर एपीआई को एक स्ट्रिंग के रूप में डिज़ाइन के भीतर ब्लॉक में hdl_path सेट करने की आवश्यकता होती है। मेरे पास पहले से ही पदानुक्रमित पथों के लिए परिभाषित किया गया है और hdl_paths निर्दिष्ट करते समय उनको पुन: उपयोग करने का प्रयास कर रहा हूं, इसलिए मेरे पास एक ही पथ को दो बार परिभाषित नहीं किया गया है। मेरा testbench दोनों पदानुक्रमित पथ और स्ट्रिंग पथ का उपयोग करेगा।
क्या आप एक बार तुम्हारे पास है स्ट्रिंग के साथ क्या करना योजना बनाई है? क्या '% एम' विनिर्देशक आपकी मदद करेगा? – toolic
@toolic - मैंने कुछ और विवरण के साथ प्रश्न अपडेट किया।मुझे एक स्ट्रिंग (यूवीएम बैकडोर रेग एक्सेस के लिए) और एक पदानुक्रमित पथ (कुछ अन्य कार्यों के लिए) के रूप में पथ की आवश्यकता है। मॉड्यूल के बाहर एक दायरे में पथ की आवश्यकता होने के बाद से '% m' मदद नहीं करेगा। – dwikle