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

  • From: Mike Steinberger <msteinb@xxxxxxxxxx>
  • To: ibis-macro@xxxxxxxxxxxxx
  • Date: Thu, 14 Jun 2012 09:02:39 -0500


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)




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.






Other related posts: