Mike, Are you sure about "no name can appear in both Reserved_Parameters and Model_Specific"? I am not aware of anything like that in the spec. Can you point me to a page number? Regarding "as long as we allow only one root", I thought we agreed in the meeting on 4/3 that we will allow multiple trees within a parameter file or within the new keywords [Begin Parameter Trees]/[End Parameter Trees] surrounding trees if they are there in the .ibs file. If this whole concept of generalization requires the inclusion of file names in the parameter reference, I think it would be kind of funny to start with the file name, then have the root name, but skip the Reserved/Model specific branch names and continue with the rest of the branches. I would much rather just include them all. This would eliminate an unnecessary "exception rule" to remember for all model makers, and parser developer. Also, keep in mind that for parameter trees used for other than AMI purposes, we might end up not using these two branches (Reserved and Model_Specific), and then this skipping rules can become a nightmare. Regarding the separator character, I feel the same about the parentheses as you. They come in pairs (open and close) which is an easy source of error, plus it makes the line longer if there are a lot of them. But I don't think we can use the dot "." because those are used in file names. I checked, semicolons ":" are illegal in file names, so those might be a safe character to use for this purpose, but I am open to suggestions. Thanks, Arpad ============================================================================ From: labonte.mike@xxxxxxxxx [mailto:labonte.mike@xxxxxxxxx] On Behalf Of Mike LaBonte Sent: Wednesday, April 11, 2012 2:37 PM To: Muranyi, Arpad Cc: IBIS-ATM Subject: Re: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Yes, specifying the full path from the root on down would completely eliminate the need to do any searching at all to find a value. However, since no name can appear in both Reserved_Parameters and Model_Specific, that particular level need not be specified to resolve ambiguity. And neither does the root name have to be specified to resolve ambiguity, as long as we allow only one root. In fact I am a bit queasy about depending on root name matching, because in LISP style data formats the very first "car" atom is usually irrelevant, just a placeholder. So it probably makes sense to specify only the relative path from below Reserved_Parameters/Model_Specific on down, and have the tools checking both trees to find the value. As for whether to use parentheses or dots, I am OK with either. Dots take less space and there is some precedent for them in that they appear in examples in the spec, although I see no place where dots are formally specified in IBIS as a separator. Parentheses serve as a visual reminder that you are invoking AMI style parameters. But they also introduce one more way to mess up an IBIS file, failure to balance the redundant right parentheses. Mike On Tue, Apr 10, 2012 at 10:26 PM, Muranyi, Arpad <Arpad_Muranyi@xxxxxxxxxx<mailto:Arpad_Muranyi@xxxxxxxxxx>> wrote: Yes, that is an equivalent. But I don't want to introduce too many different ways to achieve the same thing... Arpad ================================================== -----Original Message----- From: Walter Katz [mailto:wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx>] Sent: Tuesday, April 10, 2012 9:21 PM To: Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Arpad, Or thisfile.ibs(TreeRootName(Model_Specific(Branch1(Branch2(Vinh)))))) Then if the AMI file in the executable statement was my_ami.ami you would suggest: my_ami.ami (TreeRootName(Model_Specific(Branch1(Branch2(Vinh)))))) my shortcut would be: AMIfile(Branch1(Branch2(Vinh))) A nose by any other name would still smell. Walter -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> [mailto:ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx>] On Behalf Of Muranyi, Arpad Sent: Tuesday, April 10, 2012 9:43 PM To: 'IBIS-ATM' Subject: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Walter, I was responding to your example: (Root.(Model_Specific(Tap(-1 (Range 0 -.4 1.) (Usage In) (Type Float))) is represented as Tap.-1 in Labels (e.g. "Tap.-2 Out_PWL") where these is a dot after "Root". It wasn't clear to me why you put it there since you also had an open parentheses, but I thought you "meant it". Either way, I don't want to go back to the "AMIfile()" syntax now that we started going down the path of generalizing this whole thing. I think the best might be to do this: thisfile.ibs(TreeRootName(Model_Specific(Branch1(Branch2(Vinh))))) or thisfile.ibs:TreeRootName(Model_Specific(Branch1(Branch2(Vinh))))) or thisfile.ibs:TreeRootName:Model_Specific:Branch1:Branch2:Vinh or thisfile.ibs:TreeRootName(Model_Specific:Branch1:Branch2:Vinh) or anything along those lines... Thanks, Arpad ==================================================================== -----Original Message----- From: Walter Katz [mailto:wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx>] Sent: Tuesday, April 10, 2012 8:23 PM To: Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Arpad, The dot is in the parameter name, which is in (). So there is no parsing problem at all. thisfile.ibs:TreeRootName(Model_Specific(dfe.mode)) I do strongly believe that in the case of an IBIS AMI [Model], all that is required is: AMIfile(dfe.mode) This shortcut is rigorously accurate, since we already have the constraint of leaving off (Model_Specific in the calls to the BNF. We should consider adding to IBIS 5.2 the rule that a branch or parameter off (Reserved_Parameter cannot be the same name as a branch or parameter off (Model_Specific. I know this is going back to your original proposal which is now a shortcut to you more general rule for accessing other parameter tree structures which need not follow the context rule we put into the .ami parameter tree requiring a Reserved and Model Specific branch. Walter -----Original Message----- From: Muranyi, Arpad [mailto:Arpad_Muranyi@xxxxxxxxxx<mailto:Arpad_Muranyi@xxxxxxxxxx>] Sent: Tuesday, April 10, 2012 9:08 PM To: Walter Katz; 'IBIS-ATM' Subject: RE: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Walter, The dot "." might not work very well as the separator character because it is a legal character in file names. This is why I was originally thinking of using the semicolon ":", but I am beginning to wonder if we would be better off using parentheses. Thanks, Arpad ================================================================ -----Original Message----- From: Walter Katz [mailto:wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx>] Sent: Tuesday, April 10, 2012 8:04 PM To: Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Mike, "dfe.mode" and "agc.mode" are the correct syntax. This is even mentioned in the last page of BIRD 150: Note that Hierarchical Parameter Names are represented using "." as the hierarchical delimiter. For example, the name of the parameter (Root .(Model_Specific(Tap(-1 (Range 0 -.4 1.) (Usage In) (Type Float))) is represented as Tap.-1 in Labels (e.g. "Tap.-2 Out_PWL"). Walter -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> [mailto:ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx>] On Behalf Of Muranyi, Arpad Sent: Tuesday, April 10, 2012 7:56 PM To: IBIS-ATM Subject: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Mike, The next question then is "how far up" do we need to go from the parameter name in the tree to have a "fully qualified" reference? I can see that the same parameter name might appear in the Reserved_Parameters branch as well as in the Model_Specific branch. I don't recall the spec prohibiting that either... So should this parameter reference then include basically the whole "nine yards" after the TreeRootName? For example, if we had a parameter tree like this: [Begin Parameter Trees] (TreeRootName (Description "Converter_Parameters illustration") (Model_Specific (TstoneFile (Usage In)(List "Typ.s4p" "Min.s4p" "Max.s4p" "SSS.s4p" "FFF.s4p")(Type String) (Vinh (Usage In)(List 0.8 0.7 0.9)(Type Float) (Vinl (Usage In)(List 0.2 0.1 0.3)(Type Float) (R1 (Usage In)(Range 50 45 55)(Type Float) (Trf (Usage In)(Value 10.0e-12)(Type Float)) ) | End Model_Specific ) [End Parameter Trees] should the assignment reference look like this: thisfile.ibs:TreeRootName(Model_Specific(Vinh)) regardless of whether "Vinh" appears only once or multiple times within the tree? A refinement detail for the syntax is the question of what character should be used as the separator character? I had a semicolon between the file name and the TreeRootName above, but I wonder whether we should use the same separator character in the entire reference syntax, like this: thisfile.ibs(TreeRootName(Model_Specific(Vinh))) or thisfile.ibs:TreeRootName:Model_Specific:Vinh Comments and suggestions are welcome from anyone. Thanks, Arpad ============================================================= -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> [mailto:ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx>] On Behalf Of Muranyi, Arpad Sent: Tuesday, April 10, 2012 6:33 PM To: IBIS-ATM Subject: [ibis-macro] Re: BIRD 117 AMI parameter uniqueness Mike, You are making a good point. But instead of resolving this on the D_to_A line, as you suggested: D_to_A D_drive my_drive my_ref (Vd2a(low)) (Vd2a(high)) (Td2a(fall)) (Td2a(rise)) Typ this should be resolved on the parameter assignment line: Converter_Parameters MyVinl = thisfile.ibs:TreeRootName(Vd2a(high)) because the converter parameter name on the D_to_A line is just a parameter name in the .ibs file (defined by the "Converter_Parameters" subparameter), not the parameter name in the parameter tree... Thanks, Arpad ============================================================= -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> [mailto:ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx>] On Behalf Of Mike LaBonte Sent: Saturday, April 07, 2012 8:03 AM To: IBIS-ATM Subject: [ibis-macro] BIRD 117 AMI parameter uniqueness As we have been discussing BIRD 117, which offers a way to reference AMI-style parameters trees, I am wondering if we might suffer from name ambiguity. Consider this fragment of a .ami file: (Model_Specific (dfe (mode (Usage In)(Type Integer)(List 0 1)(Description "DFE on/off control")) ) (agc (mode (Usage In)(Type Integer)(List 0 1)(Description "AGC on/off control")) ) ) The parameter "mode" appears twice, but as far as I can tell that is legal because it follows the BIRD 127 rule that "Each sub-branch of a branch must have a unique name.". I can't find any rule disallowing two parameters with the same name in different branches. EDA tools handle this ambiguity by using a syntax like "dfe.mode" and "agc.mode" when giving users control. But nothing like that is suggested in BIRD 117. The examples there are simple parameter names like "MyTrise". It seems it would be up to the EDA tool to walk through the various branch levels until it finds a parameter at any level with a matching name. If only one is found, great. If more than one is found ... then what? I would feel more comfortable if parameters were always referenced by full hierarchy. For example: | D_to_A d_port port1 port2 vlow vhigh trise tfall corner_name D_to_A D_drive my_drive my_ref MyVlow MyVhigh1 MyTfall MyTrise Typ could be... | D_to_A d_port port1 port2 vlow vhigh trise tfall corner_name D_to_A D_drive my_drive my_ref (Vlow) (Vhigh1) (Tfall) (Trise) Typ or... | D_to_A d_port port1 port2 vlow vhigh trise tfall corner_name D_to_A D_drive my_drive my_ref (Vd2a(low)) (Vd2a(high)) (Td2a(fall)) (Td2a(rise)) Typ depending on where the parameters fall in the tree hierarchy. Mike --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx<mailto:ibis-macro-request@xxxxxxxxxxxxx> Subject: unsubscribe --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx<mailto:ibis-macro-request@xxxxxxxxxxxxx> Subject: unsubscribe --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx<mailto:ibis-macro-request@xxxxxxxxxxxxx> Subject: unsubscribe --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx<mailto:ibis-macro-request@xxxxxxxxxxxxx> Subject: unsubscribe --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx<mailto:ibis-macro-request@xxxxxxxxxxxxx> Subject: unsubscribe