Re: infeasible opearotr
You can do it manually to avoid this problem:
For example, a 5 bit number to be shifted left by 3:
num(4 downto 2)<=num(2 downto 0);
num(2 downto 0)<="00";
If you want to use multiplication, then you should use a binary number instead of integer:
e.g:
num2<=num1*"100";--shift by 2, num2's size should be larger than num1 by 2.
num1<=num2(4 downto 0);--if inside process, will hold value of the previous clock, be careful.
and you must include ieee.std_logic_unsigned.*;
Note that the multiplication method consumes more hardware if you want to synthesize your code.