[ibis-editorial] Question on assumed AMI parameter passing: "all" or "some"?

  • From: "Mirmak, Michael" <michael.mirmak@xxxxxxxxx>
  • To: "ibis-editorial@xxxxxxxxxxxxx" <ibis-editorial@xxxxxxxxxxxxx>
  • Date: Mon, 3 Oct 2022 15:29:25 +0000

There is a potential ambiguity in the specification regarding what parameters 
are passed between the EDA tool and the AMI model executable.

Specifically:

IBIS 7.1, page 223, contains the following text (with added highlighting):

"AMI_parameters_in

The AMI_parameters_in argument is a pointer to a string.  Memory for the string 
is allocated and de-allocated by the EDA tool.  All the input from the AMI 
parameter definition file is passed to the algorithmic model using a string 
that has been formatted as using the tree structure defined below.

The AMI_parameters_in argument must always be present in the AMI_Init function 
call and it must always contain the address of a valid string.  The string must 
always contain at least the root name of the parameters tree, even if there are 
no parameters to pass to the algorithmic model."

If you pass "all the input" to the model, then how could there be "no 
parameters to pass to the algorithmic model"?  Quite a few parameters are 
required (e.g., "GetWave Exists").

Several tools are known to selectively pass only Usage In or Usage InOut to the 
model.  Yet there are other tools which pass the entire parameter tree to the 
model.

Which approach is correct?

The technical impact of the difference is likely small, but could grow in 
future: if models are written assuming only some parameters are expected as 
part of AMI_Parameters_In, then unexpected parameters could cause issues for 
some models.  In addition, should we pass larger structures in future, we may 
want to be more selective to ensure efficiency.

Thoughts?

Thank you!


  *   MM

Other related posts: