Skip to content

AMI Parameter Configurator window one line only #53

@capn-freako

Description

@capn-freako

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions