Usage

Find what conda is, what it does and how to use it in the User guide at conda.io.

Bumping/overriding specific tools

Since several of the tools provided through hdl/conda-* repositories are rapidly evolving projects, users, contributors or developers might need to tweak the environments. This section explains various strategies to do so.

  • Report the issue upstream. hdl/conda-* repositories build the latest main branches of upstreams. Therefore, the best approach to have a bug fixed or an additional feature is to report an issue upstream.

  • A developer or a contributor might eventually create a feature branch with the fix/enhancement. There are various solutions to build a variant of a package/tool from a feature branch. See Building Conda packages youself, Building tools manually inside Conda and/or Building/installing tools outside of Conda.

  • After the fix/enhancement is pushed to the main branch upstream, it should be built in the corresponding hdl/conda-* repository within 24h. Hence, it is recommended to wait until that is done before bumping the Conda packages downstream.

    • If the CI job fails, report it in the corresponding hdl/conda-* repository.

  • Update/bump the tool in the downstream Conda environment.yml file, or in the sibling conda_lock.yml.

  • Update/recreate the Conda environment.

Using a different Conda channel

Mixing packages from multiple channels (e.g. conda-forge and defaults) is possible. However, it might produce library mismatches preventing the environment from being bootstraped.

Building Conda packages youself

Build the conda package yourself. In order to push it somewhere, Conda credentials are required. Hence, it can be cumbersome and it’s recommended to instead wait for CI in the hdl/conda-* repos to run.

Building tools manually inside Conda

TBC

Yosys SystemVerilog plugin

Warning

The expected usage of the plugin by using the read_systemverilog command (used by default in F4PGA flow) should work. When using the plugin by calling read_uhdm command, take additional care to use the same Surelog and UHDM version for creating and reading the UHDM file - updating only the plugin can create a mismatch in this case.

Make sure curl, jq, tar and wget are installed (used to automatically download newest version):

apt install curl jq tar wget

Activate the conda repository for the correct family:

conda activate xc7

Obtain the latest release of the plugin from here:

curl https://api.github.com/repos/antmicro/yosys-uhdm-plugin-integration/releases/latest | jq .assets[1] | grep "browser_download_url" | grep -Eo 'https://[^\"]*' | xargs wget -O - | tar -xz

Install the plugin using provided installation script. It will use the yosys-config from conda, so it will install into the conda environment.

./install-plugin.sh

Building/installing tools outside of Conda

For development/testing purposes, tools can be optionally built outside of Conda and prepended to the PATH so they are found first. However, problems related to mismatching system libraries might be expected. It is strongly recommended to build tools statically if this approach is to be followed.