FAILURE MAP
← Case archive

FA-88964 / Digital logic simulation / Member archive

Violations listed by data transition instead of by edge · case 04

When windows of adjacent edges overlap, violations come out grouped by data time rather than by edge.

Member previewVariant 4 · 3 implementations · 7 checks per implementation

Case contract

Input [c0, clock, data, setup, hold]: c0 is the initial clock level, clock is time-sorted [t, v] transitions (possibly redundant), data is a list of data transition times. Rising edges are 0->1 changes only. For every data time t and every rising edge e: e-setup < t < e is a 'setup' violation, e <= t < e+hold is a 'hold' violation. Return all [e, t, kind] sorted by edge, then time.

Why this case matters

Timing checks in gate-level simulation decide which transitions corrupt a register; window boundaries and edge extraction are the classic bug sites.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
overlapping windows reported by edge[[10, 11, "hold"], [12, 11, "setup"], [10, 12, "hold"], [12, 12, "hold"]][[10, 11, "hold"], [10, 12, "hold"], [12, 11, "setup"], [12, 12, "hold"]]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗