Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
15664 Discussions

failed to evaluate call to operator ""&""

KBill3
Beginner
497 Views

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 III
235 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