![]() |
|
|
|||||||
![]() |
VHDL - unsigned to integer conversion |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
Hello,
i have a 48 bit unisgned numbers and need to convert them to integer. I used to_integer functioin but getting the eroor that this function only works with numbers less than 32 bit. can anyone suggest another function or technique. John john |
|
|
|
|
#2 |
|
Posts: n/a
|
"john" <> wrote in message news: ps.com... > Hello, > > i have a 48 bit unisgned numbers and need to convert them to integer. > I used to_integer functioin but getting the eroor that this function > only works with numbers less than 32 bit. can anyone suggest another > function or technique. An integer in VHDL is only 32 bits wide. In fact, it's not even that wide, since the most-negative value (-2**31) is not part of the defined range for integers. If you need to manipulate numbers that are wider than 31 bits, you cannot use VHDL's built-in integer type. Sorry. -Ben- |
|
|
|
#3 |
|
Posts: n/a
|
Ben Jones a écrit :
> "john" <> wrote in message > news: ps.com... >> Hello, >> >> i have a 48 bit unisgned numbers and need to convert them to integer. >> I used to_integer functioin but getting the eroor that this function >> only works with numbers less than 32 bit. can anyone suggest another >> function or technique. > > An integer in VHDL is only 32 bits wide. In fact, it's not even that wide, > since the most-negative value (-2**31) is not part of the defined range for > integers. > > If you need to manipulate numbers that are wider than 31 bits, you cannot > use VHDL's built-in integer type. Sorry. You could try by splitting your unsigned vector and converting each slice to integer. You'll probably need to define an array of integers type to keep your slices together in a single object (signal or variable) I did it once for a 96 bits wide memory model (storing integers is less memory consuming than storing vectors) Nicolas |
|