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 simple -j
python3 opentest cop -i designs/s27.json -r -a advanced -j

Start with simple and move to advanced only for difficult correlation cases.

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.