No feasible entries for subprogram "CONV_INTEGER"
The short form answer : first delete the non-standard library ieee.std_logic_arith.all;

It and its std_logic_[un]signed cousins are a mess of slightly ambiguous functions that obscure what your code means and can fail unexpectedly like this example. Does conv_std_logic_vector generate a signed or unsigned representation? Does that depend which libraries you are using? Does conv_integer convert TO an integer, or FROM an integer?

Second, decide what your std_logic_vector quantities represent : signed or unsigned numbers?
You can declare them as signed or unsigned instead (from ieee.numeric_std library). If you MUST keep them as std_logic_vector (WHY?) then you can cast between types via signed(), unsigned(), std_logic_vector().

Then you can replace 

A &lt;= conv_std_logic_vector(va, A'length);
vr := conv_integer(R);


with 

A &lt;= to_unsigned(va, A'length);     -- or to_signed
vr := to_integer(R);