Bob, I am not sure all previous models would stop working if Default for Corner would be illegal starting in v5.1. We do have a version number. Wouldn't that sort things out? Thanks, Arpad ========================================================== From: Bob Ross [mailto:bob@xxxxxxxxxxxxx] Sent: Wednesday, March 30, 2011 5:12 PM To: Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] Re: Format Corner - Interpretation? Arpad: Your analysis is absolutely correct. Also, we are dealing overall with a specification where not all people were on the same page - literally, nor did we have time to fully analyze the interaction impact of what was specified. That is evident in released models and spec. interpretations. Default was poorly thought out, and we are recovering from it with solutions compromising between perfection and what people have implemented. My overall recommendation is to keep default optional, as is currently proposed, to avoid breaking models that work. In most cases, where used, Default just repeats the typical value. For Corner, it makes no sense, but tools could be advised to treat Default as an (unlikely) but intended alternative to Typ. That also applies to List, Range, Step, and Increment - if Default is different than the Typ value. To many changes from allowed to illegal will break many models for unimportant reasons. Bob From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Wednesday, March 30, 2011 11:28 AM To: IBIS-ATM Subject: [ibis-macro] Re: Format Corner - Interpretation? Bob, You are making good points regarding Default with Corner, but the reason I was questioning this was from a different perspective. Think about it this way: Default is usually used for multi-valued parameters where the user has to make a choice. Default serves the purpose for having a value in absence of the user's selection. Put this thinking together with Corner, but first a little background. Reading the existing specification I had no clue that Corner was actually assigned by the tool (the note on pg. 141 doesn't say anything about that). I only started to get some clues about that when I began to study how the Dependency Tables work. Some of the examples use Corner as a control input for the table and I was wondering why Corner was not defined in the same .ami file (as required for all Dependency Table parameters). Then I realized that this was one of those "predefined" parameters listed in BIRD 124. But there is still no description in BIRD 124 about how the predefined parameters get their values, etc... My "detective work" was misguided by the presence of the Default value in some of those models which contain Corner. The presence of Default gave me the impression that Corner may be a user selection through the same GUI which allows them to make choices for the other AMI Algorithmic Model parameters. This "evidence" in my detective work contradicts the logic that Corner is assigned by the tool. There is no situation when a tool wouldn't know what corner it simulates, therefore there is no need for Default, right? Now, think about an EDA vendor who needs to implement all this. If the conclusion is that the tool makes this assignment, the value of Corner should always be known. But if the existence of Default is an indication that this is a user selection, then we have to make a GUI entry for it. Taking this one step further, we can also ask the question: does the existence of Default imply that regardless of what the tool uses for Corner in the analog simulation engine to generate the channel characterization impulse response, it should allow the user to select a (different) Corner for the Algorithmic Model simulation engine through the AMI parameter GUI? To me doesn't make sense at all, but it is certainly a possible conclusion based on what information is available in the specification. I think we have to address this issue and correct the specification. This is why I am asking all these questions about these rules. So while your reasons for keeping Default may be doable from a spec perspective and for keeping the existing models compatible with the new spec, I would like to find out what was the intent of the authors when the AMI specification was written regarding Corner. Given our track record I don't know whether the appearance of Default in certain models is only a "left hand doesn't know what the right hand does", a "senior moment" or intentional. Consequently I don't know which reasoning to apply from my "detective work" to my interpretation of the specification. I would like to identify a consistent and reasonable solution for this confusing situation for Corner. Thanks, Arpad ============================================================== From: Bob Ross [mailto:bob@xxxxxxxxxxxxx] Sent: Wednesday, March 30, 2011 11:00 AM To: Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] Re: Format Corner - Interpretation? Arpad: We would do exactly as you state. That is not my concern. All entries in #6 start with a Typ value. The Optional Default is consistent in all cases as an override for some parameters. My concern is consistency of our rules and existing applications. I believe many models already redundantly use Corner and Default. There is no reason for change, and the Default overrule interpretation can be valid for some analysis for all of these cases. In the cases for #7, there is no definition of "Typ" entry. So the Default exclusion rule is valid (as with the exclusive OR rule with Value in #4). I think Default was not fully thought out in its relationship to all the other <data_format> parameters, but creating a spider-web of inconsistent rules for our primitive elements does more harm than good. Bob From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Wednesday, March 30, 2011 8:39 AM To: IBIS-ATM Subject: [ibis-macro] Re: Format Corner - Interpretation? Bob, I didn't remember that these "Notes" mentioned the same as the text I quoted for change. I don't see why we couldn't delete "Corner" from #6 and add to #7 in these notes. Am I missing something? Thanks, Arpad ========================================================= From: Bob Ross [mailto:bob@xxxxxxxxxxxxx] Sent: Wednesday, March 30, 2011 10:34 AM To: wkatz@xxxxxxxxxx; Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] Re: Format Corner - Interpretation? All: My only concern is now we have an inconsistent rule. Here is where this issue fits in: |* All parameters must be in the following format: |* |* (parameter_name (Usage <usage>) |* (Type <data_type>) |* ({Format} <data_format> <data>) |* (Default <value>) |* (Description <string>)) |* |* Notes: |* 1) The order of the entries is not important. |* 2) The word Format is optional as indicated by the curly |* braces "{" and "}" and may be ignored by the EDA tools. |* (The examples do not show the word Format). |* 3) Certain reserved parameter names allow only certain |* <data_format> selections, as described below. |* 4) The <data_format> selection of Value and Default are |* always mutually exclusive. Certain parameters may require |* Value or Default, but Value and Default are not allowed to |* be present together for the same parameter. |* 5) <data_format> is always required for selections other |* than Value. |* 6) Default is optional for <data_format> Range, List, Corner, |* Increment and Steps. |* 7) Default is not allowed for <data_format> Table, Gaussian, |* Dual-Dirac and DjRj. |* List, Range, and Corner, Increment, and Steps all have the first entry defined as a "Typ" value. The same logic applies for Corner in rule 6.. You may choose the slow or fast value for the Default just as you might choose any of the non-Typ values for the other <data_format> entries. So I think the rule should remain as is. Bob From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz Sent: Wednesday, March 30, 2011 8:18 AM To: Arpad_Muranyi@xxxxxxxxxx; 'IBIS-ATM' Subject: [ibis-macro] Re: Format Corner - Interpretation? Arpad, I agree that (Default Value) does not make much sense for (Corner typ slow fast). Walter From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Wednesday, March 30, 2011 10:55 AM To: IBIS-ATM Subject: [ibis-macro] Re: Format Corner - Interpretation? Walter, I checked in BIRD 127 (Out Typos BIRD) and found this in it: | Default <value>: |* Default and Value are mutually exclusive, and must not be used together |* for the same parameter. Default is not allowed for Table, Gaussian, |* Dual-Dirac and DjRj. Default is optional for Range, List, Corner, |* Increment and Steps. If a Default <value> is specified, its value must |* have the same Type as the parameter. For example, if Type is Boolean, |* <value> must be either True or False, if Type is Integer, <value> must |* be an integer. Also, if Default is specified, <value> must be a member |* of the set of allowed values of the parameter. If Default is not |* specified, the default value of the parameters will be the <typ> value. I still wonder if Default makes sense for Corner. Wouldn't a tool always know what corner they are working with, therefore wouldn't Corner always be set to a known value? What do you think? Thanks, Arpad ================================================== From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Tuesday, March 29, 2011 1:52 PM To: IBIS-ATM Subject: [ibis-macro] Re: Format Corner - Interpretation? Walter, Another question: Does a parameter of Type Corner need Default? Or is it not needed, or even prohibited? When would a tool make use of a default value for them? The tool always knows what corner it simulates, right? Thanks, Arpad ======================================================== From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Tuesday, March 29, 2011 1:39 PM To: IBIS-ATM Subject: [ibis-macro] Re: Format Corner - Interpretation? Walter, Thanks for the answer. However, I think that's not the end of the story yet... If the value of corner (and the rest of the predefined parameters) are set by the tool, the following statements don't make sense in BIRD 124: | "xyz" is a predefined AMI parameter of Type String and Usage Info (Usage Info) is information that goes from the .ami file to the tool. If these parameters come FROM the tool they can't be Info. Thanks, Arpad ============================================================ From: Walter Katz [mailto:wkatz@xxxxxxxxxx] Sent: Tuesday, March 29, 2011 1:22 PM To: Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] Format Corner - Interpretation? Arpad, Corner is determined by the EDA tool. Walter From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Tuesday, March 29, 2011 2:15 PM To: IBIS-ATM Subject: [ibis-macro] Format Corner - Interpretation? Hello AMI experts, I stumbled on a question regarding how Format Corner supposed to be interpreted by an EDA tool. Pg. 140 of the IBIS specification say this: and pg. 141 has this: Then on pg. 146 I see this: and on pg. 147 I see this: In BIRD 124 I read the following: | "[Corner]" is a predefined AMI parameter of Type String and Usage Info that can | be used to create an input column in a dependency table. It has a List format with | the allowed values "Typ", "Slow" and "Fast". but I don't see any text in the Specification or the BIRD that explains how "Corner" is predefined and from where and how it gets it value. Could someone explain this to me please? It seems that this needs another clarification BIRD... Thanks, Arpad ===============================================================