Walter, Mike, This is a classic example for why we have so much trouble understanding the specification. The paragraph you quoted below contains the following answers ONLY: - who allocates memory for AMI_parameters_in - who allocates memory for AMI_parameters_out - these arguments are pointers to a string - the string is formatted as a parameter tree - the input from the .ami file is passed to the model using a string Note that the above list does NOT state the following: - through which string (argument) are the parameters of type In go into the model - through which string (argument) do the parameters of type Out come out from the model - through which string (argument) do the parameters of type InOut go into the model - through which string (argument) do the parameters of type InOut come out from the model Whether these answers are obvious or not, I think a well written specification does have to state them. Following the analogy of an I/O buffer in hardware, I can very easily imagine that our InOut parameter may be modified "in place" the same way as we process the impulse_matrix. This thinking is just as "obvious" and logical as the thinking that an InOut is passed to the AMI model in the AMI_parameters_in string, and the model passes a modified COPY of it back in the AMI_parameters_out string. No one can tell (let it be model maker or EDA vendor) what to do based on the way the spec is worded. What if the model maker does it one way and the EDA vendor the other way? Specs (and law documents) usually state every single thing, even those that are obvious, otherwise it can't be used as a spec or law. Let me give you an every-day illustration: Is it obvious that you have to stop at a stop sign? Most obviously yes! Yet I would bet that there is no traffic text book that doesn't include at least one sentence about the stop sign to explain that you must bring your vehicle to a complete halt when you get there. Some might even give you a little more detail on where exactly you have to stop. You don't stop when you first see the sign. If there is a line then you need to stop at the line. But in case you can't see the entire intersection from that location, you must move forward (after you stopped at the lie), and stop again at the position from where you can see the intersection well enough. In addition to these details they may explain what the 3-way and 4-way extension signs mean, etc... Interesting. So much detail about such an obvious traffic sign! And guess what, all this is written down in the traffic law books also, so when you get a ticket they can give you exact references on which section(s) of the law you violated. As opposed to this, think about what goes into the User's Manual of your car. They may say that you need to step on the second pedal (counting right to left) if you want to slow your car down or bring it to a halt, but they will most likely not explain any of the rules about the stop sign. This is how I see our specification too. The rules have to be spelled out in the specification. How you generate the data or how you write your AMI models or EDA software which obey those rules may go into the HOWTO document. According to this, spelling out how the content of the .ami file is split into the In, Out and InOut strings, and how the model and EDA tool is expected to read and write them belongs to the specification, as far as I can tell. Whether you type the .ami file with one finger or generate it automatically with software could be part of a HOWTO document... On the other hand, I don't think any of us would be interested in reading the specification in a BNF form... Arpad =================================================================== From: Walter Katz [mailto:wkatz@xxxxxxxxxx] Sent: Monday, December 06, 2010 10:36 AM To: Muranyi, Arpad; ibis-macro@xxxxxxxxxxxxx Subject: RE: [ibis-macro] Re: About the Typos BIRD comments from Fangyi Arpad, The following describes both the content of AMI_parameters_in and AMI_parameters_out. I think it was always obvious that In and InOut went into AMI_parameters_in and InOut and Out went into AMI_parameters_out. | 3.1.2.6 AMI_parameters (_in and _out) | | Memory for AMI_parameters_in is allocated and de-allocated by the EDA | platform. The memory pointed to by AMI_parameters_out is allocated and | de-allocated by the model. This is a pointer to a string. All the input | from the IBIS AMI parameter file are passed using a string that been | formatted as a parameter tree. | | Examples of the tree parameter passing is: ... Walter From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Mike Steinberger Sent: Monday, December 06, 2010 11:09 AM To: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: About the Typos BIRD comments from Fangyi Mike- I'm going to take this opportunity to remind us all why we have a BNF syntax description in the first place. Back when we were preparing BIRD 104, I needed to provide this explanation at one point, so perhaps now is as good a time as any for a refresher. Obviously BNF is a software technology thing. It describes a syntax in a way which is completely rigorous and precise. It leaves no room for misinterpretation. For example, the developer of the latest version of IBISCHECK knew exactly what we meant, didn't have to ask any questions about the syntax itself, and produced a completely correct parser. From what I could see of other aspects of their work, this person is a thorough professional, so the fact that they got it right came as no surprise to me. As is so often the case, a rigorous and precise statement doesn't exactly make great reading. For example, I don't suppose there are many people who read mathematicians' proofs for the fun of it. At the time, Ambrish requested a "plain English" version of the specification, and I provided it. Note, however, that "plain English" is an oxymoron, and that as carefully as I tried to write that description, there's still room for misinterpretation. I still claim that we're mixing "specification" with "tutorial" in an undisciplined way that will produce a document which does neither job well. If we really want "plain English" text that introduces the specification in a way that's easy to read and learn from, I think that's a fine idea; however, that material should go into a separate tutorial document. My 2c. Mike Steinberger