Skip to main content

warptap

PyPI Docs License: Apache-2.0

warptap is an open-source Python library that inserts IEEE 1149.1 (JTAG/TAP) and IEEE 1687 (IJTAG) test-access networks into RTL before synthesis, emits ICL and PDL, and generates SVF, STAPL and STIL patterns to drive them.

Design-for-test (DFT) instruments such as MBIST controllers, scan compression and on-chip monitors need a standard access path from the chip pins. Commercial flows (Tessent IJTAG, Modus) do this; warptap does it in open source. You describe which control and status signals need access, warptap inserts a TAP controller, Segment Insertion Bits (SIBs) and Test Data Registers, returns synthesizable Verilog, and gives you an Instrument Connectivity Language (ICL) model plus a Procedural Description Language (PDL) interpreter to read and write those signals.

Features

  • TAP controller and instruction register insertion (IEEE 1149.1), with a configurable IDCODE and an optional dedicated IJTAG access instruction (ijtag_access_opcode)
  • IJTAG network insertion with SIBs and TDRs (IEEE 1687), including nested SIBs, multi-arm ScanMux and named sub-field addressing
  • Boundary-scan register insertion, as an alternative to the IJTAG network (a design gets one or the other)
  • ICL emission, and import of networks in warptap's own ICL shape
  • TAP-only BSDL emission, matching the instruction the ICL AccessLink names
  • PDL emission, import and an in-Python PDL interpreter
  • Pattern output: SVF, STAPL (with CRC16) and STIL
  • TAP and IJTAG network-integrity test programs, with the TDO they expect
  • Retargeting of faultflow scan patterns, including compressed and compacted scan
  • Pre-synthesis RTL insertion, so the result goes through your normal synthesis flow

Install

pip install warptap

Needs a real yosys on PATH (shelled out to, never bundled).

warptap is a Python library. A warptap CLI entry point exists but is not stable yet: today it only prints its version and help, with no subcommands.

Part of an open-source DFT toolchain

Tool What it does
faultflow ATPG and fault simulation for Yosys gate-level netlists
OpenTestability SCOAP/COP testability analysis and test point insertion
autoMBIST MBIST, BIRA and BISR generation for OpenRAM memories
warptap JTAG/IJTAG test-access insertion, ICL and PDL

warptap is the access layer: autoMBIST's MBIST controllers become instruments on a warptap-inserted IJTAG network, and faultflow's scan patterns, compressed and compacted ones included, are retargeted through it.

FAQ

Is there an open-source alternative to Tessent IJTAG? warptap covers IJTAG network insertion, ICL and PDL generation, and PDL execution for open flows, for the networks it inserts itself. It is not a general IEEE 1687 tool: ICL import recognizes only warptap's own network shape, and it does not retarget PDL across arbitrary third-party ICL hierarchies.

Can I use warptap with Yosys and OpenROAD / LibreLane? warptap runs Yosys itself and returns plain Verilog, which you synthesize like any other source, so it fits a Yosys-based flow. The test suite synthesizes the inserted Verilog with Yosys; it does not run OpenROAD or LibreLane.

Which pattern formats can it produce for a tester? SVF, STAPL and STIL. It also writes a TAP-only BSDL file describing the TAP it inserts.

Does it work on gate-level netlists? Yes, if Yosys can read the netlist: give it interface-only ((* blackbox *)) declarations for the library cells. The test suite inserts a network into a sky130 gate-level netlist this way. The TAP, SIBs and instrument registers warptap adds are generic logic, not mapped to your cell library, so the result still needs synthesis or technology mapping.

Development

Requires a real yosys on PATH (this project shells out to it, the same way faultflow does for its own Yosys usage; it is never bundled). On Windows, run everything through WSL; system pip there is externally-managed (PEP 668), so install into a local venv:

git clone --recurse-submodules https://github.com/ranaumarnadeem/warptap.git
cd warptap
python3 -m venv .venv && ./.venv/bin/pip install -e '.[dev]'
./.venv/bin/python -m pytest

third_party/icl_parser is a git submodule (an ICL/PDL parser the grammar and import tests run against). In an existing clone, and in every git worktree, run git submodule update --init third_party/icl_parser first. The dev extra installs its Python dependencies (antlr4-python3-runtime==4.7.2, z3-solver, sympy, networkx). Without the submodule or those packages the parser tests fail with that instruction; WARPTAP_ALLOW_MISSING_ICL_PARSER=1 makes them skip instead.

If a real yosys isn't available at all, WARPTAP_YOSYS_CMD can point at any Yosys-compatible executable, and tests/conftest.py falls back to a pip-installed yowasp-yosys (WASM build, see the dev extra) if nothing is found on PATH.

Some tests also cross-simulate hand-authored RTL against its Python behavioral-model counterpart using Icarus Verilog (iverilog/vvp, already present in the documented WSL environment). There's no WASM fallback for these: if neither is on PATH nor pointed at via WARPTAP_IVERILOG_CMD/WARPTAP_VVP_CMD, those tests skip cleanly rather than failing.

Metadata

Release files for warptap 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for warptap 0.0.5
File Size Uploaded Provenance
warptap-0.0.5.tar.gz 410.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for warptap 0.0.5
File Interpreter ABI Platform
warptap-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 647.3 kB

Release files / warptap-0.0.5.tar.gz

Download URL warptap-0.0.5.tar.gz
Size 410.3 kB
Tags Source
SHA-256 checksum
How to use checksums
10079211f1dcd9173ad90a26d504513504e832ef2f6c8356a7b5e89b72c85e57
BLAKE2b-256 checksum
How to use checksums
d907809b0f6d4ae43c8a9c64ffce0241b7c37c1612087bbdf5db807bc15b1e86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / warptap-0.0.5-py3-none-any.whl

Download URL warptap-0.0.5-py3-none-any.whl
Size 236.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
228a19e49e1fdac9c9030e72c882a9806baabf7eb63ef1161d47fc04fbd7810f
BLAKE2b-256 checksum
How to use checksums
8830c3f8b6e7a9aff7ee2fa43a2f3dd729128141a55ee6e8421224658ea58a82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for warptap 0.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for warptap-0.0.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page