Docs / Getting Started

This page gets you from clone to first successful command quickly, then shows developer-oriented flow and output/report locations.

1. Environment

OpenTestability is developed and tested primarily in WSL/Linux with a Python virtual environment.

Requirements:

Example for Ubuntu/WSL:

sudo apt-get update
sudo apt-get install -y python3 python3-venv python3-pip graphviz

2. Install

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

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

3. Choose a mode

Mode Input model Use when
--genus Verilog, parsed text/json, DAG You want full command coverage and step-by-step control
--yosys Yosys JSON (or streamlined command set) You already use Yosys and want short analysis flows

4. First successful run

Genus mode:

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

Yosys mode:

python3 opentest --yosys help
python3 opentest --yosys scoap -i <design.json>

If your run succeeds, outputs are written under project data/result folders and optional reports are created in results/ when verbose mode is enabled.

python3 opentest --genus --verbose cop -i designs/s27.v -j
python3 opentest --yosys --verbose scoap -i <design.json>

Verbose mode generates:

6. DFT Flow

The flow below covers both Genus and Yosys branches:

DFT flow for Genus and Yosys

Typical command sequence (example):

# 1) Analyze and produce metrics
python3 opentest --genus cop -i <synth_netlist.v> -j

# 2) Insert test points and emit enhanced Verilog
python3 opentest --genus tpi -i <netlist.json> -m <metrics.json> -o <design_tp.v> -t 50 -n 10 -v

# 3) Feed generated Verilog to downstream tools
# fault ... <design_tp.v>
# openroad ... <design_tp.v>

7. Yosys mode command example

Example:

# 1) Build Yosys JSON
yosys -p "read_verilog designs/priority_enc.v; synth -top priority_enc; write_json output/priority_enc.json"

# 2) Run OpenTest in Yosys mode
python3 opentest --yosys scoap -i output/priority_enc.json
python3 opentest --yosys analyze_and_add_tp -i output/priority_enc.json --scoap -t 50 -m 10 -v

8. Where reports and outputs are written

9. Developer quick-start and structure

Developer setup:

source venv/bin/activate
pytest tests/ -v
pytest tests/ -m smoke -v

Top-level structure (developer view):

OpenTestability/
|-- opentest
|-- src/opentestability/
|-- docs/
|-- tests/
|   |-- unit/
|   |-- integration/
|   |-- system/
|   `-- fixtures/
|-- data/
|-- results/
`-- output/

Next steps

  1. Test Point Insertion Guide
  2. Example Workflows
  3. Command Reference
  4. Developer Test Suite Guide