The module end to end
One 4-bit input followed through every stage: lanes, modulators, the optical Fourier transform, homodyne receivers, PAM4 and the decode table.
What this stage does
The module takes four binary lanes from a host FPGA, one bit per lane per symbol slot, and returns the 4-point discrete Fourier transform of those four bits. The transform itself is done by light: four modulators put the bits onto four optical fields, a passive interferometer mixes them, and four coherent receivers read the result. The answer comes back to the FPGA as four PAM4 symbols, which a 256-entry table turns back into exact integers.
The input above is the simulator’s worked example, x = [1,0,1,1]. Its DFT is X = [3, j, 1, −j], and that is exactly what the FPGA recovers at the end: the analogue path in the middle carries real numbers with noise, but the decision at the end is digital and exact as long as the noise stays inside half a level.
How it’s modelled
The simulator splits the module into four layers. A bit-exact functional layer computes the integer DFT, the PAM4 mapping with saturation and the decode table. A per-symbol analogue model follows each word through the MZM cosine transfer, a 4×4 unitary for the optical Fourier transform, the self-homodyne projection, noise and the receiver’s thresholds. A control layer models heater drift and calibration, and a timing layer turns error and pause rates into throughput.
This page runs the first two layers in your browser. The baud rate (14 GBd paper) and the quadrature bias (0.5 π rad paper) come from the paper; the per-lane power (43.6 µW illustrative), the drive swing (0.22 π rad illustrative) and the LO power (−5 dBm illustrative) are illustrative choices made so that the simulator reproduces the worked example.
What we found
For x = [1,0,1,1] the four receivers carry 239.7 µA, 0 µA, 36.56 µA and −36.56 µA. Output 1 sits on a carrier pedestal of 130 µA, because a 0 is not dark: the MZM at quadrature still passes 0.426 of the peak field. One DFT level is 36.56 µA, against a total receiver noise of 1.09 µA rms.
That gives 36.53 dB of peak SNR where 25.83 dB is needed for a symbol error rate of one in a million: a margin of 10.7 dB on output 3, and 10.03 dB on output 1 at its top level, where the signal’s own shot noise raises the noise to 1.178 µA rms.
The decode table has 256 entries, of which 16 are valid (one per input word). Every one of the 108 possible single-level slips on one output lands on an invalid entry (108 detected), so the commonest analogue error is caught for free.
Data table
| x (x0..x3) | X = DFT(x) | ports | PAM4 symbols | clipped | table index |
|---|---|---|---|---|---|
| [0,0,0,0] | 0, 0, 0, 0 | 0, 0, 0, 0 | 0, 1, 2, 1 | — | 100 |
| [1,0,0,0] | 1, 1, 1, 1 | 1, 1, 1, 0 | 1, 2, 3, 1 | — | 121 |
| [0,1,0,0] | 1, 0−j, -1, 0+j | 1, 0, -1, 1 | 1, 1, 1, 2 | — | 149 |
| [1,1,0,0] | 2, 1−j, 0, 1+j | 2, 1, 0, 1 | 2, 2, 2, 2 | — | 170 |
| [0,0,1,0] | 1, -1, 1, -1 | 1, -1, 1, 0 | 1, 0, 3, 1 | — | 113 |
| [1,0,1,0] | 2, 0, 2, 0 | 2, 0, 2, 0 | 2, 1, 3, 1 | output 3 | 118 |
| [0,1,1,0] | 2, -1−j, 0, -1+j | 2, -1, 0, 1 | 2, 0, 2, 2 | — | 162 |
| [1,1,1,0] | 3, 0−j, 1, 0+j | 3, 0, 1, 1 | 3, 1, 3, 2 | — | 183 |
| [0,0,0,1] | 1, 0+j, -1, 0−j | 1, 0, -1, -1 | 1, 1, 1, 0 | — | 21 |
| [1,0,0,1] | 2, 1+j, 0, 1−j | 2, 1, 0, -1 | 2, 2, 2, 0 | — | 42 |
| [0,1,0,1] | 2, 0, -2, 0 | 2, 0, -2, 0 | 2, 1, 0, 1 | — | 70 |
| [1,1,0,1] | 3, 1, -1, 1 | 3, 1, -1, 0 | 3, 2, 1, 1 | — | 91 |
| [0,0,1,1] | 2, -1+j, 0, -1−j | 2, -1, 0, -1 | 2, 0, 2, 0 | — | 34 |
| [1,0,1,1] | 3, 0+j, 1, 0−j | 3, 0, 1, -1 | 3, 1, 3, 0 | — | 55 |
| [0,1,1,1] | 3, -1, -1, -1 | 3, -1, -1, 0 | 3, 0, 1, 1 | — | 83 |
| [1,1,1,1] | 4, 0, 0, 0 | 4, 0, 0, 0 | 3, 1, 2, 1 | output 1 | 103 |
What would need measured data
Every analogue number above rests on illustrative parameters chosen to make the worked example concrete. To pin them down for the real module one would need per-lane MZM transfer curves and bias drift, the OFT’s actual unitary, receiver noise spectra and TIA compression, and the module’s power split. The functional layer (the DFT, the PAM4 mapping, the decode table) is exact arithmetic and needs no measurement.