All-I think Walter has stated the correct principle: the EDA platform should only use the value of AMI_parameters_out from the latest call to the model, regardless whether that was Init or GetWave.
Consider:1. After the model function (Init or GetWave) returns, the value of AMI_parameters_out must remain valid at least long enough for the EDA platform to use it. 2. GetWave will typically be called many times. Although technically feasible, it wouldn't make much sense for the model to keep all of the AMI_parameters_out messages it's ever sent. That could be a lot of memory that would remain allocated for no good reason.
One obvious solution, therefore, is for GetWave to de-allocate its last AMI_parameters_out message before allocating a new one. Another possible solution would be for the model to maintain an AMI_parameters_out buffer that it overwrites as necessary. However, since IBIS 5.0 doesn't state which of these two options to choose, we must assume that some model developers have chosen one option, and other model developers the other.
Ergo, the principle Walter has stated. Hope this helps. Mike S. On 12/01/2010 09:08 AM, Walter Katz wrote:
Arpad, To be clear, AMI_Init may not deallocate parameters_out. The model is responsible for maintaining a list of parameters_out allocations, The model may deallocate any previously parameters_out allocated blocks. AMI_GetWave may choose to allocate a new parameters_out block, or use an older one that was not de-allocated. AMI_Close is responsible for deallocating any paramerts_out blocks that had not been previously allocated. The EDA tool may not assume that the parameters_out data from a previous call to AMI_Init or AMI_GetWave is valid after a new call to AMI_GetWave. Walter -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of ckumar Sent: Wednesday, December 01, 2010 6:19 AM To: Arpad_Muranyi@xxxxxxxxxx Cc: IBIS-ATM Subject: [ibis-macro] Re: A question about GetWave's AMI_parameters_out arpad: the model is free to allocate and deallocate parameters_out at each call , whether it is to init and whether it is to getwave call. The model can also allocate parameters_out just once. It is totally at the model's discretion. On Tue, 30 Nov 2010 22:49:13 -0800, "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx> wrote:Hello everyone, I am trying to understand sections 3.1.2.6 on pg. 186 and 3.2.2.4 on pg. 189 of the IBIS specification. Both of these sections say that: "The memory pointed to by AMI_parameters_out is allocated and de-allocated by the model.", but neither of these sections specify whether this allocation supposed to be done in the Init function, for both the Init and the GetWave function's AMI_parameters_out, or whether the Init and the GetWave functions have to allocate their own memory for this. It is also not quite clear from this whether the two AMI_parameters_out are really the same "variable" i.e. memory location, or whether they are two independent variables and memory locations, one for each function, (regardless of which function does the allocation). Could someone please shed some light on what the intent was on this for me? Thanks, Arpad =========================================================--------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx Subject: unsubscribe --------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx Subject: unsubscribe
--------------------------------------------------------------------- IBIS Macro website : http://www.eda.org/pub/ibis/macromodel_wip/ IBIS Macro reflector: //www.freelists.org/list/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx Subject: unsubscribe