[ibis-macro] Re: An AMI Overview

  • From: "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>
  • To: <ibis-macro@xxxxxxxxxxxxx>
  • Date: Thu, 15 Oct 2009 11:08:11 -0700

Oh well...  I will throw in my $ 0.02 worth on this topic.
 
I think we are mixing two things here, and our terminology
doesn't help either.  One is that we have this notion of
"Init", meaning initializing the computer memory, etc... in
a computer science sense, and the other is the two types of
flows, LTI and non-LTI.  To be honest, I never liked the idea
of calling the "Init" function "Init", when its purpose was
to execute the LTI algorithms.
 
If this flow topic is now becoming such a big deal regarding
Init and GetWave, why don't we give things a little more
descriptive names?  Let's have an Init (if necessary) to
really do nothing but initializing memory, etc...  and then
have another function, say "LTI_algorithms" to do the LTI
signal processing, and a third function that will do the
non-LTI signal processing.
 
The reason I am suggesting this is because it seems that the
most confusing thing in this discussion is that the GetWave
functions are not complete by themselves, they rely on Init
to do part of the algorithms.  But Init may do different
things depending on whether there is a GetWave or not.  Why
don't we just have a function that does a complete LTI
analysis, and another function that does a complete non-LTI
analysis?
 
Arpad
============================================================

________________________________

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of
fangyi_rao@xxxxxxxxxxx
Sent: Thursday, October 15, 2009 11:57 AM
To: dkirsanov@xxxxxxxxxx; ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: An AMI Overview



Hi, Danil;

 

I think we are on the same page. The fundamental problem is that current
AMI spec allows two usages of Init and GetWave as stated at the end of
the BIRD.

 

Further discussion identified that

two different styles of modeling were possible and should be supported.
In the default case, the

AMI_Init and AMI_Getwave calls represent filtering performed by
sequential stages of a device, and

the results should therefore be chained together.  In the second case,
the AMI_Init and AMI_Getwave 

calls each represent the overall device.  For example, the AMI_Init call
could provide an LTI model 

for the device while the AMI_Getwave call provides a time-varying model.
In this case, results from

the AMI_Init and AMI_Getwave calls should be treated as independent.

 

The first case obviously can't support statistical simulation.

 

There are different approaches to make the AMI standard to support both
time domain (pattern depend) and statistical simulations. The two-model
approach suggested by Kumar is one of them. Walter and Arpad prefer to
stay with one model by dropping support to the first case in AMI since
practically no model of this usage exists.

 

I want to take this opportunity to suggest another solution with one
model. In AMI we should separate the interface for time domain
simulation from that for statistical by adding a third function named
GetImpulseForStatistical(). It takes impulses of victim and aggressors
and returns modified impulses.

 

Regards,

Fangyi

 

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Danil Kirsanov
Sent: Thursday, October 15, 2009 8:30 AM
To: ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: An AMI Overview

 

Fangyi, 

Could you please clarify it? I agree that it might be reasonable to put
the linear part of the model in Init and non-linear part in Getwave, so
that together they characterize the model (statistical simulator uses
only the linear part, while the pattern-dependent always uses both).

 

But I strongly disagree that inside one model Init and GetWave can
provide different approximations of the same algorithm (i.e. introducing
double-counting), where statistical simulator uses Init and
pattern-dependent simulator uses GetWave. I believe this behavior should
be prohibited, since it makes the flow more complicated, and we can
easily achieve the same result providing two different models (or having
internal option to switch the model between the statistical and
non-linear mode). 

 

If we have this simple rule (non-linear simulator we always uses Init
and Getwave), the behavior of the EDA does not depend on the fact
whether GetWave exists or not, and GetWaveExists flag becomes
unnecessary (if the Simulator at some point figures out there is no
GetWave, it just does not use it).

 

Are we on the same page here?

 

Best,

Danil

 

From: fangyi_rao@xxxxxxxxxxx [mailto:fangyi_rao@xxxxxxxxxxx] 
Sent: Wednesday, October 14, 2009 7:48 PM
To: kumarchi@xxxxxxxxx; ibis-macro@xxxxxxxxxxxxx; dkirsanov@xxxxxxxxxx
Subject: RE: [ibis-macro] Re: An AMI Overview

 

Hi, Kumar;

 

What if a model wants to support non-linear time domain simulation by
GetWave and statistical simulation by returning a LTI approximation in
Init?

 

Thanks,

Fangyi

 

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of C. Kumar
Sent: Wednesday, October 14, 2009 4:23 PM
To: ibis-macro@xxxxxxxxxxxxx; dkirsanov@xxxxxxxxxx
Subject: [ibis-macro] Re: An AMI Overview

 

i agree.. 
if the model modifies the init it is the only thing it should be doing.
there should not be any getwave

--- On Wed, 10/14/09, Danil Kirsanov <dkirsanov@xxxxxxxxxx> wrote:


From: Danil Kirsanov <dkirsanov@xxxxxxxxxx>
Subject: [ibis-macro] Re: An AMI Overview
To: ibis-macro@xxxxxxxxxxxxx
Date: Wednesday, October 14, 2009, 6:59 PM

Dear colleagues, 

I would like to clarify one basic principle of AMI modeling, hoping that
all of us agree with it.

 

I believe that the model writer should never do a double-counting: if he
modified the channel impulse response in Init() to model some effect, he
should not model this effect in Getwave(). So he cannot put the "true"
model in GetWave() and it's linear approximation in Init(). If both
types of behavior are expected, there should be two models (or some
internal flag that changes the behavior of the model).

 

If this assumption is true, statistical (linear) simulator always works
with Init() function of the model, while pattern-dependent (non-linear)
simulator works with both Init() and GetWave() and I do not see any
necessity for Get_Wave_Exists flag. 

 

Best,

Danil

 

 

                                    

 

Other related posts: