FAILURE MAP
← Case archive

FA-88979 / Digital logic simulation / Member archive

Required time subtracts the driver delay instead of the fanout delay · case 04

Slack of internal gates is wrong whenever a gate and its fanout have different delays.

Member previewVariant 4 · 3 implementations · 6 checks per implementation

Case contract

Input [pis, gates, outs, period, setup]: pis maps input -> arrival time; gates are [name, delay, fanins] in topological order. arrival(g) = delay + max fanin arrival. required(g) = min over fanout gates m of (required(m) - delay(m)), plus period - setup if g is an output. Slack = required - arrival over gates. Return [worst slack, critical path, sorted [gate, slack]] where the path ends at the output with least slack (ties by name) and walks back through the fanin with the latest arrival (ties by smallest name) to a primary input.

Why this case matters

Static timing engines back-propagate required times through fanout trees; min/max confusion and delay attribution errors change the reported critical path.

One recorded failure

Sample boundary fixture

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

Boundary fixtureActualExpectedOutcome
diamond with shared fanout[1, ["b", "g1", "g4"], [["g1", 3], ["g2", 1], ["g3", 3], ["g4", 1]]][1, ["b", "g1", "g4"], [["g1", 1], ["g2", 3], ["g3", 3], ["g4", 1]]]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 ↗