[ibis-macro] Re: "Final Draft" of the Jitter BIRD 123.2 that I would like reviewed in preparation for submitting to the Open Forum

  • From: Scott McMorrow <scott@xxxxxxxxxxxxx>
  • To: Mike Steinberger <msteinb@xxxxxxxxxx>
  • Date: Tue, 12 Apr 2011 14:24:22 -0400



1. What is it about the phrase "receiver pad" that leads you to believe that it can refer to any other point in the circuit than the input to the receiver's analog model?
Then we have a problem, since the input to the analog model is not necessarily the "receiver pad". Any noise that is placed at the input to the receiver's analog model will be colored by the response of that circuit. Most modern receivers have passive bandwidth enhancement circuitry (ESD compensation) that precede the actual input amplifier. Rx_Noise_Pad would not be colored by the passive circuitry prior to the amplifier input.

2. You've given some description of the common phenomenon that occurs when the input signal falls below sensitivity of the receiver's data detection latch. This much is well known. However, what data leads you to conclude that the failure is in the clock recovery loop and rather than, for example, a failure in the detection latch's clock to data out timing? Furthermore, what data leads you to conclude that the failure is due to Gaussian noise at the input to the receiver's buffer amplifier and not to some other cause?
I'll answer your question with a question. What leads you to conclude that all data BER failures occur due to latch sensitivity failures.

3. What leads you to believe that clock recovery is the _only_ that Gaussian noise at the input to a receiver could affect the performance of a high speed serial link?
I said no such thing. Gaussian noise at the input to the receiver can affect clock recovery and latch noise margins.

Mike S.

On 04/12/2011 12:49 PM, Scott McMorrow wrote:
See below
On 4/12/2011 12:34 PM, Mike Steinberger wrote:
Scott-

Questions inserted below.

Mike S.

On 4/12/2011 11:56 AM, Scott McMorrow wrote:
Walter

The following needs to be rewritten. Rx_Noise_Pad cannot alter the statistics as a post processing step. It must be applied prior to any non-linear algorithmic elements or any programmable gain elements, and represents the input referred noise at the input of the input amplifier or VGA of the receiver.
What bad things do you think would happen if the Gaussian noise at the input to the receiver were incorporated into the analysis as a post-simulation step? Consider, for example, that semi-analytic analysis has been applied to the analysis of band limited radio channels (linear and nonlinear) since at least before 1977 (because that's when I learned the technique from Mike Fashano).
If you know what the non-linear process is, I imagine that it would be possible to post-process simulation results to include amplifier noise input. But only the model maker knows the non-linear details of the algorithmic model. EDA tool vendors do not. Conventional post-processing might assume that each stage in the system is LTI and independent. One example of this is the simple case of a VGA. If we assume that all processes within the silicon and channel are LTI and may be statistically combined, we still need to know the gain of the amplifier to correctly post-process the simulation results with Rx_Noise_Pad. To do this, we need to know where the gain is located in the model, whether in the analog or the algorithmic sections. The specification as written is not totally clear:

    '"Rx_Noise_Pad" is an AMI parameter of Type Float and Usage
    either Info or Out which defines the spectral density of the
    additive white Gaussian noise at the input to a receiver buffer ...'

The specification is not clear concerning where input to the receiver buffer is located in the model. Is it truly the "pad" of the device input and therefore in the analog model, in which case Rx_Noise_Pad is filtered by a combination of the receiver analog model and the algorithmic model impulse responses, or is it actually positioned at the analog/algorithmic boundary, in which case it is filtered by the impulse response of algorithmic model?

Although this parameter can be used in statistical analysis, it is the non-linear interaction between input noise and the clock recovery edge detector that is most interesting.
What data leads you to this conclusion? It's entirely counter to my experience.
Some of the problems we see when diagnosing system BER failures occur due to receiver non-linearity near the noise threshold, and clock recovery loop failures at low input levels. In addition, clock recovery is tied into the DFE sampler, it is quite possible for input referred noise to cause non-linear burst cascade failures of the DFE that are not predicted by linear analysis.
For this parameter to be useful, it's PDF must be added prior to clock recovery processing.

    The following optional Reserved Parameter is used to modify the
    statistics associated with the data input to the receiver's
    buffer.This data is used by the simulator when post-processing
    the results from the model; the budget values specified by this
    parameter are not passed directly to the model itself.

    "Rx_Noise_Pad" is an AMI parameter of Type Float and Usage
    either Info or Out which defines the spectral density of the
    additive white Gaussian noise at the input to a receiver buffer
    in volts/sqrt(Hz). Ignored for a driver.


Scott McMorrow
Teraspeed Consulting Group LLC
121 North River Drive
Narragansett, RI 02882
(401) 284-1827 Business
(401) 284-1840 Fax

http://www.teraspeed.com

Teraspeed® is the registered service mark of
Teraspeed Consulting Group LLC

On 4/12/2011 7:24 AM, Walter Katz wrote:

Arpad, Fangyi, All,

I need to correct an answer that I gave to Fangyi on where Rx_Noise_PadIs applied. It is applied to the input of the Rx Buffer. This is not at Rx AMI_GetWave as I incorrectly said in my last e-mail. It is applied at the input to the Rx Pad which is at the input to the Rx analog model. (Sorry for the confusion, my mistake)

To answer Arpad, when a variable is a List, then is tells the User that he can select any one of the values in the List, only one gets used by a simulation. If a parameter is List and In, then just one item in the list gets selected and passed to the model. (If a parameter is a Table and In then all rows of the Table are passed to the model.

So the meaning of "Rx_External_Reference_Clock" have "Allowed Values" of "(List True False)" means that the User can ask the EDA Tool to either pass (Rx_External_Reference_Clock True) or (Rx_External_Reference_Clock False) to the models. The Rx Model Maker tells the User and the EDA Tool that the model can accept *clock_times as an input by the existence of this parameter with an allowed value of True. If the User decides to set Rx_External_Reference_Clock=True then he must tell the EDA tool to generate the *clock_times vector any way the User decides to. The EDA tool would pass these clock times into the Rx AMI_GetWave function using *clock_times. If the User choosesRx_External_Reference_Clock=Falsethen the user tells the EDA tool not to create or pass in *clock_times, and therefor asks the EDA tool to use the parameters Rx_DCD, Rx_Rj, and Rx_Sj to correct for Jitter on the reference clock. Since the model may be used in different channels which may affect the jitter characteristics that end up being passed to the CDR of the receiver the User chooses the method that he asks his EDA tool to incorporate CDR reference clock jitter, which may be by asking the EDA tool to generate and pass *clock_times, use Rx_DCD, Rx_Rj, and Rx_Sj, or ask the EDA tool to incorporate CDR jitter budgets that are defined in the specific application, such as PCIeG3, 802.3KR, 802.3-100G, or the Jitter generated by a Fowarded Clock.

You correctly point out that the Model does not call AMI_GetWave, the EDA Tool calls AMI_GetWave. Not re, "...tells the model that when calling AMI_GetWve the clock_times vector shall contain...". Since the EDA Tool calls AMI_GetWave, the only possible interpretation of this line is "...tells the model (by having previously passed (Rx_External_Reference_Clock True) in the call to AMI_Init)that when calling AMI_GetWve (by the EDA Tool) the clock_times vector shall contain...".

I do not think the line needs to change in this way, but I would have no objection to making this change either.

Walter

*From:*ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] *On Behalf Of *Muranyi, Arpad
*Sent:* Tuesday, April 12, 2011 12:12 AM
*To:* IBIS-ATM
*Subject:* [ibis-macro] Re: "Final Draft" of the Jitter BIRD 123.2 that I would like reviewed in preparation for submitting to the Open Forum

Walter,

I am totally confused about the "Rx_External_Reference_Clock"

parameter.  Why is this a "(List True False)"?  My understanding

is that when something is a List, the entire list is passed into

the model.  In this case, how many Boolean values are needed to let

the model know that the "clock_times vector shall contain the

transition times of an externally generated reference clock"?

I would think that this would be a TRUE or FALSE information.  Why

would that be passed into the model as a list of Booleans?

The second thing that confuses me in: "...tells the model that

when calling AMI_GetWve the clock_times vector shall

contain..." is that the model doesn't call GetWave, it is the EDA

tool that calls GetWave.  So why are you saying that "... tells the

model that ... clock_times vector shall contain the transition

times of an externally generated reference clock..."?  Aren't

we supposed to tell the EDA tool to put these transition times into

the clock_times vector?  If so, shouldn't this parameter be

(Usage Info) instead of (Usage In)?

Please explain what your intent on this.

Thanks,

Arpad

===================================================================

*From:*ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] *On Behalf Of *Walter Katz
*Sent:* Monday, April 11, 2011 2:17 PM
*To:* IBIS-ATM
*Subject:* [ibis-macro] "Final Draft" of the Jitter BIRD 123.2 that I would like reviewed in preperationg for submitting to the Open Forum

All,

I have reviewed the comments made so far on BIRD 123 and 123.1, and have update the BIRD (enclosed) to address these issues. All changes since the original BIRD 123 are in Red.

I explained what is Sj when there is no Sj_Frequency (It is Sj at any frequency).

I did not explain what an EDA is to do with these because they describe the impairment, not how to apply it. Each EDA tool can apply the impairment that the User or Model asked the EDA tool to apply either to the inputs or the outputs of the model at the EDA tools discretion. So questions on each of these parameters should be limited to what the impairment is. I will be happy to answer what are some of the possible ways an EDA tool can use, but not what an EDA tool should or must do.

Finally, I added a new parameter Rx_External_Reference which allows model makers to create Rx AMI_GetWave models that accept *clock_times as an input that contains the clock times of an externally generate reference clock for the Rx Clock Data Recovery file. With this new enhancement the User can direct the EDA tool to generate both ANY Jitter distribution as input to the Tx AMI_GetWave and ANY Jitter distribution as input to the Rx CDR.

Walter

Walter Katz

wkatz@xxxxxxxxxx <mailto:wkatz@xxxxxxxxxx>

Phone 303.449-2308

Mobile 720.333-1107


Other related posts: