bathtub()
This measurement returns the data based and extrapolated bathtub curves and Q curves
Syntax
BathTub = bathtub(vJitterSig, vRefClkSig, Nbpp, BitPeriod, BERLevel, DataType, Pattern, Nbps, NumSeq, RJBWMode, EdgeType)
Arguments
| Name | Description | Range | Type | Default | Required |
|---|---|---|---|---|---|
| vJitterSig | time-domain based jittered signal | (-∞, ∞) | real | yes | |
| vRefClkSig | time-domain based reference clock signal or bit-period | (0, ∞) | real | no | |
| Nbpp | number of bits per pattern | 2 to 2^17 | integer | yes | |
| BitPeriod | bit period | 0 < BitPeriod < 1e-3 | real | yes | |
| BERLevel | BER level at which to measure TJ | 1e-40 < BERLevel < 1e-1 | real | 1e-12 | no |
| DataType | data-type | 1 (Periodic), 2(Random) † | integer | 1 | no |
| Pattern | bit pattern vector or bit pattern file-name | 0 and 1 | array, string | no | |
| Nbps | number of bits per sequence | [2, Inf] | integer | † † | no |
| NumSeq | number of sequences of data to be used in creating the bathtub | [1, Inf] | integer | † † † | no |
| RJBWMode | RJ Bandwidth Mode | 1(Narrow), 2(Wide) | integer | 1 | no |
| EdgeType | Data Edge Type | 1(Rising), 2(Falling), 3(Both) | integer | 3 | no |
| † Note that Random data type is not supported in this release. † † The default for Nbps is 2 minimum number of whole patterns per sequence Nbpp. † † † NumSeq defaults is calculated as number of TIE points/Nbps | |||||
Examples
The following example measures the bathtub of a jittered signal that uses a PRBS10 source:
BathTub = bathtub(vJitSig, vRefClkSig, 1023, 50 ps, 1e-12, 1,, 5000, 95,,)
The returned value BathTub is a list of four measurements: a data-based BER curve, extrapolated BER curve, data-based Q BER curve and extrapolated Q BER curve.
DataBath = BathTub[0]
MdlBath = BathTub[1]
DataQBath = BathTub[2]
MdlQBath = BathTub[3]
Where:
vJitterSig is the time-domain jittered signal. The argument jittered signal is the serial data (time versus amplitude) used in jitter separation. This signal is used in calculating the zero crossings, and the serial data is calculated from the zero crossings. If there are no zero crossings, then jitter separation will terminate with an error message. Currently, only periodic pattern serial data is supported, and the pattern must be repeatable. Arbitrary or random serial data is not supported.
vRefClkSig can be a reference clock signal (time versus amplitude) or the bit period. If the clock signal is given, the zero crossings are used to find the clock serial. This zero crossing is used along with the zero crossings of the jittered data in calculating the Time Interval Error (TIE). If the bit period is given, then the clock zero crossings are calculated from the bit period. If not given, the fourth argument bit period is used.
Nbpp is the pattern length and is required in order to automatically detect the pattern. At minimum this should be 2 (a clock signal) and a maximum of 2 17 . Note that for larger pattern length the number of serial bits needed would be large and jitter separation would take a long time. See Viewing Results for more information.
BitPeriod = Bit period must be greater than 0 and less than 1e-3.
BERLevel is the level at which to calculate TJ, RJpp. This argument is optional and the default value is 1e-12. For example if the system is being designed for a BER of 1e-12, then doing a jitter separation at 1e-12 would calculate the TJ at 1e-12.
Pattern can be an array of 0s and 1s or the name of a file containing the pattern. An example of a pattern in array format is [1,0,0,0,0,0,0,0,1,0]. A pattern must have a 0 and a 1. In addition, the minimum pattern is a [0, 1] - a clock signal. If the pattern is given in a file, the pattern bits must be space separated and in a single line. If pattern is not given, the pattern is automatically detected from the signal bits. For each sequence of data, the pattern is detected and compared with the previous sequence patter or the given pattern. If the pattern matches, that particular sequence of data is used.
Nbps indicates the number of bits-per-acquisition or sequence. Nbps is optional and the default is 2 * Minimum # Whole Pattern per sequence * Nbpp = 2 * 64 * Nbpp. In most cases this default value would work, but in some cases this value might need to be set manually since this argument has a direct bearing on the number of serial bits needed for a valid jitter separation and the RJPJ separation method. See Viewing Results for more information.
NumSeqs can be used to control the amount of data to be used in jitter separation. The default value is (# TIE Points)/Nbps, and in most cases this would work. But if increased control is required over the number of bits to be used, this argument can be set to a different value.
RJBWMode Jitter analysis uses a spectral technique to separate RJ from PJ. In the RJ, PJ Spectrum the noise floor or baseline depicts RJ. The narrow spikes above RJ depict PJ (see RJ, PJ Spectrum graph). This separation works well for wide bandwidth RJ, having a uniform PSD across the entire jitter spectrum. But in some cases, this is not the norm and the PJ components appear much broader. In such cases PJ can be mis-represented as RJ and this affects the TJ (since TJ is a multiplier of RJ). Setting RJ bandwidth mode to Wide or White treats RJ as flat. See References for more information.
Defined in
$HPEESOF_DIR/expressions/ael/JitAnalysis.ael
See Also
Notes and Equations
- Default value for Nbps = 2 * Minimum # Whole Pattern per sequence * Nbpp = 2 * 64 * Nbpp
For Periodic data type if the number of whole pattern per sequence, Nwpps = Nbps / Ntpp, is less than 64, the method used for RJPJ Separation is random (which is different than the data type or pattern being random). For PRBS15 if Nbps=60000, Ntpp=16384, NTIEs=2621359 then Nwpps=3. If the number of sequences to use is less than minimum number of sequences needed for DDJ separation, MinSeqsDDJ = 100/Nwpps, then DDJ cannot be separated and the initial sequences are not used. For example if Nwpps=3, then MinSeqsDDJ =100/3 = 34. In this case, increase the number of TIE to (MinSeqsDDJ+1) * Nbps.
Some calculations for the PRBS15 example are shown below:
Nbps = BitMultiplier * Nbpp
Nwpps = floor(Nbps/Ntpp)
MinSeqsDDJ = ceil(100/Nwpps)
MinNTIEs = (MinSeqsDDJ + 1) * Nbps
MinNSeqs = floor(NTIEs/Nbps)
MaxNSeqs = MinNTIEs/Nbps
Where:
MinNTIEs is the minimum number of TIEs that are needed if the corresponding number of Nbps is used.
MinSeqsDDJ is the minimum number of sequences that are needed for a successful DDJ separation.
MinNSeqs is the minimum number of sequences that can be used for given NTIEs.
MaxNSeqs is the maximum number of sequences that can be used for given MinSeqsDDJ.
So in the above example, if Nbps = 13 * Nbpp = 425971, then Nwpps = 25.
For this Nbps, the minimum number of sequences that can be used for a valid DDJ separation is 4. This is less than the number of sequences, 6 that is possible with NTIEs= 2621359. So a valid DDJ separation can be done. In the table below, for Nwpps ≤63 the RJPJ separation used is random. For Nwpps ≥64, the RJPJ separation used is periodic.BitMultiplier Nbps Nwpps MinNTIEs MinSeqsDDJ MaxNSeqs MinNSeqs 1 32767 1 3309467 100 101 79 7 229369 13 2064321 8 9 11 13 425971 25 2129855 4 5 6 19 622573 37 2490292 3 4 4 25 819175 49 3276700 3 4 3 31 1015777 61 3047331 2 3 2 32 1048544 63 3145632 2 3 2 34 1114078 67 3342234 2 3 2 36 1179612 71 3538836 2 3 2 38 1245146 75 3735438 2 3 2 40 1310680 79 3932040 2 3 1 In addition the frequency resolution of the RJ, PJ Spectrum is improved by increasing Nbps. But increasing Nbps can significantly increase the RJ, PJ spectrum calculation time.
- NumSeqs default value = (# TIE Points)/Nbps.
In order to get a valid jitter separation the number of data points should be at least have 32 complete data patterns, otherwise jitter separation would terminate with an error. With number of bits between 32 and 128, jitter separation will be performed, but the results are questionable. For accurate results, use at least 128 patterns. Since the separation algorithm is a statistical procedure, the results would correlate better with more patterns.
PJ is separated from RJ by inspecting the spectral content of jitter. The robustness of this separation methodology depends on having sufficient frequency resolution in the jitter spectrum. When the frequency resolution drops below a threshold it could start to cause a reduction in RJ/PJ separation accuracy. This happens when the number of complete data patterns in the serial data falls below 128 patterns. When this happens, examine the RJ, PJ spectrum. If the spectrum is comprised primarily of random noise with very few tall PJ spikes, then the questionable results are accurate. If there are a large number of PJ spikes then the jitter measurement should be repeated several times while varying the sequence record length. If the RJ and PJ results change significantly with record length, then the results are correct.
Privacy
Statement
|
Terms of Use
|
Legal |
Contact Us
|
© Agilent 2000-2008 ![]()