Part I · Today's module · Chapter 6 of 18

Skew, drift and calibration

Lane skew against eye opening, heater drift as a random walk, the calibration state machine and what it costs in availability.

Skew against eye opening: one lane's drive, folded into an eyeillustrative
00.51sampling instant (unskewed optimum)eye 0.958time (UI), two unit intervals around the sampling instant
Channel bandwidth:
Step 18 symbols of lane 1 through a 0.75 × baud channel, delayed 0.14 UI and sampled where an unskewed lane peaks: lowest '1' 0.979, highest '0' 0.0209, so the drive eye is 0.958 of a full swing.
Step 1: 8 symbols of lane 1 through a 0.75 × baud channel, delayed 0.14 UI and sampled where an unskewed lane peaks: lowest '1' 0.979, highest '0' 0.0209, so the drive eye is 0.958 of a full swing.
Lane 1’s NRZ drive through a band-limited channel, overlaid symbol by symbol over two unit intervals. All lanes are sampled where an unskewed lane peaks, so delaying lane 1 moves its samples off its own peak and lets the neighbouring bits leak in. Computed with the port of the simulator’s ISI model.
vk=∑m=−66p(t0−τ+m) bk−m\hl{drive}{v_k} = \sum_{m=-6}^{6} p\big(t_0 - \tau + m\big)\, b_{k-m}
p(t)=Φ ⁣(tσ)−Φ ⁣(t−1σ),σ=ln⁡22πBp(t) = \Phi\!\Big(\frac{t}{\sigma}\Big) - \Phi\!\Big(\frac{t-1}{\sigma}\Big),\quad \sigma = \frac{\sqrt{\ln 2}}{2\pi B}

What this stage does

Two things go wrong slowly or quietly. The four electrical lanes do not arrive perfectly aligned, and the module samples them all at once, so a skewed lane is read off its peak. And the interferometer is tuned by thermo-optic heaters (17 patent) whose phases drift with temperature and age. A microcontroller with monitor photodiodes calibrates the heaters at power-up, then tracks them with small pilot perturbations while data flows; when tracking fails, the stream pauses for a recalibration.

How it’s modelled

Skew. Each lane’s NRZ drive passes a Gaussian channel of bandwidth 0.75 × baud illustrative (swept down to 0.5 × baud); one lane is delayed; every lane is sampled at the unskewed optimum; the sequence is periodic, truncated at 6 symbols illustrative each side.

Drift and tracking. Each heater’s phase is a random walk (0.01 rad/√s illustrative, swept) plus a common temperature walk. A first-order tracker (gain 0.1 illustrative) is updated once per pilot period (1,000 frames patent) and evaluated in closed form per monitoring period (0.5 s patent). Each period sends a marker frame of 256 words illustrative; a failure is re-applied once (true patent) and a second failure pauses the stream for 1 s illustrative.

Calibration. The simulator’s calibration runs ordered coarse and fine scans per heater in mesh order, a joint refinement on the truth-table residuals, DAC quantisation (12 bits illustrative, phase growing as V²) and a pass check at max |deviation| below 0.5 level steps patent. Its code is not part of this site’s vendored copy, so the animation below runs a simplified stand-in written for this site: the same steps on the same ported analogue chain, with 64 illustrative coarse points, 3 illustrative sweeps and a damped least-squares refinement. The simulator’s own refinement already stands in for the patent’s procedure, whose details are not given.

What we found

Skew

The channel bandwidth matters more than the skew. At 0.75 × baud the eye opening (1 = ideal, over 2,048 random symbols) is 0.9575 with no skew and 0.9155 with 10 ps (0.14 UI) on one lane; the error-rate target holds up to 0.4023 UI. At 0.5 × baud the eye starts at 0.464, falls to 0.3928 at 10 ps, and the target holds only to 0.2449 UI.

Eye opening vs skew of lane 1illustrative
00.10.20.30.40.5−0.500.51skew (UI)eye opening (steps)10 ps
Data table
Eye opening vs skew of lane 1
skew (UI)0.5×baud0.75×baud
00.4640.9575
0.020.47620.9593
0.040.48680.9576
0.060.49160.953
0.080.47090.9469
0.10.44760.9389
0.120.42170.9286
0.140.39280.9155
0.160.3610.8991
0.180.32620.8787
0.20.28820.8537
0.220.24710.8235
0.240.2030.7876
0.260.15580.7454
0.280.10570.6966
0.30.052880.6408
0.32−0.0024290.578
0.34−0.059980.5084
0.36−0.11950.4322
0.38−0.18050.3502
0.4−0.24280.2631
0.42−0.30580.1721
0.44−0.36920.0784
0.46−0.4326−0.01662
0.48−0.4955−0.1115
0.5−0.5575−0.2049
Word error rate vs skewillustrative
00.10.20.30.40.510⁻²⁰10⁻¹⁶10⁻¹²10⁻⁸10⁻⁴1skew (UI)word error ratetarget
Data table
Word error rate vs skew
skew (UI)0.5×baud0.75×baud
01.743 × 10⁻¹⁸1 × 10⁻²⁰
0.023.38 × 10⁻¹⁹1 × 10⁻²⁰
0.048.822 × 10⁻²⁰1 × 10⁻²⁰
0.061.452 × 10⁻¹⁹1 × 10⁻²⁰
0.082.102 × 10⁻¹⁸1 × 10⁻²⁰
0.14.429 × 10⁻¹⁷1 × 10⁻²⁰
0.121.123 × 10⁻¹⁵1 × 10⁻²⁰
0.143.268 × 10⁻¹⁴1 × 10⁻²⁰
0.161.032 × 10⁻¹²1 × 10⁻²⁰
0.183.304 × 10⁻¹¹1 × 10⁻²⁰
0.29.887 × 10⁻¹⁰1 × 10⁻²⁰
0.222.528 × 10⁻⁸1 × 10⁻²⁰
0.245.024 × 10⁻⁷1 × 10⁻²⁰
0.267.112 × 10⁻⁶1 × 10⁻²⁰
0.286.782 × 10⁻⁵1 × 10⁻²⁰
0.30.00043991 × 10⁻²⁰
0.320.0020931 × 10⁻²⁰
0.340.0077571.758 × 10⁻¹⁹
0.360.022566.995 × 10⁻¹⁵
0.380.051871.094 × 10⁻¹⁰
0.40.10034.298 × 10⁻⁷
0.420.17060.0002878
0.440.22870.02446
0.460.24490.1889
0.480.25140.2437
0.50.27320.2453

Drift as a random walk

One heater drifting, and what the tracker leavesillustrativepatent
Drift animation (loads when scrolled into view)
A random walk at one of the drift study's rates, tracked at two of its pilot periods. Normals come from the same counter-based stream as the simulator's Monte Carlo.
eafter=(1−g)n (ebefore+σT ξ)\hl{phase}{e_{\text{after}}} = (1-g)^{n}\,\big(e_{\text{before}} + \sigma\sqrt{T}\,\xi\big)

With a pilot every 10 frames the tracker gets about 10,050 updates per heater per monitoring period, and availability stays above the study’s threshold at every swept drift rate, up to 1 rad/√s. With a pilot every 100,000 frames it gets about 1.005, and availability holds only up to 0.01 rad/√s: at 0.1 rad/√s it is 0.6708, and at the top of the sweep 0.3333, almost all of it spent recalibrating. Even a pilot every 1,000 frames loses ground at 1 rad/√s (availability 0.9408, 71 recalibrations in 1,200 s, one every 16.9 s).

Availability vs drift rateillustrativepatent
10⁻³0.010.110.40.60.81drift (rad/√s)availability
Data table
Availability vs drift rate
drift (rad/√s)pilot 10 framespilot 1000 framespilot 10000 framespilot 100000 frames
0.0031111
0.011111
0.031110.9983
0.1110.99920.6708
0.3110.410.3347
110.94080.33330.3333
Mean word error while trackingillustrative
10⁻³0.010.1110⁻²⁰10⁻¹⁶10⁻¹²10⁻⁸10⁻⁴1drift (rad/√s)word error rate
Data table
Mean word error while tracking
drift (rad/√s)pilot 10 framespilot 1000 framespilot 10000 framespilot 100000 frames
0.0031 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
0.011 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
0.031 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1.482 × 10⁻⁵
0.11 × 10⁻²⁰1 × 10⁻²⁰3.841 × 10⁻⁵0.03418
0.31 × 10⁻²⁰1 × 10⁻²⁰0.21190.6896
11 × 10⁻²⁰0.0031990.87180.9326

The calibration state machine

Calibrate, track, fail, retry, recalibratepatentillustrative
Calibration state machine (loads when scrolled into view)
Every frame is a real evaluation of the ported analogue chain over the 16-input truth table. The calibration is this site's simplified stand-in for the simulator's (see how it's modelled); tracking uses one of the drift study's faster drift rates and its slowest pilot, where failures are common.

How good does calibration have to be?

Phase errors that calibration leaves behind are forgiving. Word error stays below one in a million for an input-phase error up to 21.24° on one lane, and for LO-phase errors up to 28.31° on output 1, 18.59° on output 2 and 18.39° on all outputs at once. Output 3 tolerates 35.67°.

Word error rate vs phase errorillustrative
05101520253010⁻²⁰10⁻¹⁶10⁻¹²10⁻⁸10⁻⁴1phase error (deg)word error ratetarget
Data table
Word error rate vs phase error
phase error (deg)input lane 1input lane 2LO output 1LO output 2LO output 3LO all outputs
01 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
11 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
21 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
31 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
41 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
51 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
61 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
71 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
81 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
91 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
101 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
111 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰
121 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰1.997 × 10⁻²⁰
131 × 10⁻²⁰1 × 10⁻²⁰1 × 10⁻²⁰4.577 × 10⁻¹⁸1 × 10⁻²⁰9.154 × 10⁻¹⁸
141.388 × 10⁻¹⁸1.388 × 10⁻¹⁸1 × 10⁻²⁰1.38 × 10⁻¹⁵1 × 10⁻²⁰2.76 × 10⁻¹⁵
151.681 × 10⁻¹⁶1.681 × 10⁻¹⁶1 × 10⁻²⁰2.694 × 10⁻¹³1 × 10⁻²⁰5.387 × 10⁻¹³
161.455 × 10⁻¹⁴1.455 × 10⁻¹⁴1 × 10⁻²⁰3.35 × 10⁻¹¹1 × 10⁻²⁰6.701 × 10⁻¹¹
179.032 × 10⁻¹³9.032 × 10⁻¹³1 × 10⁻²⁰2.618 × 10⁻⁹1 × 10⁻²⁰5.236 × 10⁻⁹
184.039 × 10⁻¹¹4.039 × 10⁻¹¹1 × 10⁻²⁰1.268 × 10⁻⁷1 × 10⁻²⁰2.537 × 10⁻⁷
191.307 × 10⁻⁹1.307 × 10⁻⁹1 × 10⁻²⁰3.768 × 10⁻⁶1 × 10⁻²⁰7.535 × 10⁻⁶
203.08 × 10⁻⁸3.08 × 10⁻⁸1 × 10⁻²⁰6.803 × 10⁻⁵1 × 10⁻²⁰0.000136
215.31 × 10⁻⁷5.31 × 10⁻⁷1 × 10⁻²⁰0.00074321 × 10⁻²⁰0.001482
226.748 × 10⁻⁶6.748 × 10⁻⁶6.949 × 10⁻²⁰0.004921 × 10⁻²⁰0.009647
236.366 × 10⁻⁵6.366 × 10⁻⁵1.716 × 10⁻¹⁷0.019991 × 10⁻²⁰0.0368
240.00044960.00044963.504 × 10⁻¹⁵0.051461 × 10⁻²⁰0.08192
250.00240.00245.618 × 10⁻¹³0.089611 × 10⁻²⁰0.1167
260.0097880.0097886.703 × 10⁻¹¹0.11831 × 10⁻²⁰0.1337
270.030910.030915.639 × 10⁻⁹0.13821 × 10⁻²⁰0.1558
280.076740.076743.169 × 10⁻⁷0.16312.346 × 10⁻²⁰0.2016
290.15280.15281.128 × 10⁻⁵0.20132.949 × 10⁻¹⁸0.2777
300.250.250.00024160.253.144 × 10⁻¹⁶0.3751
Worst level deviation vs phase errorillustrative
05101520253000.20.40.6phase error (deg)max deviation (steps)half step
Data table
Worst level deviation vs phase error
phase error (deg)input lane 1input lane 2LO output 1LO output 2LO output 3LO all outputs
08.882 × 10⁻¹⁶8.882 × 10⁻¹⁶8.882 × 10⁻¹⁶8.882 × 10⁻¹⁶8.882 × 10⁻¹⁶8.882 × 10⁻¹⁶
10.017450.017450.00060920.01760.00030460.0176
20.03490.03490.0024370.035510.0012180.03551
30.052340.052340.0054820.053710.0027410.05371
40.069760.069760.0097440.072190.0048720.07219
50.087160.087160.015220.090960.0076110.09096
60.10450.10450.021910.110.010960.11
70.12190.12190.029820.12930.014910.1293
80.13920.13920.038930.14890.019460.1489
90.15640.15640.049250.16870.024620.1687
100.17360.17360.060770.18880.030380.1888
110.19080.19080.073490.20920.036750.2092
120.20790.20790.087410.22980.04370.2298
130.2250.2250.10250.25060.051260.2506
140.24190.24190.11880.27160.059410.2716
150.25880.25880.13630.29290.068150.2929
160.27560.27560.1550.31440.077480.3144
170.29240.29240.17480.33610.087390.3361
180.3090.3090.19580.3580.097890.358
190.32560.32560.21790.380.1090.38
200.3420.3420.24120.40230.12060.4023
210.35840.35840.26570.42480.13280.4248
220.37460.37460.29130.44740.14560.4474
230.39070.39070.3180.47020.1590.4702
240.40670.40670.34580.49320.17290.4932
250.42260.42260.37480.51630.18740.5163
260.43840.43840.40480.53960.20240.5396
270.4540.4540.4360.5630.2180.563
280.46950.46950.46820.58650.23410.5865
290.48480.48480.50150.61020.25080.6102
300.50.50.53590.6340.26790.634

What would need measured data

Every drift rate, tracker gain and recalibration time here is illustrative; so are the channel bandwidths and the heater mesh layout (inferred, since the real layout is not given). Measured lane skew and channel responses, the OFT’s actual heater cross-talk, drift statistics against temperature and the real calibration sequence and timings would replace them. The pilot period, monitoring period and retry-once rule come from the patent.