Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
815 Views

Does the alt_u16 type support 0xFFFF or not?

Please consider the following code: 

 

... alt_u16 i; .... for(i=0x0000; i<=0xFFFF; i++) ...  

 

I am getting the following warning during my compilation: 

 

comparison is always true due to limited range of data type 

 

To temporarily solve this I changed the upper limit from 0xFFFF to 0xFFFE 

 

My questions are: 

  1. Why this is happening? I ask this because I was thinking that the alt_u16 as an unsigned 16 bit could fit the 0xFFFF 

  2. Do I need to increase the type alt_u16 to alt_u32 only to support one additional bit or how can I solve this problem? 

0 Kudos
2 Replies
Altera_Forum
Honored Contributor I
56 Views

alt_u16 can hold 0xFFFF, but it can't hold anything larger than that. So the comparison "<= 0xFFFF" is always true. Which is exactly what the compiler is telling you the problem with your code is. 

 

You can use an alt_u32 to keep the rest of your for() loop the same as already written.
Altera_Forum
Honored Contributor I
56 Views

 

--- Quote Start ---  

alt_u16 can hold 0xFFFF, but it can't hold anything larger than that. So the comparison "<= 0xFFFF" is always true. Which is exactly what the compiler is telling you the problem with your code is. 

 

You can use an alt_u32 to keep the rest of your for() loop the same as already written. 

--- Quote End ---  

 

 

thanks again, ted
Reply