[ibis-editorial] Re: What is the meaning of "clock_times"?

  • From: "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>
  • To: IBIS-ATM <ibis-macro@xxxxxxxxxxxxx>, "ibis-editorial@xxxxxxxxxxxxx" <ibis-editorial@xxxxxxxxxxxxx>
  • Date: Thu, 8 Sep 2022 04:13:02 +0000

Thanks for all three responses so far.

Sorry if I wasn't clear with my question.  For the sake of clarity, let's 
switch to the DDR
terminology.  By "clocked Rx" I was referring to the dual input DQ Rx model, 
which has
a data and a clock input.  By "clock Rx" I was referring to the DQS Rx model 
that has a
single input and outputs either a waveform or clock times vector (depending on 
the
mode selected, "Wave" or "Times") for its dual input DQ Rx model ("buddy").

From Walter's response I understand that if we ran the DQS Rx model as if it 
was a SerDes
Rx model, it would give us a clock_times vector in which the values correspond 
to the
zero crossings of the waveform that goes into it.  These times also correspond 
to the
UI boundaries of the DQS eye diagram we would get from this DQS Rx model, whose
sampling time is in the middle of the eye.  But this is less important in this 
discussion.
The take away so far is that the clock_times output vector of the DQS Rx model 
contains
the zero crossing times of the DQS waveform.

I also understand that when we use both the DQ Rx and the DQS Rx model together 
in
a simulation (using the "Times" mode), then the clock times generated by the 
DQS Rx
model (which are the zero crossing times of the DQS waveform) become the 
sampling
times for the DQ waveform.  These times being the sampling time for the DQ 
waveform
represent the middle of the DQ eye.  These sampling times have to be changed by 
the
DQ Rx model (by subtracting 0.5 * UI) before they can be put into the 
clock_times output
vector of the DQ Rx model to be used by the EDA tool.  This is NOT explained in 
the
spec.  Do all model makers know how to do this correctly without an explanation?

Or, keeping in mind that "clock_times" is defined as:
"The clock times are exactly symbol_time/2 before the input data signal is 
sampled."
AND keeping in mind that the clock_times input vector for the DQ Rx model is 
called
"clock times" (not "sample times", is the DQS Rx "clock_times" output vector 
supposed
to be changed by 0.5 * UI to be truly a "clock_times" input vector (according 
to the only
definition we have in the spec, highlighted in green above) before it is passed 
into the
"clock_times" input vector of the DQ Rx model?  If so, who supposed to do that, 
the
DQS model or the "go between" EDA tool?

The point I am trying to make is that from the perspective of the DQS Rx model 
or the
DQ Rx model "clock times" are two different things, yet the spec refers to both 
by the
same name, "clock times".  A specification shouldn't allow itself to be so 
vague and call
two different things by the same name and expect people to "know" which meaning
applies to which case.

Or, am I missing something?  Questions, comments, suggestions welcome as 
always...

Thanks,

Arpad
=========================================================================


From: Mirmak, Michael <michael.mirmak@xxxxxxxxx>
Sent: Wednesday, September 7, 2022 8:21 PM
To: wkatz@xxxxxxxxxxxxx; fangyi_rao@xxxxxxxxxxxx; Muranyi, Arpad 
<Arpad_Muranyi@xxxxxxxxxx>; IBIS-ATM <ibis-macro@xxxxxxxxxxxxx>; 
ibis-editorial@xxxxxxxxxxxxx
Subject: RE: What is the meaning of "clock_times"?

Given the multiple ways of expressing the concepts, do we need a clarification 
BIRD regarding the differences in clock_times interpretations for clocked data 
buffers, clock buffers, and buffers which contain a CDR?  At the very least, 
should we consider clarifying that clock_times may be an input or an output in 
different contexts?


  *   MM

From: 
ibis-editorial-bounce@xxxxxxxxxxxxx<mailto:ibis-editorial-bounce@xxxxxxxxxxxxx
<ibis-editorial-bounce@xxxxxxxxxxxxx<mailto:ibis-editorial-bounce@xxxxxxxxxxxxx>>
 On Behalf Of Walter Katz
Sent: Wednesday, September 07, 2022 5:36 PM
To: fangyi_rao@xxxxxxxxxxxx<mailto:fangyi_rao@xxxxxxxxxxxx>; Muranyi, Arpad 
<Arpad_Muranyi@xxxxxxxxxx<mailto:Arpad_Muranyi@xxxxxxxxxx>>; IBIS-ATM 
<ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>>; 
ibis-editorial@xxxxxxxxxxxxx<mailto:ibis-editorial@xxxxxxxxxxxxx>
Subject: [ibis-editorial] Re: What is the meaning of "clock_times"?

Arpad,

For the DQS treated as SerDes data, the sample time of a DQS eye is the 
"center" of the DQS eye. The eye crosses zero ½ UI before the center of the eye.

If using Times (with not DQS DLL), then the clock_times are generated from the 
zero crossing of the Wave.

So in both cases Times is the zero crossing of the DQS wave.

Fangyi is saying the same thing, just in a slightly different way.

Walter

Walter Katz
Work  508.647-7633
Cell      720.417-3762
wkatz@xxxxxxxxxxxxx<mailto:wkatz@xxxxxxxxxxxxx>
[Description: Description: Visit MathWorks.com]

From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx
<ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx>> On 
Behalf Of Fangyi Rao
Sent: Wednesday, September 7, 2022 7:28 PM
To: Arpad_Muranyi@xxxxxxxxxx<mailto:Arpad_Muranyi@xxxxxxxxxx>; IBIS-ATM 
<ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>>; 
ibis-editorial@xxxxxxxxxxxxx<mailto:ibis-editorial@xxxxxxxxxxxxx>
Subject: [ibis-macro] Re: What is the meaning of "clock_times"?

Hi Arpad,

I guess by clock/clocked Rx you meant strobe Rx such as DQS Rx. Please note 
that strobe Rx is not a dual-input model and doesn't need to take clock_times 
as input. Only data Rx such as DQ Rx may take clock_times as input and function 
in "Wave" or "Times" mode.

Regarding whether clock_times as an input should be sampling times or clock 
times, I think it's just a matter of convention. For a data Rx in the "Times" 
mode, its clock_times input is the strobe Rx's clock_times output.

Best,
Fangyi

From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx
<ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx>> On 
Behalf Of Muranyi, Arpad
Sent: Wednesday, September 7, 2022 3:13 PM
To: IBIS-ATM <ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>>; 
ibis-editorial@xxxxxxxxxxxxx<mailto:ibis-editorial@xxxxxxxxxxxxx>
Subject: [ibis-macro] What is the meaning of "clock_times"?


CAUTION: This message originates from an external sender.
Hello Everyone,

I wonder whether anyone could shed some light on the meaning of "clock_times"
for me in the context of Rx_Use_Clock_Input.

The clock_times section on pg. 229 includes the following statements:

"The clock times are exactly symbol_time/2 before the input data signal is 
sampled."

and

"Each valid value in the clock_times vector shall be used to sample the output
waveform by adding to it symbol_time/2"

The section on Rx_Use_Clock_Input (on pg. 253) only provides a brief reference 
to
the clock_times input of the GetWave function without further detail related to 
my
question:

"Specifies the content of the Data Rx AMI_GetWave clock_times input supported
by the model."

Let me ask my question with an example.  Consider an clocked Rx AMI model which
is operated in the "Wave" mode.  In this case the (unstated) assumption seems 
to be
that the waveform is a difference signal, and the clock ticks occur at the zero 
crossings
of that difference signal.  (It would be nice to state that the assumption is 
that this is
a difference signal, otherwise we would need to provide parameters for threshold
values too)...  Aside from that, what clock times should the Rx AMI model 
return to
the EDA tool in the clock_times vector (output)?  The times of the zero 
crossings, or
(zero crossings) - (0.5 * UI)?

Now change the above example so that there is a clock Rx AMI model that converts
the waveform into clock times and EDA tool passes those values into the data Rx 
model's
clock_times vector.  Is the clock Rx model supposed to just output the times of 
those
zero crossings for the data Rx model, or is it supposed to generate values as:
(zero crossings) - (0.5 * UI)?

Keep in mind that "clock_times" is defined as:
"The clock times are exactly symbol_time/2 before the input data signal is 
sampled."

If the clock Rx AMI model would generate zero crossing times for the data Rx 
model's
clock_times input vector, isn't it generating "sampling times" instead of 
"clock times"?
And, if this were the case, would the data Rx model need to convert these 
sampling times
to clock times for the EDA tool by subtracting 0.5 * UI from each value before 
putting
them into the clock_times vector (output)?

Either way, what was the intent of BIRD204/209?  I feel that this needs to be 
clarified
(unless I am missing something obvious)...

Thanks,

Arpad
==========================================================================

GIF image

Other related posts: