feat(L02): add FPGA bring-up and programming card
This commit is contained in:
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Independent preflight models for L02; they never claim physical FPGA execution."""
|
||||
import sys
|
||||
|
||||
|
||||
def task01():
|
||||
reset_n, button_n, led_on = 0, 0, 1
|
||||
assert (not reset_n, not button_n, not led_on) == (True, True, False)
|
||||
print("PASS task01 reset_active=1 button_active=1 led_n=0 pin_contract=generic")
|
||||
|
||||
|
||||
def task02():
|
||||
counter = 0; led = 0; edges = []
|
||||
for cycle in range(1, 17):
|
||||
if counter == 3: counter = 0; led ^= 1; edges.append(cycle)
|
||||
else: counter += 1
|
||||
assert edges == [4, 8, 12, 16]
|
||||
print("PASS task02 reset_known=1 led_edges=4,8,12,16 divider=4")
|
||||
|
||||
|
||||
def task03():
|
||||
states = ["idle", "cable", "identified", "configured", "observed"]
|
||||
assert states == ["idle", "cable", "identified", "configured", "observed"]
|
||||
print("PASS task03 order=cable,id,configure,observe workflow_model=complete hardware_observed=0 claim=preflight-only")
|
||||
|
||||
|
||||
TASKS = {"task01_pin_polarity": task01, "task02_bringup_blinker": task02, "task03_programming_gate": task03}
|
||||
if len(sys.argv) != 2 or sys.argv[1] not in TASKS: raise SystemExit(f"usage: {sys.argv[0]} {'|'.join(TASKS)}")
|
||||
TASKS[sys.argv[1]]()
|
||||
Reference in New Issue
Block a user