Synthesis and HLS Backend

Working with synthesis backends is painful and requires advanced debugging. For most things, we recommend not installing these tools yourself. If you're a Cornell Student, you can use our lab server, Gorgonzola.

fud uses Vivado to generate area and resource estimates for designs generated by Calyx. It also supports compiling Dahlia programs through the HLS-backend using Vivado HLS.

There are two ways to get fud working with Vivado.

Vivado and Vivado HLS over SSH

fud supports invoking these tools over SSH. You have to tell fud the username and hostname for a server that has these tools installed:

# vivado
fud config stages.synth-verilog.ssh_host <hostname>
fud config stages.synth-verilog.ssh_username <username>

# vivado hls
fud config stages.vivado-hls.ssh_host <hostname>
fud config stages.vivado-hls.ssh_username <username>

Note: vivado or vivado_hls have to be on the path of the remote machine for this to work. If you need the names to be something else, file an issue. fud currently does not support other names.

Vivado/VivadoHLS locally

We don't provide installation instructions for this. However, fud will look for vivado and vivado-hls binaries on the system. If these are installed, you can use fud to invoke these tools. You can change the paths fud looks for with

fud config stages.synth-verilog.exec <path> # update vivado path
fud config stages.vivado-hls.exec <path> # update vivado_hls path