Mike,
If I remember correctly, “my_file” used to be “Tstonefile” in this example, and
I raised the same questions as you did. Instead of changing it to Ts4file and
moving it to the Reserved Parameters section, it was decided to change it to
“my_file” because the purpose of the file could be all kinds of things, other
than
a BIRD158 style buffer model. We just forgot to change the Description after
we did that. Even though I agree with you, I think since the group decided to
handle the situation this way, we should just correct the Description so that
it would not make people think that this is a BIRD158 style buffer example.
Thanks,
Arpad
================================================================
From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] ;
On Behalf Of Mike LaBonte
Sent: Wednesday, November 21, 2018 9:01 PM
To: ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Usage Dep example
All,
Making an editorial pass through IBIS 7.0, I came across a slightly technical
question. The example for AMI Usage Dep has AMI_Resolve setting the name of the
analog model file based on other inputs:
(Rx_model
(Reserved_Parameters
(AMI_Version (Usage Info) (Type String) (Value "7.0")
(Description "This is a v7.0 AMI file."))
(Resolve_Exists (Usage Info) (Type Boolean) (Value True)
(Description "Indicates whether the executable model implements
AMI_Resolve."))
(Model_Name (Usage In) (Type String) (Value "ignore_me")
(Description "IBIS model name"))
(Rx_Receiver_Sensitivity (Usage Out) (Type Float) (Range 0.0 0.0 0.01)
(Description "Value depends on OP_mode and data rate"))
(Init_Returns_Impulse (Usage Info) (Type Boolean) (Default True)
(Description "Impulse response is returned"))
(GetWave_Exists (Usage Info) (Type Boolean) (Default True)
(Description "GetWave Exists"))
)
(Model_Specific
(my_file (Usage Dep) (Type String) (Value "ignore_me.s4p")
(Description "Rx analog model. Value depends on OP_mode"))
(my_corner (Usage In) (Type String) (Corner "Typ" "Min" "Max")
(Description "Informs the executable model what[ML1] corner is selected by
user"))
(OP_mode (Usage In) (Type Integer) (List 0 1 2 3)
(Description "Operation mode"))
…
)
)
In this example, the Rx analog model is represented with a 4-port Touchstone
file specified by parameter my_file, Both Rx_Receiver_Sensitivity and my_file
depend on the legacy IBIS model name, parameter my_corner, and parameter
OP_mode, which specifies the device operation mode. Rx_Receiver_Sensitivity
also depends on bit_time. Parameters Model_Name, my_corner and OP_mode, having
usage type In, are included in both input parameter strings to AMI_Resolve and
AMI_Init. my_file is of usage type Dep, and its dependency on Model_Name,
my_corner and OP_mode is resolved in AMI_Resolve, which returns the value of
my_file. Rx_Receiver_Sensitivity is of usage type Out, and its dependency on
Model_Name, my_corner, OP_mode and bit_time is resolved in AMI_Init, which
returns the value of Rx_Receiver_Sensitivity.
My question is, now that we have Ts4File to formally specify the name of an
analog model file, should "my_file" above be replaced by "Ts4File", which would
also require moving it to Reserved_Parameters? As it stands, this is not really
a legitimate example. It is the EDA tool that must know the analog model to get
the channel impulse response, and there is no way an EDA tool should be using
my_file, or any Model_Specific parameter, for that. I can't think of any
example where a Model_Specific parameter would need to be Usage Dep.
Mike
________________________________
[ML1]