My counter is declared signal cnt : std_logic_vector(7 downto 0); and the line cnt <= cnt + 1; fails to compile with a message that no + operator matches. Some examples fix this by adding use ieee.std_logic_unsigned.all;, others use numeric_std with conversions everywhere, and I cannot tell which is correct.
What is the recommended way to do arithmetic on vectors in VHDL, how do the conversions work, and what happens to the carry when I add two 8-bit values such as 200 and 100?




