Greetings SV-CC Techies, Long time no talk ! A question came up in our ITC committee work for the SCE-MI 2 standard. In P1800 Annex F8, 2nd paragraph it states the following: "To avoid any unnecessary overhead, imported task and function calls in SystemVerilog code are not instrumented unless the imported task or function is specified as context in its SystemVerilog import declaration. A small set of DPI utility functions are available to assist programmers when working with context tasks or functions (see F.8.3). If those utility functions are used with any non-context function, a system error shall result." While I agree with what it is saying in general about restrictions of the use of VPI calls and other API calls in non-context imports, we need some clarification here. It is not clear to me why the use of svGetScope() and svGetUserData() should cause any errors if used in a non-context imported DPI function. It seems that if the user just wants to get pre-stashed user data associated with the imported function's calling scope that these calls are generally implementable without paying the performance price of having to implement a full "instrumented" context function. It is not clear to me that all the utility functions in F.8.3 mentioned above should be lumped into the same category of requiring an error when called from a non-context imported DPI function. If vendors can implement these functions efficiently, why should the user be penalized for using them in the more efficient non-context flavor of imported functions ? BTW, I can think of at least one vendor who shall remain nameless (:-) that does not give currently an error when svGetScope() and svGetUserData() are called from non-context imported functions. And that is as it should be ! -- johnSReceived on Wed Feb 1 13:41:53 2006
This archive was generated by hypermail 2.1.8 : Wed Feb 01 2006 - 13:42:29 PST