Kumar, Thanks for the answers. If everyone agrees to what you said, then I would suggest to write this into the specification. #1) The spec doesn't say anywhere that this is supposed to be done by the EDA tool, it only says: "The last clock is indicated by putting a value | of -1 at the end of clocks for the current wave sample. The clock_time | vector is allocated by the EDA platform and is guaranteed to be greater | than the number of clocks expected during the AMI_GetWave call." If the EDA tool initializes the vector with a -1, the DLL wouldn't have to do anything about that, so we wouldn't need to say: "by putting a value of -1 at the end" because it would be there already. On the other hand, we should add "The clock_time vector is allocated by the EDA platform AND INITIALIZED WITH -1 at least in the first location..." or something like that... #2 If this vector is not needed for the Tx, shouldn't clock_times be optional (like AMI_parameters_out, for example)? Currently it is required... I find it a little confusing to have something required when it is not used in half the cases. It makes me wonder what am I missing that it is required for... Thanks, Arpad ======================================================================== ====== -----Original Message----- From: ckumar@xxxxxxxxxxx [mailto:ckumar@xxxxxxxxxxx] Sent: Thursday, January 28, 2010 5:47 AM To: Muranyi, Arpad Subject: Re: [ibis-macro] Re: Question about clock_times Arpad: 1. The EDA tool allocates the clock memory and initializes that with a -1. If the Rx does not have a CDR, it will not modify this vector 2. For the Tx , whether the clock vector exists or not is irrelevant. It should not be doing anything to that vector. (like logical don't care state) 3. clock length = wave length is a robust way of memory allocation. It is much more important to be robust than worry about 'efficiency' of memory allocation Quoting "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>: > A related question: > > Is an Rx DLL required to fill the clock_times memory > with good numbers, i.e. does it have to have a clock > recovery, or is even an Rx allowed to basically not > return anything useful? > > Related to this, are the Tx and Rx DLL-s required to > put a -1 in the first location of the clock_times > memory space if they do not have anything to return, > or is the EDA tool supposed to initialize the allocated > memory so that at least the first location would have > a -1? > > Thanks, > > Arpad > ======================================================= > > ________________________________ > > From: ibis-macro-bounce@xxxxxxxxxxxxx > [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad > Sent: Wednesday, January 27, 2010 11:44 PM > To: IBIS-ATM > Subject: [ibis-macro] Question about clock_times > > > Hello AMI experts, > > I just noticed something in the AMI portion of the official IBIS v5 > specification. > > Section 3.2.2.3 clock_times is not labeled as optional, yet the text > implies that this is only applicable to Rx models. Note the words > "clock recovery loop" towards the end: > > > | 3.2.2.3 clock_times > | > | Vector to return clock times. The clock times are referenced to the > start > | of the simulation (the first AMI_GetWave call). The time is always > | greater or equal to zero. The last clock is indicated by putting a > value > | of -1 at the end of clocks for the current wave sample. The clock_time > | vector is allocated by the EDA platform and is guaranteed to be > greater > | than the number of clocks expected during the AMI_GetWave call. The > clock > | times are the times at which clock signal at the output of the clock > | recovery loop crosses the logic threshold. It is to be assumed that > the > | input data signal is sampled at exactly one half clock period after a > | clock time. > > > A Tx model would not have a clock recovery loop, so I would think that > a Tx GetWave function would not return anything in clock_times. Is the > EDA tool still required to allocate memory for clock_times even for Tx? > > Also note that the spec doesn't spell out exactly how much memory the > EDA > tool needs to allocate, only that it should be "greater than the number > of clocks expected". Since we have seen crashes due to a DLL wanting to > write more clock_times than what we "expected" from it, and the safest > thing to do would be to allocate as much memory as the number of > simulated > bits, this seems to be quite a waste if we had to allocate the same > amount > of memory to a Tx model's clock_times also... > > Isn't there a better way of doing this? > > 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