AXI4 Target for Scalar Argument

When a scalar argument's interface type is configured to axi_target, a register corresponding to the scalar argument will be made accessible behind the HLS module's AXI4 target interface. Typically, a write operation to the AXI4 target interface is performed to update the scalar argument value before starting the HLS module. The register value stays unchanged until next write to the register, so no need to update the scalar argument register again if a new invocation of the HLS module uses the same value for the scalar argument as the last invocation. The scalar argument registers are also readable via the AXI4 target interface. The corresponding memory-mapped address offset of the scalar argument register can be found in the 3.5.1.23.1.5 AXI4 Target Interface Address Map section of the 3.5.1.23.1 SmartHLS Report. In addition, SmartHLS generates driver functions for convenient write and read to the scalar argument (see 3.5.1.19 Driver Functions for AXI4 Target).

Note that to use AXI4 target interface for a scalar argument, the argument type needs to be a C primitive data type (e.g., char, unsigned int, double, and etc; cannot be a struct or ap_int type).