diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31fa872..f309043 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,8 @@ name: CI +env: + OSS_CAD_SUITE: '2026-07-24' + on: push: branches: [main] @@ -10,11 +13,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - - name: Install Icarus Verilog - run: | - sudo grep -rlZ packages.microsoft.com /etc/apt/sources.list.d/ 2>/dev/null | sudo xargs -0 -r rm -f - sudo apt-get update - sudo apt-get install -y iverilog + - uses: YosysHQ/setup-oss-cad-suite@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + version: ${{ env.OSS_CAD_SUITE }} - name: synchronizer run: make MOD=synchronizer - name: tick_gen @@ -27,6 +29,19 @@ jobs: run: make MOD=uart - name: board demo (seven_seg + debounce + top) run: make -C boards/basys3 test + + # The suite bundles a development build of cocotb whose VPI teardown segfaults + # after the test passes, so this job takes iverilog and cocotb from apt and pip. + # The same RTL is dialect-checked against the pinned suite by the job above. + cocotb: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - name: Install Icarus Verilog + run: | + sudo grep -rlZ packages.microsoft.com /etc/apt/sources.list.d/ 2>/dev/null | sudo xargs -0 -r rm -f + sudo apt-get update + sudo apt-get install -y iverilog - name: Install cocotb run: pip install cocotb - name: cocotb top-level loopback @@ -36,10 +51,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - - name: Install OSS CAD Suite (yosys + sby + solvers) - uses: YosysHQ/setup-oss-cad-suite@v4 + - uses: YosysHQ/setup-oss-cad-suite@v4 with: github-token: ${{ secrets.GITHUB_TOKEN }} + version: ${{ env.OSS_CAD_SUITE }} - name: uart_rx formal run: make formal MOD=uart_rx - name: uart_tx formal