+
+
+
Automatic compilation of Faust audio DSP programs for AMD-Xilinx FPGAs.
+
Supported Board Models
+
+- [x] Digilent Zybo Z7-10 - Zynq-7000 ARM/FPGA SoC Development Board
+- [x] Digilent Zybo Z7-20 - Zynq-7000 ARM/FPGA SoC Development Board
+- [x] Digilent Genesys ZU-3EG - Zynq UltraScale+ MPSoC Development Board
+
+
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:
+
$ 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.
+
Getting Started
+
Hardware Setup (Digilent Zybo-Z7-10/20 Boards)
+
+- [ ] Jumper JP5 should be on JTAG
+- [ ] Power select jumper should be on USB
+- [ ] Switches SW0, SW1, SW2, SW3 should be down
+- [ ] The audio input is LINE IN (blue), not MIC IN
+- [ ] The audio output is the black HPH OUT jack
+
+
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
+
+
You can now 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/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
+# the exported .zip file is tagged with date & time, e.g.:
+>> "export/2022-02-17-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/2022-02-17-my-faust-virtual-analog-build.zip
+
+
Making Another Build
+
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
+
+
Embedded Linux
+
Please report to the linux-getting-started.md document in order to get you started with the Embedded Linux for Syfala.
+
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 :
+
+- Tanguy Risset
+- Yann Orlarey
+- Romain Michon
+- Stephane Letz
+- Florent de Dinechin
+- Alain Darte
+- Yohan Uguen
+- Gero Müller
+- Adeyemi Gbadamosi
+- Ousmane Touat
+- Luc Forget
+- Antonin Dudermel
+- Maxime Popoff
+- Thomas Delmas
+- Oussama Bouksim
+- Pierre Cochard
+- Joseph Bizien
+- Agathe Herrou
+- Jurek Weber
+- Aloïs Rautureau
+