Fine-grained pulling

Note

These images are coloured GREEN in the Graphs.

Ready-to-use images are provided for each tool, which contain the tool and the dependencies for it to run successfully. These are typically named REGISTRY_PREFIX/[ARCHITECTURE/][COLLECTION/]TOOL_NAME.

Hint

Since all the images in each collection are based on the same root image, pulling multiple images involves retrieving a few additional layers only. Therefore, this is the recommended approach for CI or other environments with limited resources.

Makefiles

Those projects use a partial Makefile such as the following, for optionally wrapping regular tool calls:

CONTAINER_ENGINE ?= docker

PWD = $(shell pwd)
CONTAINER_ARGS = run --rm -v $(PWD):/wrk -w /wrk

GHDL    = $(CONTAINER_ENGINE) $(CONTAINER_ARGS) gcr.io/hdl-containers/ghdl/yosys ghdl
YOSYS   = $(CONTAINER_ENGINE) $(CONTAINER_ARGS) gcr.io/hdl-containers/ghdl/yosys yosys
NEXTPNR = $(CONTAINER_ENGINE) $(CONTAINER_ARGS) gcr.io/hdl-containers/nextpnr/ice40 nextpnr-ice40
ICEPACK = $(CONTAINER_ENGINE) $(CONTAINER_ARGS) gcr.io/hdl-containers/icestorm icepack

Python launchers

There are several EDA tooling management projects which allow wrapping the execution of commands on containers. Any of them can be used with the containers provided in this repository.

EDA²’s Docker abstraction

Layer CLITool of EDA² (see Electronic Design Automation Abstraction (EDA²) Documentation and The pyEDAA.CLITool Documentation), provides Docker.py to be combined with any of the tools supported in the same repository.

Edalize’s Launcher

Edalize (see Welcome to Edalize’s documentation!) provides EDALIZE_LAUNCHER, which allows overriding each command: olofk/edalize: search?q=EDALIZE_LAUNCHER. el_docker is a built-in launcher for Docker. See also:

PyFPGA’s OpenFlow

PyFPGA’s OpenFlow (see PyFPGA’s documentation and gh:PyFPGA/openflow) allows running tools in containers, similarly to el_docker. In fact, OpenFlow can be used along with Edalize’s EDALIZE_LAUNCHER environment variable.