UPGRADE YOUR BROWSER

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# 23398

LogiCORE Multiplier v8.0 - I cannot use the A_SIGNED port on my multiplier. Why?

Description

In the data sheet and GUI for the Multiplier v8.0 Core, I see a port called A_SIGNED which should allow me to manually switch between signed and unsigned data on port A. However, no matter what I try in the core GUI, I cannot utilize this port. Why?

Solution

This functionality was removed from the core late in the release, and there was not time to remove it from the documentation. It will not be present in future versions of the core GUI and documentation. If you need to switch between signed and unsigned data, you can use the method detailed here to work around this issue: 

 

1. Make the A port 1 bit wider than the A operand you need in the GUI. 

(NOTE: Please note that if you want to target an 18x18 multiplier, using this feature requires the multiplier to be 19x18, which will use a lot more logic and dedicated multipliers. The recommendation would be to do a 17x17-bit multiplier and increase the input to 18x17, to better utilize the dedicated resources.) 

2. Generate the core. 

3. Create (infer) an AND gate in your code (a single LUT), and AND the MSB of your input operand with the sign control signal (call it a_signed). 

4. When a_signed is driven HIGH, the data on port A is signed; when it is driven LOW, it is treated as unsigned. This is exactly how the core used to perform this function. (The A operand is stretched by 1 bit internally.)

AR# 23398
Date Created 09/04/2007
Last Updated 05/20/2014
Status Archive
Type General Article