Install dependencies for Chryse, and optionally the library itself from source. action.yml is an easy read.
Install:
- Temurin JDK 22 using actions/setup-java
- sbt 1.9.8
- Verilator from apt
- name: Set up Chryse
uses: chryse-hdl/setup-chryse@v2
Additionally install OSS CAD Suite using YosysHQ/setup-oss-cad-suite. The suite's Verilator install is used instead of getting it from apt.
- name: Set up Chryse
uses: chryse-hdl/setup-chryse@v2
with:
install-oss-cad-suite: true
github-token: ${{ secrets.GITHUB_TOKEN }}
Additionally install Zig using goto-bus-stop/setup-zig.
- name: Set up Chryse
uses: chryse-hdl/setup-chryse@v2
with:
install-zig: 0.13.0
Clone Chryse and sbt publishLocal
a particular ref of it.
- name: Set up Chryse
uses: chryse-hdl/setup-chryse@v2
with:
source-ref: main
- ChiselSim depends on Verilator 5.x in all but the simplest usage.
- The
ubuntu-22.04
GitHub Actions runner (currentubuntu-latest
) includessbt
in the base image, but the Verilator in apt is 4.x. - The
ubuntu-24.04
runner has Verilator 5.x in apt, but nosbt
. -_-
I'm preferring getting ready for 24.04 sooner, so we fetch sbt
manually, and install Verilator from apt if we're not obtaining OSS CAD Suite (which bundles it).
We don't need OSS CAD Suite if we're not synthesising, and YosysHQ/setup-oss-cad-suite's use of the GitHub API means it's pretty easy to trigger API rate-limits even when providing a token! So I try to make it easy to avoid it.