Posted Thu, 19 Jan 2023 16:06:08 GMT by Hilaire, Mathias
I am currently using a Tek DPO73304DX scope. When using BUJ as jitter separation model within DPOJET module, I would like to compute required number of samples (called Record Length).
For instance, on a 5Gbits/s digital signal, with sample rate=50Gsamples/s, I can observe that 20.99Msamples are required to make algorithm converge and estimate total jitter. How is it possible to compute this value of 20.99Msamples? What is the the calculation knowing bitrate and sample rate, and that constant clock mean is used for the clock recovery?
Thanks a lot and regards,
Mathias
Posted Fri, 20 Jan 2023 18:24:16 GMT by Teles, Afonso
Hi Mathias,

For many of the more of the more complex jitter measurements, the record length required is a function of the minimum number of pattern repeats. That is to say, if the minimum pattern repeat for the measurement is 100, then your required record length will be whatever it takes your waveform to reach that number of pattern repeats.
The error or warning icon should tell you how many patterns are found and how many are needed.
Posted Mon, 23 Jan 2023 14:18:09 GMT by Hilaire, Mathias
Thank you Afonso for your reply.
In fact I would like to compute a priori required record length.
For instance, without using BUJ, it is possible to compute minimum record length without getting any warning from DPOJET using the following relationship: RLmin=100*Nbits/DR*SR, with:
RLmin: minimum record length
Nbits: number of bits in the pattern, ie. 127 for a PRBS7 signal
DR: datarate
SR: sample rate
For example, on a PRBS7 signal at 5Gbits/s and with a sample rate of 50Gsamples/s, we will get:
RLmin=100*127/5e9*50e9=127ksamples
If I set record length in the scope to 127ksamples, then I will not get any warning/error saying for example that the minimum number of patterns has not been reached.
It is working well.
If a 2nd order PLL is used instead of constant clock as clock recovery for the same signal, then computation will be :
RLmin=100*Nbits/DR*SR+4/JTFbw*SR, with:
JTFbw=Jitter Transfer Function bandwidth

Now, using BUJ, I would like to compute a priori minimum record length. Is there any way to calculate such minimum record length?

Thank you and kind regards
Posted Mon, 23 Jan 2023 22:24:38 GMT by Teles, Afonso
Hi Mathias,

A formula for the record length required when using BUJ is not publicly available.
I will mention that one can change the minimum number of UI require by going into Select -> Preferences -> Jitter Decomp .

Perhaps if you could give us more insight into why you need to calculate the required record length, we would be able to help you?
Posted Tue, 24 Jan 2023 14:54:30 GMT by Hilaire, Mathias
Hello Afonso,
I am performing automatic jitter measurements on a scope to characterize a DUT under different conditions: temperature, power supply, datarate and so on.
The whole bench with different lab equipments is driven by Python scripts.
So I need to set my scope automatically.
I measure rise time, then I derive bandwidth, sample rate, and then record length given the digital signal on scope.
I need to take account clock recovery method, and also if BUJ is enabled or not.
As already written, I have formulas to calculate minimal record length when BUJ is disabled. When BUJ is enabled, I am not able to compute minimal record length. This is why I need a formula. But sadly you say this is not publicly available.
Do you have any idea to fix my issue?
Regards
Posted Fri, 27 Jan 2023 14:24:44 GMT by GRISON, PASCAL

Hello Mathias

Unfortunately Tektronix is not documenting officially a specific formula to compute the Total Record Length required in order to get a full Jitter Decomposition with a Single Deep Memory Waveform Acquisition.

But based on experimentation in order to compute the Record Length to achieve SPECTRAL+BUJ Jitter Decomposition in ARBITRARY MODE with a Window of 24UI with Constant FREQUENCY Clock Recovery Algorithm the practical Algoryhtm is:
JitterDecompositionRecordLength=(minAnalyzedUI/Data-Rate)xSampleRate with minAnalyzedUI=2.1E6

The 2.1E6 value was initially found empirically but eventually  got its explanation with the following formula (Thank you Mark.G)
minAnalyzedUI = 2^ceil(log2(minBujUI * 6))

With default DPOJET minBUJ UIs of 200k (in DPOJET Preferences), this translate to a Need to Capture  2097152 UIs (2.1e6 UIs)

Exemple1
Sample Rate= 100GSa/s
Datarate=1Gb/s
Pattern= PRBS23=32767 bits
JitterDecompositionRecordLength=(2.1E6/1E9)x100E9=210MPts

If you use the same Formula with PERIODIC MODE, you will get a DPOJET Warning about not getting enough pattern repeat but DPOJET will still Provide the results based on ARBITRARY MODE analysis (so It is advised to set the ARBITRARY Analysis window to 24UI)

if you want to absolutely get the result of PATTERN MODE Jitter decomposition, the Record Length might become Very High and is dependant on the PRBS/PATTERN Length transmitted by DUT
Jitter DecompositionRecordLength=(101xPatternLength/Datarate)xSampleRate

Exemple2
Sample Rate= 100GSa/s
Datarate=1Gb/s
Pattern= PRBS23=32767 bits
JitterDecompositionRecordLength=331MPts

Also, as discussed, if You use a PLL Clock Recovery Algorithm, you will need to compute DPOJET BLANKING TIME (PLL Lock Time)
by default DPOJET use a BLANKING TIME of 4/FPLL (FPLL beeing the bandwidth of the PLL)
So the Additional RecordLength to account for the PLL Blanking Time is:
BlankingTImeRecordLength= (4/FPLL)xSamplingRate
You will add the JitterDecomposition Min Record Length with the BlankingTImeRecordLength to get the required Total Record Length required in order to get  Jitter Decomposition with a Single Waveform Acquisition

Kind regards
Pascal

You must be signed in to post in this forum.