Example design
The Vollo IP Core comes with a simple example design.
The example design is for the Bittware IA-420F device - but can be converted to a different device by adapting the relevant files.
The example design contains:
rtl
: a simple instantiation ofvollo_ip_core
with the input and output AXI4-Stream interfaces are hooked up to directly MMIO. An efficient design should instead control input and output directly from the FPGA, or if control from a CPU host is needed then use a proper DMA instead.bitstream
: this is a pre-built bitstream of the provided RTL, it is provided to speed up testing of the runtimeruntime
: the runtime showcases how to configure and activate the Vollo IP Core using thevollo-cfg
library. It also controls IO to do basic inferences (this IO mechanism is only an example, it is not optimized for performance)
Building RTL
A script is provided to automate building the RTL: vollo_ip_core_example/rtl/build.sh
Alternatively, you can perform the following steps manually:
-
Run QSYS: This example project is provided as a TCL generated QSYS project. So we need to generate the top level QSYS:
qsys-script --script=qsys/mcdma_sys.tcl --quartus-project=agilex
And generate RTL for that QSYS project:
qsys-generate mcdma_sys.qsys --synthesis=VERILOG --parallel --quartus-project=agilex.qpf
-
Run Quartus: This step can be done manually in the GUI or with the provided
flow.tcl
(which runssyn
,fit
,sta
, andasm
):quartus_sh -t flow.tcl
In order to synthesise the Vollo IP Core which is encrypted, make sure to add the
vollo-ip-quartus.lic
file to your license server, or simply add it to theLM_LICENSE_FILE
environment variable (see Quartus integration).