Tools and imagesΒΆ

By default, latest development versions (branches master | main) of tools are built. Then, smoke tests are executed and, if successful, the corresponding images are updated in the registries. However, some specific tools are not built from sources, but installed through (system) package managers. Those are marked with ! in the table below.

Tool

Package

Ready-to-use

S

I

F

P

Others

apicula

  • 'pkg/apicula container image size'

  • 'apicula container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

arache-pnr

  • 'pkg/arachne-pnr container image size'

  • 'arachne-pnr container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

boolector

  • 'pkg/boolector container image size'

βˆ…

πŸ—†

πŸ—†

F

πŸ—†

βˆ…

cocotb

βˆ…

βˆ…

S

πŸ—†

πŸ—†

πŸ—†

βˆ…

cvc

  • 'pkg/cvc container image size'

βˆ…

πŸ—†

πŸ—†

F

πŸ—†

βˆ…

ghdl

  • 'pkg/ghdl container image size'

  • 'pkg/ghdl/llvm container image size'

  • 'ghdl container image size'

  • 'ghdl/llvm container image size'

S

I

F

πŸ—†

ghdl/yosys

ghdl-yosys-plugin

  • 'pkg/ghdl-yosys-plugin container image size'

  • 'ghdl/yosys container image size'

πŸ—†

I

F

πŸ—†

βˆ…

graphviz !

βˆ…

βˆ…

πŸ—†

I

F

πŸ—†

yosys, ghdl/yosys

gtkwave

  • 'pkg/gtkwave container image size'

  • 'gtkwave container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

icestorm

  • 'pkg/icestorm container image size'

  • 'icestorm container image size'

πŸ—†

I

πŸ—†

P

nextpnr/icestorm

iverilog

  • 'pkg/iverilog container image size'

  • 'iverilog container image size'

S

πŸ—†

πŸ—†

πŸ—†

βˆ…

klayout

  • 'pkg/klayout container image size'

  • 'klayout container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

magic

  • 'pkg/magic container image size'

  • 'magic container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

netgen

  • 'pkg/netgen container image size'

  • 'netgen container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

nextpnr

  • 'pkg/nextpnr/generic container image size'

  • 'pkg/nextpnr/ice40 container image size'

  • 'pkg/nextpnr/nexus container image size'

  • 'pkg/nextpnr/ecp5 container image size'

  • 'nextpnr/generic container image size'

  • 'nextpnr/ice40 container image size'

  • 'nextpnr/nexus container image size'

  • 'nextpnr/ecp5 container image size'

  • 'nextpnr/icestorm container image size'

  • 'nextpnr/prjoxide container image size'

  • 'nextpnr/prjtrellis container image size'

  • 'nextpnr container image size'

πŸ—†

I

πŸ—†

πŸ—†

βˆ…

openfpgaloader

  • 'pkg/openfpgaloader container image size'

  • 'openfpgaloader container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

openocd !

βˆ…

βˆ…

πŸ—†

πŸ—†

πŸ—†

P

βˆ…

pono

  • 'pkg/pono container image size'

βˆ…

πŸ—†

πŸ—†

F

πŸ—†

βˆ…

prjoxide

  • 'pkg/prjoxide container image size'

  • 'prjoxide container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

nextpnr/prjoxide

prjtrellis

  • 'pkg/prjtrellis container image size'

  • 'prjtrellis container image size'

πŸ—†

I

πŸ—†

πŸ—†

nextpnr/prjtrellis

superprove

  • 'pkg/superprove container image size'

βˆ…

πŸ—†

πŸ—†

F

πŸ—†

βˆ…

symbiyosys

  • 'pkg/symbiyosys container image size'

βˆ…

πŸ—†

πŸ—†

F

πŸ—†

βˆ…

verilator

  • 'pkg/verilator container image size'

  • 'verilator container image size'

S

πŸ—†

πŸ—†

πŸ—†

βˆ…

vtr

  • 'pkg/vtr container image size'

  • 'vtr container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

vunit

βˆ…

βˆ…

S

πŸ—†

πŸ—†

πŸ—†

βˆ…

yices2

  • 'pkg/yices2 container image size'

βˆ…

πŸ—†

πŸ—†

F

πŸ—†

βˆ…

xyce

  • 'pkg/xyce container image size'

  • 'xyce container image size'

πŸ—†

πŸ—†

πŸ—†

πŸ—†

βˆ…

yosys

  • 'pkg/yosys container image size'

  • 'yosys container image size'

πŸ—†

I

F

πŸ—†

ghdl/yosys

z3

  • 'pkg/z3 container image size'

βˆ…

πŸ—†

πŸ—†

F

πŸ—†

βˆ…

Note

Package images are not to be used for executing the tools, but for composing images including multiple resources. See Package images for further details.

Images including multiple toolsΒΆ

  • Simulation:

    • 'sim container image size' GHDL + Verilator + Icarus Verilog

    • 'sim/osvb container image size' cocotb, OSVVM and VUnit; on top of sim.

    • 'sim/scipy-slim container image size' matplotlib and numpy, on top of sim.

    • 'sim/scipy container image size' osvb on top of scipy-slim.

    • 'sim/octave-slim container image size' octave, on top of sim.

    • 'sim/octave container image size' osvb on top of octave-slim.

  • Implementation: GHDL + Yosys + nextpnr

    • 'impl/ice40 container image size' nextpnr-ice40 only, and 'impl/icestorm container image size' including icestorm.

    • 'impl/ecp5 container image size' nextpnr-ecp5 only, and 'impl/prjtrellis container image size' including prjtrellis.

    • 'impl/nexus container image size' nextpnr-nexus only, and 'impl/prjoxide container image size' including prjoxide.

    • 'impl/generic container image size' nextpnr-generic only.

    • 'impl/pnr container image size' all nextpnr targets (ecp5, ice40, nexus, and generic).

    • 'impl container image size' impl:pnr, including icestorm, prjtrellis and prjoxide.

  • Formal:

    • 'formal container image size' all solvers depending on Python 3.

    • 'formal/min container image size' Z3 only.

    • 'formal/all container image size' all solvers, depending on either Python 2 or Python 3.

  • Programming: 'prog container image size'

F4PGA (Conda)ΒΆ

F4PGA is an ecosystem of EDA tools for the development of FPGAs of multiple vendors. The tools used in the F4PGA ecosystem are packaged by Antmicro and contributors using Conda. The sources of Conda packages for EDA tooling are found in 'hdl/conda-ci GitHub repository', 'hdl/conda-compilers GitHub repository', 'hdl/conda-eda GitHub repository', 'hdl/conda-misc GitHub repository' and 'hdl/conda-prog GitHub repository'.

In HDL Containers, as a complement to container images based on tools built on other container images, a set of Conda-based F4PGA images is provided. The base is 'conda container image size', which includes a Miniconda setup. On top of that, the following ready-to-use images allow following the guidelines in 'chipsalliance/f4pga-examples GitHub repository' ( 'f4pga-examples.rtfd.io' ):

  • 'conda/f4pga/xc7/toolchain container image size': the toolchain for FPGA_FAM=xc7, on top of conda. The following images are based on this:

    • 'conda/f4pga/xc7/a50t container image size': includes architecture definitions for xc7a50t.

    • 'conda/f4pga/xc7/a100t container image size': includes architecture definitions for xc7a100t.

    • 'conda/f4pga/xc7/a200t container image size': includes architecture definitions for xc7a200t.

    • 'conda/f4pga/xc7/z010 container image size': includes architecture definitions for xc7z010.

    • 'conda/f4pga/xc7/z020 container image size': includes architecture definitions for xc7z020.

    • 'conda/f4pga/xc7 container image size': includes all the architecture definitions for the xc7 family, except xc7a200t (due to hard disk limits on GitHub Actions).

  • 'conda/f4pga/eos-s3 container image size': the toolchain for FPGA_FAM=eos-s3 and the architecture definitions, on top of conda.

Important

The compression ratio of these images is very high compared to other container images. That is because these include a significant amount of data in text format, which is much better compressed than binaries. As a result, the size of the images when pulled is approximately as follows:

  • xc7/toolchain: 3 GB

  • xc7/a50t: 6 GB

  • xc7/a100t: 8.5 GB

  • xc7/a200t: 15 GB

  • xc7/z010: 5 GB

  • xc7/z020: 7.5 GB

  • xc7: 18 GB (would be 30 GB if a200t was included)

  • eos-s3: 2 GB

To DoΒΆ