| 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.zip2. 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.