General Description When using the Variable Paralled Multiplier from Xilinx Core Generator, the generics "c_output_reg" and "c_pipelined" that are passed to the multiplier model via the configuration snippet in the generated .vho file seem to be incorrect.
For example: If Pipelined Registers = not selected and Output Registers = selected
Then .vho will have following in the configuration tag: c_pipelined => 1 c_output_reg => 0
This seems to be the reverse of what would be expected if "1" stood for "True", and "0" stood for "False".
ソリューション
The above settings are correct. When pipelining or output registering are used, the generics above will be set to "0" in the .vho configuration tag. Otherwise, they will be set to "1".
What appears to be a mistake in the parameter value assignment is actually due to a difference in how these parameters are defined for this particular core. More specifically, for the Parallel Multiplier core, "1" and "0" do not translate to "True" and "False" for these generics in this core.
Setting c_output_reg=>0 actually corresponds to setting c_output_reg to a predefined constant value of "c_reg", which means "use registers". (The counterpart is "c_noreg", which is represented by a constant value of "1".)
Setting c_pipelined=>1 corresponds to setting this to a predefined constant of "c_noreg", meaning "use no registers". The counterpart value, "0", corresponds to a constant named "c_reg".
"c_reg" and "c_noreg" are constants that were defined in XilinxCoreLib.prims_constants_v2_0.all.