EDAPack

EDAPack provides portable, pre-built binary packages of open-source EDA (Electronic Design Automation) tools. Each package:

  • Runs without requiring a local compiler toolchain or library installation.

  • Is published as a self-contained release tarball or zip, downloadable directly from GitHub Releases or installable via IVPM (gh-rls source).

  • Ships with a bin/ directory that IVPM can automatically prepend to PATH, so tools are available to downstream tasks immediately.

  • Integrates with the DV Flow task framework where applicable.


Available Packages

Package

Description

Docs

iverilog-bin

Icarus Verilog Verilog simulation compiler and runtime.

iverilog-bin docs

verilator-bin

Verilator Verilog/SystemVerilog simulator/linter, bundled with the Bitwuzla SMT solver and the UVM library.

verilator-bin docs

yosys-bin

Yosys open synthesis suite with multi-version Python bindings (pyosys), the yosys-slang SystemVerilog plugin, Boolector SMT solver, and DV Flow integration.

yosys-bin docs

nextpnr-bin

nextpnr FPGA place-and-route tool with iCE40, ECP5, Nexus, and generic backends, plus bundled chipdb files.

nextpnr-bin docs

icestorm-bin

Project IceStorm iCE40 bitstream utilities (icepack, iceprog, icetime, and friends).

icestorm-bin docs

symbiyosys-bin

SymbiYosys formal verification front-end, bundled with Boolector, Yices2, and Z3 solvers.

symbiyosys-bin docs

openroad-bin

OpenROAD autonomous RTL-to-GDS physical design flow tool for ASIC implementation.

openroad-bin docs

opensta-bin

OpenSTA gate-level static timing analysis engine.

opensta-bin docs

ngspice-bin

ngspice mixed-level/mixed-signal analog and digital circuit simulator.

ngspice-bin docs

gcc-riscv-bin

Complete RISC-V bare-metal cross-compiler toolchain (binutils + GCC + newlib) supporting rv32i, rv32imac, rv64i, and rv64imac multilib variants.

gcc-riscv-bin docs

gdb-multiarch-bin

GDB built with --enable-targets=all, supporting x86/x86_64, RISC-V, ARM/AArch64, Xtensa/ESP32, and many more architectures.

gdb-multiarch-bin docs

qemu-riscv

QEMU RISC-V system emulator for running bare-metal and Linux-based RISC-V workloads on an x86_64 host.

qemu-riscv docs


Platform Support

Package

Linux x86_64

Linux aarch64

macOS arm64

Windows x64

iverilog-bin

verilator-bin

yosys-bin

nextpnr-bin

icestorm-bin

symbiyosys-bin

openroad-bin

opensta-bin

ngspice-bin

gcc-riscv-bin

gdb-multiarch-bin

qemu-riscv


Quick Start

Install from a GitHub Release tarball — download the appropriate asset from the package’s GitHub Releases page, then extract it:

tar xf <package>-manylinux_2_28_x86_64-<version>.tar.gz

The extracted directory contains a bin/ subdirectory you can add to PATH manually, or let IVPM manage it automatically.

Install with IVPM from the published catalog

EDAPack publishes a top-level package catalog at the site root:

The catalog defines one dep-set per tool (verilator, yosys, nextpnr, …) plus curated multi-tool collections named with a category prefix:

Collection

Tools

sim.rtl

Verilator + Icarus Verilog (RTL simulation)

sim.analog

ngspice (analog/mixed-signal simulation)

flow.fpga.ice40

Yosys + nextpnr + IceStorm (iCE40 bitstream flow)

flow.asic

Yosys + OpenROAD + OpenSTA (RTL-to-GDS ASIC flow)

verif.formal

Yosys (formal-verification backend)

embedded.riscv

gcc-riscv + gdb-multiarch + qemu-riscv (RISC-V bare-metal)

As a standalone operation — point ivpm update --from directly at the published catalog and select the dep-set to install with -d. No local ivpm.yaml is required:

# Install a single tool
ivpm update --from https://edapack.github.io/ivpm.yaml -d verilator

# Install a whole collection
ivpm update --from https://edapack.github.io/ivpm.yaml -d flow.asic

This fetches the named dep-set into packages/ in the current directory.

By referencing the catalog from your own ivpm.yaml — use the ivpm.yaml source type to pull a named dep-set from the published catalog into your project. Each deps entry names the catalog url and the dep-set to bundle:

package:
  name: my-project
  dep-sets:
    - name: default-dev
      deps:
        # Pull a curated collection …
        - name: edapack-asic
          src: ivpm.yaml
          url: https://edapack.github.io/ivpm.yaml
          dep-set: flow.asic
        # … and/or an individual tool
        - name: edapack-verilator
          src: ivpm.yaml
          url: https://edapack.github.io/ivpm.yaml
          dep-set: verilator

# then run:
ivpm update

In either case IVPM automatically selects the correct platform asset for each tool and prepends the package bin/ directory to PATH, so the tools are available to downstream tasks immediately.


Source & Issues

All package repositories live under the EDAPack GitHub organisation. Bug reports and pull requests are welcome in the individual repositories.


Developer Guide

How the edapack build & release system works, and how to build, release, and extend the tool packages.