Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21017 Discussioni

Floats number nios

JEL_W
Principiante
2.569Visualizzazioni

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 Risposte
GuaBin_N_Intel
Dipendente
1.880Visualizzazioni
What does you mean not working? Did it print out something wrong or had build error?
JEL_W
Principiante
1.880Visualizzazioni

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

GuaBin_N_Intel
Dipendente
1.880Visualizzazioni
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
Principiante
1.880Visualizzazioni

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
Dipendente
1.880Visualizzazioni
JEL_W
Principiante
1.880Visualizzazioni

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

GuaBin_N_Intel
Dipendente
1.880Visualizzazioni
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
Principiante
1.880Visualizzazioni

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

GuaBin_N_Intel
Dipendente
1.879Visualizzazioni

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

JEL_W
Principiante
1.879Visualizzazioni

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

Abe
Collaboratore stimato II
1.879Visualizzazioni

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
Principiante
1.879Visualizzazioni

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 ?

Rispondere