Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Valued Contributor III
757 Views

Resize function not working

I'm trying to use the resize function in order to convert a signed 12 bit value to a 31 bit value. But whenever I'm using the resize function the output value is 0. But when I'm manually converting it, it's getting converted correctly. Can anyoone please help me with this ?  

 

Thanks,
0 Kudos
3 Replies
Highlighted
Valued Contributor III
5 Views

 

--- Quote Start ---  

I'm trying to use the resize function in order to convert a signed 12 bit value to a 16 bit value. But whenever I'm using the resize function the output value is 0. But when I'm manually converting it, it's getting converted correctly. Can anyoone please help me with this ?  

 

Thanks, 

--- Quote End ---  

 

 

you didn't show your code. if it is std_logic_vector you need to define if it is resized as signed or unsigned so that negative values are filled with ones. 

 

data_resized <= resize(signed(data),18); -- assuming data is 16 bits std_logic_vector
0 Kudos
Highlighted
Valued Contributor III
5 Views

 

--- Quote Start ---  

you didn't show your code. if it is std_logic_vector you need to define if it is resized as signed or unsigned so that negative values are filled with ones. 

 

data_resized <= resize(signed(data),18); -- assuming data is 16 bits std_logic_vector 

--- Quote End ---  

 

 

data_in : IN std_logic_vector(11 downto 0); ( including the signed bit ) 

 

-- converting to 31 bit  

signal l_data_in : signed(30 downto 0); 

l_data_in <= resize(signed(data_in),31); 

 

I was using the same thing that you posted, but all my converted values were 0 when I checked in signaltap
0 Kudos
Highlighted
Valued Contributor III
5 Views

 

--- Quote Start ---  

data_in : IN std_logic_vector(11 downto 0); ( including the signed bit ) 

 

-- converting to 31 bit  

signal l_data_in : signed(30 downto 0); 

l_data_in <= resize(signed(data_in),31); 

 

I was using the same thing that you posted, but all my converted values were 0 when I checked in signaltap 

--- Quote End ---  

 

 

I can assume your problem of zeros is not related to resize function failure. resize is simple function that extends the sign bit.
0 Kudos