![]() |
|
|
|||||||
![]() |
VHDL - Type convertion when doing arimetic on intergers. |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
Dear All,
What is the resulting range of an arithmetic operation on ranged integers? E.g. with the following two signals. signal X : integer range 1 to 255; signal Y : integer range 1 to 255; And then some ware in the code. if ( X > Y/2) then ....... Our linding tools report a warning here stating the X is 8 bit wide and Y/2 is only 7 bit. So the simple question is now. What is the range of Y/2? The general question is. What is the range of any arithmetic operation on ranged integers? Which rules control this? Where in the LRM is this described? Regards, Mogens. MLyngsie |
|
|
|
|
#2 |
|
Posts: n/a
|
MLyngsie wrote: > Dear All, > > What is the resulting range of an arithmetic operation on ranged > integers? > E.g. with the following two signals. > > signal X : integer range 1 to 255; > signal Y : integer range 1 to 255; > > And then some ware in the code. > > if ( X > Y/2) then ....... > > Our linding tools report a warning here stating the X is 8 bit wide and > Y/2 is only 7 bit. > So the simple question is now. > > What is the range of Y/2? > > The general question is. What is the range of any arithmetic operation > on ranged integers? > Which rules control this? > Where in the LRM is this described? > > Regards, > Mogens. Since Y is 8-bits, then (Y/2) is an 7-bit value. If Y is not used except in your if statement, then the HDL compiler figures out that it only needs 7-bits for Y. BTW, why is the low range for both X and Y '1', instead of '0'? -Dave Pollum Dave Pollum |
|
|
|
#3 |
|
Posts: n/a
|
Hi Dave,
Thank you for the answer. This is also what I assumed. But where is this stated in the LRM. It you lock in section 7.2.6 "Multiplying operators" of the LRM it is just stated that the result is of the same type as the operands. This section doesn't really describe anything about the range of integers. Regarding the lower range of the type definition. It is just there so that an error will be issued if a value that is out of the expected range is assigned. Regards, Mogens MLyngsie |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Error: expected constructor, destructor or type conversion before '(' token | suse | Software | 0 | 03-09-2009 03:25 AM |
| Eclipse - Axis2 - Java Webservices Error | amanjsingh | Software | 1 | 10-09-2007 09:03 AM |
| Need help on Modelsim VHDL syntax? ASAP:) | kaji | General Help Related Topics | 0 | 03-14-2007 10:43 PM |
| Need help on a Modelsim VHDL Syntax? ASAP:) | kaji | Software | 0 | 03-14-2007 10:43 PM |
| Need Help on a Modelsim VHDL Syntax....ASAP:) | kaji | Hardware | 0 | 03-14-2007 10:41 PM |