Essaid, Thanks for your comments. If Init, GetWave and Close would be designated like you say to act as constructor, method, and destructor, I would probably be OK. The problem is that Init is not strictly a constructor. It does have signal processing code, or "method" in it. And the information between Init's and GetWave's methods are exchanged "privately" in persistent memory without going though their function call arguments. (At least in the current Tx example). I agree, we should probably not get concerned about programming style, but I think we can be concerned about the interface style... Thanks, Arpad ======================================================================= -----Original Message----- From: Essaid BENSOUDANE [mailto:essaid.bensoudane@xxxxxx] Sent: Thursday, April 03, 2008 9:30 AM To: scott@xxxxxxxxxxxxx; Muranyi, Arpad Cc: 'IBIS-ATM' Subject: RE: [ibis-macro] Re: [!! SPAM] Re: IBIS-AMI Correlation and BIRD Update - comments All, I'm far to be an expert in developing AMI model, even though I developed successfully a full SERDES model recently. If the AMI standard is seen as an interface between model developers and EDA tools I think the interface definition where you have an init function were memory are allocated, and Get_wave function to process data plus a close function to clean memory is classic and it's the right way to pass data between those functions. The tree functions should be seen a top level as C++ class with constructor (init), functions to process data, and close (destructor). In this case creating a shared memeory space in the heap using malloc or new and destoryed at the end of simulation is the right way to go. As a model developer I would like to have control on model memory managments instead of an automatic grabage collecteur who may slow down my simulation. By comparing a program written in C++, JAVA or .NET, it's obvious that a C++ is much faster. Designing Get_wave function for a real SERDES requires a more elaborate programming structure using a form of data flow oriented processing where communications between design entities are passed using well defined communication ports. Other model developers may choose to go with a procedural style programming using pointer everywhere, which reduce model structure (a bad programming style for an algorithm to be transformed later to hardware). I don't think the objective of ATM subcommittee is to define SERDES programming model style, which depend on the language, but only to define interface between model developers and EDA tools using the LTI modeling assumptions. I May be I'm completely out of the loop!!!! Best regards, Essaid Bensoudane --------------------------------------------------------------------- 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