aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-03-25 16:03:22 +0000
committerGitHub <noreply@github.com>2021-03-25 16:03:22 +0000
commitf233bee9701ea191862d26616d68dab08ba7d2b0 (patch)
treea23f37b687bffa78976d39df4c212407e539732c /.github
parent3cc50a5744beeae63ffb9ecd2064666e90d26be4 (diff)
parentc4cb86efe9dece4a837bdd490f5d7f78d2b4480f (diff)
downloadnextpnr-f233bee9701ea191862d26616d68dab08ba7d2b0.tar.gz
nextpnr-f233bee9701ea191862d26616d68dab08ba7d2b0.tar.bz2
nextpnr-f233bee9701ea191862d26616d68dab08ba7d2b0.zip
Merge pull request #628 from acomodi/add-interchange-devices
fpga_interchange: add more devices
Diffstat (limited to '.github')
-rwxr-xr-x.github/ci/build_interchange.sh90
-rw-r--r--.github/workflows/interchange_ci.yml76
2 files changed, 118 insertions, 48 deletions
diff --git a/.github/ci/build_interchange.sh b/.github/ci/build_interchange.sh
index 591494d8..d20dba67 100755
--- a/.github/ci/build_interchange.sh
+++ b/.github/ci/build_interchange.sh
@@ -1,48 +1,52 @@
#!/bin/bash
# Install capnproto libraries
-curl -O https://capnproto.org/capnproto-c++-0.8.0.tar.gz
-tar zxf capnproto-c++-0.8.0.tar.gz
-pushd capnproto-c++-0.8.0
-./configure
-make -j`nproc` check
-sudo make install
-popd
+function build_capnp {
+ curl -O https://capnproto.org/capnproto-c++-0.8.0.tar.gz
+ tar zxf capnproto-c++-0.8.0.tar.gz
+ pushd capnproto-c++-0.8.0
+ ./configure
+ make -j`nproc` check
+ sudo make install
+ popd
+
+ git clone https://github.com/capnproto/capnproto-java.git
+ pushd capnproto-java
+ make -j`nproc`
+ sudo make install
+ popd
+}
# Install latest Yosys
-git clone https://github.com/YosysHQ/yosys.git
-pushd yosys
-make -j`nproc`
-sudo make install
-popd
-
-# Install capnproto java
-git clone https://github.com/capnproto/capnproto-java.git
-pushd capnproto-java
-make
-sudo make install
-popd
-
-RAPIDWRIGHT_PATH="`pwd`/RapidWright"
-INTERCHANGE_SCHEMA_PATH="`pwd`/3rdparty/fpga-interchange-schema/interchange"
-PYTHON_INTERCHANGE_PATH="`pwd`/python-fpga-interchange"
-PYTHON_INTERCHANGE_TAG="v0.0.4"
-
-# Install python-fpga-interchange libraries
-git clone -b $PYTHON_INTERCHANGE_TAG https://github.com/SymbiFlow/python-fpga-interchange.git $PYTHON_INTERCHANGE_PATH
-pushd $PYTHON_INTERCHANGE_PATH
-git submodule update --init --recursive
-python3 -m pip install -r requirements.txt
-popd
-
-# Install RapidWright
-git clone https://github.com/Xilinx/RapidWright.git $RAPIDWRIGHT_PATH
-pushd $RAPIDWRIGHT_PATH
-make update_jars
-popd
-
-
-mkdir build
-pushd build
-cmake .. -DARCH=fpga_interchange -DRAPIDWRIGHT_PATH=$RAPIDWRIGHT_PATH -DINTERCHANGE_SCHEMA_PATH=$INTERCHANGE_SCHEMA_PATH -DPYTHON_INTERCHANGE_PATH=$PYTHON_INTERCHANGE_PATH
-popd
+function build_yosys {
+ git clone https://github.com/YosysHQ/yosys.git
+ pushd yosys
+ make -j`nproc`
+ sudo make install
+ popd
+}
+
+
+function get_dependencies {
+ # Install python-fpga-interchange libraries
+ git clone -b ${PYTHON_INTERCHANGE_TAG} https://github.com/SymbiFlow/python-fpga-interchange.git ${PYTHON_INTERCHANGE_PATH}
+ pushd ${PYTHON_INTERCHANGE_PATH}
+ git submodule update --init --recursive
+ python3 -m pip install -r requirements.txt
+ popd
+
+ ## Install RapidWright
+ git clone https://github.com/Xilinx/RapidWright.git ${RAPIDWRIGHT_PATH}
+ pushd ${RAPIDWRIGHT_PATH}
+ make update_jars
+ popd
+}
+
+function build_nextpnr {
+ build_capnp
+ mkdir build
+ pushd build
+ cmake .. -DARCH=fpga_interchange -DRAPIDWRIGHT_PATH=${RAPIDWRIGHT_PATH} -DINTERCHANGE_SCHEMA_PATH=${INTERCHANGE_SCHEMA_PATH} -DPYTHON_INTERCHANGE_PATH=${PYTHON_INTERCHANGE_PATH}
+ make nextpnr-fpga_interchange -j`nproc`
+ popd
+}
diff --git a/.github/workflows/interchange_ci.yml b/.github/workflows/interchange_ci.yml
index 1ca42bb7..8b16d795 100644
--- a/.github/workflows/interchange_ci.yml
+++ b/.github/workflows/interchange_ci.yml
@@ -3,9 +3,60 @@ name: FPGA interchange CI tests
on: [push, pull_request]
jobs:
+ Build-yosys:
+ runs-on: ubuntu-latest
+ steps:
+
+ - uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - uses: actions/setup-python@v2
+
+ - name: Install
+ run: |
+ sudo apt-get update
+ sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig
+
+ - name: ccache
+ uses: hendrikmuhs/ccache-action@v1
+
+ - name: Execute build yosys script
+ run: |
+ export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
+ source ./.github/ci/build_interchange.sh
+ build_yosys
+
+ Build-nextpnr:
+ runs-on: ubuntu-latest
+ steps:
+
+ - uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - uses: actions/setup-python@v2
+
+ - name: Install
+ run: |
+ sudo apt-get update
+ sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig
- Run-tests:
+ - name: ccache
+ uses: hendrikmuhs/ccache-action@v1
+
+ - name: Execute build interchange script
+ run: |
+ export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
+ source ./.github/ci/build_interchange.sh
+ build_nextpnr
+
+ Run-Tests:
runs-on: ubuntu-latest
+ needs: [Build-yosys, Build-nextpnr]
+ strategy:
+ matrix:
+ device: [xc7a35t, xc7a100t, xc7a200t, xc7z010]
steps:
- uses: actions/checkout@v2
@@ -19,11 +70,26 @@ jobs:
sudo apt-get update
sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig
- - name: Execute build script
- run: stdbuf -i0 -o0 -e0 ./.github/ci/build_interchange.sh
+ - name: ccache
+ uses: hendrikmuhs/ccache-action@v1
+
+ - name: Execute build interchange script
+ env:
+ RAPIDWRIGHT_PATH: ${{ github.workspace }}/RapidWright
+ INTERCHANGE_SCHEMA_PATH: ${{ github.workspace }}/3rdparty/fpga-interchange-schema/interchange
+ PYTHON_INTERCHANGE_PATH: ${{ github.workspace }}/python-fpga-interchange
+ PYTHON_INTERCHANGE_TAG: v0.0.4
+
+ run: |
+ export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
+ source ./.github/ci/build_interchange.sh
+ build_yosys && build_nextpnr && get_dependencies
- name: Run tests
+ env:
+ DEVICE: ${{ matrix.device }}
run: |
cd build
- make all-fpga_interchange-archcheck-tests -j`nproc`
- make all-fpga_interchange-tests -j`nproc`
+ make chipdb-$DEVICE-bin-check-test-data
+ make chipdb-$DEVICE-bin-check
+ make all-$DEVICE-tests -j`nproc`