|
|
|
name: 'test'
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
pull_request:
|
|
|
|
schedule:
|
|
|
|
- cron: '0 0 * * 5'
|
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
|
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
backend:
|
|
|
|
- llvm
|
|
|
|
- gcc
|
|
|
|
container: ghdl/vunit:${{ matrix.backend }}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- run: make GNATMAKE='gnatmake -j'$(nproc)
|
|
|
|
|
|
|
|
py:
|
|
|
|
needs: [build]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
container: ghdl/vunit:llvm
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- run: |
|
|
|
|
apt update
|
|
|
|
apt install -y python3-pexpect
|
|
|
|
make -j$(nproc) test_micropython test_micropython_long
|
|
|
|
|
|
|
|
test:
|
|
|
|
needs: [build]
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
max-parallel: 3
|
|
|
|
matrix:
|
|
|
|
task: [
|
|
|
|
"tests_console",
|
|
|
|
"{1..99}",
|
|
|
|
"{100..199}",
|
|
|
|
"{200..299}",
|
|
|
|
"{300..399}",
|
|
|
|
"{400..499}",
|
|
|
|
"{500..599}",
|
|
|
|
"{600..699}",
|
|
|
|
"{700..799}",
|
|
|
|
"{800..899}",
|
|
|
|
"{900..999}",
|
|
|
|
]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
container: ghdl/vunit:llvm
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- run: bash -c "make -j$(nproc) ${{ matrix.task }}"
|
|
|
|
|
|
|
|
VUnit:
|
|
|
|
needs: [build]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: docker://ghdl/vunit:llvm
|
|
|
|
with:
|
|
|
|
args: python3 ./run.py -p10
|
|
|
|
|
|
|
|
symbiflow:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
max-parallel: 2
|
|
|
|
matrix:
|
|
|
|
task: [ ECP5-EVN, ORANGE-CRAB, ORANGE-CRAB-0.21 ]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
env:
|
|
|
|
DOCKER: 1
|
|
|
|
FPGA_TARGET: ${{matrix.task}}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- run: make microwatt.json
|
|
|
|
- run: make microwatt.bit
|
|
|
|
- run: make microwatt.svf
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: ${{matrix.task}}-bitstream
|
|
|
|
path: microwatt.svf
|
|
|
|
|
|
|
|
# test building verilog target from yosys/nextpnr
|
|
|
|
verilog:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- run: make DOCKER=1 microwatt.v
|
|
|
|
|
|
|
|
verilator:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
env:
|
|
|
|
DOCKER: 1
|
|
|
|
FPGA_TARGET: verilator
|
|
|
|
RAM_INIT_FILE: micropython/firmware.hex
|
|
|
|
MEMORY_SIZE: 524288
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- run: |
|
|
|
|
sudo apt update
|
|
|
|
sudo apt install -y python3-pexpect
|
|
|
|
make -j$(nproc) test_micropython_verilator test_micropython_verilator_long
|