Skip to content

ranaumarnadeem/OpenTestability

Repository files navigation

OpenTestability

Docs License Python Modes Status

OpenTestability is an open-source DFT toolkit for gate-level circuits. It combines testability analysis (COP/SCOAP), reconvergence-aware scoring, and automated test point insertion (TPI) in one workflow.

Why OpenTestability

  • practical TPI flow from metrics to enhanced Verilog
  • dual-mode operation for both parsed workflows and native Yosys JSON
  • reconvergence-aware analysis for better observability estimates
  • verbose reporting and reproducible logs for debug and benchmarking

Quick Start

WSL/Linux is the recommended development environment.

git clone https://github.com/ranaumarnadeem/OpenTestability.git
cd OpenTestability

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Run a first command:

python3 opentest --genus cop -i designs/priority_enc.v -j

Developer Quick Start

# WSL/Linux recommended
source venv/bin/activate

# Run tests
pytest tests/ -v

# Run fast smoke tests
pytest tests/ -m smoke -v

For detailed developer testing workflow, see Developer Test Suite Guide.

Project Structure

OpenTestability/
|-- opentest
|-- src/opentestability/
|   |-- core/
|   |-- parsers/
|   |-- yosys/
|   |-- visualization/
|   `-- utils/
|-- docs/
|-- tests/
|   |-- unit/
|   |-- integration/
|   |-- system/
|   `-- fixtures/
|-- data/
|   |-- input/
|   |-- parsed/
|   |-- dag_output/
|   |-- reconvergence_output/
|   |-- results/
|   `-- TPI/
|-- results/
|   |-- log/
|   `-- reports/
`-- output/

Choose Your Mode

Mode Use this when Core commands
--genus You want full parse/convert/dag plus TPI workflow control parse, convert, dag, cop, scoap, tpi
--yosys You work from Yosys JSON and prefer streamlined commands cop, scoap, analyze_and_add_tp

Common Workflows

Genus flow:

python3 opentest --genus cop -i designs/priority_enc.v -j
python3 opentest --genus tpi -i <netlist.json> -m <metrics.json> -t 50 -n 10 -v

Yosys flow:

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

DFT Flow

DFT flow for Genus and Yosys

Documentation Map

Future Plans

  1. Add better algorithms and handling for reconvergent fanouts, including BDD and Bayesian-theorem-inspired approaches.
  2. Add stronger parallelism for faster computation on large designs.
  3. Improve report format and readability for analysis and TPI outputs.
  4. Add a dedicated developer debug mode for deeper troubleshooting.
  5. Build tighter integration with Fault and other fault simulators, especially around TP-mode gaps in Fault.
  6. Improve flow by integrating selected Yosys command capabilities into OpenTestability workflows.
  7. Package OpenTestability as an installable package with cleaner distribution and setup.

Contributing

Contributions are welcome. Start with CONTRIBUTING.md and open an issue for major proposals.

License

OpenTestability is licensed under Apache-2.0. See LICENSE.

About

OpenTestability is an open-source tool for structural analysis of digital circuits, enabling computation of SCOAP metrics, Controllibility Observability Probability (COP), reconvergent path detection, and test point insertion.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors