[ibis-macro] Re: Question about clock_times

  • From: "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>
  • To: "IBIS-ATM" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Thu, 28 Jan 2010 06:45:22 -0800

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

Other related posts: