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

8.2i EDK - Random multiply operations seem to be failing in MicroBlaze

Description

Most designs that use the hardware multiplier or hardware floating point unit (FPU) seem to randomly fail.

Solution

This problem is caused by the improper merge of MREG in the DSP48 or DSP48E. Any EDK IP that takes advantage of the hardware multiplier will encounter this problem.

To work around this problem, change MicroBlaze to use the software multiplier, or set the environment variable XIL_MAP_NO_DSP_AUTOREG for Virtex-4 or XIL_MAP_NO_DSP48E_AUTOREG for Virtex-5, as described below.

Change MicroBlaze to Use Software Multiplier

1. In the System Assembly View in XPS, right-click your MicroBlaze instance and select Configure IP.

2. With the Instructions tab forward, make sure that you deselect Enable Integer Multiplier.

3. Press the OK button.

Setting the Environment Variable

Windows

1. Right-click My Computer and select Properties.

2. Click the Advanced tab.

3. Click the Environment Variables button.

4. Select the New button (either System or User Variables).

5a. The "Variable name:" is XIL_MAP_NO_DSP_AUTOREG. -- Virtex-4

5b. The "Variable name:" is XIL_MAP_NO_DSP48E_AUTOREG. --Virtex-5

6. The "Variable value:" is 1.

Unix (tcsh)

Virtex-4

setenv XIL_MAP_NO_DSP_AUTOREG

Virtex-5

setenv XIL_MAP_NO_DSP48E_AUTOREG

NOTE: This affects all MicroBlaze cores.

This problem has been fixed in ISE 9.1i.

AR# 24006
Date Created 09/04/2007
Last Updated 12/15/2012
Status Active
Type General Article