AR #31770 - 10.1 EDK - Why are floating point and/or hardware multiplier compiler flags/instructions NOT being used in my EDK application even though the features are enabled in MicroBlaze?

Search Answers Database


 

10.1 EDK - Why are floating point and/or hardware multiplier compiler flags/instructions NOT being used in my EDK application even though the features are enabled in MicroBlaze?

AR# 31770
Part EDK-XPS
Last Modified 2008-10-16 00:00:00.0
Status Active
Keywords MB, uBlaze, Micro, Blaze, hard, soft, mult, FPU, GCC, Spartan-3, Spartan-3E

Description

Keywords: MB, uBlaze, Micro, Blaze, hard, soft, mult, FPU, GCC, Spartan-3, Spartan-3E

Why are the floating point instructions NOT used in the Spartan-3, Spartan-3E or XA Spartan-3 parts even though I am using Extended FPU in MicroBlaze?

Solution

This error comes from an improper setting in the make file that is generated. The correct GCC switches are not set. These switches are:

-mno-xl-soft-mul
-mxl-multiply-high
-mhard-float
-mxl-float-sqrt
-mxl-float-convert

To overcome this problem:

1. In XPS, right-click on your software project and select Set Compiler Options.
2. Bring the Path and Options tab forward.
3. In the Other Compiler Options to Append field, add (for example) -mhard-float
4. Press OK.

If the FPU is disabled from hardware, this compiler option also should be removed.

A tactical patch has been created to address this problem. The steps required to apply the patch are as follows:
1. Download the patch from ftp://ftp.xilinx.com/pub/applications/misc/libmdtsoftware.zip
2. Make a backup of $XILINX_EDK/lib/nt/libMdtSoftware.dll, $XILINX_EDK/lib/lin/libMdtSoftware.so, $XILINX_EDK/lib/lin64/libMdtSoftware.so (as appropriate for your platform).
3. Extract the attached archive into $XILINX_EDK

This patch is scheduled to become mainstream in the next major release of the EDK software.
 
 
/csi/footer.htm