OpenTestability Documentation

Welcome to the OpenTestability comprehensive documentation. This tool provides professional circuit testability analysis with multiple algorithms and metrics.

User Guide

Test Point Insertion (TPI)

Testability Analysis

Reference

Algorithms

API Reference

Resources

Overview

OpenTestability is a comprehensive framework for automated test point insertion and circuit testability analysis, featuring:

Core Capabilities

Additional Features

What’s New

Test Point Insertion

Automated test point insertion for improved testability:

opentest> tpi -i netlist.json -m metrics.json -o design_tp.v

This automatically:

  1. Analyzes testability metrics to find hard-to-test signals
  2. Designs observation and control points
  3. Inserts test points into the netlist
  4. Generates enhanced Verilog with DFT interface

Verilog Auto-Pipeline

Run complete analysis with a single command:

opentest> auto-cop designs/circuit.v results/analysis

This automatically:

  1. Parses Verilog netlist
  2. Builds DAG structure
  3. Detects reconvergence (simple algorithm)
  4. Calculates COP metrics
  5. Outputs JSON results

COP (Controllability Observability Program)

New probability-based testability analysis:

Example usage:

opentest> cop circuit_dag.json results/cop_analysis

See the COP Algorithm Guide and COP API Reference for details.

Integrated Reconvergence Detection

All analysis commands now support automatic reconvergence detection:

opentest> scoap circuit_dag.json results/scoap --reconvergence simple
opentest> cop circuit_dag.json results/cop --reconvergence advanced

Choose from:

Parallel Computation

Automatic parallelization activates for circuits >100k gates:

from opentestability.core.cop import run_cop

# Automatically uses parallel processing if circuit is large
results = run_cop(dag_data, enable_reconvergence=True)

Quick Start

1. Install OpenTestability

pip install opentestability

2. Run COP Analysis on Verilog

opentest> auto-cop designs/my_circuit.v results/cop_analysis

3. View Results

opentest> cat results/cop_analysis.json

See Getting Started for detailed instructions.

Architecture

OpenTestability
├── Core Analysis Engines
│   ├── Test Point Insertion (TPI)
│   │   ├── main.py - TPI orchestrator and CLI entry point
│   │   ├── analyzer.py - Metrics analysis and candidate ranking
│   │   ├── designer.py - Test point design with loop prevention
│   │   ├── inserter.py - Transactional netlist modification
│   │   ├── verilog_writer.py - Verilog-2001 code generation
│   │   ├── validator.py - Result validation and reporting
│   │   ├── state.py - State machine and checkpoint management
│   │   └── tech_library.py - Sky130 cell library parsing
│   ├── COP (Controllability Observability Program)
│   │   ├── run_cop.py - Main analysis orchestrator
│   │   ├── controllability.py - Probabilistic controllability (P0, P1)
│   │   ├── observability.py - Bayesian observability analysis
│   │   ├── gate_logic.py - Probability models for all gate types
│   │   ├── reconvergence.py - Correlation detection and adjustment
│   │   ├── parallel.py - Multiprocessing support
│   │   └── output.py - Results formatting and export
│   ├── SCOAP (Sandia Controllability Observability Analysis)
│   │   ├── CC0/CC1 controllability metrics
│   │   ├── CO observability metrics
│   │   └── Modular 7-component architecture
│   ├── DAG Builder
│   │   ├── Directed Acyclic Graph construction
│   │   └── Topological sorting and validation
│   └── Reconvergence Analyzers
│       ├── Basic Algorithm (O(n²))
│       ├── Simple Algorithm (O(n² log n), 98% accuracy)
│       ├── Advanced Algorithm (O(n³))
│       └── Integration Module (automatic detection)
├── Parsers
│   ├── Verilog Parser (pyverilog-based)
│   ├── JSON Converter
│   └── Auto-Pipeline Support
├── Visualization
│   └── Graph Renderer (Graphviz)
└── CLI Tool Environment
    ├── Interactive Command Shell
    └── Commands: parse, build-dag, scoap, cop, tpi, auto-cop, auto-scoap,
                  test-reconv, visualize, help, exit

Key Concepts

COP vs SCOAP

When to Use COP

When to Use SCOAP

Documentation Sections

For New Users

  1. Getting Started - Installation and setup
  2. Test Point Insertion Guide - Primary feature: Automated DFT
  3. TPI Examples - Step-by-step TPI workflows
  4. Testability Analysis - COP and SCOAP metrics
  5. Command Reference - Complete CLI documentation

For COP Users

  1. COP Algorithm Guide - Mathematical foundations
  2. COP API Reference - Complete API documentation
  3. Reconvergence Integration - Correlation analysis
  4. Reconvergence Quickstart - 5-minute guide

For Developers

  1. API Documentation - Complete API reference
  2. COP Modules - COP implementation details
  3. Core Modules - SCOAP and DAG APIs
  4. Parser API - Verilog parsing interface
  5. Contributing Guide

For Researchers

  1. Algorithm Details - SCOAP, COP, and reconvergence algorithms
  2. Parallel SCOAP - Parallelization strategies
  3. Performance Benchmarks

Support

Citation

If you use OpenTestability in your research, please cite:

@software{opentestability,
  title = {OpenTestability: Professional Circuit Testability Analysis},
  author = {Rana Umar Nadeem},
  year = {2026},
  version = {0.0.1},
  url = {https://github.com/ranaumarnadeem/OpenTestability}
}

License

This project is licensed under the Apache-2.0 License - see the LICENSE file for details.