Summary
ADR 0012 — Reproducible CDC jitter injection is Accepted and partially implemented. The reproducibility core and basic scheduler-domain jitter on the VCD timeline are in; several parts of the decided design are not yet built. This issue tracks the remaining work. Full design + an implemented-vs-deferred breakdown live in the ADR; the implementation plan is in docs/plans/cdc-jitter-completion.md.
Implemented today
- Run-parameters file + per-domain seeded PRNG (
src/sim/run_params.rs, RunParams::domain_seed).
jitter_ps per ClockConfig; per-domain ChaCha8Rng; uniform [-jitter_ps, +jitter_ps] draw.
- VCD-timeline jitter: displacement applied to the timing-VCD event timestamp (only when
--timing-vcd is set).
--check-with-cpu + jitter warning.
Deferred (this issue)
Acceptance
Each box reconciles the ADR's present-tense design with the implementation; closing this issue means ADR 0012's "Deferred until this issue" section is empty.
Summary
ADR 0012 — Reproducible CDC jitter injection is Accepted and partially implemented. The reproducibility core and basic scheduler-domain jitter on the VCD timeline are in; several parts of the decided design are not yet built. This issue tracks the remaining work. Full design + an implemented-vs-deferred breakdown live in the ADR; the implementation plan is in
docs/plans/cdc-jitter-completion.md.Implemented today
src/sim/run_params.rs,RunParams::domain_seed).jitter_psperClockConfig; per-domainChaCha8Rng; uniform[-jitter_ps, +jitter_ps]draw.--timing-vcdis set).--check-with-cpu+ jitter warning.Deferred (this issue)
base_timestamp; it does not feed per-signal arrival offsets, so it cannot produce--timing-reportviolations (ADR §5). Wire the displacement into the arrival values the checker consumes.--cdc-model-jitter-ps/ per-modeljitter_ps, displacing model-driven edges (JtagReplayModel, SPI, …). Nopatch_model_clock_edgespath exists yet.gcd_ps / 2constraint (ADR §2) — validatejitter_ps <= gcd_ps/2at startup and error/clamp otherwise.--run-paramsnor--timing-vcdis given, the seed is generated but not written; always persist so any run is replayable.Acceptance
Each box reconciles the ADR's present-tense design with the implementation; closing this issue means ADR 0012's "Deferred until this issue" section is empty.