[ibis-macro] Suspect example for branches

  • From: "Mirmak, Michael" <michael.mirmak@xxxxxxxxx>
  • To: "IBIS-ATM (ibis-macro@xxxxxxxxxxxxx)" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Wed, 16 Nov 2016 02:01:11 +0000

On page 209 of the current 6.1 IBIS document, under "Model Specific 
Parameters", the following example is shown:



(Model_Specific
   (CTLE
      (Description "CTLE consists of two selectable sets of Poles and Zeros")
      (Row (Range 0 0 1) (Type Integer) (Usage InOut) (Description "Two CTLEs"))
      (Poles (Usage In) (Description "CTLE Poles")
         (Type Integer Float Float Float Float Float Float)
         (Table
         (Labels "Row" "Real_1" "Imag_1" "Real_2" "Imag_2" "Real_3" "Imag_3")
                  (0   -3.06e+9  9.94e+9 -2.91e+9 5.94e+9  -1.36e+9  0.0)
                  (1   -1.03e+10 0.0     -4.21e+9 5.42e+9   0.0      0.0)
         )
      )
      (Zeros (Usage In) (Description "CTLE Zeros")
         (Type Integer Float Float Float Float)
         (Table
         (Labels "Row" "Real_1" "Imag_1" "Real_2" "Imag_2")
                  (0  -3.62e+9    0.0    -2.33e+9  6.68e+9)
                  (1  -2.93e+9    1.10e+9 0.0      0.0)
         )
      )
   )
)



This example is curious.  It shows how branches may be created that include 
sub-branches that define Model Specific Parameters (e.g., "CTLE" is a branch, 
with sub-branches "Row", "Poles", and "Zeros").



Unfortunately, I believe this example is highly misleading.  The description 
implies that the subparameter Row, acting as an input, selects which specific 
Table rows from sub-parameters Poles and Zeros should be used in a given 
simulation.  In other words, Row is not a reserved word and is implied to 
control in some way which specific rows for Poles and Zeros the EDA tool 
selects: if Row is 0, then row 0 of Poles and row 0 of Zeros should be 
automatically selected.



However, these are inputs from the user to the tool and eventually to the 
executable model file.  How would an EDA tool "know" that the setting of Row 
controls the row to use for the Tables Poles and/or Zeros?  From what I can 
tell, the EDA tool will read in Row, Poles and Zeros as independent 
model-specific parameters at the same hierarchy level.  A user could 
theoretically select Row to be 0 and then Poles and Zeros to be each 1, without 
any issue being flagged by the tool (the executable model file may report 
something).



This example have been an early attempt to express dependent parameters before 
Usage Dep was added.  If that's the case, then this example should be updated 
to use Usage Dep.  If not, then this example still needs scrubbing to clarify 
how the relationship between Row, Poles and Zeros is controlled.



Am I missing something here?



-          MM

Other related posts: