FAILURE MAP
← Case archive

FA-89296 / Digital logic simulation / Open access

Enable latch transparent during clock high · case 01

The gated clock follows enable changes during the high phase.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The latch opens on the wrong clock phase.

VERIFIED REPAIR

Make the latch transparent only while the clock is low.

Unsuccessful approach: Also opening it when enable falls reintroduces glitches.

Case contract

Input [samples] of [clk, en, te]. The enable latch starts at 0 and is transparent while clk is 0 (q = en or te), holding while clk is 1. The gated clock is clk and q. Return [gated clock per sample, number of gated rising edges counting from an initial low].

Why this case matters

Integrated clock gating cells rely on a low-transparent latch to avoid glitches; simulation models that skip the latch show clock pulses that silicon never produces.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(samples):
    q = 0
    g = []
    for clk, en, te in samples:
        if clk == 1:
            q = int(en or te)
        g.append(int(clk == 1 and q == 1))
    edges = sum(1 for a, b in zip([0] + g, g) if a == 0 and b == 1)
    return [g, edges]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1], 2]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1], 2])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1], 3]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 1], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1], 3])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1], 4]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1], 4])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 5]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 1], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 5])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 6]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 6])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
enable drops while clock high[[0, 1, 0, 0, 0], 1][[0, 1, 1, 0, 0], 1]Failed
enable rises while clock high[[0, 0, 1, 0, 1, 0, 1], 3][[0, 0, 0, 0, 1, 0, 1], 2]Failed
test enable forces clock[[0, 1, 0, 0], 1][[0, 1, 0, 0], 1]Passed
starts with clock high[[1, 0, 1, 0, 0], 2][[0, 0, 1, 0, 0], 1]Failed
test enable drops mid pulse[[0, 1, 0, 0], 1][[0, 1, 1, 0], 1]Failed
steady enable[[0, 1, 0, 1], 2][[0, 1, 0, 1], 2]Passed

SHA-256 / bc12afa7a92c47e2df9ea22f0bb97c87e93fc1066e8175ead119c19d11399cb4

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(samples):
    q = 0
    g = []
    for clk, en, te in samples:
        if clk == 0 or en == 0:
            q = int(en or te)
        g.append(int(clk == 1 and q == 1))
    edges = sum(1 for a, b in zip([0] + g, g) if a == 0 and b == 1)
    return [g, edges]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1], 2]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1], 2])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1], 3]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 1], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1], 3])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1], 4]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1], 4])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 5]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 1], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 5])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 6]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 6])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
enable drops while clock high[[0, 1, 0, 0, 0], 1][[0, 1, 1, 0, 0], 1]Failed
enable rises while clock high[[0, 0, 0, 0, 1, 0, 1], 2][[0, 0, 0, 0, 1, 0, 1], 2]Passed
test enable forces clock[[0, 1, 0, 0], 1][[0, 1, 0, 0], 1]Passed
starts with clock high[[0, 0, 1, 0, 0], 1][[0, 0, 1, 0, 0], 1]Passed
test enable drops mid pulse[[0, 1, 0, 0], 1][[0, 1, 1, 0], 1]Failed
steady enable[[0, 1, 0, 1], 2][[0, 1, 0, 1], 2]Passed

SHA-256 / 41abeb603a258575048abe24c7c5b25a808d536bcf754a32be6431cdbb686c3d

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(samples):
    q = 0
    g = []
    for clk, en, te in samples:
        if clk == 0:
            q = int(en or te)
        g.append(int(clk == 1 and q == 1))
    edges = sum(1 for a, b in zip([0] + g, g) if a == 0 and b == 1)
    return [g, edges]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1], 2]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1], 2])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1], 3]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 1], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1], 3])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1], 4]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1], 4])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 5]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 1], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 5])], [('enable drops while clock high', [[[0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0], [1, 0, 0]]], [[0, 1, 1, 0, 0], 1]), ('enable rises while clock high', [[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 6]), ('test enable forces clock', [[[0, 0, 1], [1, 0, 1], [0, 0, 0], [1, 0, 0]]], [[0, 1, 0, 0], 1]), ('starts with clock high', [[[1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 0, 0], [1, 0, 0]]], [[0, 0, 1, 0, 0], 1]), ('test enable drops mid pulse', [[[0, 0, 1], [1, 0, 1], [1, 0, 0], [0, 0, 0]]], [[0, 1, 1, 0], 1]), ('steady enable', [[[0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0], [0, 1, 0], [1, 1, 0]]], [[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], 6])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
enable drops while clock high[[0, 1, 1, 0, 0], 1][[0, 1, 1, 0, 0], 1]Passed
enable rises while clock high[[0, 0, 0, 0, 1, 0, 1], 2][[0, 0, 0, 0, 1, 0, 1], 2]Passed
test enable forces clock[[0, 1, 0, 0], 1][[0, 1, 0, 0], 1]Passed
starts with clock high[[0, 0, 1, 0, 0], 1][[0, 0, 1, 0, 0], 1]Passed
test enable drops mid pulse[[0, 1, 1, 0], 1][[0, 1, 1, 0], 1]Passed
steady enable[[0, 1, 0, 1], 2][[0, 1, 0, 1], 2]Passed

SHA-256 / 03b1a55108301674aefcb1b623e6680ee4c0668fe34be4ca7eda92e9cae0997c

Verification & scope

A deterministic bounded teaching model of one simulator rule set; the contract is stipulated and is not a claim of conformance to any HDL standard or commercial simulator. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:51:16.082293+00:00.

Case digest / 16cf9cce8bb058e0bb73f7b1bd9d5bb1da6fa83c0c6860303d9a9032c147c5a1