Arpad, Again this should be very simple. If a parameter Usage is In or InOut, the EDA tool is expected to include it in the parameters_in string. The DLL should ignore anything that is not an In or InOut. If the parameter Usage is Out or InOut the DLL should include it in the parameters_out string. The EDA tool should ignore anything that is not an Out or InOut. The DLL may report an error or use some internal default value if an In or InOut is not included in the parameters_in string. The EDA Tool may report an error or use some internal default value if an Out or InOut is not included in the parameters_out string. Walter From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Monday, December 13, 2010 8:33 PM To: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: About the Typos BIRD comments from Fangyi Radek, and Everyone, I am trying to clean up the Typos BIRD draft and I have a basic question about the parameter strings (in/out). This goes along the lines of comment d) from Radek below. If we say that the AMI executable should gracefully ignore everything that it doesn't need, we do not have to spell out anything about what should not be included in the AMI parameters in string. The ONLY rule we need to mention is that the AMI parameter branches are converted to leaf/value pairs. The tool could include the 'Reserved_parameters' and/or 'Model_specific' branch names as well as Usage Info, and Out, etc. in the parameter string, because they will have to be ignored gracefully anyway, right? The same question goes for the AMI_parameters_out string. If we want to be consistent, we should also say that the EDA tool should ignore anything in that string that is not a Usage Out leaf/value pair. Based on that the AMI executable could return anything it wants to, including the entire string that it received as the input. I have seen models which did that, and this was actually a nice feature for debugging purposes, because it gave me a cozy feeling that the model "understood" what I passed into it. And if the model makers are smart, they will return the correct spelling of the input string in case it was passed into the model incorrectly. While this approach is useful, it raises the question, what is really the meaning of Usage In, Out, as compared with the meaning of parameters_in and parameters_out? In the first case In and Out refers to the direction the parameter is supposed to be passed, but in the second, the meaning is referring to the direction in which the parameter string is traveling. These two are not the same, and become inconsistent if we disregard the Usage In/Out and include both Usage In/Out in both strings. This bothers my purist thinking a little, even though I like its benefits, as I described it above. QUESTION: What should we say in our AMI specification? Should the EDA tool pass a rigorously filtered string to the AMI executable (including only Usage In/InOut), or should it pass anything that is in the .ami file? Similarly, should we say in the AMI specification that the AMI executable is only allowed to pass back to the EDA tool Usage Out parameters, or should we allow the model to pass back anything it wants, including the possibility to repeat back the entire AMI_parameters_in string (with modifications for the Usage Out parameters)? Thanks, Arpad ============================================================ From: radek_biernacki@xxxxxxxxxxx [mailto:radek_biernacki@xxxxxxxxxxx] Sent: Monday, December 06, 2010 7:57 PM To: Muranyi, Arpad; ibis-macro@xxxxxxxxxxxxx Subject: RE: [ibis-macro] Re: About the Typos BIRD comments from Fangyi Hi Arpad, Sorry for a delayed reply. I would suggest expanding the text to cover the following issues: (a) description of how the "Reserved Parameters" and "Model Specific" names are to be not included: if a name is not included does it mean that the corresponding pair of parentheses is also removed (I think so - but we need to say so). Perhaps we could define it as "branch collapsing"), (b) the opening sentence seems to cover both the "_in" and the "_out" strings, yet in Item 3 the parameters of Usage Out are excluded; perhaps we can cover each case separately, (c) we need to say whether all "In" and "InOut" parameters in the case of the "_in" string, and all "InOut" and "Out" in the case of the "_out" string shall be included, and whether the order shall be consistent with the AMI file, (d) we need to say whether the DLL shall gracefully ignore any other parameter whose name may or may even not be in the AMI file (if so, we do not need to say that parameters other than (c) need to be omitted, (e) for Item 4 we need to define the process of making branches to become leaves, (f) we need to precisely define Value (and Default) for parameters whose format requires more than one number to constitute a value, or we may coin another terms such as "composite value". Radek From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Friday, December 03, 2010 8:32 AM To: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: About the Typos BIRD comments from Fangyi Hello AMI Experts, This thread stopped a day or so ago without reaching a conclusion. I am going to summarize the questions I would like to get answered. 1) When does a branch become an "AMI parameter"? Does this have to be spelled out in the IBIS-ATM specification, or does this belong to a Cookbook or HOWTO document? Currently this is what I have in the Typos BIRD draft: |* A branch in the .ami file is an "AMI Parameter" if it |* contains the leaves Type, Usage, and any of the following |* leaves: |* |* Default |* <data_format> or Format <data_format> |* |* and does not contain another branch. A branch which |* contains one or more sub-branches may only contain the |* Description <string> leaf/value pair in addition to the |* sub-branches. 2) What is supposed to be passed into the AMI executable model in the parameter string, and what is supposed to be omitted from this string? Does this have to be spelled out in the IBIS-ATM specification, or does this belong to a Cookbook or HOWTO document? Currently this is what I have in the Typos BIRD draft: ************************************************************************** ****** REMOVE THIS PARAGRAPH if the next few are agreed on:**************************** |* The tree data structure passed in and out of the DLL |* described in section 3.1.2.6 of Section 10 of this document |* is similar to the tree data structure in the .ami file except |* the 'Reserved_Parameters' and 'Model_Specific' branch names are |* not included, the "AMI Parameter" branches become leaves and |* the "AMI parameters" of Usage Info and Out are not included. END OF REMOVED PARAGRAPH******************************************************** ************************************************************************** ****** |* |* The parameter string passed in and out of the DLL (described in |* section 3.1.2.6 of Section 10 of this document) is formatted |* the same way as the tree data structure in the .ami file with |* the following exceptions: |* |* 1) The "Reserved_Parameters" and "Model_Specific" branch |* names are not included |* 2) None of the Description leaf/value pairs are included |* 3) AMI Parameter branches or sub branches with Usage Info |* or Usage Out are omitted, but all other branches or sub |* branches are included |* 4) AMI Parameter branches with Usage In or Usage InOut |* become leaves |* 3) Define how/where the DLL returns Out or InOut parameters and how/where the EDA tool is supposed to look for these values. Does this have to be spelled out in the IBIS-ATM specification, or does this belong to a Cookbook or HOWTO document? There is nothing on this topic in the Typos BIRD draft, nor can I find anything about this in the current IBIS specification. Thanks, Arpad ========================================================================== ====