FAILURE MAP
← Case archive

FA-89311 / Digital logic simulation / Open access

Enable latch powers up open · case 01

A clock high in the very first sample passes through before the latch has captured an enable.

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

ROOT CAUSE

The latch initial value is 1.

VERIFIED REPAIR

Start the latch at 0.

Unsuccessful approach: Seeding the latch from the first enable sample bypasses the latch timing.

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 = 1
    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[[1, 0, 1, 0, 0], 2][[0, 0, 1, 0, 0], 1]Failed
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 / 18476a3401bd04e6b30cb504a45cecdc82e435c24b8dc8bea031442b22494a58

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(samples):
    q = samples[0][1] if samples else 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[[1, 0, 1, 0, 0], 2][[0, 0, 1, 0, 0], 1]Failed
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 / 5bbc05ac026c5408daf0a466b1e3dd6837656d9bd01f4a542b688b629ded52ec

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.202109+00:00.

Case digest / 452e1cebeecc224f0bbff4c18fd9cfae88bde6e4c1f1400615502db56f1bc67e