I have updated and modified an FPU from opencores. I removed the division/square root code and put in xilinix optimised code. It now runs at 200mhz as opposed to the original 100mhz.
Using the FPU for this code:
for (int i = 0; i<5000; i++) {
res = (a+i)/(b-i);
res = res * a * (i/b);
if (res < 0) {
res = res*-1.0;
}
res = sqrtf(res);
printf("res = %0.3f\r\n",res);
}
I managed to improve the performance substantially over the already optimised 68k assembler code provided in the soft-float gcc library. Also tg68 has a hardware multiplier built in so this is quite a large improvement.
I would expect larger improvements if just using ieee754 numbers rather than relying on conversion from floats all the time.
Any way from the built in timer.
time taken. fpu: 46149 sf: 51679
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.