From c84b2940cc5f16f141e402f33f836b8d198e1dbd Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 17 Feb 2022 09:27:00 +0100 Subject: [PATCH 1/2] [WIP] sim: add ghdl Signed-off-by: Unai Martinez-Corral --- sim/ghdl/build.sh | 11 +++++++++++ sim/ghdl/meta.yaml | 42 ++++++++++++++++++++++++++++++++++++++++++ sim/ghdl/run_test.sh | 7 +++++++ 3 files changed, 60 insertions(+) create mode 100644 sim/ghdl/build.sh create mode 100644 sim/ghdl/meta.yaml create mode 100644 sim/ghdl/run_test.sh diff --git a/sim/ghdl/build.sh b/sim/ghdl/build.sh new file mode 100644 index 00000000..25f434c7 --- /dev/null +++ b/sim/ghdl/build.sh @@ -0,0 +1,11 @@ +#! /bin/bash + +set -e +set -x + +export CC_FOR_BUILD=$CC + +./configure --prefix=$PREFIX + +make -j$CPU_COUNT +make install diff --git a/sim/ghdl/meta.yaml b/sim/ghdl/meta.yaml new file mode 100644 index 00000000..5826cd8c --- /dev/null +++ b/sim/ghdl/meta.yaml @@ -0,0 +1,42 @@ +# Use `conda-build-prepare` before building for a better version string. +{% set version = '%s_%04i_%s'|format(GIT_DESCRIBE_TAG or 'sUNKNOWN', GIT_DESCRIBE_NUMBER|int, GIT_DESCRIBE_HASH or 'gUNKNOWN') %} + +package: + name: ghdl + version: {{ version }} + +source: + git_url: https://github.com/ghdl/ghdl.git + git_rev: master + +build: + # number: 201803050325 + number: {{ environ.get('DATE_NUM') }} + # string: 20180305_0325 + string: {{ environ.get('DATE_STR') }} + script_env: + - CI + +requirements: + build: + - {{ compiler('c') }} [linux] + - {{ compiler('cxx') }} [linux] + - make [not win] + - m2-bash [win] + - m2-make [win] + - m2w64-gcc [win] + - m2w64-gcc-ada [win] + host: + +test: +# files: +# - test/counter.v +# - test/counter_tb.v +# - test/counter_list.txt + +about: + home: http://github.com/ghdl + license: GPLv2+ + license_file: COPYING.md + summary: | + Open-source analyzer, compiler, simulator and (experimental) synthesizer for VHDL, a Hardware Description Language (HDL) diff --git a/sim/ghdl/run_test.sh b/sim/ghdl/run_test.sh new file mode 100644 index 00000000..14180dfd --- /dev/null +++ b/sim/ghdl/run_test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e +set +x + +$PREFIX/bin/ghdl version +$PREFIX/bin/ghdl -h From d805666abd35e9ed8227e80b4f2480ca56332bdd Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 17 Feb 2022 16:16:20 +0100 Subject: [PATCH 2/2] CI test ghdl only --- .github/workflows/build-packages.yml | 748 +-------------------------- 1 file changed, 7 insertions(+), 741 deletions(-) diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 726e4bf4..8adb1e61 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -24,11 +24,10 @@ defaults: shell: bash jobs: - #1 - magic-linux: + ghdl-linux: runs-on: "ubuntu-20.04" env: - PACKAGE: "misc/magic" + PACKAGE: "sim/ghdl" OS_NAME: "linux" steps: - uses: actions/checkout@v3 @@ -38,753 +37,20 @@ jobs: sudo apt install -y csh - uses: ./ci - #2 - icestorm-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "bit/icestorm" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #3 - prjtrellis-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "bit/prjtrellis" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #4 - prjoxide-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "bit/prjoxide" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #5 - prjxray-db-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "bit/prjxray-db" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #6 - prjxray-tools-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "bit/prjxray-tools" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #7 - icarus-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sim/icarus" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #8 - verilator-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sim/verilator" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #9 - yosys-linux-py37: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "syn/yosys" - OS_NAME: "linux" - PYTHON_VERSION: "3.7" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #10 - yosys-linux-py38: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "syn/yosys" - OS_NAME: "linux" - PYTHON_VERSION: "3.8" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #11 - yosys-plugins-symbiflow-linux: - runs-on: "ubuntu-20.04" - needs: ["icarus-linux", "yosys-linux-py37", "yosys-linux-py38", "surelog-linux-py37", "surelog-linux-py38"] - env: - PACKAGE: "syn/yosys-plugins-symbiflow" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #12 - nextpnr-nexus-linux: - runs-on: "ubuntu-20.04" - needs: ["prjoxide-linux"] - env: - PACKAGE: "pnr/nextpnr/nexus" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #13 - quicklogic-yosys-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "syn/quicklogic-yosys" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #14 - quicklogic-yosys-plugins-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "syn/quicklogic-yosys-plugins" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #15 - symbiflow-yosys-plugins-linux: - runs-on: "ubuntu-20.04" - needs: ["icarus-linux", "yosys-linux-py37", "yosys-linux-py38", "surelog-linux-py37", "surelog-linux-py38"] - env: - PACKAGE: "syn/symbiflow-yosys-plugins" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #16 - vtr-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/vtr" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #17 - vtr-gui-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/vtr-gui" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #18 - vtr-optimized-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/vtr-optimized" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #19 - quicklogic-vtr-linux: - runs-on: "ubuntu-20.04" - needs: "vtr-linux" - env: - PACKAGE: "pnr/quicklogic-vtr" - OS_NAME: "linux" - steps: - # Skip if token isn't available (cross-repository PRs mainly) - - run: if [ "$ANACONDA_TOKEN" = "" ]; then echo "SKIP=true" >>$GITHUB_ENV; fi - - uses: actions/checkout@v3 - - uses: ./ci - - #20 - quicklogic-vtr-gui-linux: - runs-on: "ubuntu-20.04" - needs: "vtr-gui-linux" - env: - PACKAGE: "pnr/quicklogic-vtr-gui" - OS_NAME: "linux" - steps: - # Skip if token isn't available (cross-repository PRs mainly) - - run: if [ "$ANACONDA_TOKEN" = "" ]; then echo "SKIP=true" >>$GITHUB_ENV; fi - - uses: actions/checkout@v3 - - uses: ./ci - - #21 - nextpnr-ice40-linux: - runs-on: "ubuntu-20.04" - needs: ["icestorm-linux"] - env: - PACKAGE: "pnr/nextpnr/ice40" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #22 - nextpnr-ecp5-linux: - runs-on: "ubuntu-20.04" - needs: ["prjtrellis-linux"] - env: - PACKAGE: "pnr/nextpnr/ecp5" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #23 - nextpnr-generic-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/nextpnr/generic" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #24 - nextpnr-xilinx-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/nextpnr/xilinx" - OS_NAME: "linux" - KEEP_ALIVE: "true" - USE_PYPY: "1" - SKIP: "true" # See https://github.com/hdl/conda-eda/issues/191 - steps: - - uses: actions/checkout@v3 - - name: 'Install pypy' - run: | - sudo add-apt-repository ppa:pypy/ppa -y - sudo apt update - sudo apt install -y pypy3 - - uses: ./ci - - #25 - nextpnr-fpga_interchange-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/nextpnr/fpga_interchange" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #26 - symbiyosys-linux-py37: - runs-on: "ubuntu-20.04" - needs: "yosys-linux-py37" - env: - PACKAGE: "formal/symbiyosys" - OS_NAME: "linux" - PYTHON_VERSION: "3.7" - SKIP: "true" # See https://github.com/litex-hub/litex-conda-eda/issues/70 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #27 - symbiyosys-linux-py38: - runs-on: "ubuntu-20.04" - needs: "yosys-linux-py38" - env: - PACKAGE: "formal/symbiyosys" - OS_NAME: "linux" - PYTHON_VERSION: "3.8" - SKIP: "true" # See https://github.com/litex-hub/litex-conda-eda/issues/70 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #28 - xilinx-vivado-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "xilinx/vivado" - OS_NAME: "linux" - VERSIONS: ${{ format('{0}{1}', github.workspace, '/xilinx/vivado/versions') }} - SCRIPT: ${{ format('{0}{1}', github.workspace, '/xilinx/vivado/gen_metapackages.sh') }} - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #29 - icestorm-osx: - runs-on: "macos-latest" - env: - PACKAGE: "bit/icestorm" - OS_NAME: "osx" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #30 - prjtrellis-osx: - runs-on: "macos-latest" - env: - PACKAGE: "bit/prjtrellis" - OS_NAME: "osx" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #31 - icarus-osx: + ghdl-osx: runs-on: "macos-latest" env: - PACKAGE: "sim/icarus" + PACKAGE: "sim/ghdl" OS_NAME: "osx" steps: - uses: actions/checkout@v3 - uses: ./ci - #32 - verilator-osx: - runs-on: "macos-latest" - env: - PACKAGE: "sim/verilator" - OS_NAME: "osx" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #33 - yosys-osx: - runs-on: "macos-latest" - env: - PACKAGE: "syn/yosys" - OS_NAME: "osx" - EXTRA_BUILD_ARGS: "--no-test" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #34 - quicklogic-yosys-osx: - runs-on: "macos-latest" - env: - PACKAGE: "syn/quicklogic-yosys" - OS_NAME: "osx" - EXTRA_BUILD_ARGS: "--no-test" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #35 - quicklogic-yosys-plugins-osx: - runs-on: "macos-latest" - needs: ["icarus-osx", "quicklogic-yosys-osx"] - env: - PACKAGE: "syn/quicklogic-yosys-plugins" - OS_NAME: "osx" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #36 - symbiflow-yosys-plugins-osx: - runs-on: "macos-latest" - needs: ["icarus-osx", "yosys-osx"] - env: - PACKAGE: "syn/symbiflow-yosys-plugins" - OS_NAME: "osx" - SKIP: "true" # See https://github.com/litex-hub/litex-conda-eda/issues/71 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #37 - vtr-osx: - runs-on: "macos-latest" - env: - PACKAGE: "pnr/vtr" - OS_NAME: "osx" - SKIP: "true" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #38 - vtr-gui-osx: - runs-on: "macos-latest" - env: - PACKAGE: "pnr/vtr-gui" - OS_NAME: "osx" - SKIP: "true" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #39 - nextpnr-ice40-osx: - runs-on: "macos-latest" - needs: ["icestorm-osx"] - env: - PACKAGE: "pnr/nextpnr/ice40" - OS_NAME: "osx" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #40 - nextpnr-generic-osx: - runs-on: "macos-latest" - env: - PACKAGE: "pnr/nextpnr/generic" - OS_NAME: "osx" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #41 - icestorm-windows: - runs-on: "windows-latest" - env: - PACKAGE: "bit/icestorm" - OS_NAME: "windows" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #42 - prjtrellis-windows: - runs-on: "windows-latest" - env: - PACKAGE: "bit/prjtrellis" - OS_NAME: "windows" - SKIP: "true" # See: https://github.com/hdl/conda-eda/issues/201 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #43 - icarus-windows: - runs-on: "windows-latest" - env: - PACKAGE: "sim/icarus" - OS_NAME: "windows" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #44 - yosys-windows: - runs-on: "windows-latest" - env: - PACKAGE: "syn/yosys" - OS_NAME: "windows" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #45 - quicklogic-yosys-windows: + ghdl-windows: runs-on: "windows-latest" env: - PACKAGE: "syn/quicklogic-yosys" + PACKAGE: "sim/ghdl" OS_NAME: "windows" steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #46 - nextpnr-ice40-windows: - runs-on: "windows-latest" - needs: ["icestorm-windows"] - env: - PACKAGE: "pnr/nextpnr/ice40" - OS_NAME: "windows" - SKIP: "true" # See: https://github.com/hdl/conda-eda/issues/120 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #47 - nextpnr-generic-windows: - runs-on: "windows-latest" - env: - PACKAGE: "pnr/nextpnr/generic" - OS_NAME: "windows" - SKIP: "true" # See: https://github.com/hdl/conda-eda/issues/120 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #48 - verible-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/verible" - USE_SYSTEM_GCC_VERSION: "9" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #49 - tree-sitter-verilog-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "misc/tree-sitter-verilog" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v2 - uses: ./ci - - #50 - odin-ii-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/odin_II" - OS_NAME: "linux" - SKIP: "true" # See https://github.com/hdl/conda-eda/issues/209 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #51 - slang-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/slang" - OS_NAME: "linux" - USE_SYSTEM_GCC_VERSION: "9" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #52 - sv-parser-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/sv-parser" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #53 - moore-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/moore" - OS_NAME: "linux" - SKIP: "true" # See https://github.com/hdl/conda-eda/issues/163 - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #54 - surelog-linux-py37: - needs: ["libunwind", "gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/surelog" - OS_NAME: "linux" - PYTHON_VERSION: "3.7" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #55 - surelog-linux-py38: - needs: ["libunwind", "gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/surelog" - OS_NAME: "linux" - PYTHON_VERSION: "3.8" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #56 - surelog-uhdm-linux-py37: - needs: ["libunwind", "gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/surelog-uhdm" - USE_SYSTEM_GCC_VERSION: "9" - OS_NAME: "linux" - PYTHON_VERSION: "3.7" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #57 - surelog-uhdm-linux-py38: - needs: ["libunwind", "gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/surelog-uhdm" - USE_SYSTEM_GCC_VERSION: "9" - OS_NAME: "linux" - PYTHON_VERSION: "3.8" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #58 - yosys-uhdm-linux-py37: - needs: ["libunwind", "gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "syn/yosys-uhdm" - OS_NAME: "linux" - PYTHON_VERSION: "3.7" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #59 - yosys-uhdm-linux-py38: - needs: ["libunwind", "gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "syn/yosys-uhdm" - OS_NAME: "linux" - PYTHON_VERSION: "3.8" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #60 - libunwind: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "misc/libunwind" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #61 - gperftools: - needs: "libunwind" - runs-on: "ubuntu-20.04" - env: - PACKAGE: "misc/gperftools" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #62 - verilator-uhdm-linux-py37: - needs: ["gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sim/verilator-uhdm" - OS_NAME: "linux" - PYTHON_VERSION: "3.7" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #63 - verilator-uhdm-linux-py38: - needs: ["gperftools"] - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sim/verilator-uhdm" - OS_NAME: "linux" - PYTHON_VERSION: "3.8" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #64 - netgen-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "misc/netgen" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #65 - zachjs-sv2v-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "sv-front/zachjs-sv2v" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #66 - open_pdks-linux: - runs-on: "ubuntu-20.04" - needs: ["magic-linux"] - env: - PACKAGE: "misc/open_pdks" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #67 - openroad-linux: - runs-on: "ubuntu-20.04" - env: - PACKAGE: "pnr/openroad" - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - #68 - xls-linux: - # uses older ubuntu for better compat: - # https://github.com/hdl/conda-eda/issues/199 - runs-on: "ubuntu-18.04" - env: - PACKAGE: "hls/xls" - OS_NAME: "linux" - SKIP: "true" - steps: - - uses: actions/checkout@v3 - - uses: ./ci - - master-package: - runs-on: "ubuntu-20.04" - env: - OS_NAME: "linux" - steps: - - uses: actions/checkout@v3 - - run: pip install urllib3 - - run: | - # Required internally by the scripts to locate other scripts. - export CI_SCRIPTS_PATH="$(pwd)/ci" - bash $CI_SCRIPTS_PATH/install.sh - python $CI_SCRIPTS_PATH/wait-for-statuses.py