EmbDev.net

Forum: FPGA, VHDL & Verilog while loop running +64 how come?


von John M. (215)


Rate this post
useful
not useful
I have this codepiece
http://pastebin.com/nLyHXp8h
which is giving some problems..
I am getting a error message saying that it is getting looped more thank 
64 times, which i do not understand how that even is possible, since I 
increment the check value inside the loop each time.

I would be very glad if anyone could see where i am going wrong.

von John M. (215)


Rate this post
useful
not useful
could the problem be that my conditions isn't constant?

von Lothar M. (Company: Titel) (lkmiller) (Moderator)


Rate this post
useful
not useful
John Mayer wrote:
> could the problem be that my conditions isn't constant?
No.
The problem ist, that you think VHDL is a programming language like C. 
Let me tell you: it isn't. It is far, far away from C or Basic or 
something like that!

Lets take this:
1
       while (pointer <= (3)) loop
2
               LED <= LISTEN(pointer);
3
               pointer := pointer + 1;
4
       end loop;
You will not be able to get this on hardware. It is just a 
"combinatorial loop". Do you want to know more? Try that with google 
translator:
http://www.lothar-miller.de/s9y/archives/42-Kombinatorische-Schleifen.html

The whole coding style is completely software based (variables, 
functions...) and this will lead to nowhere in VHDL. Did you do the 
blinking LED (= "Heollo Wolrd!" of hardware) and a chasing light before 
this code?

Pls attach your complete vhdl file here. then we can have a close look 
at it...

von John M. (215)


Rate this post
useful
not useful
complete code:
http://pastebin.com/Z4NxaeNd

I've replaced the while loop with an if statement.. which seem to work.
But for some reason i can when my pointer becomes larger than the size 
of my array, it just start pointing from the beginning, and continues??

How come?

von Lothar M. (Company: Titel) (lkmiller) (Moderator)


Rate this post
useful
not useful
John Mayer wrote:
> complete code:
> http://pastebin.com/Z4NxaeNd
I will not read this that, because
Lothar Miller wrote:
> Pls attach your complete vhdl file here. then we can have a close look
> at it...
However...

> How come?
Your "problem" is well known and called "wrap around". Workaround: just 
don't try to access an index behind the last element.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.