Docs / Reconvergence Integration

Reconvergence handling improves metric quality in circuits with fanout branches that rejoin.

Algorithm selection

Algorithm Complexity Use when
basic O(n^2) quick checks and small circuits
simple O(n^2 log n) default production choice
advanced O(n^3) deep debug, complex pipelines, FaultFlow integration

advanced is the recommended algorithm when using the FaultFlow integration interface because it produces stem fields in reconvergence records — the fields FaultFlow needs to structurally pre-certify canceling-path faults.

CLI usage

Reconvergence-aware metrics:

python3 opentest cop -i <design.json> -r -a simple -j
python3 opentest scoap -i <design.json> -r -a simple

Reconvergence alongside TPI:

python3 opentest --yosys analyze_and_add_tp -i <design.json> --scoap -r -t 50 -m 10 --tech sky130 -v

tpi_manifest.json net-ID enrichment

When a Yosys JSON netlist is available, structural_hints.fanout_points in the manifest is written as list[dict] with yosys_net_id on each entry:

{
  "structural_hints": {
    "fanout_points": [
      {"name": "net_foo", "yosys_net_id": 42},
      {"name": "internal_sig", "yosys_net_id": null}
    ]
  }
}

yosys_net_id is netnames[name]["bits"][0] — the first integer in Yosys’s bits list, directly usable as a Yosys net index. Signals not in netnames or with only string-constant bits get null.

Practical recommendations

  1. Start with simple for normal runs.
  2. Use advanced only when metric behavior looks suspicious around heavy fanout, or when integrating with FaultFlow.
  3. Keep verbose mode enabled while tuning thresholds and test-point count.

Parallel execution

Large circuits can automatically use parallel processing in analysis paths. Keep reconvergence enabled so observability adjustments remain correlation-aware.

Output usage

FaultFlow integration

OT exposes a machine interface that FaultFlow calls before ATPG to obtain reconvergence structural data without inserting test points. The interface runs SCOAP + reconvergence analysis (defaulting to the advanced algorithm), writes an enriched tpi_manifest.json and a separate <design>_reconv_ids.json, and emits a JSON status line on stdout for the calling process to parse.

See FaultFlow Preflight Protocol for the full contract.