process (nx_state,clk) ---------------------------------------------------------------------------- ------------------------------first segment
begin
if (resetn = '0' ) then
shift_reg <= (others => '0');
elsif rising_edge(clk)then
shift_reg <= std_logic_vector(unsigned(source_reg) sll unsigned(source_shift_reg));
end if;
end process;