Community
cancel
Showing results for 
Search instead for 
Did you mean: 
KBill3
Beginner
327 Views

failed to evaluate call to operator ""&""

Hallo everyone,

 

i need to shift a signal " mantissa_D" with a value, this value "D_shift" is the different between exponent of two floating point number (Q, D). Unfortunately, i got an error "failed to evaluate call to operator ""&"" "

, because "D_shift" is declared as a variable (it is not possible to declare it as constant). here is what i did:

--------------------------

variable mantissa_Q: unsigned (23 downto 0);

variable mantissa_D: unsigned (23 downto 0);

variable zeros : unsigned (23 downto 0);

variable D_shift: integer;

variable Q_shift: integer;

--------------------------

D_shift:= (exp_Q - exp_D);

mantissa_D := unsigned (zeros (23 downto 23 - D_shift+1)) & mantissa_D(23 downto D_shift);

 

can someone help me to solve this issue?

Thanks in advance.

 

0 Kudos
1 Reply
sstrell
Honored Contributor II
65 Views

I think you're missing an outer set of parentheses.

 

mantissa_D := unsigned ((zeros (23 downto 23 - D_shift+1)) & mantissa_D(23 downto D_shift));

 

#iwork4intel

 

Reply