Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20681 Discussions

Floats number nios

JEL_W
Beginner
1,924 Views

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

0 Kudos
12 Replies
GuaBin_N_Intel
Employee
1,235 Views
What does you mean not working? Did it print out something wrong or had build error?
0 Kudos
JEL_W
Beginner
1,235 Views

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 : time_arcsin.png

0 Kudos
GuaBin_N_Intel
Employee
1,235 Views
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?
0 Kudos
JEL_W
Beginner
1,235 Views

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

0 Kudos
GuaBin_N_Intel
Employee
1,235 Views
0 Kudos
JEL_W
Beginner
1,235 Views

I get ' undefined reference to alt_timestamp_...', even If declared the libraries, do you have an idea about what's missing ? error.PNG

0 Kudos
GuaBin_N_Intel
Employee
1,235 Views
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.
0 Kudos
JEL_W
Beginner
1,235 Views

Yes I've included the timer in QSys platform, qsys2.PNGqsys1.PNG

0 Kudos
GuaBin_N_Intel
Employee
1,234 Views

Have you selected any timer in "timestamp_timer" setting in your BSP editor?

0 Kudos
JEL_W
Beginner
1,234 Views

thank youuu , yes I just do it right now, but even though i cannot visualize the time and the result, alt_timestamp_start is always <0 so I got this:im3.PNGim2.PNGim1.PNGim4.PNG

0 Kudos
Abe
Valued Contributor II
1,234 Views

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.

0 Kudos
JEL_W
Beginner
1,234 Views

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 ?

0 Kudos
Reply