[ibis-macro] Re: AMI-init should pass modified IR to getwave....

  • From: Taranjit Kukal <kukal@xxxxxxxxxxx>
  • To: "'msteinb@xxxxxxxxxx'" <msteinb@xxxxxxxxxx>, "'ibis-macro@xxxxxxxxxxxxx'" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Thu, 14 Jun 2012 20:05:05 +0530

Hi Mike,
It is not about passing the IR from init to getwave, it is about getting the 
waveform convoluted with modified-IR in getwave. This saves unnecessary 
convolution of IR in getwave and leaves this process to EDA tool that does the 
appropriate sampling and math. This also brings consistency.

Hope I made myself clear.

Rgds



From: Mike Steinberger [mailto:msteinb@xxxxxxxxxx]
Sent: Thursday, June 14, 2012 07:32 PM
To: ibis-macro@xxxxxxxxxxxxx <ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Re: AMI-init should pass modified IR to getwave....

Kukal-

You can always store the impulse responses you want inside the memory pointed 
to by the model's memory handle.

That is, inside the header file:

typedef struct {
    ...
    double *internal_impulse_response,
    ...
} MyModel;

Inside AMI_Init():

MyModel *self;
self = (MyModel*)malloc( sizeof(MyModel) );
memory_handle = (void*)self;
self->internal_impulse_response = (double*)malloc( row_size*sizeof(double) );
//Set the value of self->internal_impulse_response however you want.

Inside AMI_GetWave():

MyModel *self = (MyModel*)memory_handle;
//Use self->internal_impulse_response however you like

I'm pretty sure there are other model developers who have been using this 
technique successfully now for several years.

Good luck.
Mike Steinberger

On 06/14/2012 01:04 AM, Taranjit Kukal wrote:
Hi All,
When I was implementing AMI model, I found a situation where it was important 
that Rx ami_init needed to pass modified-IR to getwave function.
Reason was that Chip-RDL-routing was available as Impulse-Responses.
Removal for “Use_Init_Output” to make Statistical-flow independent of 
Transient-flow,  is going to break the original intent where init and getwave 
were supposed to work in conjunction with each other handling linear and 
non-linear filtering portions respectively (as shown below)

[cid:part1.05090509.00000704@sisoft.com]

I would go back to Arpad’s suggestion (year 2010) for having two 
Impulse-responses coming out of ami_init

-          One that goes to EDA tool for statistical flow

-          One that gets passed to getwave to allow splitting of 
modeling-effort across init and getwave and make things easy for linear filters.

BIRD120 was brought up that deprecates use of “use_init_output” with a view to 
keep statistical and time-domain simulations independent. But as I think more, 
we need to allow both capabilities. It absolutely does not make sense to 
implement simple linear filters within getwave when we can convolute the 
filter-IR with channel-IR. We should take all steps to make modeling easy and 
ensure enough flexibility.

This way, we cover both the scenarios – those who want to leverage init as 
complement to getwave and those who want to keep statistical-flow purely 
independent. Since this does not bring any disadvantage, I strongly feel that 
we all re-consider outputting two modified-IRs out of init function – one for 
statistical-flow and another one to complement getwave filtering.


Rgds
..kukal

PNG image

Other related posts: