Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

symbiflow: add toolchain to conda channels #98

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

acomodi
Copy link

@acomodi acomodi commented Jun 9, 2020

Signed-off-by: Alessandro Comodi [email protected]

This PR adds the symbiflow toolchain binaries to conda channels.

It also adds a separate package to get the architecture definitions for each device.
The only one that is present in this PR is the xc7a50t.

The idea is to have everything managed in conda, so that there is no need for an end-user to download the symbiflow toolchain using wget or similar, as well as changing the PATH env variable to point to the symbiflow binaries.

version: {{ version }}

source:
git_url: https://github.com/SymbiFlow/conda-packages.git
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this URL should probably be symbiflow-arch-defs?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, the only issue is that the version reported in the package (commit has and so) will be different from the tarball version unless we can have the tarball placed in a latest directory in GCS, so that each time the arch-defs HEAD changes, also the tarball does and we get the latest version of the tool.

Currently, there is a huge path to access the tarball from GCS (e.g. https://storage.googleapis.com/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/presubmit/install/206/20200526-034850/symbiflow-arch-defs-install-97519a47.tar.xz).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The contents should match the version number?

CPU_COUNT=2
fi

wget -qO- https://storage.googleapis.com/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/continuous/install/15/20200608-212841/symbiflow-arch-defs-install-32defbb3.tar.xz | tar -xJ
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not extract the tar directly to $SHARE_DIR/arch

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that this requires work from the symbiflow arch defs standpoint. It would be better to have one tarball for each architecture there is, so that we can point to the files we need in each symbiflow-<device> conda package.
Currently the tar needs to be extracted and the xc7a50t device re-packed.

CPU_COUNT=2
fi

wget -qO- https://storage.googleapis.com/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/continuous/install/15/20200608-212841/symbiflow-arch-defs-install-32defbb3.tar.xz | tar -xJ
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should pull the version info from the conda meta.yml


cp -r install/share/scripts $SHARE_DIR
cp -r install/share/techmaps $SHARE_DIR
cp -r install/bin/* $BIN_DIR/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is being installed in $BIN_DIR/?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bash scripts to run VPR and other symbiflow-related stuff.

There is a problem though, that regards some additional python scripts that need to be ported as well (place_constraints.py, io_place.py, etc). These are needed during the flow, but installing them in this way may generate conflicts with the python conda.

The only solution I thought of for now is to extract those scripts and get them into yet another separate repository (e.g. symbiflow-python-library) and install that throug conda pip, and get rid of the python library within the bin folder.

@@ -29,6 +29,9 @@ env:
- PACKAGE=prjxray
# XXX riscv32 toolchain: disabled as fails to build
# PACKAGE=riscv32/binutils
# symbiflow toolchain
- PACKAGE=symbiflow-toolchain
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

symbiflow-toolchain should just be a metapackage?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants