Todd, I am searching for truth in your truth table... :-) and have two questions/comments: 1) In what sense did you use the "Use_Init_Output" in your table? In the sense that it controls either the Statistical or the TD flow, or in a sense that it only effects the TD flow? 2) Shouldn't the case below "Note 2" also be valid and be labeled with Note 2? Since Init_Returns_Impulse is False, the output of Init is the same as its input, therefore the value of Use_Init_Output shouldn't matter, we still get the input of Init... Thanks, Arpad ============================================================= ________________________________ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Todd Westerhoff Sent: Monday, April 26, 2010 4:18 PM To: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: What happens when Init_Returns_Impulse = False? Resend ... looks like the graphic got mangled. -------------------- Arpad, Here's a cut at what I think a full truth table could look like: "Invalid" means the combination is not allowed. Use_Init_Output really only has meaning when Init_Returns_Impulse and Getwave_Exists are both true ... you could argue that when either Init_Returns_Impulse or Getwave_Exists is False, Use_Init_Output is N/A. I chose not to represent it that way because I found this representation to be simpler. While I'm not fond of the names of these reserved parameters (I don't like the terms "Init" and "Getwave" much either), there are many models out there already that use them. I'm (personally) not strictly against deprecating these parameter names and replacing them, but there'd better be a darn good argument for it. Since these switches are basically used only by model makers and EDA companies, I'd say we live with the current names and do a better job of documenting how they are to be used. Strict minimalists will point out that since we have three Boolean variables and only four legal states, it ought to be possible to use only two Boolean variables to encode what we need. While I agree that should be possible, I'll also state that I don't want to go there, nor do I think there's any tangible benefit in doing so. Todd. ________________________ Todd Westerhoff VP, Software Products SiSoft 6 Clock Tower Place, Suite 250 Maynard, MA 01754 (978) 461-0449 x24 twesterh@xxxxxxxxxx www.sisoft.com ________________________________ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Monday, April 26, 2010 12:43 PM To: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: What happens when Init_Returns_Impulse = False? Thanks Todd for the "truth table". I think it makes sense, but I wonder what approach we should take to fix the spec. Here is the problem. As the spec is written now, there is no mention that Use_Init_Output applies to time domain simulations only. As a consequence, the first two cases you describe come across as having two controls which have basically the same effect, i.e. duplicate controls. After having gone through the email thread last week I understand now that this was not the intent, but the spec can be interpreted this way without fixing it. So the question is this: We can tailor the spec to the controls or the controls to the spec. Which way should we try to fix this? Should we just change the explanation text in the spec to reflect these intentions and then draw the flow diagrams accordingly, or should try to find a flow diagram that may work in both time domain and statistical modes with perhaps eliminating one or the other of these Booleans? To be honest, I really don't like these two controls the way they do almost the same, and that their name doesn't reflect what the real difference is between them, i.e. that one is only effecting time domain simulations but the other affects both... Thanks, Arpad ======================================================================== ________________________________ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Todd Westerhoff Sent: Friday, April 23, 2010 3:13 PM To: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: What happens when Init_Returns_Impulse = False? Arpad, Sorry for the delay in reply. Given: Use_Init_Output only applies to Time Domain simulation, Then: Init_Returns_Impulse = False, Use_Init_Output = False, Getwave_Exists = True and Init_Returns_Impulse = True, Use_Init_Output = False, Getwave_Exists = True are functionally equivalent from a Time Domain simulation point of view. Extra credit: the two cases are not the same from a Statistical simulation point of view. The eye produced by the first case will not include the model's equalization, while the eye produced by the second case will. Therefore, models that conform to: Init_Returns_Impulse = True, Use_Init_Output = False, Getwave_Exists = True Fully support both Statistical and Time Domain simulation. Is that the answer to the question you were asking? Todd. ________________________ Todd Westerhoff VP, Software Products SiSoft 6 Clock Tower Place, Suite 250 Maynard, MA 01754 (978) 461-0449 x24 twesterh@xxxxxxxxxx www.sisoft.com ________________________________ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Thursday, April 22, 2010 7:31 PM To: IBIS-ATM Subject: [ibis-macro] Re: What happens when Init_Returns_Impulse = False? Todd, In that case, how is Init_Returns_Impulse = False different from Use_Init_Output = False? I admit, I may have to brainwash myself now with the recent revelations about section 2.3, but I would appreciate your (or any one else's) insight on this one... Thanks, Arpad =================================================== ________________________________ From: Todd Westerhoff [mailto:twesterh@xxxxxxxxxx] Sent: Thursday, April 22, 2010 12:13 PM To: Muranyi, Arpad; 'IBIS-ATM' Subject: RE: [ibis-macro] What happens when Init_Returns_Impulse = False? All, As I understand it, Init is expected to modify the impulse response in place in memory. The simulator passes the model a pointer to the impulse response, and uses that same pointer to access the result when the Init call returns control to the simulator. If the model doesn't touch the impulse response at all, it's there in memory just as the simulator supplied it. Todd. ________________________ Todd Westerhoff VP, Software Products SiSoft 6 Clock Tower Place, Suite 250 Maynard, MA 01754 (978) 461-0449 x24 twesterh@xxxxxxxxxx www.sisoft.com ________________________________ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Thursday, April 22, 2010 12:00 PM To: IBIS-ATM Subject: [ibis-macro] What happens when Init_Returns_Impulse = False? I would like to get some ideas from the authors of the AMI specification on what the intent was when Init_Returns_Impulse = False. I would also like to get some suggestions on what the Init function should return when Init_Returns_Impulse = False. Options: - return the same thing that was sent into Init - return impulse response of the filter - return uninitialized memory (garbage or noise) It seems that either the first or second answer may be the correct one if I consider that the calculations are supposed to be done "in place", i.e. in the same memory space where the input was placed. If nothing is done, the memory will still contain the input data in that place. If something is done, like returning the filter only impulse response, we will get that in that memory space. It is hard to turn that memory space into uninitialized memory, unless we use a random number generator to do something that can mimic that effect. Thanks, Arpad ======================================================