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