An interactive explorer for understanding how the measurement response changes high-speed PAM4 waveforms and eye diagrams. It compares:
- fourth-order Bessel–Thomson (BT4),
- fourth-order Butterworth,
- an idealized brick-wall response, and
- a scope-bandwidth-limited BT4 implementation.
The application includes presets for:
- PCIe Gen6 64 GT/s SNDR,
- PCIe Gen6 64 GT/s transmitter jitter,
- IEEE 802.3ck 53.125 GBd PAM4, and
- IEEE P802.3dj 106.25 GBd PAM4 (draft).
Move the sliders for noise, deterministic jitter, random jitter, BT4 cutoff, and oscilloscope bandwidth. The controls, Keysight-inspired persistence eye diagrams, filter response, group delay, time-domain edge comparison, and live metrics remain together in the browser.
Live app:
https://<GITHUB_USER>.github.io/<REPOSITORY>/voici/render/pam4-filter-explorer.html
Replace the placeholders after publishing.
The complete application is generated from one notebook and rendered as a static, client-side dashboard with Voici and JupyterLite using a Pyodide kernel. There is no application server; all simulation and plotting run in the visitor's browser.
- Why an ideal brick-wall response, a Butterworth response, and BT4 are not interchangeable even when they share a nominal cutoff.
- Why BT4's group-delay behavior and time-domain response matter to PAM4 eyes.
- Why a scope's native bandwidth must extend far enough to reproduce the gradual BT4 tail before digital correction is applied.
- How noise bandwidth, DDJ, RJ, overshoot, ringing, and minimum eye height move as the filter response changes.
This is an educational model, not PCI-SIG or IEEE compliance software. It does not implement every required pattern, clock-recovery, de-embedding, reference equalizer, noise-compensation, jitter-decomposition, statistical, or pass/fail procedure.
The supplied standards remain copyrighted and are not copied into the site. The notebook provides clause locations and short paraphrases only. IEEE P802.3dj remains a draft; re-check the controlled version before compliance work.
Install uv, then run:
uv sync
uv run python scripts/build_notebook.py
uv run pytest
uv run voici build --contents notebooks/pam4-filter-explorer.ipynb
uv run python -m http.server -d _output 8000Open:
http://localhost:8000/voici/render/pam4-filter-explorer.html
To edit or run the notebook interactively:
uv run jupyter lab notebooks/pam4-filter-explorer.ipynbThe first browser visit can take roughly 30–60 seconds while Pyodide starts. Subsequent visits are normally faster because static assets are cached.
Deployment is automated. Pushing to main runs
the included workflow, which:
- regenerates the notebook,
- runs the numerical and content tests,
- builds the Voici static site,
- uploads
_outputas a GitHub Pages artifact, and - deploys the artifact.
Follow DEPLOYMENT.md for the complete repository setup, GitHub Pages, About panel, QR-code, update, and troubleshooting procedure.
Repository description, website, and topic suggestions are in ABOUT.md.
After the live application URL works:
uv run python scripts/make_qr.py \
"https://<GITHUB_USER>.github.io/<REPOSITORY>/voici/render/pam4-filter-explorer.html"The output is:
assets/pam4-filter-explorer-qr.png
.github/workflows/deploy.yml GitHub Pages build and deployment
notebooks/pam4-filter-explorer.ipynb Generated reader-facing notebook
scripts/build_notebook.py Notebook content and layout builder
scripts/make_qr.py QR-code generator
src/filter_explorer_core.py Signal and filter model
src/filter_explorer_ui.py Interactive dashboard
tests/ Numerical and presentation checks
ABOUT.md GitHub About text and topics
DEPLOYMENT.md Step-by-step publishing guide
LICENSE All-rights-reserved notice
- PCI Express Base Specification Revision 6.4, §8.3.3.13 p.1490 and §8.3.5 p.1498.
- IEEE P802.3ck/D3.0, §162.9.3 p.166.
- IEEE P802.3dj public task-force area
- Keysight IEEE 802.3ck conformance application
- Tektronix measurement-bandwidth discussion
Additional primary and vendor references appear inside the explorer.
No open-source license is granted. The deployed application may be viewed and used interactively, but the source is not licensed for reuse, modification, or redistribution without prior written permission. See LICENSE.
Created by Jiexin Zhu.
© 2026 Jiexin Zhu. All rights reserved.