Docs / Examples

Use these short recipes as copy-paste starting points. OpenTestability ingests Yosys JSON netlists. The repo ships a small data/input/s27.json you can use in place of design.json to try any recipe immediately.

Installed via Nix? Every python3 opentest <args> line below is equivalent to nix run github:ranaumarnadeem/OpenTestability -- <args> (or just opentest <args> after nix profile install).

1. Fast COP run

python3 opentest cop -i designs/s27.json -j

Use this when you need quick controllability/observability metrics for ranking weak signals.

2. End-to-end TPI flow

python3 opentest analyze_and_add_tp -i designs/s27.json --scoap -t 50 -m 10 -v

Result: an enhanced Yosys JSON netlist in the TPI output area plus verbose logs/reports.

3. Verbose diagnostics session

python3 opentest --verbose scoap -i designs/s27.json
python3 opentest --verbose cop -i designs/s27.json -j

Verbose mode writes detailed logs to results/log/ and reports to results/reports/.

4. Compare reconvergence algorithms

python3 opentest cop -i designs/s27.json -r -a basic -j
python3 opentest cop -i designs/s27.json -r -a advanced -j
python3 opentest cop -i designs/s27.json -r -a dominator -j

Use dominator (the default, also selected automatically if -a is omitted); it’s the only detector whose records the COP cofactor correction consumes. basic/advanced remain available for structural comparison. Note: passing -a simple is accepted but silently routed to dominator under the hood, so it never actually runs the simple detector. Pass -a dominator or omit -a instead of relying on that redirect.

5. TPI with technology and reconvergence

# sky130 (default): SCOAP + reconvergence + TPI
python3 opentest analyze_and_add_tp \
  -i output/my_design.json \
  --scoap -r -t 50 -m 10 \
  --tech sky130 -v

# IHP SG13G2 130nm
python3 opentest analyze_and_add_tp \
  -i output/my_design.json \
  --scoap -r -t 50 -m 10 \
  --tech ihp -v

--tech selects the buffer and mux cells used for test point insertion. auto detects the technology from the netlist’s cell names.

6. FaultFlow preflight: obtain reconvergence data without TPI

OpenTestability provides a machine interface for FaultFlow to call before ATPG. It runs SCOAP and reconvergence analysis, writes tpi_manifest.json with Yosys net IDs on each fanout point, and emits a JSON status line on stdout with the output file paths.

See FaultFlow Preflight Protocol for the full invocation and output contract.