[ibis-macro] Re: Potential technical errors in Dependency examples

  • From: <mike@xxxxxxxxxxx>
  • To: <michael.mirmak@xxxxxxxxx>, "'IBIS-ATM'" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Fri, 2 Nov 2018 22:33:35 -0400

I think the example and the text are actually correct. We really do have two
different mechanisms whereby AMI models calculate and return values that
depend on other values. Both AMI_Resolve and AMI_Init do that, but the
results are used at different times by the EDA tool.

 

Usage Dep is only for AMI_Resolve, which is called before AMI_Init to help
the EDA tool make some adjustments before producing the analog channel
impulse response. This is why my_file in the example determines which s4p
file to use.

 

Usage Out for Rx_Receiver_Sensitivity means the value must be calculated in
time for the EDA tool to do bit stream recovery. In this example, AMI_Init
determines and outputs Rx_Receiver_Sensitivity, and that determination is
based on other inputs like corner. Hence it "depends" on input parameters,
but it is not the same as a Dep parameter that AMI_Resolve calculates. I
haven't seen anything precluding the possibility that
Rx_Receiver_Sensitivity could change over time, with AMI_GetWave outputting
it for the simulator to adapt bit recovery during simulation. But I don't
know if any serdes do that, and the example doesn't need to mention that
detail anyway.

 

The use of "dependency" and "resolve" in the sentence about AMI_Init seems
unfortunate. That sentence might be changed to:

 

Rx_Receiver_Sensitivity is of usage type Out, and its value is calculated
and output by AMI_Init, based on the Model_Name, my_corner, OP_mode and
bit_time inputs.

 

Mike

 

From: ibis-macro-bounce@xxxxxxxxxxxxx <ibis-macro-bounce@xxxxxxxxxxxxx> On
Behalf Of Mirmak, Michael
Sent: Friday, November 2, 2018 2:45 PM
To: IBIS-ATM (ibis-macro@xxxxxxxxxxxxx) <ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Potential technical errors in Dependency examples

 

(this is a modified version of a mail sent earlier this month to the
Editorial Task Group)

 

Pages 192-193 of the current IBIS 7.0 draft (page 179-180 of IBIS 6.1)
contain a few strange problems with the dependency text and example.  In the
text below, a grammatical error has been corrected, but a technical issue
may remain.

 

In particular, shouldn't the "Rx_Receiver_Sensitivity" be Usage Dep, not
Usage Out?  The explanatory text states that Rx_Receiver_Sensitivity is
dependent on OP_mode, and though the last sentence mentions that
Rx_Receiver_Sensitivity is determined by AMI_Init, it's not clear why this
case has Usage Out if Usage Dep is permitted (and involved).  Is there an
example of where Usage Dep for Rx_Receiver_Sensitivity would be used (it is
a legal option)?  

 

A diagram would very much help here, but I doubt we have the time to include
one.

 

*       MM

 

Relevant text

 

Example:

 

(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 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.

 

 

Other related posts: