Quick start

This guide walks you through installing FABulous, generating a fabric, and producing a bitstream in under five minutes. For detailed installation options see the Installation section.

1. Install FABulous

Install uv (if you don’t have it already), then install FABulous as a tool:

# Install uv (Linux/macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install FABulous
uv tool install fabulous-fpga

If you already have pipx installed, pipx install fabulous-fpga works as well.

Verify the installation:

FABulous --version

Tip

See the Installation section for alternative methods (venv, Docker, Nix) and platform-specific instructions.

2. Install CAD tools

FABulous requires Yosys and nextpnr-generic for synthesis and place-and-route. The easiest way to install them is through the bundled installer:

FABulous install oss-cad-suite

This installs the OSS CAD Suite, which includes Yosys, nextpnr, simulators, and all other required tools. VHDL users will also get ghdl and the ghdl-yosys-plugin through this installer. For manual installation or more details, see CAD tool installation.

Warning

Do not use the latest nightly build of Yosys. Nightly builds after 29 June are not compatible with current FABulous and will fail. Install Yosys 0.66, or any build dated before 29 June, instead.

3. Create a project

FABulous create-project demo

This creates a demo/ directory with a default fabric definition and example user designs.

4. Generate fabric and bitstream

You can run the full flow either interactively or as a one-liner.

Option A – Interactive shell:

cd demo
FABulous start

Inside the FABulous shell:

fabulous> run_fab
FABulous> run_fab
FABulous> compile_design user_design/sequential_16bit_en.v

Option B – Command line (batch mode):

FABulous -p demo run "run_fab; compile_design user_design/sequential_16bit_en.v"

5. Check the outputs

After a successful run:

  • Tile RTL files are in demo/Tile/

  • Fabric RTL file is in demo/Fabric/

  • Bitstream is at demo/user_design/sequential_16bit_en.bin

  • Synthesis and PnR logs are in demo/user_design/

What’s next?