[ibis-macro] Re: Usage Out syntax rules

  • From: "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>
  • To: "ibis-macro@xxxxxxxxxxxxx" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Fri, 16 Dec 2011 20:04:29 +0000

Radek,

Thanks for your reply.  Regarding your suggestion:
"I agree that we should state it explicitly that the EDA platform
is to use the values returned by the model, and then there will be
no issue of Default values.", I would probably tighten this
up a little more and say something like:
"the EDA platform is to use ONLY the values returned by the model"
but other than that, I think this may solve this
part of the problem.

Thanks,

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

From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] 
On Behalf Of radek_biernacki@xxxxxxxxxxx
Sent: Friday, December 16, 2011 1:27 PM
To: Muranyi, Arpad; ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: Usage Out syntax rules

Hi Arpad,

Thanks, I think we are in good agreement on the issues I was talking about.

Regarding your text


to be used (tool or model).  So, the answer to
our question:

"If we did not explicitly state that the EDA platform is to use the values
returned by the model (which is sort of obvious) we should add it."

is that we unfortunately didn't state that.  This is why
"Then, in the context of the Out parameters, there is no issue of Default 
values..."
is false, i.e. we have an issue.  This is what I was trying


I agree that we should state it explicitly that the EDA platform is to use the 
values returned by the model, and then there will be no issue of Default values.

And, regarding your text


general rule.  I would expect that for Reserved parameters
this would be described independently for each parameter.  On
the other hand, for Model_Specific parameters, the same


yes, that's exactly what I meant as I was talking about Reserved Parameters 
specifically.

Radek

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: Thursday, December 15, 2011 9:40 PM
To: ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Re: Usage Out syntax rules

Radek,

Thanks for your comments.  I went back to BIRD 127.4
and found the following, related to this discussion
and your comments:


|*              The EDA tool must pass a string to the AMI executable model
|**             through the AMI_parameters_in argument.  This string must
|**             contain all of the leaf/value pair formatted Usage In and
|**             Usage InOut AMI parameters if there are any defined in the
|**             .ami file.  No other information may be included in this
|**             string.  The string must always include the root name of
|**             the parameter tree, even if there are no parameters to pass
|**             to the algorithmic model.
|*
|*              The AMI executable model must return a string to the EDA tool
|**             through the AMI_parameters_out argument.  This string must
|**             contain all of the leaf/value pair formatted Usage InOut and
|**             Usage Out AMI parameters if there are any defined in the
|**             .ami file.  No other information may be included in this
|**             string.  The string must always include the root name of
|**             the parameter tree, even if there are no parameters to return
|**             to the EDA tool.
|*
|*              For Usage In, the value in the "AMI Parameter" leaves are
|*              determined by the EDA tool based on the "AMI Parameter"
|*              branches in the .ami file.  For Usage Out, the value in the
|*              "AMI Parameter" leaves are determined by the Algorithmic
|*              Model.  For Usage InOut, the value in the "AMI Parameter"
|*              leaves are first determined by the EDA tool based on the
|*              "AMI Parameter" branches in the .ami file and passed into
|*              the Algorithmic Model which may return a new value in the
|*              "AMI Parameter" leaves after some processing.

These paragraphs define what the content of the
AMI_parameters_in/out strings should be and how
the values are determined (tool or model), but I
couldn't find anything about how the values are
to be used (tool or model).  So, the answer to
our question:

"If we did not explicitly state that the EDA platform is to use the values
returned by the model (which is sort of obvious) we should add it."

is that we unfortunately didn't state that.  This is why
"Then, in the context of the Out parameters, there is no issue of Default 
values..."
is false, i.e. we have an issue.  This is what I was trying
to solve with this new BIRD draft, but it seems that Bob and
Mike S. question that there is an issue.  I would very much
like to hear the opinion of the rest of our team on this.
Do we have an issue, or not?

Regarding your question on
"Since the AMI_parameters_out string can be passed from both AMI_Init()
and AMI_GetWave() functions, do we have clear rules and exceptions for
AMI_GetWave() to be allowed or not to override the values set by AMI_Init()?"

the draft BIRD which is still pending:

http://www.vhdl.org/pub/ibis/macromodel_wip/archive/20110613/arpadmuranyi/Out-InOut%20BIRD%20draft%2010/Out_InOut_BIRD_10.pdf

contains the following text:

| Note: Algorithmic models may return (Usage Out) or (Usage InOut)
| parameters in the AMI_parameters_out argument of either the AMI_Init
| or the AMI_GetWave function, or both.

but we don't say more about when and how the EDA tool should
use them, because this will most likely depend on the nature
of the parameter itself and it would be hard to establish a
general rule.  I would expect that for Reserved parameters
this would be described independently for each parameter.  On
the other hand, for Model_Specific parameters, the same
document states the following:

| EDA tool vendors are strongly encouraged to collect the information from
| Model_Specific parameters of (Usage Out), (Usage InOut) and/or (Usage Info)
| in a database and make it available to the user. Since each call to the
| AMI_GetWave function may return a unique value in the AMI_parameters_out
| argument, EDA tool vendors are encouraged to build a database in which the
| parameters and values obtained from each AMI_GetWave call are organized in
| rows and columns so that the user can view them conveniently. Information
| from the .ami parameter file or information returned through the
| AMI_parameters_out argument of the AMI_Init function may be treated as the
| first data point of a data series returned by the AMI_parameters_out
| argument of the AMI_GetWave function for matching parameter names.  . . .

which seems to address your concern.

Questions, comments, suggestions are welcome.

Thanks,

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


From: radek_biernacki@xxxxxxxxxxx<mailto:radek_biernacki@xxxxxxxxxxx> 
[mailto:radek_biernacki@xxxxxxxxxxx]<mailto:[mailto:radek_biernacki@xxxxxxxxxxx]>
Sent: Thursday, December 15, 2011 6:24 PM
To: Muranyi, Arpad; ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: RE: [ibis-macro] Re: Usage Out syntax rules

Hi Arpad,

As I recall it, we have made it very clear in recently accepted BIRD 127.4 that 
the model must return values for all the parameters InOut and Out using the 
AMI_parameters_out string. If we did not explicitly state that the EDA platform 
is to use the values returned by the model (which is sort of obvious) we should 
add it. Then, in the context of the Out parameters, there is no issue of 
Default values since any values defined in the *.ami file will be effectively 
ignored (replaced). Therefore any values specified in the *.ami file for the 
Out parameters serve only as placeholders.

Of course, in the case of InOut and Out parameters within the "Model_Specific" 
branch - as long as we do not disallow it - the EDA platform must not use the 
returned values to affect the simulation. That was extensively discussed in the 
past but, I believe, has not been finalized.

For the "Reserved_Parameters" branch one more issue may need clarification. 
Since the AMI_parameters_out string can be passed from both AMI_Init() and 
AMI_GetWave() functions, do we have clear rules and exceptions for 
AMI_GetWave() to be allowed or not to override the values set by AMI_Init()? 
Alternatively the rules can be set for the EDA platforms. I do not recall it, 
but perhaps this has already been addressed.

Radek

Other related posts: