Invocation
python3 opentest <command> [options]
Use help for command-specific details:
python3 opentest help
If you installed via Nix, the equivalent entry point is:
nix run github:ranaumarnadeem/OpenTestability -- <command> [options]
(or just opentest <command> [options] after nix profile install.)
OpenTestability ingests Yosys JSON netlists. (A leading --yosys flag is
accepted and ignored for backward compatibility.)
Commands
| Command | Purpose |
|---|---|
cop |
COP probabilistic metrics on a Yosys JSON netlist |
scoap |
SCOAP metrics on a Yosys JSON netlist |
analyze_and_add_tp |
End-to-end analysis plus test-point insertion |
status |
Show current project status |
help |
Show help text |
Options
| Option | Meaning |
|---|---|
--tech |
PDK / technology library: sky130 (default), osu035, ihp, nangate, auto |
-r, --reconvergence |
Enable reconvergence analysis alongside metrics |
-a, --algorithm |
Reconvergence algorithm: basic, simple, advanced, dominator |
--scoap |
Use SCOAP metrics (default for analyze_and_add_tp) |
--cop |
Use COP metrics |
-i, --input |
Input Yosys JSON netlist |
-o, --output |
Output file name |
-v, --verbose |
Detailed logs and reports |
-j, --json |
Write JSON output where supported |
-t, --threshold |
TPI threshold |
-m, --max-points |
Max test points to insert |
Quick recipes
SCOAP plus TPI:
python3 opentest scoap -i <design.json> -j
python3 opentest analyze_and_add_tp -i <design.json> --scoap -t 50 -m 10
With technology selection:
python3 opentest analyze_and_add_tp -i <design.json> --scoap -t 50 -m 10 --tech sky130
python3 opentest analyze_and_add_tp -i <design.json> --scoap -t 50 -m 10 --tech osu035
With reconvergence-aware analysis:
python3 opentest analyze_and_add_tp -i <design.json> --scoap -r -t 50 -m 10 --tech sky130
FaultFlow integration
OpenTestability exposes a machine interface for FaultFlow to obtain reconvergence structural data (fanout signals with Yosys net IDs and enriched reconvergence records) before ATPG, without inserting test points. The interface writes tpi_manifest.json with net-ID-enriched structural_hints that FaultFlow reads for fault ordering.
See docs/faultflow_preflight_protocol.md for the full contract, field schema, and invocation example.