We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 37523

LogiCORE Complex Multiplier v4.0 - Why are my output incorrect when I upgrade from V3.0, or v3.1 to v4.0?


For LogiCORE Complex Multiplier v4.0, why are my outputs incorrect when I upgrade from V3.0 or v3.1 to v4.0?


The issue is in the upgrade functionality. It will manifest for an older version which has OutputHigh set to anything other than the top bit of the natural product.

For example, if the input widths are  A=8 and B = 8, the natural output width of a complex multiplication is A+B+1 = 17. Width of 17 gives indices of 16 downto 0, so the natural OutputHigh would be 16 and the natural OutputLow would be 0. If the core had OutputHigh = 14, say, then the width for the older version of the core would have been 15 (14 downto 0).

In the new version of the core, whenever the outputwidth is set to anything less than the natural output width, it takes the MSBs. This means the new core would output bits 16 downto 2 rather than the desired 14 downto 0.

The workaround is to replace the 'cmpy_v4_0_utils.tcl' file which is found in the %Xilinx%\ISE_DS\ISE\coregen\ip\xilinx\dsp\com\xilinx\ip\cmpy_v4_0\gui directory with a new tcl file.  Please open a webcase in order to receive the new tcl file.
AR# 37523
Date 05/26/2014
Status Archive
Type General Article
  • Complex Multiplier