Skip to main content

β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.

Figure Index

This site has two kinds of figures: (a) figures we generate with Python (all teaching toy/conceptual models, not transistor-level), and (b) figures inside the cited paper PDFs. This page files every one of them, so you can trace any figure back to "which script, which function, what parameters, which formula behind it, which paper it comes from".

How to read this table:

  • Toy? = whether it is a simplified teaching model (not transistor-level).
  • Redrawn? = whether it was redrawn directly from a paper figure (our generated figures are always re-simulated, never traced, so mostly No).
  • Verify? = manual_verification_needed; entries flagged ⚠️ still need manual confirmation of constants/correspondence.
  • Re-run everything in one shot: python scripts/run_all_sims.py (outputs to static/figures/). Data comes from extracted/extracted_figures.json.

(a) Generated figures (14)

FigureGenerated By (script / function)Formula Behind ItSourceTeaching MessageToy?Redrawn?Verify?
limit_cycle_phase_amplitude.pngsimulations/lab_01_sinusoidal_oscillator.py / fig_limit_cycle (params: f0=1.0, fs=4000, mu=0.6, start=(1.7,0))2-D state model z˙=ω0R(z)+μ(1r2)z\dot z=\omega_0 R(z)+\mu(1-r^2)z; tangential=phase, radial=amplitude[P1] Fig. 4(c) (limit cycle, peak vs ZC injection)phase=tangential (persists), amplitude=radial (pulled back)YesNoNo
waveform_with_impulse_markers.pnglab_01_sinusoidal_oscillator.py / fig_impulse_markers (f0=1.0, amp=1.0)V(t)=cos(2πf0t)V(t)=\cos(2\pi f_0 t); at peak Γ0\Gamma\approx0, at ZC Γ\vert \Gamma\vert maximal[P1] Fig. 4(a),(b)same impulse, different injection phase → different effect (LTV)YesNoNo
lc_waveform_and_isf.pnglab_02_lc_toy_model.py / main (f0=1.0, fs=8000, mu=0.3, dq/qmax∈[-0.05,0.05])ΓLC(θ)=sinθ\Gamma_{LC}(\theta)=-\sin\theta; Δϕ=ΓΔq/qmax\Delta\phi=\Gamma\,\Delta q/q_{max}[P1] Figs. 4,6,7(a); Eqs (10),(11)the LC's ISF; ΔϕΔq\Delta\phi\propto\Delta q; ZC injection = pure phase jumpYesNoNo
ring_oscillator_timing_noise_accumulation.pnglab_03_ring_toy_model.py / fig_accumulation (f0=5e9, sigma_edge=50 fs, max_lag_periods=500, n_trials=2000)edge-time random walk → σΔt=σedgeΔN\sigma_{\Delta t}=\sigma_{edge}\sqrt{\Delta N}[P2] Eq.(8), accumulated jitteraccumulated jitter is a random walk, Δt\propto\sqrt{\Delta t}YesNoNo
lc_vs_ring_isf_comparison.pnglab_03_ring_toy_model.py / fig_lc_vs_ring_isf (lc=-sin, ring_N=[5,15])ΓLC=sin\Gamma_{LC}=-\sin vs ring triangular (peak 1/N\sim1/\sqrt{N}); Γrms\Gamma_{rms} scaling[P1] Fig. 7; [P2] Fig. 8 (Γrms\Gamma_{rms} vs NN)ring sensitivity concentrates at transitions; NN\uparrow gives Γrms\Gamma_{rms}\downarrowYesNoNo
sinusoidal_impulse_phase_sweep.pnglab_04_impulse_sweep.py / fig_isf_sweep (f0=1.0, fs=8000, dq/qmax=1e-3, n_points=48, mu=0.3)Δϕ(θ)=sinθΔq/qmax\Delta\phi(\theta)=-\sin\theta\cdot\Delta q/q_{max}[P1] Eqs (10),(11); Fig. 4phase sensitivity varies with the injection phase θ\thetaYesNoNo
isf_impulse_sweep_sinusoidal.pnglab_04_impulse_sweep.py / fig_isf_sweep (same params as above)numeric Γ=Δϕ/(Δq/qmax)\Gamma=\Delta\phi/(\Delta q/q_{max}) vs analytic sinθ-\sin\theta (max err ~0.001)validation of the [P1] ISF definitionnumerically extracted ISF, near-perfect match to the theoretical sin-\sinYesNoNo
lti_vs_ltv_impulse_response.pnglab_04_impulse_sweep.py / fig_lti_vs_ltv (f0=1.0)LTI h(tτ)h(t-\tau) vs LTV hϕ(t,τ)=Γ(ω0τ)qmaxu(tτ)h_\phi(t,\tau)=\frac{\Gamma(\omega_0\tau)}{q_{max}}u(t-\tau)[P1] Sec. III (LTV nature); Fig. 3LTV: step height changes with injection phase τ\tauYesNoNo
isf_fourier_reconstruction.pnglab_05_fourier_isf.py / fig_reconstruction (ISF=-sin+0.35 sin2+0.18 cos3+0.25, N=[1,2,4])Γ(θ)=a02+(ancos+bnsin)\Gamma(\theta)=\frac{a_0}{2}+\sum(a_n\cos+b_n\sin) (Eq.12)[P1] Eq.(12)more harmonics, closer reconstruction of the original ISFYesNoNo
isf_fourier_coefficients.pnglab_05_fourier_isf.py / fig_coefficients (n_harmonics=8)cn=an2+bn2c_n=\sqrt{a_n^2+b_n^2}; Parseval cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2 (Eq.20)[P1] Eqs (12),(20)coefficient spectrum; verifies cn2=2Γrms2\sum c_n^2=2\Gamma_{rms}^2YesNoNo
symmetric_vs_asymmetric_isf_c0.pnglab_05_fourier_isf.py / fig_symmetric_vs_asymmetric (sym=cos(θ), c0=0; asym=cos(θ)+0.4, c0=0.8)c0c_0 (the ISF's DC) controls 1/f1/f upconversion (Eq.24)[P1] Eq.(24); [P2] symmetry resultsonly c00c_0\neq0 upconverts 1/f1/f into 1/f31/f^3YesNoNo
white_noise_phase_noise_psd.pnglab_06_white_noise_phase_noise.py / main (f0=1.0, fs=256, n=1048576, q_max=1.0, S_i=1e-4, ISF=-sin)Sϕ(f)=Γrms2Si/(qmax2(2πf)2)S_\phi(f)=\Gamma_{rms}^2 S_i/(q_{max}^2(2\pi f)^2); 20-20 dB/dec[P1] Eq.(21) (the lab includes a factor-of-2 SSB note)white noise → 1/f21/f^2 phase noise; simulation matches theoryYesNoNo
flicker_upconversion_symmetric_vs_asymmetric.pnglab_07_flicker_noise.py / main (f0=1.0, fs=256, n=1048576, sym=cos, asym=cos+0.5, k_flicker=1e-4)close-in Sϕ(c0/2)2Sflicker/(2πf)21/f3S_\phi\sim(c_0/2)^2 S_{flicker}/(2\pi f)^2\to1/f^3; symmetry suppresses it[P1] Eqs (23),(24); [P2] symmetrywaveform symmetry sets the close-in 1/f31/f^3 magnitudeYesNoNo
phase_noise_to_jitter_integration.pnglab_08_jitter_integration.py / main (f0=5e9, L(1MHz)=-100 dBc/Hz, integrate 1-100 MHz, slope 1/f^2)σt=12πf02L(f)df\sigma_t=\frac{1}{2\pi f_0}\sqrt{\int 2\mathcal{L}(f)\,df}; 1/f21/f^2 analytic closed formstandard jitter integration; SerDes practiceL(f)\mathcal{L}(f)\to rms jitter; 5 GHz, 100-100 dBc/Hz → ~448 fsNoNoNo

The only non-toy generated figure is phase_noise_to_jitter_integration.png: it performs the standard jitter integration (from L(f)\mathcal{L}(f) to σt\sigma_t), which is a mathematically exact closed-form comparison that does not depend on any simplified oscillator model, hence toy_model=false. The other 13 are all teaching toy/conceptual models.

(b) Cited PDF figures

The figures below are not generated by this site; they are figures inside the cited paper PDFs (taken from source_pdf_figures_referenced in extracted/extracted_figures.json). On the corresponding teaching pages we describe their content and give page numbers — we do not redraw or repost them.

FigureSourcePageTeaching MessageVerify?
Fig. 4[P1] general.pdf182different state-space effect of peak vs ZC injection (phase/amplitude split); conceptually reproduced in lab_01/02No
Fig. 6[P1]182"Δϕ\Delta\phi linear in small charge Δq\Delta q" for a Colpitts LC and a 5-stage ring; supports the impulse→phase linearity assumption, reproduced in lab_02(b)No
Fig. 7[P1]183waveforms and ISF shapes for (a) LC, (b) ring; basis of lc_vs_ring_isf_comparison.pngNo
Fig. 8[P1]183noise near nω0n\omega_0 downconverted to the carrier as sidebands (Fourier downconversion picture)No
Fig. 12[P1]185PSD of i2/f\overline{i^2}/f and SSB L(Δf)\mathcal{L}(\Delta f), showing the 1/f31/f^3, 1/f21/f^2, noise-floor regions and defining the 1/f31/f^3 cornerNo
Fig. 8[P2] jitter_ring.pdf794single-ended ring's Γrms\Gamma_{rms} vs stage count NN; the solid line is 4/N1.54/N^{1.5} from [P2] Eq.(16) at η=0.75\eta=0.75, i.e. evidence for ΓrmsN3/2\Gamma_{rms}\propto N^{-3/2}No
Fig. 17[P2]802ring phase noise vs symmetry (control) voltage, minimum at the symmetric point; supports the "symmetry → suppress 1/f1/f upconversion" design ruleNo
Fig. 18[P2]803Appendix B's asymmetric triangular ring ISF model (different positive/negative lobe widths); the basis asymmetry_corner.png (lab_33) numerically checks Eqs.(52)-(57) againstNo
Fig. 5[P4] BHongGenTheor-II…2126ideal LC's ISF and APF, the amplitude decay function, and their orthogonality; used by phase_vs_amplitude_noise to explain "why amplitude noise decays"No
Fig. 19[P3]2120for a 17-stage single-ended ring, the lock-range gain (~2x) of a "matched injection waveform" over a same-power sinusoidal injection; optimal_injection_lock_range.png (lab_39) reproduces this numericallyNo

Note: [P1]'s Fig. 11 (the noise→phase panorama) is also conceptually referenced on teaching pages, but is not in the exact source_pdf_figures_referenced list; for a page-by-page comparison see the paper_001 deep dive. [P3] Fig. 19 (p.2120) and [P2] Fig. 18 (p.803) are only cited once the Wave-G labs (lab_33, lab_39) were added, and are backfilled here as part of this audit; [P5]'s figures are still not cited by this site (unrelated to ISF).

Where each generated figure is used

For reverse lookup (from each figure's used_in):

FigureUsed on
limit_cycle_phase_amplitude.pngoscillator_phase
waveform_with_impulse_markers.pngoscillator_phase, lti_vs_ltv
lc_waveform_and_isf.pnglab_02, isf_definition
ring_oscillator_timing_noise_accumulation.pnglab_03, lc_vs_ring
lc_vs_ring_isf_comparison.pnglc_vs_ring, rms_isf
sinusoidal_impulse_phase_sweep.pnglti_vs_ltv, lab_04
isf_impulse_sweep_sinusoidal.pngisf_definition, lab_04
lti_vs_ltv_impulse_response.pnglti_vs_ltv
isf_fourier_reconstruction.pngfourier_series_of_isf, lab_05
isf_fourier_coefficients.pngfourier_series_of_isf, rms_isf
symmetric_vs_asymmetric_isf_c0.pngflicker_noise_upconversion, symmetry
white_noise_phase_noise_psd.pngwhite_noise_to_phase_noise, lab_06
flicker_upconversion_symmetric_vs_asymmetric.pngflicker_noise_upconversion, lab_07
phase_noise_to_jitter_integration.pngpsd_phase_noise_jitter, lab_08, numerical_feeling, worked_examples, serdes_clocking_connection
rf_spectrum_phase_noise_sidebands.pnglab_10
monte_carlo_jitter_histogram.pnglab_11
serdes_eye_ber_bathtub.pngcapstone_lc_end_to_end, lab_12, worked_examples
pll_cdr_jitter_transfer.pnglab_13
cyclostationary_effective_isf.pnglab_14
nonlinear_oscillator_isf.pnglab_15
leeson_vs_isf_overlay.pnglab_16, measurement_and_spurs, derivation_leeson
design_tradeoff_sweeps.pnglab_17
lorentzian_carrier_lineshape.pnglorentzian_linewidth
allan_deviation.pngallan_variance
pll_noise_budget.pngpll_noise_budget
cross_coupled_vco_isf.pngreal_oscillator_topologies
allan_flicker_floor.pngallan_variance
am_noise_spectrum.pngphase_vs_amplitude_noise
aperture_jitter_snr.pngadc_aperture_jitter
asymmetry_corner.pngasymmetric_isf_closed_form
clock_chain_budget.pngclock_chain_budget
correlated_supply_selection.pnglab_34
device_noise_isf_bands.pngdevice_noise_mapping
diffusion_dictionary.pngdiffusion_dictionary
dual_dirac_bathtub.pngdj_dual_dirac
flicker_lineshape.pngbeyond_lorentzian
floquet_ppv_numeric.pngderivation_floquet_ppv
fom_limit.pngfom_limit
htm_band_folding.pngltv_htm
ilfd_lock_ranges.pngpaper_004_injection_locking_part2
impulse_phase_decomposition.pngimpulse_to_phase_shift
injlock_noise_shaping.pnginjection_locking_noise
isf_three_methods.pngisf_from_waveform
jitter_kernels_mc.pngjitter_kernels
jitter_two_regime.pngjitter_kernels
lock_acquisition.pnglab_36
lock_characteristic_omega.pngpaper_003_injection_locking_part1
mos_level1_ring_isf.pnglab_32
optimal_injection_lock_range.pnginjection_locking_noise
pulling_spectrum.pnginjection_locking_noise
supply_pushing_ring.pngvaractor_tuning_supply_pushing
xcorr_floor.pngmeasurement_and_spurs
subharmonic_injection.pnglab_40_subharmonic_injection
large_injection_transient.pngpaper_004_large_injection_transient

v5 additions (subharmonic injection / large-injection transient)

FigureGenerated By (script / function)Formula Behind ItSourceTeaching MessageToy?
subharmonic_injection.pngsimulations/lab_40_subharmonic_injection.py / main (2×3 panels)Subharmonic (×N) pulse injection: impulse-train map (lock range ωL=qinjΓ~max/(NT0)\omega_L=q_{inj}\vert\tilde\Gamma\vert_{max}/(NT_0)) vs the unaveraged time-synchronous ODE; realignment factor β=qinjΓ~(θss)\beta=-q_{inj}\tilde\Gamma'(\theta_{ss}); first-order discrete noise shaping Hosc(z)H_{osc}(z), corner βfref/2π\approx\beta f_{ref}/2\pi[P3] Sec. IV footnote 7, p.2112; [P4] Eq.(28)–(30), p.2129 (taking (M,N)[P4]=(N,1)(M,N)_{[P4]}=(N,1))lock range 1/N\propto1/N (log-log slope 1.000-1.000); β\beta's ODE step response vs the first-order prediction; output jitter N\propto\sqrt N, reference spur independent of β\betatoy (phase-only, weak-injection pedagogical toy)
large_injection_transient.pngsimulations/lab_41_large_injection_transient.py / main (4 panels)Exact pull-in solution tan(θ~/2)=tan(θ~0/2)tanh((ωpt+ϕ0)/2)\tan(\tilde\theta/2)=\tan(\tilde\theta_0/2)\tanh((\omega_pt+\phi_0)/2) ([P4] Eq.(31)); APF-driven amplitude transient A=acosθA=a\cos\theta; large-injection lock characteristic sinθ/(1+acosθ)\sin\theta/(1+a\cos\theta); pulled spectrum with AM-lifted k=0,2k=0,2 comb lines[P4] Eq.(27),(31)–(34), p.2128–2130 (verified)ISF-only vs. ISF+APF pull-in rates differ by a factor (1+a)(1+a); the lock characteristic becomes unbounded as a1a\to1 (a nonphysical zero-amplitude solution); AM makes the pulling spectrum grow mirror linestoy (ideal LC, phase+APF quasi-static/first-order-lag model)

Key takeaways

  • All 54 generated figures are fully traceable to script/function/parameters/formula/source, and none are orphaned (every one is embedded on at least 1 page). Except for phase_noise_to_jitter_integration.png, most are teaching toy/conceptual models; mos_level1_ring_isf.png and supply_pushing_ring.png are device-equation-level (MOS Level-1, not SPICE — closer to a real circuit than a toy).
  • The 10 PDF figures are only cited and described, never redrawn; among them [P2] Fig. 17 (p.802) and [P4] Fig. 5 (p.2126) have been verified against the original PDFs.
  • Embed syntax: ![description](/figures/<name>.png). Re-run: python scripts/run_all_sims.py.

Further reading

v2 added simulation figures (Wave C)

FigureGenerated ByFormula Behind ItSourceTeaching MessageToy?
rf_spectrum_phase_noise_sidebands.pnglab_10_rf_spectrum.py mainv=cos(ω0t+ϕ)v=\cos(\omega_0 t+\phi), FFT[P1] Fig.8 conceptphase noise→carrier skirtstoy
monte_carlo_jitter_histogram.pnglab_11_monte_carlo_jitter.py mainσ=σedgeΔN\sigma=\sigma_{edge}\sqrt{\Delta N}[P2] Eq.(8)RJ Gaussian, grows as ΔN\sqrt{\Delta N}toy
serdes_eye_ber_bathtub.pnglab_12_serdes_eye_ber.py mainBER bathtub (RJ)standard SerDesjitter→eye→BERmodel
pll_cdr_jitter_transfer.pnglab_13_pll_cdr_transfer.py mainHlp2,Hhp2\lvert H_{lp}\rvert^2,\lvert H_{hp}\rvert^2standard PLLVCO high-passed / ref low-passedmodel
cyclostationary_effective_isf.pnglab_14_cyclostationary_isf.py mainΓeff=Γα\Gamma_{eff}=\Gamma\alpha[P1] cyclostationaryinjection phase sets the rmstoy
nonlinear_oscillator_isf.pnglab_15_nonlinear_isf.py mainvan der Polexternal (toy)ISF is not always sin-\sintoy
leeson_vs_isf_overlay.pnglab_16_leeson_vs_isf.py mainLeeson vs ISFLeeson 1966 (external)three-region comparisonmodel
design_tradeoff_sweeps.pnglab_17_design_sweep.py mainLΓrms2/qmax2\mathcal{L}\propto\Gamma_{rms}^2/q_{max}^2[P1] Eq.(21)swing/Γrms/N curvestoy

v3 added figures (deepening)

FigureGenerated ByFormula Behind ItTeaching MessageToy?
lorentzian_carrier_lineshape.pnglab_18_lorentzian.pySD/(D2+Δω2)S\propto D/(D^2+\Delta\omega^2)the carrier is Lorentzian, flattening near the carriermodel
allan_deviation.pnglab_19_allan.py / mainσy(τ)\sigma_y(\tau) slopes: white FM τ1/2\propto\tau^{-1/2}, flicker FM flat floor, RW FM τ+1/2\propto\tau^{+1/2}time-domain fingerprint of FM noisemodel
pll_noise_budget.pnglab_20_pll_budget.pySout=S_{out}=\sum sources×transferPLL budget + optimal BWmodel
cross_coupled_vco_isf.pnglab_21_topology_isf.pytank vs tail effective ISFtail c0,c2c_0,c_2 upconversion (illustrative)toy

v4 added figures (Wave-G backfill, 26 figures)

The 26 figures below were generated progressively after v3 but had not yet been logged in this page's table. Each was cross-checked against its generating script in simulations/ and its embedding page(s) in docs/. The classification continues section (a)'s columns (Generated By / Formula / Source / Teaching Message / Toy?), with the corresponding paper equation noted where applicable.

FigureGenerated By (script / function)Formula Behind ItSourceTeaching MessageToy?
allan_flicker_floor.pnglab_19_allan.py / verify_flicker_floor (with verify_sin4_integrals)flicker-FM Allan floor σy2=2ln2h1\sigma_y^2=2\ln2\cdot h_{-1}; using the site's canonical example C h1=8.11×1019h_{-1}=8.11\times10^{-19}, measures the ADEV floor against 2ln2h1=1.06×109\sqrt{2\ln2\,h_{-1}}=1.06\times10^{-9}; a mixed white+flicker run verifies the knee τknee=1/(4ln2fc)=113μs\tau_{knee}=1/(4\ln2\,f_c)=113\,\mu sstandard stochastic-process math (external literature, not among the 5 PDFs)the Allan variance floor is not just a slope — flicker floor has an exact closed-form constantmodel
am_noise_spectrum.pnglab_28_am_noise.py / mainOU (Ornstein-Uhlenbeck) amplitude process Sa,2s(ω)=cτ02/(1+ω2τ02)S_{a,2s}(\omega)=c\tau_0^2/(1+\omega^2\tau_0^2) vs Wiener phase Sϕ,2s(ω)=c/ω2S_{\phi,2s}(\omega)=c/\omega^2; τ0=2Q/ω0\tau_0=2Q/\omega_0[P4] Sec. III-F, p.2128 (verified on this site) + OU process (external: Uhlenbeck & Ornstein 1930)amplitude noise converges (flat floor) due to the restoring force; phase noise diverges (1/f21/f^2); the AM floor and PM asymptote meet at the corner fc=f0/(2Q)f_c=f_0/(2Q)model
aperture_jitter_snr.pnglab_30_aperture_jitter.py / mainADC aperture jitter: SNRjitter=20log10(2πfinσt)\text{SNR}_{jitter}=-20\log_{10}(2\pi f_{in}\sigma_t), ENOB=(SNR1.76)/6.02\text{ENOB}=(\text{SNR}-1.76)/6.02; Monte-Carlo FFT verification using the site's canonical example C σt=447.9\sigma_t=447.9 fsstandard ADC theory (external: Kester MT-007; Walden JSAC 1999), not among the 5 PDFsclock jitter directly eats into ADC SNR/ENOB; higher finf_{in} is more sensitive to jittermodel
asymmetry_corner.pnglab_33_asymmetry_corner.py / main[P2] Appendix B (p.803) closed-form solutions Eqs.(52)-(57) for the asymmetric triangular ring ISF: Γrms2\Gamma_{rms}^2, Γdc\Gamma_{dc}, 1/f31/f^3 corner f1/f3f_{1/f^3} vs asymmetry ratio A=frise/ffallA=f'_{rise}/f'_{fall}[P2] Eqs.(52)-(57), p.803; a factor-of-2 convention gap vs [P1] Eq.(24) (flagged)numerically verifies the [P2] Appendix B closed forms; the corner forms a symmetric V vs AA (symmetric in logA\log A)toy ([P2] triangular approximation, not transistor-level; see lab_32 for how far real devices deviate)
clock_chain_budget.pngfig_clock_chain.py / mainclock-chain bookkeeping: reference flat floor, PLL ×N (in-band +20log10N+20\log_{10}N), ÷N (20log10N-20\log_{10}N), buffer additive floor; integrated jitter for the whole chainsite canonical parameters (representative, not a specific silicon design), [P1] Eq.(21) "/4" SSB conventionone figure that shows the ×N/÷N/PLL/buffer noise/jitter addition rules at a glancemodel (illustrative chain, not a specific design)
correlated_supply_selection.pnglab_34_correlated_supply.py / make_figure[P2] Sec. VI, p.797, Eqs.(37)-(38): correlated supply noise summed across N phase-shifted per-stage ISFs leaves only the Fourier components n=0 (mod N)n=0\ (\mathrm{mod}\ N), forming an Nf0N\cdot f_0 selection comb[P2] Eqs.(37)-(38), p.797; conceptually matches [P2] Fig. 11 (bench measurement)correlated vs uncorrelated noise upconvert via different selection rules: correlated noise is folded to the carrier only near kNf0k\cdot N f_0toy (per-stage ISF is a pedagogical triangle wave, not transistor-extracted)
device_noise_isf_bands.pngfig_device_noise_bands.py / mainISF Fourier coefficients cnc_n as the gains of a "frequency-converting receiver"; device-noise-PSD bands at DC / f0f_0 / 2f02f_0 are each folded to the carrier by c0,c1,c2c_0,c_1,c_2[P1] Eqs.(12),(13),(19),(23)ISF harmonics = receive-channel gains; c0c_0 upconverts near-DC flicker, c1,c2c_1,c_2 fold white noise near f0,2f0f_0,2f_0 down into the 1/f21/f^2 regiontoy (illustrative asymmetric ISF, not transistor-extracted)
diffusion_dictionary.pnglab_23_diffusion_dictionary.py / maindiffusion-constant dictionary: κ2=Γrms2Si/(2qmax2)\kappa^2=\Gamma_{rms}^2 S_i/(2q_{max}^2) cross-checked four independent ways — phase-variance slope, Lorentzian FWHM, overlapping ADEV, Sϕ(f)(2πf)2/2S_\phi(f)(2\pi f)^2/2 plateau[P2] Eq.(8)/(10)/(11)/(12), p.792-793κ\kappa, DD, linewidth, ADEV, and the 1/f21/f^2 coefficient are really the same number in different unitsmodel (single ISF-weighted white-noise phase integral, not a specific circuit)
dual_dirac_bathtub.pnglab_31_dual_dirac.py / maindual-Dirac jitter model: TJ=RJ(Gaussian)+DJ(bounded); Q-scale tail straight-line fit extracts (DJdd,σ)(DJ_{dd},\sigma); bathtub BER and TJ@BER=DJdd+2Q1(BER)σTJ_{@BER}=DJ_{dd}+2\,Q^{-1}(BER)\sigmaindustry standard (external: Fibre Channel MJSQ INCITS T11.2; PCIe/OIF-CEI), not among the 5 PDFsdual-Dirac extrapolates TJ@BER from the deep tail's straight line; the model parameter DJddDJ_{dd} is smaller than the true peak-to-peak DJppDJ_{pp}model (standard DSP/statistical method, not an oscillator physics model)
flicker_lineshape.pnglab_29_flicker_lineshape.py / main (2x2 panels)white-FM carrier lineshape is Lorentzian (FWHM=D/πD/\pi); flicker-FM (Sϕ1/f3S_\phi\propto1/f^3) has variance t2lnt\propto t^2\ln t, giving a near-Gaussian line core; -10dB/-3dB half-width ratio: Lorentzian=3.00, Gaussian=1.8226standard stochastic-process/linewidth theory (external literature)white noise → Lorentzian, flicker → near-Gaussian core; the line shape itself can be used to infer the noise typemodel
floquet_ppv_numeric.pnglab_25_floquet_numeric.py / mainvan der Pol oscillator: monodromy matrix, Floquet multipliers, backward-integrated adjoint system extracting the periodic left eigenvector v1(t)v_1(t), whose component along the kicked axis is Γppv(θ)/qmax=ω0v1,y(θ)\Gamma_{ppv}(\theta)/q_{max}=\omega_0 v_{1,y}(\theta)Floquet/adjoint/PPV theory (external literature: e.g. Demir 2000, not among the 5 PDFs), compared against the [P1] ISF definitiondirectly computes the adjoint/PPV ISF numerically; matches the impulse-extraction method and the harmonic-limit sinθ-\sin\theta three waystoy (van der Pol, not transistor-level; compare fig_isf_three_methods)
fom_limit.pngfig_fom_limit.py / main (2 panels)FOM ceiling: Cref(T)=10log10(kT1Hz/1mW)C_{ref}(T)=-10\log_{10}(kT\cdot1\text{Hz}/1\text{mW}) (300K=173.83dB); general form FOM=Cref(T)10log10(Feff)FOM=C_{ref}(T)-10\log_{10}(F_{eff}); ring [P2] Eq.(23) Feff=(8/3η)(VDD/Vchar)F_{eff}=(8/3\eta)(V_{DD}/V_{char}); LC Feff,LCF_{eff,LC} back-derived from [P1] Eq.(21)[P1] Eq.(21), p.185; [P2] Eqs.(23),(25), p.796FOM has a theoretical ceiling set by temperature and FeffF_{eff} (topology/process efficiency); the ring has a lower bound at VT=0V_T=0model (LC/ring analytic formulas substituted in, not a specific circuit simulation)
htm_band_folding.pngfig_htm_bandfold.py / fig_htm_band_foldingharmonic transfer matrix of an LPTV system: ISF Fourier coefficients are the gain of each fold, c~0=c0/2\tilde c_0=c_0/2, c~±k=(1/2)cke±jθk\tilde c_{\pm k}=(1/2)c_k e^{\pm j\theta_k}; band-folding diagram + Toeplitz HTM heatmap[P1] Eqs.(12),(13), p.183; the HTM framework is external literature (Zadeh 1950), not among the 5 PDFsISF harmonics are the complex gains an LTV system uses to fold any band to f+kf0f+kf_0 — one figure shows every folding pathtoy (illustrative teaching asymmetric ISF)
ilfd_lock_ranges.pnglab_37_ilfd_lock.py / main[P4] Eq.(28)-(30), p.2129 M:N sub-/super-harmonic locking: ωL=IinjGN/2\omega_L=I_{inj}\vert G_N\vert/2 (p.2130); beat frequency outside the lock range ωb=NΔω2ωL2\omega_b=N\sqrt{\Delta\omega^2-\omega_L^2} (Eq.34, p.2130)[P4] Eqs.(28)-(30),(34), p.2129-2130integrating the unaveraged time-synchronous phase ODE directly verifies that only the resonant N-th ISF harmonic can lock; a symmetric ISF (c2=0c_2=0) cannot divide by 2toy (3-harmonic controllable ISF, illustrative)
impulse_phase_decomposition.pngfig_impulse_decomp.py / fig_impulse_decompideal-LC state-plane geometry: a charge impulse causes a purely horizontal step ΔV=Δq/C\Delta V=\Delta q/C; its tangential component gives the permanent Δϕ\Delta\phi, its radial component gives the decaying ΔA\Delta A; at a zero crossing the kick is almost purely tangential, at a peak almost purely radial[P1] Eq.(9) charge→voltage step; Eqs.(10)-(11) phase impulse responsemakes it geometrically obvious why the ideal LC's Γ(θ)=sinθ\Gamma(\theta)=-\sin\thetatoy (ideal lossless LC, small-signal limit)
injlock_noise_shaping.pnglab_26_injlock_noise.py / mainan injection-locked oscillator's phase noise is high-pass filtered (1st order): ωc=ωLcosθss=ωL2Δω2\omega_c=\omega_L\cos\theta_{ss}=\sqrt{\omega_L^2-\Delta\omega^2}; linearized to an OU process, Sθ(f)=Sn/(ωc2+ω2)S_\theta(f)=S_n/(\omega_c^2+\omega^2) vs free-running Sn/ω2S_n/\omega^2[P3] Eqs.(30),(34)-(35),(38)-(40), p.2113-2115a locked oscillator behaves like a first-order PLL: its own 1/f21/f^2 skirt is suppressed below ωc\omega_cmodel ([P3]'s verified deterministic pulling equation plus an added noise drive; the noise-shaping extension is this site's own)
isf_three_methods.pngfig_isf_three_methods.py / duel[P1] Appendix (pp.192-193) three-method duel: Method A direct impulse measurement, Method B closed-form-from-waveform Eq.(37) Γ=f/(f2+f2)\Gamma=f'/(f'^2+f''^2), Method C first-order approximation Eq.(38) Γi=fi/fmax2\Gamma_i=f_i'/f'^2_{max}, tested on a van der Pol oscillator[P1] Eqs.(31)-(38), pp.192-193all three methods agree near-harmonically (μ=0.2\mu=0.2); on a distorted waveform (μ=2.0\mu=2.0) Methods B/C degrade and only the impulse method (Method A) stays accuratetoy (van der Pol, same as lab_15/lab_25)
jitter_kernels_mc.pnglab_24_jitter_kernels.py / make_figurethree jitter kernels: TIE (kernel=1), N-period (4sin2(πfNT)4\sin^2(\pi fNT)), cycle-to-cycle (16sin4(πfT)16\sin^4(\pi fT)), Monte-Carlo checked against closed forms under a single one-sided-SϕS_\phi convention[P2] Eq.(8), p.792; Eq.(11)/(12), p.793 (κ\kappa has no ω0\omega_0)the three jitter definitions correspond to three frequency-domain kernels; for white FM, σΔϕ2(N)=κ2NT\sigma_{\Delta\phi}^2(N)=\kappa^2 NT holds exactlymodel (standard DSP kernel integrals + Monte-Carlo, convention-focused)
jitter_two_regime.pnglab_24_jitter_kernels.py / make_figure_two_regimetwo-regime jitter growth σ(Δt)=κ2Δt+ζ2Δt2\sigma(\Delta t)=\sqrt{\kappa^2\Delta t+\zeta^2\Delta t^2} ([P2] Fig.16, p.802; Eq.(8)/(9), p.792); mixed white+flicker FM simulation, slope transition 0.5→~1, corner Δtc=κ2/ζ2\Delta t_c=\kappa^2/\zeta^2[P2] Eq.(8)/(9), p.792; Fig.16, p.802white noise dominates at short times (Δt\sqrt{\Delta t}), flicker dominates at long times (Δt\propto\Delta t); the corner maps to the frequency-domain 1/f31/f^3 cornermodel
lock_acquisition.pnglab_36_lock_acquisition.py / main (2 panels + inset)exact deterministic lock-acquisition solution of the Adler equation, R(θ(t))=R(θ0)eωctR(\theta(t))=R(\theta_0)e^{-\omega_c t} (matches the [P3] Eq.(39)-(40) pull-in frequency); noise-induced cycle slips via Kramers escape rate (external: Kramers 1940)[P3] Eqs.(30),(33),(35),(39)-(40), p.2113-2115; Kramers/Risken/Ambegaokar-Halperin (external, not among the 5 PDFs)lock acquisition critically slows near the edge (T1/ωcT\sim1/\omega_c); noise can occasionally make a locked oscillator "slip" a whole cyclemodel (Adler equation + white-FM drive; the washboard potential is standard stochastic theory)
lock_characteristic_omega.pngfig_lock_characteristic.py / main[P3] Eq.(33), p.2114 generalized Adler equation's lock characteristic Ω(θ)\Omega(\theta): sinusoidal injection → symmetric lock range, harmonic-rich injection → asymmetric lock range (an effect the plain Adler equation cannot show)[P3] Eqs.(26),(33)-(35), p.2113-2114lock range = the value-range width of Ω(θ)\Omega(\theta); a harmonic-rich ISF can make the lock range asymmetrictoy (illustrative harmonic-rich ISF and injection waveform; the ideal-LC case is exactly sin-\sin)
mos_level1_ring_isf.pnglab_32_mos_level1_ring.py / maina 3-stage CMOS inverter ring, integrated directly in numpy using MOS Level-1 (Shichman-Hodges, λ=0\lambda=0) device equations; ISF extracted by the impulse method ([P1] Eq.(9) ΔV=Δq/CL\Delta V=\Delta q/C_L plus comparing perturbed vs unperturbed threshold-crossing times)[P1] Eq.(9); ISF shape compared against [P2] Fig.5/Fig.6, p.793 and Eq.(16), p.794an ISF extracted at the device-equation level (not SPICE) shows the [P2]-predicted dual-lobe shape (sensitive near transitions, ~0 near the rails)device-eq (MOS Level-1 equation integration; closer to a real circuit than a toy, but not SPICE/BSIM)
optimal_injection_lock_range.pnglab_39_optimal_injection.py / main[P3] Sec. VI, p.2119-2120: for a fixed rms injection current, Cauchy-Schwarz gives the optimal injection waveform iinjΓtildei^*_{inj}\propto\Gamma_{tilde} and the maximal lock range ωL=IrmsΓtilde,rms\omega_L^*=I_{rms}\Gamma_{tilde,rms} (Eqs.43-45)[P3] Eqs.(33),(43)-(45), p.2119-2120a matched injection waveform (proportional to the ISF itself) beats a same-power sinusoidal injection's lock range; ~2.06x gain for a 17-stage ring (echoing [P3] Fig.19)toy + [P2] App.B triangular ring model (not transistor-extracted)
pulling_spectrum.pnglab_27_pulling_spectrum.py / mainoutside the lock range (Δω>ωL\vert\Delta\omega\vert>\omega_L), integrating the Adler equation gives beat frequency ωb=Δω2ωL2\omega_b=\sqrt{\Delta\omega^2-\omega_L^2} ([P4] Eq.34, p.2130); the output spectrum is a one-sided geometrically-decaying comb with ratio r=ωL/(Δω+ωb)r=\omega_L/(\Delta\omega+\omega_b) (external: Armand 1969)[P3] Eq.(30), p.2113; [P4] Eq.(34), Sec. V-B, p.2130the injection-pulling spectrum is a one-sided comb, asymmetric about the injection frequency; one sideband lands exactly at the injection frequencymodel (deterministic Adler equation, RK4-integrated, noise-free to isolate the pulling comb)
supply_pushing_ring.pnglab_38_supply_pushing_ring.py / mainsupply pushing Kpush=df0/dVDDK_{push}=df_0/dV_{DD} of the MOS Level-1 3-stage ring: static sweep + dynamic small-signal VDDV_{DD} ripple, verifying the narrowband-FM prediction β=KpushVr/fm\beta=K_{push}V_r/f_m and the Bessel sidebands 20log10(J1(β)/J0(β))20\log_{10}(J_1(\beta)/J_0(\beta))circuit core reused from lab_32 (MOS Level-1, not SPICE); FM/Bessel sideband math is standard communications theorysupply noise directly frequency-modulates the oscillator; small-signal sideband amplitude matches the narrowband-FM Bessel formuladevice-eq (same level as lab_32, not SPICE)
xcorr_floor.pnglab_35_xcorr_measurement.py / make_figurecross-correlation phase-noise measurement: single-channel auto-spectrum is masked by instrument noise above the DUT floor; the cross-spectrum Y1Y2\langle Y_1 Y_2^*\rangle, averaged over M segments, has its uncorrelated residual fall as 1/M1/\sqrt{M} (i.e. 5log10M-5\log_{10}M dB) while the DUT-correlated term does not decayexternal measurement technique (not among the 5 PDFs); the underlying PSD/cross-spectrum statistics are standard DSPcross-correlation measurement pushes instrument noise far below the single-channel floor, revealing the true DUT floormodel (standard DSP statistics, not an oscillator physics model)