syfala v0.8.0

Automatic compilation of Faust and C++ audio DSP programs for AMD/Xilinx FPGA platforms.

Supported platforms

and more to come...

Dependencies

Please follow the instructions in the file dependencies.md in order to install the AMD-Xilinx toolchain and various other dependencies.

Installing

the command make install will install a symlink in /usr/bin. After this you'll be able to just run on your terminal:

syfala myfaustprogram.dsp

You'll also have to edit your shell resource file (~/.bashrc / ~/.zshrc) and set the following environment variable:

export XILINX_ROOT_DIR=/my/path/to/Xilinx/root/directory

XILINX_ROOT_DIR is the root directory where all of the AMD-Xilinx tools (Vivado, Vitis, Vitis_HLS) are installed.

Tutorials

Getting started with syfala and Faust

tutorials/getting-started-faust.md

In this tutorial, we will cover the essential topics to get you started with the Faust programming language, syfala, and audio programming on FPGAs.

Embedded Linux

Please report to the tutorials/embedded-linux-getting-started.md document in order to get you started with the Embedded Linux for Syfala

Using syfala with C++ (advanced)

tutorials/cpp-tutorial-advanced.md

This tutorial will show you how to program a syfala DSP kernel using C++. It is intended for advanced users.

Quick getting-started

Software

Faust targets

Building a simple example for the default board (Digilent Zybo Z7-10):

syfala examples/faust/virtualAnalog.dsp

This will run the full syfala toolchain on the virtualAnalog.dsp Faust file, which will then be ready to be flashed on the board. You can specify the targeted board using the -b (--board) option:

syfala examples/faust/virtualAnalog.dsp --board Z20
syfala examples/faust/virtualAnalog.dsp --board GENESYS

Once the build is finished (depending on your computer, it usually takes between 15 and 30 minutes to complete), you can connect the board to your computer with the proper USB/Serial port cable and run the flash command:

syfala flash

The board's RGB LED should then flash green after a few seconds, indicating that your program is running. You can now start the Faust GUI application, which will display a set of sliders/knobs/buttons and update the DSP parameters in real-time through USB-UART:

syfala start-gui

C++ targets

For C++ targets, the process is exactly the same (excepted for the GUI part, which is not available):

syfala examples/cpp/templates/bypass.cpp --board Z20
syfala flash

Exporting and re-importing your builds

When you're done playing with your program, you can save and export it as a .zip file with the following command:

syfala export my-faust-virtual-analog-build
# output in 'export/my-faust-virtual-analog-build.zip'

The resulting .zip file is now available in the repository's export directory, you can re-import it by typing:

syfala import export/my-faust-virtual-analog-build.zip

Building another DSP target

Before building another DSP program, please make sure you have saved and exported your previous build beforehand, otherwise it will be overwritten whenever you start a new build.

syfala examples/my-new-dsp-build.dsp

Hardware (Digilent Zybo-Z7-10/20 boards)

Going further

Please report to the reference for more information on available commands, options and documentation.

The syfala team

Here is a list of person that have contributed to the Syfala project :