The matching functions (std_match) are used to determine if two values of type std_logic are logically equivalent, taking into consideration the semantic values of the ‘X’ (uninitialized) and ‘-’ (don’t-care) literal values. The table of Figure 4-3 (derived from the match_table constant declaration found in the numeric_std package) defines the matching of all possible combinations of the std_logic enumerated values.

 

 

U

X

0

1

Z

W

L

H

-

U

F

F

F

F

F

F

F

F

T

X

F

F

F

F

F

F

F

F

T

0

F

F

T

F

F

F

T

F

T

1

F

F

F

T

F

F

F

T

T

Z

F

F

F

F

F

F

F

F

T

W

F

F

F

F

F

F

F

F

T

L

F

F

T

F

F

F

T

F

T

H

F

F

F

T

F

F

F

T

T

-

T

T

T

T

T

T

T

T

T

 

    function std_match (L, R: STD_ULOGIC) return boolean;

    function std_match (L, R: unsigned) return boolean;

    function std_match (L, R: signed) return boolean;

    function std_match (L, R: std_logic_vector) return boolean;

    function std_match (L, R: STD_ULOGIC_vector) return boolean;