[ibis-macro] Re: Simulate with Init_Impuse_Return on RX and GetWave on TX

  • From: "Dmitriev-Zdorov, Vladimir" <vladimir_dmitriev-zdorov@xxxxxxxxxx>
  • To: "twesterh@xxxxxxxxxx" <twesterh@xxxxxxxxxx>, "ibis-macro@xxxxxxxxxxxxx" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Thu, 27 Feb 2014 20:33:37 +0000

Todd,


Ø  The issue in this case is the RX model's auto-equalization. It equalizes 
based on an impulse response that doesn't include the TX EQ

Here is my understanding of what should occur in this particular case (Tx has 
GetWave, Rx doesn't).
Both Tx and Rx Init functions return IR with appropriate equalization: 
according to BIRD 120, AMI_INIT and AMI_GetWave have independent 
representations of the device's equalization.

Time domain simulation:

1.      Call Tx INIT with original (non-equalized) channel's impulse response 
IR0. Tx INIT returns impulse response modified by Tx equalization, let's denote 
it IR_T. Still, EDA tool keeps non-equalized response: IR0.

2.      IR_T becomes an input to Rx INIT. The output from Rx INIT contains both 
Tx and Rx equalization. Let's call it IR_TR.

3.      EDA tool knows that Tx has GetWave but Rx does not have it. Hence, only 
Rx equalization should be left in the response used in time domain analysis, 
not both. By comparing IR_T and IR_TR, it is possible to find the contribution 
that comes only from Rx: "Rfilter" - deconv(IR_TR, IR_T). Then, R_filter is 
applied to the non-equalized response and gives us the response equalized by Rx 
only: IR_R = conv(IR0, R_filter).

4.      Time domain analysis. Digital waveform is an input to Tx_GetWave. 
Output from GetWave presumably contains proper Tx equalization. It is them 
convolved with IR_R.

Statistical simulation:

1.      Call Tx INIT with original (non-equalized) channel's impulse response 
IR0. Tx INIT returns impulse response modified by Tx equalization: IR_T.

2.      IR_T becomes an input to Rx INIT. The output from Rx INIT contains both 
Tx and Rx equalization: IR_TR.

3.      Since EDA tool knows that we perform statistical analysis and GetWave 
will not be called, de-convolution is not needed.

4.      Perform statistical analysis with IR_TR.

Vladimir



From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] 
On Behalf Of Todd Westerhoff
Sent: Thursday, February 27, 2014 1:04 PM
To: Dmitriev-Zdorov, Vladimir; ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: Simulate with Init_Impuse_Return on RX and GetWave on 
TX

Vladimir,

I understand what you're saying - this is the much debated "de-convolution 
issue" also known as "the sticky bit". And yes, some tools do indeed do that.

The issue in this case is the RX model's auto-equalization. It equalizes based 
on an impulse response that doesn't include the TX EQ, and when the TX EQ is 
added in during Getwave processing, the signal ends up being over-equalized.

Todd.


Todd Westerhoff
VP, Semiconductor Relations
Signal Integrity Software Inc. * www.sisoft.com
6 Clock Tower Place * Suite 250 * Maynard, MA 01754
(978) 461-0449 x124  *  twesterh@xxxxxxxxxx

"I want to live like that"
                                             -Sidewalk Prophets

From: Dmitriev-Zdorov, Vladimir [mailto:vladimir_dmitriev-zdorov@xxxxxxxxxx]
Sent: Thursday, February 27, 2014 2:41 PM
To: twesterh@xxxxxxxxxx; ibis-macro@xxxxxxxxxxxxx
Subject: RE: Simulate with Init_Impuse_Return on RX and GetWave on TX

Todd,

I believe that the AMI flow described in 5.1 spec addresses this case (Tx has 
GetWave but Rx has Init only).
If Rx Init returns properly updated impulse response, there is a way for the 
EDA tool to account for Rx equalization in statistical analysis. Or course, we 
assume that Init function properly applies equalization to IR.

Vladimir

From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> 
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Todd Westerhoff
Sent: Thursday, February 27, 2014 11:31 AM
To: ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Re: Simulate with Init_Impuse_Return on RX and GetWave on 
TX

Darshan,

The Time-Domain analysis (including any RX auto EQ) will be correct, but there 
is one thing worth noting - in the TX Init / RX Getwave case, any Statistical 
simulation results will be missing the effect of the RX EQ. So - although a  
simulation will run and produce an eye diagram, you should look at results for 
this case as though you were probing the RX die pad, not the sampling latch.

The TX Init / RX Getwave combination is AMI Flows case 2.

Todd.


Todd Westerhoff
VP, Semiconductor Relations
Signal Integrity Software Inc. * www.sisoft.com<http://www.sisoft.com>
6 Clock Tower Place * Suite 250 * Maynard, MA 01754
(978) 461-0449 x124  *  twesterh@xxxxxxxxxx<mailto:twesterh@xxxxxxxxxx>

"I want to live like that"
                                             -Sidewalk Prophets

From: Darshan Shah [mailto:D.Shah@xxxxxx]
Sent: Thursday, February 27, 2014 12:51 PM
To: twesterh@xxxxxxxxxx<mailto:twesterh@xxxxxxxxxx>; 
ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: RE: Simulate with Init_Impuse_Return on RX and GetWave on TX

Thanks Todd.
I have started checking with Serdes Vendor to get me other option model.
Also, I will try different RX equalization settings and run manual tuning 
simulation.

Also one more question,
This will not be the case when TX is having Init_Return_Impulse and RX is 
having GetWave Function.

Please confirm.

-Darshan

From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> 
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Todd Westerhoff
Sent: Thursday, February 27, 2014 7:10 AM
To: ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Re: Simulate with Init_Impuse_Return on RX and GetWave on 
TX

Darshan,

The issue here is that IBIS-AMI specifies a standard evaluation flow for TX and 
RX algorithmic models, which isn't compatible with the models you have and the 
assumptions they make.

Algorithmic models are evaluated in the following order:


1.       TX Init

2.       RX Init

3.       TX Getwave

4.       RX Getwave

There are no exceptions.  Thus, when your RX Init is called, the effects of TX 
Equalization are not present, as you say. A RX Init model that attempts to 
auto-set its EQ in this case will optimize itself based on a channel without 
the TX EQ, as you also note.  Believe it or not, this issue was discussed and 
documented back when IBIS-AMI flows were updated in July 2010. Those flows 
became part of the standard with IBIS 5.1. For reference, you can find a 
pictorial description of AMI flows at http://bit.ly/1cpJPQt.  Your models are 
case 4 on slide 10.

In your particular case, you have 3 options:


1.       Disable the RX auto-equalization and sweep the RX EQ settings 
manually, then pick the best case from the results. Because the RX EQ is LTI 
(you have an Init-only model), this will actually work, at the expense of 
increased run time. Note that you will need a RX model that lets you sweep the 
settings for the CTLE and the DFE taps, if a DFE is present.

2.       Use a TX model that supports Init, at which point the RX model is 
getting the correct impulse response and auto EQ will work. This moves you from 
case 4 to case 7 in AMI flows.

3.       Use a RX model that supports Getwave.  I put this last because RX 
models are typically tougher for vendors to update than TX models. This moves 
you from case 4 to case 6 in AMI flows.

I hope that helps!

Todd.


Todd Westerhoff
VP, Semiconductor Relations
Signal Integrity Software Inc. * www.sisoft.com<http://www.sisoft.com>
6 Clock Tower Place * Suite 250 * Maynard, MA 01754
(978) 461-0449 x124  *  twesterh@xxxxxxxxxx<mailto:twesterh@xxxxxxxxxx>

"I want to live like that"
                                             -Sidewalk Prophets

From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> 
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Darshan Shah
Sent: Wednesday, February 26, 2014 9:58 PM
To: 
vladimir_dmitriev-zdorov@xxxxxxxxxx<mailto:vladimir_dmitriev-zdorov@xxxxxxxxxx>;
 ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Re: Simulate with Init_Impuse_Return on RX and GetWave on 
TX

Hi Vladimir,

Your Comment "After Tx INIT, you have an equalized IR, and this is sent to Rx 
INIT. Rx may add its own equalization"
No after TX_INIT, I don't have equalized IR and IR after TX is exactly same as 
channel IR (as GetWave don't modify IR)

And hence, RX Init_Return_Impulse works on channel IR (which is un-equalized 
from TX), so DFE and CTLE will try to equalize channel IR (and not the TX 
equalized channel IR).

Once quick experiment I did:

GetWave TX Model  ------ >     Channel   ------ > Init_Return_Impulse RX Model

If I change TX De-Emphasis Value, CTLE and DFE on RX side stays at the same 
value for all the simulations.

-Darshan

From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> 
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Dmitriev-Zdorov, Vladimir
Sent: Wednesday, February 26, 2014 5:21 PM
To: Darshan Shah; ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Re: Simulate with Init_Impuse_Return on RX and GetWave on 
TX

Darshan,

This is the case when the Rx's equalization effect should be separated from Tx 
equalization.
After Tx INIT, you have an equalized IR, and this is sent to Rx INIT. Rx may 
add its own equalization. However, since Tx also has GetWave which may apply 
similar equalization to the input waveform, you need to "eliminate" Tx 
equalization from the impulse response after it is updated by Rx. The idea is 
that this IR should only contain equalization from Rx but not Tx (since we 
don't have Rx GetWave but have Tx GetWave).
I don't know what is the tool you are using. The correct flow should be to find 
the Rx equalization "filter" (i.e. an operator that creates Rx equalization) 
and apply it to the original non-equalized IR. Then, use this IR for the bit by 
bit analysis.
I believe this idea is described in 5.1 AMI flow.

Vladimir

From: ibis-macro-bounce@xxxxxxxxxxxxx<mailto:ibis-macro-bounce@xxxxxxxxxxxxx> 
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Darshan Shah
Sent: Wednesday, February 26, 2014 6:05 PM
To: ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-macro] Simulate with Init_Impuse_Return on RX and GetWave on TX

Hi,

I have case in which TX and RX are from different vendors.
RX is Impulse_Init_Return only (No GetWave Function is available) and TX is 
GetWave only (No Init_impuse_Return is available).

When I run this simulation, IR of passive channel and analog models of TX and 
RX is created. Let's call it IR1 (Let say IL of channel is 20dB, so IR1 is 
impulse response of 20dB IL)
Let say TX is set to -6dB de-emphasis.
IR1 is send to GetWave of TX model which outputs waveform which is 6dB 
de-emphasized.
But IR1 is not affected due to Getwave function of TX.

What I have seen in the simulation is this IR1 is also send to RX 
Init_Impuse_Return function and RX Equalizer works on 20dB channel rather than 
20dB + (-6dB de-Emphasis) channel. And hence I always get over-equalized 
response in simulation.

What is solution to this?

Please help.

Thanks,
Darshan

Other related posts: