[ibis-macro] Re: Question about GetWave_Exists

  • From: "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>
  • To: "ibis-macro@xxxxxxxxxxxxx" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Thu, 8 Mar 2012 01:44:20 +0000

Mike,

You seem to contradict yourself.  At the end you say
"The meaning of this parameter is clear" but earlier on you say
"We also have found it useful to set GetWave_Exists=False even though the 
function was, in fact, present. This has been a useful debugging mechanism".

The reason I think this is a contradiction is because
the "clear" meaning of the parameter name:

GetWave_Exists

is (at least to me) that this parameter carries information
about the function's existence and not instruction about
whether it should be executed or not, but you say
that it is also useful for the latter which requires
it to carry potentially conflicting values.  I don't
doubt the usefulness of this for debugging, but I want
to find out whether the spec was written with that purpose
in mind or not.


If the "clear" meaning of this parameter is information
about the existence of the GetWave function in the DLL,
is it legal to assign a different value in the .ami file
to this parameter regardless of what is in the DLL?

If we want to allow this parameter to be used in a different
way from this "clear" meaning, we should probably say
something about that in the spec, for example something
like this:

"If the AMI_GetWave function does not exist in the executable
algorithmic model, the value of this parameter must be False
and the meaning of this parameter is AMI_GetWave function
does not exist.  If the AMI_GetWave function does exist in
the executable algorithmic model, the value of this parameter
may be True or False, instructing the EDA tool whether or not
to execute the AMI_GetWave function.  In this case the
meaning of this parameter is Use_AMI_GetWAve_Function".

Thanks,

Arpad
===========================================================


From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] 
On Behalf Of Mike Steinberger
Sent: Wednesday, March 07, 2012 6:03 PM
To: ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: Question about GetWave_Exists

Arpad-

The original intent of GetWave_Exists was to tell the EDA tool, written by a 
skilled programmer or not, whether or not the GetWave exists in a given model. 
Even though a program could perform the tests you describe, it's more 
convenient to use the GetWave_Exists parameter.

Dave Banas' comment is right on the money. We also have found it useful to set 
GetWave_Exists=False even though the function was, in fact, present. This has 
been a useful debugging mechanism, for example.

The meaning of this parameter is clear and the information it conveys is 
useful. What difficulties is the current definition creating?

Thanks.
Mike Steinberger

On 03/07/2012 05:42 PM, Muranyi, Arpad wrote:
Ambrish,

Even though I tend to agree with you, I wonder
what was the purpose of putting this parameter
into the AMI specification.

The reason I wonder is because any programmer
skillful in the art knows how to obtain the
entry points to the functions in a DLL, i.e.
they can figure it out programmatically whether
the function exists or not, and if they are
careful programmers, they will not call the
function if the pointer to it is a null...

Having that in mind, who is this information in
the .ami file targeted to, and for what purpose?

Thanks,

Arpad
===================================================

From: Ambrish Varma [mailto:ambrishv@xxxxxxxxxxx]
Sent: Wednesday, March 07, 2012 4:22 PM
To: Muranyi, Arpad; 'IBIS-ATM'
Subject: RE: Question about GetWave_Exists

Arpad,
The parameter value was supposed to be an answer to the question Getwave Exists 
in the AMI model or not?
So I do believe that the .ami file was written incorrectly.
Thanks,
-Ambrish.




[cid:image002.gif@01CCFC8E.4A03F270]



Ambrish Varma   |  Member of Consulting Staff

P: 978.262.6431   www.cadence.com<http://www.cadence.com>










________________________________
From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> 
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx]<mailto:[mailto:ibis-macro-bounce@xxxxxxxxxxxxx]>
 On Behalf Of Muranyi, Arpad
Sent: Wednesday, March 07, 2012 5:05 PM
To: 'IBIS-ATM'
Subject: [ibis-macro] Question about GetWave_Exists

Hello everyone,

I would like to ask a question about the GetWave_Exists
AMI parameter.  This is what I see in the specification
on pg. 144:


| GetWave_Exists:
|
| GetWave_Exists is of usage Info and type Boolean. It tells
| the EDA platform whether the "AMI_GetWave" function is
| implemented in this model. Note that if Init_Returns_Impulse
| is set to "False", then Getwave_Exists MUST be set to "True".


I came across a model recently in which the AMI DLL does have
a GetWave function, but the .ami file says GetWave_Exists = False.
The vendor says that they want to use this AMI parameter as
a switch to be able to tell the EDA tool whether to invoke
the GetWave function or not.

The way I read the above specification snippet is that this
parameter supposed to tell the tool whether this function
exists in the DLL or not.  If this parameter was to be used
to control whether the EDA tool should make use of it or not,
we should have given this parameter a different name, something
like this:

Use_GetWave_Function_If_Exists

I am curious to hear what our experts have to say about this.
Is the model's .ami file written incorrectly?  Should we advise
the model maker to not use this AMI parameter this way?

How should the EDA vendor handle this situation?  Should the
tool execute the GetWave function when it exists, regardless
of what this parameter says, or should it only execute the
GetWave function if this parameter is set to True, regardless
of whether the GetWave function exists in the DLL or not :).

Thanks,

Arpad
==============================================================

GIF image

GIF image

Other related posts: