-
Notifications
You must be signed in to change notification settings - Fork 8
87 lines (75 loc) · 2.84 KB
/
verification.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
name: verification
on:
workflow_dispatch:
push:
# Don't run on project submissions:
branches-ignore:
- projects/tt_um_*
pull_request:
# Don't run on project submissions:
paths-ignore:
- projects/tt_um_*/**
jobs:
verification:
env:
SKY130_PDK_VERSION: 1341f54f5ce0c4955326297f235e4ace1eb6d419
PDK_ROOT: /home/runner/pdk
MPW_TAG: mpw-9a
# ubuntu
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
submodules: recursive
- name: Clone caravel
uses: actions/checkout@v3
with:
repository: efabless/caravel-lite
ref: ${{ env.MPW_TAG }}
path: caravel
- name: Install sky130A PDK
uses: TinyTapeOut/volare-action@v1
with:
pdk_version: ${{ env.SKY130_PDK_VERSION }}
pdk_root: ${{ env.PDK_ROOT }}
- name: Install management core wrapper
working-directory: caravel
run: make install_mcw
- name: Install RISC-V GCC
run: |
wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14.tar.gz
tar -xzf riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14.tar.gz
# Set Python up
- name: setup python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: 'pip'
- run: pip install -r tt/requirements.txt -r tt-multiplexer/py/requirements.txt -r verilog/dv/mux_ext/requirements.txt
- name: install iverilog
run: sudo apt-get update && sudo apt-get install -y iverilog
- name: Configure the multiplexer for testing
run: python ./tt/configure.py --update-shuttle --test
# run first set of tests
- name: Mux simulation (without caravel)
working-directory: verilog/dv/mux
run: |
make clean test_mux
# make will return success even if the test fails, so check for failure in the results.xml
! grep failure results.xml
- name: Mux + caravel simulation
working-directory: verilog/dv/mux_ext
run: |
make clean coco_test
# make will return success even if the test fails, so check for failure in the results.xml
! grep failure results.xml
env:
DESIGNS: ${{ github.workspace }}
TARGET_PATH: ${{ github.workspace }}
MGMT_AREA_ROOT: ${{ github.workspace }}/caravel/mgmt_core_wrapper
MCW_ROOT: ${{ github.workspace }}/caravel/mgmt_core_wrapper
CARAVEL_ROOT: ${{ github.workspace }}/caravel
CORE_VERILOG_PATH: ${{ github.workspace }}/caravel/mgmt_core_wrapper/verilog
GCC_PATH: ${{ github.workspace }}/riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14/bin/
GCC_PREFIX: riscv64-unknown-elf