In my last post, when I said: "that's the wave I always understood it" I meant to say: "that's the way I've always understood it" Knowing me, you might well have assumed it was merely a bad pun, but it really was a typo. 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 Todd Westerhoff Sent: Thursday, April 22, 2010 5:37 PM To: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Fangyi, There's an important historical point worth mentioning here. The flow described in section 2.3 of the current 5.0 spec is a time-domain simulation flow. If you look at the paragraph right under the 2.3 heading, it says: "The following steps are defined as the reference simulation flow. Other methods of calling models and processing results may be employed, but the final simulation waveforms are expected to match the waveforms produced by the reference simulation flow." "Waveforms" in this case means the simulated response to actual stimulus patterns, not the impulse / pulse response used by a Statistical simulation engine. I'll readily admit I'm splitting linguistic hairs, but that's the wave I've always understood it. Section 2.3 was created in direct response to issues we had running IBIS-AMI models in both the SiSoft and Cadence IBIS-AMI toolkits; issues that resulted in the definition of the Use_Init_Output parameter. Tests with both toolkits in early 2008 showed that, in effect, SiSoft had assumed Use_Init_Output would always be False, while Cadence had assumed that Use_Init_Output would always be True. Adding this Use_Init_Output parameter to the spec allowed the model maker to declare (for models that supported both Init and Getwave) whether the Init and Getwave calls were to be considered independent (i.e. the model supported both Statistical and Time-Domain simulation) or whether the calls needed to be chained together (i.e. part of the model was in Init, part of the model was in Getwave). We saw merit in both methods of model development, and allowed the model maker to declare which method they had followed. You are correct; the intent was that Use_Init_Output would have no effect on a Statistical simulation, and would affect Time-Domain simulation only. The 5.0 spec doesn't explicitly define a Statistical simulation flow, although it does establish all the model functions and controls needed to enable it. At present, there are both tools and models in the market that comply with the 5.0 spec and support Statistical simulation. That being the case, it makes sense to clarify the specification and the reference flow for both Statistical and Time-Domain simulation, which is exactly what the flow discussions (and flow diagrams) were intended to do. Hope that helps, 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 fangyi_rao@xxxxxxxxxxx Sent: Thursday, April 22, 2010 2:17 PM To: Arpad_Muranyi@xxxxxxxxxx; ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Hi, Arpad; Ambrish's flow is not about moving Tx Use_Init_Output to the left or right in your flow chart. If I understand him correctly, he was suggesting: * In statistical simulation, Use_Init_Output has no effect. Impulse returned by Tx Init always goes into Rx Init. Impulse returned by Rx Init is always used for statistical eye calculation. * In time-domain simulation, Use_Init_Output controls the flow the way stated in section 2.3., or in your flow chart presented in last meeting. I think this make sense. It pretty much keeps both statistical and time-domain simulations consistent without the need of new parameter. Regards, Fangyi From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Thursday, April 22, 2010 8:47 AM To: IBIS-ATM Subject: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Ambrish, This is exactly why we moved the Use_Init_Output Booleans to the right side in the November flow. In one of the recent ATM meetings when I showed a draft of the flow that I started to work on, one of you (can't remember if it was you or Fangyi) suggested that I should put it back to the left side. This happened when I brought up the issue with some of the combinations needing de-convolution. But aside from that the real problem with this is the spec itself, because the section you quoted here is in direct contradiction with the flow described in section 2.3 in great detail. But now we are starting to go around in a circle because we have already talked about this in this thread. Summary: - If we move Use_Init_Output to the right, we do it according to the Use_Init_Output definition, but have de-convolution problems - If we move Use_Init_Output to the left, we do it according to section 2.3, but the LTI flow is broken The November flow moved it to the right, but also fixed the de-convolution problem by adding the Init_Returns_Filter Boolean. This was voted down recently, but it seems that the same people who voted it down are now arguing that the correct interpretation of the spec is that Use_Init_Output should be on the right. If it is on the right we need to find a solution for the de-convolution problem. This proves to me that the Init_Returns_Filter is really not a new feature, but a correction to the problem after all, and we should just go with the November flow. However, now that we also discovered that the Init_Returns_Impulse is lacking in its definition, i.e. it doesn't spell out what is returned when it is False, I would like to suggest that we should revise the November flow by adding the Init_Returns_Impulse Boolean to the drawings and define what it does when it is False. Maybe by doing that we could eliminate this "new" red herring Boolean called Init_Returns_Filter... :-) So I am going to start a new thread to discuss Init_Returns_Impulse. Arpad =================================================================== _____ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Ambrish Varma Sent: Thursday, April 22, 2010 8:48 AM To: IBIS-ATM Subject: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Arpad, The flow as you drew was correct for TD simulation. For Stateye type simulation, the EDA tool takes into account only the 2 Init functions - so there was a missing link in your presentation. About Use_Init_output, my understanding is that it is only meaningful for the TD flow as alluded to in the definition for Use_Init_Output | Use_Init_Output is of usage Info and type Boolean. When | Use_Init_Output is set to "True", the EDA tool is | instructed to use the output impulse response from the | AMI_Init function when creating the input waveform | presented to the AMI_Getwave function. | | If the Reserved Parameter, Use_Init_Output, is set to | "False", EDA tools will use the original (unfiltered) | impulse response of the channel when creating the input | waveform presented to the AMI_Getwave function. Thanks, Ambrish. _____ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Thursday, April 22, 2010 12:35 AM To: IBIS-ATM Subject: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Ambrish, So is my understanding of what you are saying correct if I summarize it this way: You are only asking a different VISUAL representation of the flow to accentuate the two separate paths, but the flow is actually correct as I drew it for the presentation yesterday (except for the question that follows)? A (minor) detail question about your PDF attachment. On the left side, the Stateye flow, you took out the Tx Use_Init_Output Boolean. Did you mean this, or is this omission just part of the "crude representation" of the flow (as you put it)? If you meant it, do you mean to say that we should assume that this Boolean is always True for the Stateye flow whether it says False in the .ami file or not? In other words, are you suggesting that this Boolean should only be meaningful for the TD flow, otherwise it should be assumed to be True? Thanks, Arpad ============================================================== _____ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Ambrish Varma Sent: Wednesday, April 21, 2010 11:08 PM To: IBIS-ATM Subject: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Arpad, Your observations are correct. Use_Init_Output does allow the model maker to have effectively the same algorithms in Init and Getwave. It's a case of 'can' and 'should' as you pointed out in one of your earlier mails. I keep pointing out to you the intent of section 2.1 and 2.2 and the default value in the definition of Use_Init_Output and not the possibilities. This is how I understand what the intent was: in section 2.1, we don't need a getwave, why - because init was necessary and sufficient. In section 2.2, however, we do need a getwave - why - because Init is NOT sufficient. But - as you said, we did leave the door open . When I wrote to you about separating the TD flow and the Stateye flow - I meant separating it visually, in your slides - to fix the issue Walter pointed out yesterday. Basically when the user wants a Stateye type simulation, the EDA tool takes into account only Init and is done. The path would look like this: Obtain Channel Impulse Response (hAC(t)) --> Tx_Init call (hAC(t) x hTEI(t))--> Rx_Init call (hAC(t) x hTEI(t) x hREI(t)) --> Stateye type analysis. What you have already in the slide can be kept as is for TD simulation. I have attached a crude representation. Thanks, -Ambrish. _____ From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad Sent: Wednesday, April 21, 2010 7:24 PM To: IBIS-ATM Subject: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Ambrish, I would like to see how you came to the conclusion that "If you separate the Stateye flow with the TD flow, we will have what the spec says currently". I re-read the spec once again to find out how you came to that conclusion, but my reading resulted in the opposite conclusion. 1) pg. 181, 2.1 Linear, Time-invariant Equalization Model: This implies (although not stated), that for the LTI (or Stateye) flow the Init_Returns_Impulse Boolean must be set to true. 2) On pg.182, 2.2 Nonlinear, and / or Time-variant Equalization Model I read the following: This is now talking about the non-LTI flow. Note that it says that "AMI_Init may also compute the impulse response of the block...". This means that the Init function can still return a modified impulse response even if we are doing a non-LTI analysis with GetWave. 3) pg. 144, GetWave_Exists says: Note that is says "if Init_Returns_Impulse is set to "False"..." basically GetWave must exist. This means that the only time Init is allowed not to return a modified impulse response is when we do a non-LTI analysis with GetWave. But notice that it doesn't say that if GetWave exits, Init_Returns_Impulse must be False, or in other words, it doesn't say that when we are ding a non-LTI analysis with GetWave, the Init function is not allowed to calculate a modified impulse response. There are several things we can conclude from this: - if the Init function doesn't calculate the modified impulse response, GetWave will have to include the algorithm to do that calculation - the spec doesn't say anything that this algorithm may not be duplicated in the Init and GetWave functions, i.e. this duplication is not forbidden - this means that the model writer has a choice to put the algorithm that is responsible for calculating the modified impulse response into either the Init or the GetWave function or both - if there is a duplication of this algorithm in both Init and GetWave, the model maker may set Use_Init_Output to False so that double counting is prevented in the results - with this approach one can build a parallel path for the LTI (or Stateye) and non-LTI (or TD) calculations within the same model without the danger of double counting for any effects Clearly, the authors of the specification left it up to the model maker to decide whether the modified impulse response is calculated in the Init or the GetWave function or both. One approach could be to "factor it out" and put the LTI part of the algorithm into the Init function and put the non-LTI portions of the algorithm into the GetWave function, but one could also put the entire thing into the GetWave function and have a duplicate LTI algorithm or a similar LTI approximation in the Init function. This is what I am reading from the EXISTING specification. I would like to get a similar detailed analysis from you that explains how you arrived to the opposite conclusions based on the current specification. I am not asking this to give you a hard time, I am making this request to find out why the existing specification can be interpreted in such completely different ways so that we can fix the spec and eliminate the possibilities for such misinterpretations in the future. Thanks, Arpad ========================================================================== == _____ From: Ambrish Varma [mailto:ambrishv@xxxxxxxxxxx] Sent: Wednesday, April 21, 2010 3:52 PM To: Muranyi, Arpad Subject: RE: [ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference Arpad, If you separate the Stateye flow with the TD flow, we will have what the spec says currently. I think the issue with what you had yesterday was the mixing of the 2 flows together. Let me know if you want me to elaborate. -Ambrish.