Subject: RE: [sv-cc] RE: Version 2 of DPI LRM
From: Warmke, Doug (doug_warmke@mentorg.com)
Date: Wed Mar 12 2003 - 18:09:01 PST
Michael,
Good and clear reasoning here.
I like either of your proposals, perhaps the first one best.
One thing to note is that we decided to change the term
"context" to "scope" when it comes to the C API functions.
It has more meaning to Verilog end-users.  So I would say:
   svOpaqueHandle
   svOpenArrayHandle
   svScopeHandle
Thanks and regards,
Doug
> -----Original Message-----
> From: Michael Rohleder [mailto:michael.rohleder@motorola.com] 
> Sent: Wednesday, March 12, 2003 4:29 PM
> To: Warmke, Doug
> Cc: 'Andrzej Litwiniuk'; sv-cc@eda.org
> Subject: Re: [sv-cc] RE: Version 2 of DPI LRM
> 
> 
> There are three handle types that we need to distinguish:
> a) the generic, opaque handle defined on the SV side
> b) the handle provided when having an open array as param
> c) the handle provided for the context
> all three are in my eyes different and I think we need to 
> reflect this by providing three different handle types. 
> IM(very H)O there are two good ways here:
> A) have a base type; e.g. 'svHandle'
> . derive three types from it; e.g.
>   svOpaqueHandle
>   svOpenArrayHandle
>   svContextHandle
> B) just have three handle types
>   svHandle
>   svOpenArrayHandle
>   svContextHandle
> 
> I am more for the second one, which gives also my name 
> preferences; although I really don't care here. I as many 
> other user's will do Cut&Paste and as such the lenght of a 
> type name does not really count ...
> 
> -Michael
> 
> "Warmke, Doug" wrote:
> 
> > Andrzej,
> >
> > Agree on all points.  We can modify the LRM as per
> > your suggestions. That was quick!
> >
> > Team, quick poll from Andrzej and me for renaming svHandle:
> >    svArrayHandle
> >    svOpenArrayHandle
> >    svArrHandle
> >    <your suggestion here>
> >
> > Thanks and regards,
> > Doug
> >
> > > -----Original Message-----
> > > From: Andrzej Litwiniuk [mailto:Andrzej.Litwiniuk@synopsys.com]
> > > Sent: Wednesday, March 12, 2003 11:54 AM
> > > To: Warmke, Doug
> > > Cc: Andrzej.Litwiniuk@synopsys.COM; sv-cc@eda.org
> > > Subject: Re: [sv-cc] RE: Version 2 of DPI LRM
> > >
> > >
> > > Doug,
> > >
> > > My feedback embedded. It looks like by and large we have an 
> > > agreement.
> > >
> > >
> > > > Thanks for the feedback on my LRM edits.
> > > > We may have a few philosophical issues to
> > > > iron out, but things are looking good.
> > > > Please see embedded comments.
> > > >
> > > > Regards,
> > > > Doug
> > > >
> > > > > From: Andrzej Litwiniuk 
> [mailto:Andrzej.Litwiniuk@synopsys.com]
> > > > > Sent: Tuesday, March 11, 2003 5:53 PM
> > > > >
> > > > > A few minor comments on the C-layer doc in addition to
> > > those of John.
> > > > >
> > > > > --------------------------------------------
> > > > > A.5.5.
> > > > > I disagree with the first sentence "Some DPI external 
> functions 
> > > > > require that the context of their call is known". 
> Actually it is 
> > > > > exported functions or PLI (VPI?)
> > > > > functions that require such a context. So external functions
> > > > > may need the
> > > > > context only indirectly.
> > > >
> > > > Sorry, disagree.  See John's example for how an 
> external function 
> > > > may need to know its context so that it can interact 
> properly with 
> > > > a specific model on the C side.  (no export function is 
> needed in 
> > > > the simplest cases, since the C model can interact with 
> SV simply 
> > > > by means of the extern function's return argument).
> > >
> > > Yeah, I didn't remember about user data to be associated with an 
> > > instance.
> > >
> > > What about "Some DPI external functions or other 
> interface functions 
> > > called from  them require that the context of their call 
> is known".
> > >
> > >
> > > > > --------------------------------------------
> > > > > A.5.5 and A.8
> > > > > Type 'svHandle' is used here for representing a context, thus 
> > > > > overloading the originally intended use of this type, as a 
> > > > > pointer to
> > > a descriptor
> > > > > for an array passed as an actual argument for an open array. 
> > > > > This may be confusing and may lead to errors. I think that it 
> > > > > would be better to define a new type, say svContext.
> > > >
> > > > Agree.  Looks like svScope is a better name.
> > > > I still request that we dump the genericity of svHandle 
> used for 
> > > > array access as well.  It may be confusing to users who 
> are used 
> > > > to vpiHandle as a truly generic handle that can be used for all 
> > > > kinds of access activities.
> > > >
> > > > As before, I suggest svArrHandle or svArrayHandle for this use.
> > >
> > > If not the length, I'd opt for svOpenArrayHandle. I'm ok 
> with either 
> > > version. And agree, svHandle is overly generic.
> > >
> > > Team, your preferences?
> > >
> > >
> > >
> > > > > --------------------------------------------
> > > > > A.8.1 Second paragraph.
> > > > >
> > > > > I disagree with the sentence "DPI external functions are 
> > > > > essentially proxies for native SystemVerilog functions".
> > > > >
> > > > > The postulate that native and external functions are 
> > > > > interchangable is more a methodological guideline than a hard 
> > > > > request. One may perceive external functions as an 
> extension of 
> > > > > the built-in arithmetic,
> > > > > or, generally, as new basic operators, user defined. This as
> > > > > as legitimate
> > > > > application as any other.
> > > >
> > > > DOUG: This looks like a philosophical disagreement 
> point. What you 
> > > > write about applications of extern functions is true. 
> But, one may 
> > > > also perceive native SV functions as an extension of built-in 
> > > > arithmetic, basic new operators, etc.
> > > >
> > > > The real point that I think is important (and I believe Joao 
> > > > agrees) is the strong correlation between external 
> functions and 
> > > > native SV functions.  Both can be used interchangeably for all 
> > > > aspects of what functions do:  context stuff, arith stuff, 
> > > > operators, etc.
> > >
> > >
> > > My point was that sometimes external functions are used for 
> > > implementing something that cannot be expressed or implemented in 
> > > plain SV and thus they
> > > extend the expressiveness of SV (so they are not proxies).
> > >
> > > "DPI external functions often may be treated as proxies 
> for native 
> > > SystemVerilog  functions". - how about that?
> > >
> > >
> > > Regards,
> > > Andrzej
> > >
> 
> --
> 
> NOTE: The content of this message may contain personal views
>       which are not neccessarily the views of Motorola, 
> unless specifically stated.
> 
>          ___________________________________________________
>         |                                                   |
>       _ | Michael Rohleder            Tel: +49-89-92103-259 | _
>      / )| Software Technologist       Fax: +49-89-92103-680 |( \
>     / / | Motorola, Semiconductor Products, System Design   | \ \
>   _( (_ |  _   Schatzbogen 7, D-81829 Munich, Germany    _  | _) )_
>  (((\ \>|_/ >                                           < \_|</ /)))
>  (\\\\ \_/ /    mailto:Michael.Rohleder@motorola.com     \ \_/ ////)
>   \       /_______________________________________________\       /
>    \    _/                                                 \_    /
>    /   /                                                     \   \
> 
> The information contained in this email has been classified 
> as: Motorola General Business Information (x)
> Motorola Internal Use Only            ( )
> Motorola Confidential Proprietary     ( )
> 
> 
> *** This note may contain Motorola Confidential Proprietary or
>     Motorola Internal Use Only Information and is intended to be
>     reviewed by only the individual or organization named above.
>     If you are not the intended recipient or an authorized 
> representative
>     of the intended recipient, you are hereby notified that 
> any review,
>     dissemination or copying of this email and its 
> attachments, if any,
>     or the information contained herein is prohibited. If you 
> have received
>     this email in error, please immediately notify the sender by
>     return email and delete this email from your system.
>     Thank you! ***
> 
> 
This archive was generated by hypermail 2b28 : Wed Mar 12 2003 - 18:09:40 PST