while loop running +64 how come?

OP #3637563
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.
Moderator (Company: Titel) #3637622
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...
Moderator (Company: Titel) #3637890
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.

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now