Skip to content

piyushbag/awesome-dvt-automation

Repository files navigation

Awesome DVT Automation Awesome

banner

Open-source tools for the complete post-silicon validation pipeline.
Lab Automation · Instrument Control · Silicon Bring-up · Protocol Validation · SerDes · Power & Thermal · Test Sequencing · Triage · Hardware CI/CD · Agentic Workflows

GitHub Stars GitHub Forks PRs Welcome License: CC0-1.0 Works with OpenTAP Works with pytest

banner

Contents


💡 Why This Exists

Most "hardware test" lists stop at oscilloscopes and logic analyzers. Real post-silicon validation is a 12-stage pipeline, and broken toolchains in any stage kill bring-up velocity. This repo covers everything — from test planning to fleet regression — with open-source tools that plug into your existing lab stack or replace proprietary stages entirely.

  • 🏭 Full pipeline coverage — planning, lab infra, instruments, bring-up, protocols, SerDes, power, thermal, execution, triage, CI/CD, and agents.
  • 🔧 Stack-first integration notes — every tool documents how it connects to OpenTAP, labgrid, PyMeasure, pytest, and SCPI/LXI instruments.
  • 🤖 Agent-ready — modern scripting and AI patterns for log triage, report parsing, and lab orchestration.
  • 📦 Curated, not dumped — each entry is verified, actively maintained, with a one-line "why use it" note.
  • 🆓 100% open source — no vendor lock-in, no paywalls, no telemetry.

Scope: Post-silicon and platform hardware DVT. Pre-silicon RTL verification lives in awesome-open-hardware-verification. PCB design workflows live in awesome-pcb-workflow.


🚀 Quick Start

Get a minimal open-source DVT lab stack running in under 5 minutes:

# 1. Instrument control + VISA stack
pip install pymeasure pyvisa pyvisa-py

# 2. Lab board control + pytest integration
pip install labgrid pytest

# 3. Protocol capture and analysis
pip install scapy

# 4. Clone this repo for workflow guides and discovery config
git clone https://github.com/piyushbag/awesome-dvt-automation.git
cd awesome-dvt-automation
pip install -r requirements.txt

See docs/labgrid-pytest-quickstart.md for a full pytest + labgrid bring-up walkthrough.


🔥 Featured This Month

Tool What it does Stage
🏭 labgrid Python library for remote board-farm control with a pytest plugin for automated DUT tests. Lab Infra
▶️ OpenTAP Cross-platform open-source test sequencer with a plugin ecosystem for instruments and result listeners. Execution
🐍 PyMeasure Python instrument drivers for Keysight, Tektronix, R&S, and other SCPI/LXI benches. Instruments
🔍 ocp-diag-core Portable OCP diagnostics framework for platform health checks across heterogeneous hardware. Diagnostics
✅ pytest De facto Python test runner — pairs with labgrid fixtures and hardware markers for lab CI. Execution

📬 Watch this repo to get notified when new tools are added each month.


🗺 Workflow Map

┌──────────────────────────────────────────────────────────────────────┐
│              POST-SILICON VALIDATION WORKFLOW                        │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  📋 Test Planning & Coverage Traceability                            │
│       │                                                              │
│       ▼                                                              │
│  🏭 Lab Infrastructure & Board Farms                                 │
│       │                                                              │
│       ▼                                                              │
│  🔌 Instrument Control & Measurement (SCPI / LXI / VISA)             │
│       │                                                              │
│       ▼                                                              │
│  🚀 Silicon Bring-up & Boot (JTAG, UART, BMC, firmware)              │
│       │                                                              │
│       ▼                                                              │
│  📡 Protocol & Interface Validation (PCIe, Ethernet, I2C, …)       │
│       │                                                              │
│       ▼                                                              │
│  📶 SerDes & High-Speed SI (link training, eye, compliance)          │
│       │                                                              │
│       ▼                                                              │
│  ⚡ Power & Energy Validation                                        │
│       │                                                              │
│       ▼                                                              │
│  🌡️ Thermal & Environmental Stress                                   │
│       │                                                              │
│       ▼                                                              │
│  ▶️  Test Execution & Sequencing (OpenTAP, pytest, OpenHTF)          │
│       │                                                              │
│       ▼                                                              │
│  📊 Results, Triage & Dashboards                                     │
│       │                                                              │
│       ▼                                                              │
│  🔄 CI/CD & Hardware Regression                                      │
│       │                                                              │
│       ▼                                                              │
│  🤖 AI & Agentic Lab Automation                                      │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

📂 Tools by Stage

📋 Test Planning & Coverage

Define what to test, trace requirements to execution, and track coverage before silicon hits the bench.

Tool Description Stack Integration License
📝 Doorstop Git-native requirements management — trace test plans to design docs and validation artifacts. Markdown → CI reports MIT
🥝 Kiwi TCMS Open-source test case management with API, plans, runs, and bug tracker integration. REST API, webhooks GPL-2.0
📋 Nitrate Fedora QA test-plan manager — cases, runs, and automation metadata in a Django web app. XML-RPC / REST API GPL-2.0
📊 texttest Approval-test framework for capturing and diffing complex CLI and log output across regressions. CI diff artifacts LGPL-2.1
🗂️ Obsidian Engineering notebook for test plans, bring-up notes, and lab runbooks with versioned vaults. Git sync Free
🏗️ Mermaid Diagram-as-code for validation architecture, state machines, and pipeline flowcharts in docs. Markdown in repo MIT

🏭 Lab Infrastructure & Board Farms

Coordinate power, serial, JTAG, and remote access across a bench or distributed lab.

Tool Description Stack Integration License
🏭 labgrid Embedded board-control library with coordinator/exporter architecture and pytest plugin. pytest fixtures, YAML places LGPL-2.1
🌋 LAVA Linaro Automated Validation Architecture — distributed lab scheduling and device management. REST API, Django UI GPL-2.0
🔧 LAVA Dispatcher Worker daemon that executes LAVA test jobs on lab devices with bootloader and deploy support. LAVA master API GPL-2.0
🐍 PyFixate Framework for hardware test fixtures — coordinate relays, power, and DUT interfaces in Python. pytest / standalone LGPL-3.0
🧪 labgrid-examples Reference configs for common board-farm topologies and pytest patterns. Copy-paste YAML targets LGPL-2.1
🔌 usbrelay Control USB HID relay boards for remote power cycling from scripts or CI runners. CLI / Python ctypes GPL-2.0

🔌 Instrument Control & Measurement

Talk to scopes, analyzers, power supplies, and data-acquisition hardware programmatically.

Tool Description Stack Integration License
🐍 PyMeasure High-level Python instrument drivers with procedures, GUIs, and SCPI abstractions. OpenTAP plugins, pytest MIT
📡 PyVISA Python VISA bindings for GPIB, USB-TMC, LXI, and serial instrument communication. Backend for PyMeasure MIT
🔌 pyvisa-py Pure-Python VISA backend — no NI-VISA install required on Linux lab hosts. PyVISA @py backend MIT
🌐 python-vxi11 LXI/VXI-11 RPC client for LAN-connected bench instruments without vendor drivers. Standalone SCPI transport MIT
🔬 linux-gpib Kernel driver and userspace library for GPIB/IEEE-488 instrument buses on Linux. PyVISA GPIB backend GPL-2.0
📊 usbtmc USB Test & Measurement Class driver and utilities for Linux USB-TMC instruments. PyVISA USB-TMC MIT
🛠️ lxi-tools CLI utilities for discovering and querying LXI instruments on the lab network. SCPI discovery GPL-3.0
📈 matplotlib Plot instrument sweeps, eye diagrams, and pass/fail thresholds in automated reports. PyMeasure / pytest hooks PSF
🔢 NumPy Numerical arrays for captured waveforms, BER curves, and statistical pass/fail analysis. Foundation for lab scripts BSD

🚀 Silicon Bring-up & Boot

Reset, flash, and debug silicon through JTAG, serial consoles, and firmware loaders.

Tool Description Stack Integration License
🔌 OpenOCD Open On-Chip Debugger — JTAG/SWD for CPU, FPGA, and SoC bring-up and boundary-scan access. labgrid JTAGDriver GPL-2.0
🔍 UrJTAG Universal JTAG boundary-scan tool with BSDL support for interconnect and chain debug. Standalone CLI GPL-2.0
💾 flashrom Identify, read, write, and verify flash ROM chips on boards during firmware bring-up. labgrid flash scripts GPL-2.0
📱 fastboot Android-style USB flashing protocol for bootloaders and partition images. CLI / libfastboot Apache-2.0
🐧 barebox Bootloader with sandbox and hardware targets — labgrid ships BareboxStrategy for auto-boot. labgrid Strategy GPL-2.0
📟 minicom Serial terminal for interactive console bring-up and scripted expect-style sessions. labgrid SerialDriver GPL-2.0
🔬 pyBSL Python boundary-scan library for board-level interconnect and chain validation. Custom pytest MIT
🛠️ OpenFPGALoader Program FPGAs and CPLDs over JTAG, SPI, or Cypress USB — useful for prototype silicon bring-up. CLI in labgrid hooks Apache-2.0

📡 Protocol & Interface Validation

Verify PCIe, Ethernet, I2C, and other interfaces at the system level after silicon integration.

Tool Description Stack Integration License
🦅 scapy Craft, inject, and dissect network packets for L2–L7 protocol validation and fuzzing. pytest + pcap GPL-2.0
🌊 Wireshark Industry-standard protocol analyzer with dissectors for Ethernet, PCIe TLP (via plugins), and more. pcap export from tests GPL-2.0
📡 iperf3 Measure TCP/UDP throughput and loss for networking silicon line-rate validation. pytest subprocess BSD-3-Clause
🌐 netperf RFC-style network performance benchmarking — latency, throughput, and burst tests. Remote client/server GPL-2.0
⚡ DPDK testpmd Poll-mode driver test app for high-speed NIC validation, forwarding, and stats. Bare-metal / VM DUT BSD-3-Clause
📦 pktgen-dpdk High-packet-rate traffic generator for stress-testing network ASICs and switch silicon. Pairs with DPDK testpmd GPL-2.0
🔧 i2c-tools Userspace utilities for I2C/SMBus bus probing, register peek/poke, and EEPROM access. Shell / Python smbus2 GPL-2.0
🐍 smbus2 Python SMBus/I2C access for PMIC, sensor, and EEPROM validation on Linux hosts. pytest on DUT MIT
💾 spd-tools Parse and validate DDR SPD EEPROM contents against JEDEC profiles during memory bring-up. CLI GPL-2.0
🔬 nvmemi-cli NVMe Management Interface CLI for SSD and storage-controller validation over SMBus/I2C. Platform BMC paths GPL-2.0

📶 SerDes & High-Speed Signal Integrity

Validate high-speed links, eye diagrams, and compliance after silicon integration.

Tool Description Stack Integration License
📡 scikit-rf Python RF/microwave analysis — S-parameters, de-embedding, calibration, and network synthesis. NumPy + instrument CSV BSD
🌊 serdes-validation-framework Open Python framework for PCIe/USB4/Ethernet SerDes validation with pytest and mock modes. pytest markers hardware MIT
📊 sigrok Open-source logic analyzer stack with 100+ protocol decoders for parallel bus debug. PulseView GUI, Python bindings GPL-3.0
👁️ PulseView GUI for sigrok — capture and decode high-speed parallel and serial buses on the bench. sigrok CLI GPL-3.0

⚡ Power & Energy Validation

Measure rail efficiency, PMIC behavior, and power-state transitions on real silicon.

Tool Description Stack Integration License
⚡ powerstat Sample RAPL and sysfs power counters on Linux for CPU and platform energy measurements. Shell / cron in regression GPL-3.0
🔋 powertop Identify software wakeups and C-state residency — useful for power-debug during validation. DUT Linux host GPL-2.0
📊 turbostat Intel turbostat for package power, frequency, and thermal telemetry on x86 DUTs. Kernel tools on DUT GPL-2.0
🐍 pyRAPL Python bindings for Intel RAPL energy counters — scriptable power sweeps in pytest. pytest on Linux DUT MIT

🌡️ Thermal & Environmental Stress

Burn-in, thermal throttling validation, and environmental stress beyond nominal conditions.

Tool Description Stack Integration License
🔥 stress-ng Stress CPU, memory, I/O, and cache subsystems to provoke thermal and reliability failures. pytest subprocess on DUT GPL-2.0
🌡️ lm-sensors Hardware monitoring sensors for temperature, voltage, and fan speeds on Linux platforms. sysfs + labgrid polling GPL-2.0
💾 memtester Userspace memory stress tester for DRAM margin and thermal soak campaigns. Long-run soak jobs GPL-2.0
💿 fio Flexible I/O tester for storage and memory bandwidth stress under thermal load. pytest + JSON output GPL-2.0

▶️ Test Execution & Sequencing

Orchestrate multi-step validation campaigns with pass/fail gates and structured results.

Tool Description Stack Integration License
▶️ OpenTAP Open-source cross-platform test sequencer with plugin model for instruments and listeners. .NET + Python plugins MPL-2.0
✅ pytest Python test framework with fixtures, markers, and plugins — the lab automation lingua franca. labgrid plugin MIT
🏭 OpenHTF Google's hardware test framework — phases, measurements, plugs, and station dashboards. gRPC / web frontend Apache-2.0
🤖 Robot Framework Keyword-driven acceptance-test framework used in production and R&D hardware stations. Python / Java libraries Apache-2.0
🔬 HardPy pytest-based test bench runner with browser UI and database-backed result storage. Web dashboard MIT
📦 mats Manufacturing-oriented test environment for structured station tests and operator workflows. Station PCs MIT
🔧 crappy Command and Real-time Acquisition in Parallelized Python — parallel hardware test orchestration. Multi-instrument sweeps GPL-3.0
🧪 tox Multi-environment test orchestrator — matrix Python versions against shared lab fixtures. CI matrix MIT

📊 Results, Triage & Dashboards

Capture, search, and visualize validation output — the difference between data and decisions.

Tool Description Stack Integration License
📈 Grafana Dashboard and alerting for time-series lab metrics — power, temp, throughput, error rates. InfluxDB / Prometheus AGPL-3.0
📊 InfluxDB Time-series database for high-cardinality instrument and DUT telemetry during test runs. Grafana, OpenTAP listeners MIT
🔍 OpenSearch Search and analytics engine for log triage across large validation campaigns. ELK-style pipelines Apache-2.0
📋 Allure Rich HTML test reports from pytest/JUnit output — attachments, history, and failure trends. pytest --alluredir Apache-2.0
🎯 ReportPortal AI-assisted test-report aggregation with defect clustering and historical analysis. pytest / Robot adapters Apache-2.0
📦 junitparser Parse and merge JUnit XML from distributed lab runners into unified CI artifacts. CI aggregation Apache-2.0

🔄 CI/CD & Hardware Regression

Run validation on every firmware build — self-hosted runners, artifacts, and gating.

Tool Description Stack Integration License
⚙️ GitHub Actions Self-hosted runners on lab VLANs execute pytest/labgrid jobs against physical DUTs. Hardware runner labels MIT
🔧 Buildbot Continuous integration framework with custom workers — common in long-running hardware labs. Lab worker agents GPL-2.0
🌿 Zuul Gating CI for multi-repo firmware + validation pipelines with speculative merge testing. OpenStack / kernel labs Apache-2.0
📦 artifacts Store waveforms, logs, and junit XML from hardware jobs as versioned CI artifacts. GitHub Actions MIT
🐳 act Run GitHub Actions locally — dry-run lab workflows before pushing to self-hosted runners. Local dev MIT

🔍 Platform Diagnostics & Fleet Ops

Health checks, BMC telemetry, and fleet-wide diagnostics for production-like validation.

Tool Description Stack Integration License
🔍 ocp-diag-core Standardized OCP diagnostic routines for CPUs, memory, storage, and NICs. JSON output → dashboards Apache-2.0
🛠️ ipmitool Out-of-band power, sensor, and SEL access for server-class DVT platforms. BMC scripts BSD-3-Clause
📋 dmidecode Decode SMBIOS/DMI tables — verify BOM, DIMM layout, and board identity in regression. DUT shell GPL-2.0
🔬 lshw Detailed hardware inventory report — buses, NUMA, and device tree for bring-up sanity checks. JSON output (-json) GPL-2.0
🌐 Redfish RESTful BMC API for thermal, power, and firmware inventory on modern platforms. Out-of-band validation BSD-3-Clause
📡 ethtool Query and configure Ethernet NIC registers, link modes, and statistics. Network DVT scripts GPL-2.0

🤖 AI & Agentic Lab Automation

Let agents and LLMs handle log triage, report parsing, and orchestration — not replace instruments.

Tool Description Stack Integration License
🤖 LangChain Compose LLM chains for parsing unstructured lab logs and suggesting failure buckets. pytest log hooks MIT
📓 Jupyter Interactive notebooks for exploratory validation analysis and waveform post-processing. PyMeasure / NumPy BSD
🔧 pydantic-ai Structured LLM outputs for extracting measurements and pass/fail fields from report PDFs. Triage pipelines MIT
📊 pandas Tabular analysis of CSV instrument exports, BOM correlation, and regression diffs. Report generation BSD
🐍 pytest-regressions Data regression testing for numerical instrument captures across firmware builds. Golden-file workflows MIT

🎓 Learning Resources

Standards & Reference

Resource Description
📏 OCP Specifications Open Compute platform specs — diagnostics, thermal, and mechanical validation baselines.
📡 PCI-SIG PCIe compliance and electrical specifications for post-silicon link validation.
🔬 Wilson Research Group Industry surveys on verification and validation methodology — context for tool gaps.

Courses & Community

Resource Description
💬 r/embedded Bring-up, lab automation, and embedded validation Q&A.
🌐 EEVblog Forum Veteran EE community — bench instruments, test fixtures, and debug.
📖 OpenTAP Documentation Official guides for building instrument plugins and result listeners.
🏭 labgrid Read the Docs Board-farm setup, strategies, and pytest integration tutorials.
📋 Pre-silicon verification list Companion list for RTL/HDL verification before tape-out.
🖥 PCB workflow list Companion list for board-level design through fabrication and test.

🔌 Stack Integration Cheatsheet

Quick reference for plugging common lab stacks into the open-source ecosystem:

OpenTAP sequencer   ──(TestStep plugins)──────▶  PyMeasure / SCPI instruments
pytest runner       ──(labgrid fixtures)───────▶  Remote board farm / power control
PyVISA / LXI        ──(SCPI strings)───────────▶  Scopes, analyzers, supplies
labgrid Strategy    ──(boot state machine)─────▶  U-Boot / barebox / Linux shell
ocp-diag-core       ──(JSON results)───────────▶  Grafana / OpenSearch dashboards
OpenHTF phases      ──(measurements + plugs)───▶  Station UI + cloud upload
GitHub Actions      ──(self-hosted runner)─────▶  pytest on lab VLAN DUTs
Enterprise Pattern Open-Source Equivalent Integration Guide
TestStand / LabVIEW OpenTAP + PyMeasure docs/opentap-integration.md
Custom board farm labgrid + pytest docs/labgrid-pytest-quickstart.md
SCPI instruments PyVISA + PyMeasure docs/scpi-instrument-patterns.md
Manual regression GitHub Actions self-hosted docs/git-for-hardware-labs.md

Full integration guides → docs/


⭐ Star History

Star History Chart

Star the repo to get notified when new tools are added, and to help other validation engineers find this resource.


banner

Built with ❤️ for validation engineers, by validation engineers.

⭐ Star  ·  🍴 Fork  ·  🐛 Report an Issue  ·  📬 Submit a Tool

About

Curated open-source post-silicon validation stack — 81 tools, 12 pipeline stages

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors