The basic comparison operations,
less than (`<`

), less than or equal (`<=`

)
greater than (`>`

), greater than or equal (`>=`

)
equal to (`=`

) and not equal to (`/=`

)
are defined on the `unsigned`

and `signed`

types.

Each of the operators can take `unsigned`

, `signed`

and `integer`

values as arguments. They all return `boolean`

values.

Note that this library *doesn't* allow you to do comparisons on `std_logic_vector`

values. That's because it's impossible for it to determine whether a particular `std_logic_vector`

is representing a signed or unsigned value. To do this, you need to use either the `std_logic_unsigned`

or `std_logic_signed`

libraries.

signal u1, u2 : unsigned (3 downto 0); signal s1 : signed (3 downto 0); signal o1,o2 : std_logic; ... u1 <= "1001"; -- = 9 u2 <= "0111"; -- = 7 s1 <= "1001"; -- = -7 wait for 10 ns; if u1 > u2 then o1 <= '1'; -- o1 set to '1' else o1 <= '0'; end if; if s1 > u2 then o2 <= '1'; else o2 <= '0'; -- o2 set to '0' end if;