A Makefile/TCL hybrid firmware build system for SLAC FPGA and ASIC projects.
ruckus provides a standard library of TCL procedures and Makefile targets that
abstract Vivado, Vitis HLS, GHDL, Cadence Genus, and Synopsys DC build flows into
a consistent make bit / make syn interface. It handles source loading, IP core
management, hook script injection, and firmware release packaging.
Full documentation: https://slaclab.github.io/ruckus/
- Linux operating system
- Licensed EDA tool installation (Vivado, Vitis, Cadence Genus, or Synopsys DC)
- Python 3 with pip packages:
gitpython pygithub pyyaml
# Clone your firmware repository (ruckus is typically a submodule)
git clone --recursive https://github.com/slaclab/MyFirmware
cd MyFirmware/firmware/targets/MyTarget
# Create build directory (one-time setup)
mkdir ../../../../build
# Run the build
make bitIn your project Makefile:
ifndef PRJ_PART
export PRJ_PART = xcku15p-ffva1760-2-e
endif
include $(TOP_DIR)/submodules/ruckus/system_vivado.mkSee the full documentation for complete setup instructions, all supported tool backends, and the firmware release workflow.
