Altera_Forum
Honored Contributor
11 years agosqrtf custom instruction gives sometimes absolutely wrong results
I use Quartus 13.1.0.182 web edition with a Cyclone III FPGA
The project is compiled with the Floating point custom instruction 2.0 from Qsys. My code calculates the square root and some times the results is absolutely wrong. I checked (in disassembly) that custom instruction 251 is called like expected. Here is the code:#include "altera_nios_custom_instr_floating_point_2.h"
float temp1, sinDelta, debugVal, cosDelta;
temp1 = sinDelta * sinDelta;
debugVal = 1.0f - temp1;
cosDelta = sqrtf(debugVal);
And here are the variables results (obtained during debugging): sinDelta: 0.000162738579 (0x392aa4ce) temp1: 2.64838445e-008 (0x32e37e97) debugVal: 0.99999994 (0x3f7fffff) cosDelta: 0.5 (0x3f000000) The cosDelta should be around "1". Is seems the custom square root encounters issues with results near 1! Do I do something wrong or is it an Altera implementation bug?