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 ======================================================================== =====