uvm - Specman e vr_ad: How to use read_reg_field? -
में UVM e संदर्भ
दस्तावेज़ लिखा है:
आप रजिस्टरों के लिए read_reg_field या write_reg_field कॉल कर सकते हैं जिनके फ़ील्ड को single_field_access के रूप में परिभाषित किया जाता है ("vr_ad_port_unit सिंटैक्स और उदाहरण" देखें)। ... उदाहरण के लिए: write_reg_fields tx_mode_reg {.resv = 4; .dest = 2};
लेकिन read_reg_field का उपयोग करने के लिए कोई उदाहरण नहीं है ... क्या आप कृपया इसकी व्याख्या कर सकते हैं कि इसका उपयोग कैसे किया जाना चाहिए?
(I अगले कोड की कोशिश की, लेकिन यह संकलन त्रुटि देता है: some_var = read_reg_field my_reg_file.my_reg {.my_reg_field}
) आपकी मदद के लिए धन्यवाद।
जहां तक मुझे पता है कि कोई भी read_reg_fieds
मैक्रो नहीं है यदि आप एक रजिस्टर में पढ़ना चाहते हैं और फिर एक निश्चित फ़ील्ड के मूल्य को सहेजना चाहते हैं, तो ऐसा करें:
read_reg my_reg; मान = my_reg.my_reg_field;
आम तौर पर, जब आप रजिस्टर पढ़ते हैं, तो आप उन्हें पूरी तरह से पढ़ते हैं। केवल व्यक्तिगत फ़ील्ड पढ़ना समझ में आता है अगर आपकी बस प्रोटोकॉल को संकीर्ण स्थानान्तरण की अनुमति है (यानी आपकी डाटा चौड़ाई 32 बिट है, लेकिन आप उस पर 16 बिट स्थानांतरण कर सकते हैं)। मैंने vr_ad
में लागू ऐसी चीज नहीं देखी है (यहां हो सकता है और मुझे इसकी जानकारी नहीं है), लेकिन यूवीआरएल आरएएल (सिस्टमविरोलॉग रजिस्टर पैकेज) इसका समर्थन करता है।
read_reg
का उपयोग करना पर्याप्त है।
Comments
Post a Comment