2.1. Mercurium FPGA Phase options

The following sections list and summarize the Mercurium options from the FPGA Phase.

2.1.1. fpga_memory_port_width

Defines the width (in bits) of memory ports (only for wrapper localmem data) for fpga accelerators. Usage example:

fpgacc --ompss --bitstream-generation src/dotproduct.c -o dotproduct \
  --Wf,--board=zedboard --variable=fpga_memory_port_width:128

2.1.2. force_fpga_periodic_support

Force enabling the periodic tasks support in all FPGA accelerators. This feature is only enabled in the FPGA accelerators that require it (the target directive has the period or num_repetitions caluses). Usage example:

fpgacc --ompss --bitstream-generation src/dotproduct.c -o dotproduct \
  --Wf,--board=zedboard --variable=force_fpga_periodic_support:1

2.1.3. fpga_unaligned_memory_port

[Available in release 2.3.0] Enables the logic to support unaligned memory regions handled by the shared memory port. This option only has effect when the fpga_memory_port_width option is also present. Usage example:

fpgacc --ompss --bitstream-generation src/dotproduct.c -o dotproduct \
  --Wf,--board=zedboard  --variable=fpga_memory_port_width:128 \
  --variable=fpga_unaligned_memory_port:1

Warning

This option will increase the resources consumption of FPGA wrappers. However, it may be mandatory depending on application data partition.