- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page