क्या किसी फ़ंक्शन या कार्य में इंटरफ़ेस पास करने का कोई संश्लेषित तरीका है? मेरा उपयोग केस निम्न है: मेरे पास कई फ़ंक्शंस वाला पैकेज है (हालांकि मैं उन्हें कार्यों में परिवर्तित कर सकता हूं, अगर इससे मदद मिलती है :)), जिनमें से सभी मॉड्यूल में उपयोग किए जा सकते हैं और मॉड्यूल के बंदरगाहों तक पहुंचने की आवश्यकता हो सकती है। अब, आमतौर पर मैं सभी पोर्ट्स को interface
में समूहित करता हूं, इसे मॉड्यूल में जोड़ता हूं, और इसे virtual
फ़ंक्शन में पास करता हूं। हालांकि, मेरे संश्लेषण उपकरण के मैनुअल का उल्लेख है कि virtual
समर्थित नहीं है।सिस्टम वेरिलोग: कार्यों/कार्यों (संश्लेषण के लिए) में इंटरफेस पास करना
क्या मुझे कुछ याद आ रही है? संश्लेषण के लिए कार्यों को बंदरगाहों को प्रदान करने का एक तरीका होना चाहिए, वीएचडीएल के signal
तर्कों के समान?
कुछ उदाहरण कोड:
module mymod (
input logic clk,
input logic rst,
input uint16_t adr,
input bit cyc,
input uint32_t dat_m,
input bit stb,
input bit we,
output bit ack,
output uint32_t dat_s
);
always_comb begin
mypack::do_something(a, b, c, adr, cyc, dat_m, stb, we, ack, dat_s);
endmodule
आदर्श रूप में, काम mypack::do_something
, बंदरगाहों के रूप में पोर्ट का उपयोग करने के लिए अर्थात उन पर परिवर्तन के लिए प्रतीक्षा करें, उन्हें मान लिखते हैं, आदि में सक्षम हो जाएगा; मूल रूप से, वही है जिसे आप signal
तर्कों के रूप में पास करके VHDL में प्राप्त करेंगे (variable
या constant
तर्कों के विपरीत)।
क्या आप कुछ कोड पोस्ट कर सकते हैं? –