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. disable_unaligned_fpga_memory_port_width

[Experimental in pre-production] Disables 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=disable_unaligned_fpga_memory_port_width:1

Warning

This option will save resources in the logic of FPGA wrappers. However, that may be unsafe and result in bad application results due to data overwrite and/or data shift.