View on GitHub

API Documentation Index

Comprehensive API documentation for OpenTestability modules.

Module Organization

OpenTestability is organized into the following modules:

Core Modules

Parser Modules

Visualization Modules

Utility Modules

Quick Reference

Most Common Functions

# Parsing
from opentestability.parsers.verilog_parser import parse
parse("circuit.v", "circuit.txt")

# DAG Creation
from opentestability.core.dag_builder import create_dag_from_netlist
create_dag_from_netlist("circuit_parsed.json")

# SCOAP Analysis
from opentestability.core.scoap import run
run("circuit.txt", "scoap_results.json", json_flag=True)

# Reconvergence Detection
from opentestability.core.reconvergence import analyze_reconvergence
analyze_reconvergence("circuit_dag.json")

# Visualization
from opentestability.visualization.graph_renderer import visualize_gate_graph
visualize_gate_graph("circuit_dag.json")

Usage Patterns

As a Library

import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent / "src"))

from opentestability.parsers.verilog_parser import parse_verilog_netlist
from opentestability.core.dag_builder import build_dag
from opentestability.core.scoap import calculate_scoap

# Parse netlist
modules = parse_verilog_netlist("path/to/circuit.v")

# Extract gates
gates = modules['my_module']['instances']

# Build DAG
edges, labels = build_dag(gates)

# Calculate metrics
metrics = calculate_scoap(gates, inputs, outputs)

Direct Script Execution

Most modules can be run directly:

# Parse Verilog
python3 -m opentestability.parsers.verilog_parser circuit.v

# Build DAG
python3 -m opentestability.core.dag_builder circuit_parsed.json

# Run SCOAP
python3 -m opentestability.core.scoap circuit.txt

# Convert to JSON
python3 -m opentestability.parsers.json_converter circuit.txt

Module Dependencies

opentestability/
├── core/
│   ├── scoap.py → utils.file_utils
│   ├── dag_builder.py → utils.file_utils
│   ├── reconvergence.py → utils.file_utils, dag_builder
│   ├── simple_reconvergence.py → utils.file_utils
│   └── advanced_reconvergence.py → utils.file_utils
├── parsers/
│   ├── verilog_parser.py → utils.file_utils, pyverilog
│   └── json_converter.py → utils.file_utils
├── visualization/
│   └── graph_renderer.py → utils.file_utils, pygraphviz
└── utils/
    └── file_utils.py → (no dependencies)

External Dependencies

Type Hints and Documentation

All functions include:

Error Handling

Common exceptions raised:

Next Steps