[ibis-macro] Re: AMI_Flows_6.pdf for today's ATM teleconference

  • From: "Todd Westerhoff" <twesterh@xxxxxxxxxx>
  • To: <ibis-macro@xxxxxxxxxxxxx>
  • Date: Thu, 22 Apr 2010 17:49:46 -0400 (EDT)

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.

JPEG image

JPEG image

JPEG image

Other related posts: