[ibis-macro] Re: An AMI Overview

  • From: <fangyi_rao@xxxxxxxxxxx>
  • To: <dkirsanov@xxxxxxxxxx>, <ibis-macro@xxxxxxxxxxxxx>
  • Date: Thu, 15 Oct 2009 10:57:18 -0600

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: