Forum Discussion
Floats number nios
hi all,
I want to implement this operation, in NIOS II :
float a,b,c,registre;
clock_t temps_initial,temps_final;
float temps_cpu;
a=2.45;
b=3.48;
temps_initial =clock();
registre=a/b;
c=asin(registre);
temps_final=clock();
temps_cpu=(temps_final-temps_initial)/CLOCKS_PER_SEC;
printf("temps_cpu=%f\n",temps_cpu);
printf("resultat=%f\n", c);
but it didn't work, anybody has an idea about how can we implement floating numbers in nios ?
i define these libraries at the top of the programm
#include <stdio.h>
#include <unistd.h>
#include "math.h"
#include <time.h>
#include <float.h>
is there anything missing ?
thank you all
12 Replies
- GuaBin_N_Intel
Contributor
What does you mean not working? Did it print out something wrong or had build error? - JEL_W
New Contributor
no , it print random values of 'time_cpu'(per sec) , you can see below the values of results with a good resolution and time taken by cpu to do this operation :
- GuaBin_N_Intel
Contributor
Still not understand what your issue is. In the operation temps_cpu=(temps_final-temps_initial)/CLOCKS_PER_SEC, both variable "temps_final" or "temps_initial" are getting value from clock function I presume, it supposes to get a random value, right? Are you expecting a fixed value? - JEL_W
New Contributor
it should normally print, the time taken by the cpu to do the operation but, I found that the result is not logic, because I get 2058186 s for cpu time to do this operation which is normally not possible, the issue is how can we calculate the operation time taken by cpu .
Thank you
- GuaBin_N_Intel
Contributor
Use timestamp to count the operation time https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/nios2/n2sw_nii5v2gen2.pdf, exampl 6-9,pg173- JEL_W
New Contributor
I get ' undefined reference to alt_timestamp_...', even If declared the libraries, do you have an idea about what's missing ?
- GuaBin_N_Intel
Contributor
Do you include the timer in your Qsys platform system and connect to NIOS?https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_embedded_ip.pdf, 23 Interval Timer Core. It has to be done prior to using that HAL driver.- JEL_W
New Contributor
Yes I've included the timer in QSys platform,
- GuaBin_N_Intel
Contributor
Have you selected any timer in "timestamp_timer" setting in your BSP editor?
- Abe
Frequent Contributor
Have you included the NIOS2 floating point hardware modules along with the timer mentioned in the prev post? If not, you need to add these two modules to perform floating point calculations as well as to calculate clock ticks/cycles.
Post a screenshot of your Qsys system setup here . We maybe able to help you after checking that.
- JEL_W
New Contributor
No , I did it with an other example but it didn't work, I don't know exactly how to use it, and which libraries we have to include ?