Installation and Usage
Sylva and its dependency packages have to be installed on your system to use the tool chain. The following sections describe how to install Sylva and its dependencies.
Operating system
Sylva is developed and tested on Linux (Ubuntu) and relies on standard Unix utilities; it may not work on non-Unix systems without modification.
- Ubuntu 22.04 / 24.04 (or a compatible Linux distribution).
Requirements
Sylva is written in Rust and, at runtime, calls the MiniZinc constraint
solver. The build/run scripts also use a few standard Unix tools, Assembly's
control synthesis reads the RTL components from the sylva-components submodule,
and the full hardware/RTL flow uses additional tooling. The required and optional
packages are:
| Package | Tested version | Needed for |
|---|---|---|
bash |
— | Running the setup.sh / run_*.sh scripts. |
coreutils (cp, mv, rm, …) |
— | File handling performed by the scripts. |
make |
— | Build steps invoked by the tool chain. |
| Rust toolchain (rustc + Cargo) | 1.88+ | Building the tool chain. |
| MiniZinc | 2.9+ | Constraint programming during DSE and Assembly (uses the CP-SAT backend). |
| riscv-gnu-toolchain | 2026.03.13+ | Compiling processor/AlImp firmware (control synthesis). |
| bender | 0.30.0+ | Resolving the sylva-components RTL dependencies. |
Questa (vsim) |
2023.4+ | (Optional) RTL-level simulation/verification of the generated hardware. |
On Debian/Ubuntu the following system packages are needed to build Sylva:
apt install -y \
build-essential \
pkg-config \
libfontconfig1-dev
Sylva Installation
Sylva is hosted on GitHub at
silagokth/sylva-suite. It bundles the
sylva-components RTL repository
as a git submodule, so clone it recursively:
git clone --recurse-submodules https://github.com/silagokth/sylva-suite.git
# if you already cloned without submodules:
git submodule update --init --recursive
To build the binaries, run the setup script in the main directory:
./setup.sh
The script and binaries were tested on Ubuntu 24.04.2 LTS. It compiles the
workspace with Cargo and produces the Design Space Exploration tool, the Assembly
tool, the GLIC simulator and the example file generator, placing them in a bin/
sub-directory:
bin
├── config # generates input configuration files for the bundled examples
├── sv-asm # Assembly
├── sv-dse # Design Space Exploration
└── sv-sim # GLIC functional simulator
Example Installation (optional)
The bundled test cases (minimum, copy, sobel, lenet5) are compiled and
ready to use in the examples/ directory after setup.sh finishes. Their input
configuration files are generated with the config tool — see
Getting Started.
Verifying the installation
./bin/sv-dse --version
./bin/sv-asm --version
minizinc --version
If any binary is missing, re-run ./setup.sh and check the Cargo build output.