Skip to content

Instantly share code, notes, and snippets.

@rafaelnp
Last active February 1, 2025 11:23
Show Gist options
  • Save rafaelnp/54209202b0c2cf6c6871bce932cd5c27 to your computer and use it in GitHub Desktop.
Save rafaelnp/54209202b0c2cf6c6871bce932cd5c27 to your computer and use it in GitHub Desktop.
short description of fusesoc commands

Fusesoc examples

kind of a "crash course" on fusesoc, the usual commands used during a FPGA development cycle. A good starting point is to watch Olof's presentation at Wosh: https://www.youtube.com/watch?v=HOFYplIBSWM

Additional documentation/tutorials:

create library (local)

fusesoc library add <library_name>

where can be a local filesystem or a git repository

list cores

fusesoc core list

generate make for vivado project

fusesoc run --setup --tool vivado <core_name> cd build make <core_name>.xpr

open project on the vivado gui

make build-gui

the complete cycle

  • setup
  • build
  • run

where <target> and <tool> are specified in the core file

fusesoc run --target <target> --tool <tool> <system> or fusesoc run --target <target> <system>

Update remote library

fusesoc library update library_name

A Makefile template for a system project

Where a system project is a collection of HDL glue code and IP cores managed by FuseSos: (used for a Vivado project, can be easily adapted for other tools)

#
# Author:      Rafael do Nascimento Pereira <[email protected]>
# Description: Makefile to generate Vivado project using FuseSoc
#

PROJ_NAME = system_name
VERSION = 0.1
BUILD_DIR = $(abspath ./build/$(PROJ_NAME)_$(VERSION)/synth-vivado)


all: bitstream

bitstream:
   fusesoc run --target=synth --no-export $(PROJ_NAME)

project:
   fusesoc run --setup --target=synth --no-export $(PROJ_NAME)

gui:
   cd $(BUILD_DIR); make build-gui

clean:
   rm -fr *.jou *.log build/ .Xil

projects using fusesoc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment