hdl / conda-eda Goto Github PK
View Code? Open in Web Editor NEWConda recipes for FPGA EDA tools for simulation, synthesis, place and route and bitstream generation.
Home Page: https://anaconda.org/LiteX-Hub
License: Apache License 2.0
Conda recipes for FPGA EDA tools for simulation, synthesis, place and route and bitstream generation.
Home Page: https://anaconda.org/LiteX-Hub
License: Apache License 2.0
Apparently the build scripts try to access a repo under conda.anaconda.org with your github username, looking for https://conda.anaconda.org//noarch/repodata.json, which doesn't exist and fails the build. I was able to get past this by signing up to conda.anaconda.org, but maybe if you've already done that under a name other than your github username, you're hosed?
Current there are the following packages distributed in various conda channel:
for yosys:
https://anaconda.org/symbiflow/antmicro-yosys
https://anaconda.org/symbiflow/symbiflow-yosys
https://anaconda.org/symbiflow/yosys
https://anaconda.org/symbiflow/yosys-uhdm
https://anaconda.org/litex-hub/yosys
https://anaconda.org/litex-hub/symbiflow-yosys
https://anaconda.org/litex-hub/quicklogic-yosys
https://anaconda.org/litex-hub/yosys-uhdm
for plugins:
https://anaconda.org/litex-hub/yosys-symbiflow-plugins
https://anaconda.org/litex-hub/symbiflow-yosys-plugins
https://anaconda.org/litex-hub/quicklogic-yosys-plugins
https://anaconda.org/symbiflow/symbiflow-yosys-plugins
https://anaconda.org/symbiflow/yosys-plugins
https://anaconda.org/symbiflow/uhdm-integration-yosys
SymbiFlow/yosys#96 (comment) suggest that some of those might be obsolete, so we should make sure that this is reflected for the corresponding conda packages (see https://docs.anaconda.com/anacondaorg/user-guide/tasks/work-with-packages/#deleting-a-package).
Travis is broken now....
The current stage layout is not optimal, as the only purpose it serves is internal organisation.
Since the packages are now split across many repos, it doesn't really matter.
Cons of this setup:
Two feasible solutions I see here:
have a Stage 1, Stage 2, Stage 3
setup
ignore stages whatsoever
I am in favor of the first option. The second one can lead to strange results, like one Travis run producing yosys
in the latest version and yosys-plugins
built against previous yosys
.
What are your thoughts on that?
For some reason it fails on missing GIT_DESCRIBE_TAG.
yosys-config
was renamed in d646059 and it seems to be the root of the antmicro-yosys-plugins
failure: https://github.com/hdl/conda-eda/runs/2070486993
I'll add a commit in #90 to skip antmicro-yosys-plugins-linux
and antmicro-yosys-complete-linux
jobs until this is fixed to make master CI green again.
Upstream: https://github.com/KLayout/klayout
Build recipe: https://github.com/KLayout/klayout#building-without-qt-binding, possibly even without qt with https://github.com/KLayout/klayout/blob/master/build.sh#L93
Dependencies: qt, python, ruby, libcurl, libexpat (but it looks like most of them can be swapped out https://github.com/KLayout/klayout/blob/master/build.sh#L470)
The Z3 solver for formal verification is quite fast (on some platforms) compared to the default for symbiyosys. On other platforms, boolector is better.
Compilation instructions at https://symbiyosys.readthedocs.io/en/latest/quickstart.html
I'd try to contribute if someone could point me to a clear step-by-step guide. I can also just try to keep attempting pull requests and seeing what the errors from Travis are :)
It would be neat to have openroad available as a conda package.
Maybe doing something similar to http://yowasp.org/ for better cross-platform support?
All packages which require Python should build for Python 3.7, Python 3.8, Python 3.9
The reason I was suggesting everything is there is some subtle complexity around the dependencies of Python itself can conflict with dependencies of the other packages.
This can be done in the same way as in the surelog
, yosys
and symbiyosys
recipes from #68.
Currently these two packages are built using a compiler preinstalled in the GitHub Actions Ubuntu image.
They should use a Conda-based compiler.
A user using the conda install ran into an error
FileNotFoundError: [Errno 2] No such file or directory: 'iceprog': 'iceprog'
and I confirmed that iceprog
is not in the icestorm
package from https://anaconda.org/litex-hub/icestorm.
It is not in the nextpnr-ice40
package either.
Is there another package I need to install to get iceprog
?
The device can't be built due to the OSError: [Errno 12] Cannot allocate memory
error: https://github.com/hdl/conda-eda/runs/2504914939?check_suite_focus=true#step:3:4206
It seems to require more than the GH Action's 7GBs of RAM: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
For now the package will be built without this device.
Firstly, thank you for all your work maintaining releases for HDL tools! I’m sure many appreciate the ease and simplicity this setup provides. I also periodically check in on the results at https://github.com/chipsalliance/sv-tests, which uses the package versions published here.
I've noticed that the version of sv2v under test has recently become stale (~7 weeks old). Although https://anaconda.org/LiteX-Hub/zachjs-sv2v has been updated regularly, it seems that because the other packages over at https://github.com/hdl/conda-misc have had failures, the newer versions of sv2v have not been given the main
tag.
main
tag for independent (sets of) packages, even if there are adjacent/unrelated failures?In attempting to do a pseudo-Travis build as in README.md, https://github.com/litex-hub/litex-conda-eda/blob/master/conda-get.sh#L7 requires that TRAVIS_OS_NAME be set, otherwise you'll end up running an OSX version. Which is great if you're on OSX, but not so great otherwise.
It seems that some of the package are not compatible with the runtime environment present in https://colab.research.google.com/.
Installing the following packages with:
!curl -O https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
!bash Miniconda3-py37_4.10.3-Linux-x86_64.sh -b -f -p /usr/local
!conda install --yes -c LiteX-Hub verible iverilog
produce the following error for verible
at runtime:
verible-verilog-lint: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by verible-verilog-lint)
while iverilog
seems to work fine:
Icarus Verilog version 12.0 (devel) (0_8-5850-g540555fc-dirty)
Installing verible
from the older https://anaconda.org/SymbiFlow/repo channel, seems to work fine
I suspect this might be due to #133 updating all packages to be built using a relatively "recent" version of ubuntu, while colab is still an older version (see googlecolab/colabtools#1880).
One solution could simply be to wait for colab to upgrade or provide multiple linux variants using https://docs.conda.io/projects/conda-build/en/latest/resources/variants.html to accomodate for different glibc versions.
If I understand correctly, the database files should not depend on the machine architecture so should probably be marked as working on any?
See https://github.com/hdl/conda-eda/runs/5078540007?check_suite_focus=true, it fails with the following message:
Not on master branch, don't execute master-package.sh. Current branch: refs/pull/165/merge
ERROR: some jobs failed
Error: Process completed with exit code 1.
I skip the moore-linux build, because of the non-trivial fail of the CI. Right now it requires manual building of LLVM.
Sample failure: https://github.com/hdl/conda-eda/runs/5024242928?check_suite_focus=true
I had a super fast attempt to address it here, but of course it's not enough: #162
Since a few days ago, building the Sphinx documentation of fomu-workshop is failing:
https://github.com/im-tomu/fomu-workshop/runs/4751518333?check_suite_focus=true
source env/bin/activate; conda config --system --add envs_dirs /home/runner/work/fomu-workshop/fomu-workshop/docs/env/envs
source env/bin/activate; conda config --system --add pkgs_dirs /home/runner/work/fomu-workshop/fomu-workshop/docs/_download/pkgs
source env/bin/activate; conda env update --name base --file ./environment.yml
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... failed
ResolvePackageNotFound:
- yosys
This is the environment file: https://github.com/im-tomu/fomu-workshop/blob/master/docs/environment.yml
The job will be disabled until this is fixed.
Details of a failed run https://github.com/hdl/conda-eda/runs/4782600616
https://anaconda.org/litex-hub/repo does not show symbiyosys.
https://travis-ci.org/litex-hub/litex-conda-eda (from README.md) results in "We couldn't find the repository litex-hub/litex-conda-eda"
The error building both nextpnr-ice40
and nextpnr-generic
is the same and comes from common/bits.h
:
c:\users\runner\conda-env\conda-bld\nextpnr-generic_1627032814927\work\common\bits.h(54): error C2065: 'v': undeclared identifier [%SRC_DIR%\nextpnr-generic.vcxproj]
c:\users\runner\conda-env\conda-bld\nextpnr-generic_1627032814927\work\common\bits.h(66): error C2065: 'v': undeclared identifier [%SRC_DIR%\nextpnr-generic.vcxproj]
Looks like the new prjxray-db package (see: https://anaconda.org/LiteX-Hub/prjxray-db/files) is still not getting the main label? In particular, any package built after git hash 057e179 is one that I would've expected to get the label. Any ideas why? I original theorized that it was because of hdl/conda-compilers#13, but I suspect there might be another issue at play?
Building the package succeeds. Relevant part of the test log:
2021-01-20T18:11:49.8430793Z Error: test failed
2021-01-20T18:11:49.8431818Z SBY 18:11:48 [test/demo3] Writing 'test/demo3/src/demo.v'.
2021-01-20T18:11:49.8432630Z SBY 18:11:48 [test/demo3] engine_0: smtbmc boolector
2021-01-20T18:11:49.8434034Z SBY 18:11:48 [test/demo3] base: starting process "cd test/demo3/src; yosys -ql ../model/design.log ../model/design.ys"
2021-01-20T18:11:49.8435496Z SBY 18:11:48 [test/demo3] base: demo.v:7: ERROR: syntax error, unexpected TOK_RAND
2021-01-20T18:11:49.8436416Z SBY 18:11:48 [test/demo3] base: finished (returncode=1)
2021-01-20T18:11:49.8437202Z SBY 18:11:48 [test/demo3] base: job failed. ERROR.
2021-01-20T18:11:49.8438023Z SBY 18:11:48 [test/demo3] summary: Elapsed clock time [H:MM:SS (secs)]: 0:00:00 (0)
2021-01-20T18:11:49.8439430Z SBY 18:11:48 [test/demo3] summary: Elapsed process time [H:MM:SS (secs)]: 0:00:00 (0)
2021-01-20T18:11:49.8440274Z SBY 18:11:48 [test/demo3] DONE (ERROR, rc=16)
2021-01-20T18:11:49.8441430Z TESTS FAILED: symbiyosys-v0.0_74_g091222b-20210120_172919.tar.bz2
The yosys
package (v0.9_5142_g4762cc06
) used for testing was built by the same workflow.
Full log with the test script fixed (currently it fails to print log after error on master
): https://github.com/litex-hub/litex-conda-eda/runs/1736679449
The last working job building tree-sitter-verilog
used tree-sitter
0.2.1. Now I can see that the 0.2.2 installation is attempted but it fails with:
+ /home/runner/work/litex-conda-eda/litex-conda-eda/workdir/conda-env/conda-bld/tree-sitter-verilog_1611736795834/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python -m pip install --isolated tree_sitter
Collecting tree_sitter
Downloading tree_sitter-0.2.2.tar.gz (110 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'error'
.
command: /home/runner/work/litex-conda-eda/litex-conda-eda/workdir/conda-env/conda-bld/tree-sitter-verilog_1611736795834/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python /home/runner/work/litex-conda-eda/litex-conda-eda/workdir/conda-env/conda-bld/tree-sitter-verilog_1611736795834/_h_env_placehold_placehold_plac
ehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-5qiezwyi/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=43.0.0' 'wheel>=0.36.2'
cwd: None
Complete output (2 lines):
ERROR: Could not find a version that satisfies the requirement setuptools>=43.0.0
ERROR: No matching distribution found for setuptools>=43.0.0
It will be skipped by the CI workflow until this is fixed.
The jobs will be disabled until this issue is fixed.
Both jobs share the same problem:
In file included from /Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/nextpnr-generic_1615935952290/work/common/idstring.cc:21:
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/nextpnr-generic_1615935952290/work/common/idstring.h:68:16: error: implicit instantiation of undefined template 'std::__1::hash<int>'
return std::hash<int>()(obj.index);
^
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/nextpnr-generic_1615935952290/_build_env/bin/../include/c++/v1/type_traits:397:50: note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
^
In file included from /Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/nextpnr-ice40_1615935694227/work/common/idstring.cc:21:
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/nextpnr-ice40_1615935694227/work/common/idstring.h:68:16: error: implicit instantiation of undefined template 'std::__1::hash<int>'
return std::hash<int>()(obj.index);
^
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/nextpnr-ice40_1615935694227/_build_env/bin/../include/c++/v1/type_traits:397:50: note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
^
Needed by the skywater-pdk to do LVS checks (also needed by OpenRAM).
upstream: http://opencircuitdesign.com/open_pdks/
minimal recipe per http://opencircuitdesign.com/open_pdks/install.html:
./configure --enable-sky130-pdk=/path/to/skywater-pdk
make
make install
depends: skywater-pdk
#159 https://anaconda.org/LiteX-Hub/magic
Building fails after making such a change (like in #148) but also using yosys
instead isn't helpful. make simpletest
fails in both cases. It's weird because according to the test
and simpletest
comments yosys
shouldn't be required for the latter: https://github.com/YosysHQ/arachne-pnr/blob/master/Makefile#L101
Arachne shouldn't depend on Yosys and symbiflow-yosys
isn't built anymore so this should be fixed.
upstream: https://github.com/google/xls
recipe: https://google.github.io/xls/tutorials/hello_xls/#1-installation-and-building
list of produced binaries: https://google.github.io/xls/tools/
tansell@tansell-glapstation:~/github/litex-hub/litex-conda-eda$ ./.travis/conda-get.sh
+ set -e
+ CONDA_PATH=/home/tansell/conda
+ '[' = windows ']'
./.travis/conda-get.sh: line 7: [: =: unary operator expected
+ '[' = linux ']'
./.travis/conda-get.sh: line 15: [: =: unary operator expected
+ sys_name=MacOSX
+ wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
--2020-11-27 17:23:18-- https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
Resolving repo.continuum.io (repo.continuum.io)... 2606:4700::6812:c94f, 2606:4700::6812:c84f, 104.18.201.79, ...
Connecting to repo.continuum.io (repo.continuum.io)|2606:4700::6812:c94f|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh [following]
--2020-11-27 17:23:19-- https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 2606:4700::6810:8303, 2606:4700::6810:8203, 104.16.130.3, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|2606:4700::6810:8303|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 57112343 (54M) [application/x-sh]
Saving to: ‘Miniconda3-latest-MacOSX-x86_64.sh’
Miniconda3-latest-MacOSX-x86_64.sh 100%[====================================================================================================================>] 54.47M 20.6MB/s in 2.6s
2020-11-27 17:23:22 (20.6 MB/s) - ‘Miniconda3-latest-MacOSX-x86_64.sh’ saved [57112343/57112343]
+ chmod a+x Miniconda3-latest-MacOSX-x86_64.sh
+ '[' '!' -d /home/tansell/conda -o '!' -z '' ']'
+ ./Miniconda3-latest-MacOSX-x86_64.sh -p /home/tansell/conda -b -f
PREFIX=/home/tansell/conda
./Miniconda3-latest-MacOSX-x86_64.sh: line 377: md5: command not found
WARNING: md5sum mismatch of tar archive
expected: 6e21e31f666558d485dfdab74c1bc1c8
got:
Unpacking payload ...
./Miniconda3-latest-MacOSX-x86_64.sh: line 411: /home/tansell/conda/conda.exe: cannot execute binary file: Exec format error
./Miniconda3-latest-MacOSX-x86_64.sh: line 413: /home/tansell/conda/conda.exe: cannot execute binary file: Exec format error
upstream: https://github.com/pieter3d/simview
build system: cmake
dependencies: absl fst surelog ncurses
Currently packages define runtime dependencies without specifying version (so the latest one is used). We should force a specific version where possible.
An example of such dependency can be seen here https://github.com/hdl/conda-eda/blob/master/pnr/vtr/meta.yaml#L38.
This particular one hit us in the symbiflow-examples
repo - newer tbb package does not provide libtbb.so.2
required by VPR, but rather libtbb.so.12
.
Applying patch: '/private/tmp/conda/syn/yosys/makefile-conda-config.patch'
Trying to apply patch as-is
INFO:conda_build.source:Trying to apply patch as-is
patching file Makefile
Hunk #1 succeeded at 229 (offset 8 lines).
Hunk #2 succeeded at 519 (offset 8 lines).
Hunk #3 succeeded at 901 (offset 8 lines).
patching file tests/arch/ecp5/mux.ys
patching file tests/arch/efinix/mux.ys
Hunk #1 FAILED at 30.
1 out of 1 hunk FAILED -- saving rejects to file tests/arch/efinix/mux.ys.rej
Applying patch: '/private/tmp/conda/syn/yosys/disable-failing-ecp5-mux.patch'
Applying patch: '/private/tmp/conda/syn/yosys/skip-mux16-efinix-test.patch'
Warning: failed to download source. If building, will try again after downloading recipe dependencies.
Error was:
Command '['/usr/bin/patch', '-p1', '--ignore-whitespace', '-i', '/private/tmp/conda/syn/yosys/skip-mux16-efinix-test.patch']' returned non-zero exit status 1.
The job will be disabled until the issue is fixed.
Details from https://github.com/hdl/conda-eda/runs/2125128512?check_suite_focus=true#step:3:3385:
+ make -j -f Vhello_world.mk Vhello_world
In file included from ../sim_main.cpp:1:
In file included from ./Vhello_world.h:11:
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/verilator/include/verilated_heavy.h:808:37: error: implicit instantiation of undefined template 'std::__1::array<unsigned char, 1>'
using const_iterator = typename Array::const_iterator;
^
./Vhello_world.h:26:33: note: in instantiation of template class 'VlUnpacked<unsigned char, 1>' requested here
VlUnpacked<CData/*0:0*/, 1> __Vm_traceActivity;
^
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/../include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from ../sim_main.cpp:1:
In file included from ./Vhello_world.h:11:
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/verilator/include/verilated_heavy.h:812:11: error: implicit instantiation of undefined template 'std::__1::array<unsigned char, 1>'
Array m_array; // Contents of the packed array
^
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/../include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from Vhello_world__ALL.cpp:3:
In file included from ./Vhello_world.cpp:5:
In file included from ./Vhello_world.h:11:
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/verilator/include/verilated_heavy.h:808:37: error: implicit instantiation of undefined template 'std::__1::array<unsigned char, 1>'
using const_iterator = typename Array::const_iterator;
^
./Vhello_world.h:26:33: note: in instantiation of template class 'VlUnpacked<unsigned char, 1>' requested here
VlUnpacked<CData/*0:0*/, 1> __Vm_traceActivity;
^
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/../include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from Vhello_world__ALL.cpp:3:
In file included from ./Vhello_world.cpp:5:
In file included from ./Vhello_world.h:11:
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/verilator/include/verilated_heavy.h:812:11: error: implicit instantiation of undefined template 'std::__1::array<unsigned char, 1>'
Array m_array; // Contents of the packed array
^
/Users/runner/work/conda-eda/conda-eda/workdir/conda-env/conda-bld/verilator_1615926793136/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/../include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
2 errors generated.
make: *** [Vhello_world.mk:60: sim_main.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from Vhello_world__ALL.cpp:5:
./Vhello_world__Slow.cpp:13:101: error: cannot initialize object parameter of type 'const VerilatedModule' with an expression of type 'Vhello_world'
Vhello_world__Syms* __restrict vlSymsp = __VlSymsp = new Vhello_world__Syms(_vcontextp__, this, name());
^~~~
3 errors generated.
upstream: https://github.com/google/skywater-pdk
minimal recipe http://opencircuitdesign.com/open_pdks/install.html:
git clone https://github.com/google/skywater-pdk
cd skywater-pdk
git submodule init libraries/sky130_fd_io/latest
git submodule init libraries/sky130_fd_pr/latest
git submodule init libraries/sky130_fd_sc_hd/latest
git submodule init libraries/sky130_fd_sc_hvl/latest
git submodule update
make timing
nspice is needed for analog simulation of the spice models in the skywater-pdk (and for OpenRAM characterization).
Upstream: https://github.com/d-m-bailey/cvc
Recipe: typical autoconf/automake https://github.com/d-m-bailey/cvc#installation
Build dependencies: gcc, bison
Extras: GUI and python seems to be split in a separate packages https://github.com/d-m-bailey/cvc/tree/master/src_py so should be easy to stub out
In order to use VHDL with the yosys flows, we need ghdl and the ghdl yosys plugin to be part of the environment.
In my local tests I got:
CXXFLAGS=-fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem (...)/conda/include
DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem (...)/conda/include
LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,(...)/conda/lib -Wl,-rpath-link,(...)/conda/lib -L(...)/conda/lib
DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem (...)/conda/include
CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem (...)/conda/include
DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem (...)/conda/include
CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem (...)/conda/include
While -L
or -isystem
are understandable, there are some flags significantly affecting the resulting binaries e.g. -DNDEBUG
or optimizations level options.
The -DNDEBUG
flag hits us in chipsalliance/f4pga-examples#127. It disables all the asserts in Yosys, so conda built binaries were never triggering the issue.
(CC @mithro @litghost @mkurc-ant @tmichalak @tgorochowik @acomodi)
Most of the recipes starts with a similar boilerplate to derive the version number from the current git tag:
{% set version = '%s_%04i_%s'|format(GIT_DESCRIBE_TAG|replace('v', '') or '0.X.X', GIT_DESCRIBE_NUMBER|int, GIT_DESCRIBE_HASH or 'gUNKNOWN') %}
Which seems to fails if the corresponding git repo has no tags:
https://github.com/hdl/conda-eda/runs/5108676826?check_suite_focus=true
Using |default()
instead or or
seems to workaround this issue:
8d74975
But we could also be lookin at using GIT_DESCRIBE_TAG
(documented at https://docs.conda.io/projects/conda-build/en/latest/user-guide/environment-variables.html#git-environment-variables) to simplify the boilerplate.
For the https://github.com/google/skywater-pdk I need https://github.com/RTimothyEdwards/magic and hence it would be good to get it packaged in conda.
As pointed in #27, it doesn't seems that cairo support is enabled.
🍙 echo 'plot svg foo.svg' | conda-env/bin/magic -dnull -noconsole -nowindow
Magic 8.3 revision 265 - Compiled on Wed Feb 2 15:49:25 UTC 2022.
Starting magic under Tcl interpreter
Using the terminal as the console.
Using NULL graphics device.
Processing system .magicrc file
Using technology "minimum", version 0.0
Cursor not in a window.
"svg" isn't a valid plot option.
The "plot" commands are:
plot postscript file [layers] generate PostScript file for what's
underneath the box
plot pnm file [width [layers]] generate PNM file for what's
underneath the box
plot versatec [scale [layers]] generate plot for selected printer;
scale is multiplying factor for parameter
lambda, for layers underneath the box
plot parameters [name value] set or print out plotting parameters
plot help print this help information
/cc @RTimothyEdwards
In README.md, the instructions need to be updated to:
sudo apt-get install coreutils make
as a fresh docker image of ubuntu has no make.
This commit broke building on macOS: chipsalliance/yosys-f4pga-plugins@c613a35
There's no install -D
in BSD's install
. The equivalent switch seems to be simply -d
there but I'm not sure.
I've created an issue on the upstream repository: chipsalliance/yosys-f4pga-plugins#74 . Until then this package won't be built on macOS to enable moving other packages onto the main
label.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.