3.6.2.4.4 ENABLE_AUTOMATIC_MULTIPLY_MODE_SETTING

Enable determining multiply mode automatically according to the target clock period and timing model of the board. Fully pipelined mode (i.e., using both input and output registers of each Math block) will be used when the target clock period is less than the delay of a Math block, otherwise half pipelined mode (i.e., using only the input register of each Math block) will be used.

Fully pipelined mode can result in higher circuit Fmax at the expense of higher circuit latency. This functionality is disabled when set_resource_constraint multiply X or set_operation_latency multiply X is defined. The threshold for switching are listed in the table below.

Device Fully Pipelined Mode when Target Period is less than (ns)
PolarFire®, PolarFireSoC 3.704
IGLOO2, SmartFusion® 2 4.169

Below is a table of latency for multiplications of unsigned integers for selected bit widths for reference:

(Bit Width) x (Bit Width) = (Bit Width) Half Pipelined Mode Latency Full Pipelined Mode Latency
8 x 8 = 8 1 2
8 x 8 = 16 1 2
16 x 16 = 16 1 2
16 x 16 = 32 1 2
32 x 32 = 32 2 4
32 x 32 = 64 3 5
64 x 64 = 64 6 11
64 x 64 = 128 9 17
Category
HLS Constraints
Value Type
Boolean
Valid Values
0, 1
Default Value
1
Location Where Default is Specified
examples/legup.tcl
Dependencies
None
Applicable Flows
All devices and flows
Test Status
Actively in-use
Examples
set_parameter ENABLE_AUTOMATIC_MULTIPLY_MODE_SETTING 1