Re: VHDL compilation error "Identifier "unsigned" is not directly visible"
std_logic_arith and numeric_std both define an unsigned type. So the compiler doesnt know which to use and hence uses neither (and you get the error).
The simple answer is to delete std_logic_arith as it is a non-standard VHDL library (std_logic_unsigned is also non-standard). std_logic_arith really should be a dead package.
the long answer is to be explicit about which one you mean:
but who wants to do all that extra typing! Just delete std_logic_arith and forget the package ever existed.
Anyone using std_logic_arith is 25 years behind the times (numeric_std was released in 1993!)
std_logic_unsigned does have uses (although non-standard) but can be replaced by using numeric_std_unsigned (released 10 years ago!)