Files
retroSoC/.github/workflows/test.yml
T

85 lines
2.7 KiB
YAML

name: test
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download and Extract Verilator Artifact
run: |
verilator_path="verilator-artifact"
mkdir $verilator_path
wget https://github.com/retroSoC/artifact/releases/download/verilator-v5.046/verilator-v5.046-ubuntu-22.04-gcc.tar.gz
tar -xvf verilator-v5.046-ubuntu-22.04-gcc.tar.gz -C $verilator_path
echo "$(pwd)/$verilator_path/bin" >> $GITHUB_PATH
sudo apt-get update
sudo apt-get install mold
- name: Test Verilator Toolchain
run: |
verilator --version
- name: Download and Extract Yosys Artifact
run: |
yosys_path="yosys-artifact"
mkdir $yosys_path
wget https://github.com/retroSoC/artifact/releases/download/yosys-v0.58/yosys-v0.58-ubuntu-22.04-gcc.tar.gz
tar -xvf yosys-v0.58-ubuntu-22.04-gcc.tar.gz -C $yosys_path
echo "$(pwd)/$yosys_path/bin" >> $GITHUB_PATH
- name: Test Yosys Toolchain
run: |
yosys --version
- name: Download and Extract RISC-V GNU Toolchain Artifact
run: |
riscv_toolchain_path="riscv-toolchain-artifact"
mkdir $riscv_toolchain_path
wget https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2025.05.01/riscv32-elf-ubuntu-22.04-gcc-nightly-2025.05.01-nightly.tar.xz
tar -xvf riscv32-elf-ubuntu-22.04-gcc-nightly-2025.05.01-nightly.tar.xz -C $riscv_toolchain_path
echo "$(pwd)/$riscv_toolchain_path/riscv/bin" >> $GITHUB_PATH
- name: Test RISCV-V GNU Toolchain
run: |
riscv32-unknown-elf-gcc --version
- name: Setup MPW Repo
run: |
pip install tomli
python3 setup.py
- name: Download clusterIP
run: python3 rtl/clusterip/setup.py
- name: Download 3rd-party IP and models
run: python3 rtl/ip/setup.py
- name: Download Open PDK Repo
run: python3 pdk/setup.py
- name: Config FatFs and Coremark Repo
run: python3 app/setup.py
- name: Compile Firmware
run: make CORE=MDD IP=MDD SIMU=VERILATOR HAVE_SRAM_IF=NO HAVE_SRAM_MACRO=NO HAVE_PLL=NO ISA=RV32I HAVE_CSR=NO PROG_TYPE=BASE LINK_TYPE=ld2_psram firmware
- name: Run RTL sim
run: |
python3 verilator.py
make CORE=MDD IP=MDD SIMU=VERILATOR HAVE_SRAM_IF=NO HAVE_SRAM_MACRO=NO HAVE_PLL=NO sim
- name: Run synth
run: |
make CORE=PICORV32 IP=NONE SIMU=VERILATOR SYNTH=YOSYS PDK=IHP130 HAVE_SRAM_IF=NO HAVE_SRAM_MACRO=NO HAVE_PLL=NO RTL_SIM_CORESEL=0 synth
- name: Success Notification
run: echo "RTL simulation completed successfully"