library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

-- rotate logically left by n bits
entity left_rotator is
  port (n    : in  std_ulogic_vector(4 downto 0); 
        din  : in  std_ulogic_vector(31 downto 0);
        dout : out std_ulogic_vector(31 downto 0)
       );
end left_rotator;

architecture behavior of left_rotator is
begin
  assign: process (n,din) 
  begin
     dout <= std_ulogic_vector(ROTATE_LEFT(unsigned(din),to_integer(unsigned(n))));
  end process;
end behavior;
