Issue Description
Note: This issue is in support of PyBERT Issue 175
There tend to be two primary ways in which the hierarchical structure of an AMI parameter set gets encoded in the actual *.ami file:
Nested Parameters
In this (preferred) case, the *.ami file is actually structured hierarchically:
(example_rx
(Description "Example Rx model w/ hierarchically defined AMI parameters.")
(Reserved_Parameters
...
)
(Model_Specific
(ctle
(mode
(Usage In )
(Type Integer )
(List 0 1 )
(List_Tip "Off" "Manual" )
(Description "CTLE operating mode." )
)
(freq
(Usage In )
(Type Float )
(Range 5000000000.0 1000000000.0 5000000000.0 )
(Description "CTLE peaking frequency (Hz)." )
)
(mag
(Usage In )
(Type Float )
(Range 0.0 0.0 12.0 )
(Description "CTLE peaking magnitude (dB)." )
)
...
)
...
)
)
Encoded Parameter Names
Alternatively, some model makers choose to encode the hierarchical structure of the AMI parameter set, using special parameter naming conventions:
(example_rx
(Description "Example Rx model w/ hierarchically encoded AMI parameter names.")
(Reserved_Parameters
...
)
(Model_Specific
(ctle_mode
(Usage In )
(Type Integer )
(List 0 1 )
(List_Tip "Off" "Manual" )
(Description "CTLE operating mode." )
)
(ctle_freq
(Usage In )
(Type Float )
(Range 5000000000.0 1000000000.0 5000000000.0 )
(Description "CTLE peaking frequency (Hz)." )
)
(ctle_mag
(Usage In )
(Type Float )
(Range 0.0 0.0 12.0 )
(Description "CTLE peaking magnitude (dB)." )
)
...
)
)
The first method (hierarchical *.ami file w/ nested parameter groups) is preferred because it makes the hierarchical structure of the AMI parameter set explicit and does not depend on any particular parameter name encoding scheme, which must then be translated into a parser.
Indeed, properly hierarchically written *.ami files pose no problem for PyBERT/PyIBIS-AMI, which simply reflects their hierarchy in the GUI model configuration dialog it creates, resulting in a well balanced and spatially pleasing layout.
However, *.ami files written using the encoded parameter name scheme pose a problem, as their flat nature often results in model confiugration dialogs that are either too wide or too tall for the screen, causing the user to have to annoyingly pan left/right, or up/down, in order to finish configuring the model.
The goal of this issue is to better accommodate those incorrectly written, flat *.ami files, by somehow intelligently decoding the parameter naming scheme into the original parameter hierarchy.
Issue Description
Note: This issue is in support of PyBERT Issue 175
There tend to be two primary ways in which the hierarchical structure of an AMI parameter set gets encoded in the actual
*.amifile:Nested Parameters
In this (preferred) case, the
*.amifile is actually structured hierarchically:Encoded Parameter Names
Alternatively, some model makers choose to encode the hierarchical structure of the AMI parameter set, using special parameter naming conventions:
The first method (hierarchical
*.amifile w/ nested parameter groups) is preferred because it makes the hierarchical structure of the AMI parameter set explicit and does not depend on any particular parameter name encoding scheme, which must then be translated into a parser.Indeed, properly hierarchically written
*.amifiles pose no problem for PyBERT/PyIBIS-AMI, which simply reflects their hierarchy in the GUI model configuration dialog it creates, resulting in a well balanced and spatially pleasing layout.However,
*.amifiles written using the encoded parameter name scheme pose a problem, as their flat nature often results in model confiugration dialogs that are either too wide or too tall for the screen, causing the user to have to annoyingly pan left/right, or up/down, in order to finish configuring the model.The goal of this issue is to better accommodate those incorrectly written, flat
*.amifiles, by somehow intelligently decoding the parameter naming scheme into the original parameter hierarchy.