我研究了 IEEE 如何定义其库。当我打开的时候标准逻辑库,我看到了一些被定义为常数的真值表。我不知道真值表是如何运作的。请解释如何使用真值表返回结果。这是我找到的“AND”门:
TYPE stdlogic_table IS ARRAY(std_ulogic, std_ulogic) OF std_ulogic;
-- truth table for "and" function
CONSTANT and_table : stdlogic_table := (
-- ----------------------------------------------------
-- | U X 0 1 Z W L H - | |
-- ----------------------------------------------------
( 'U', 'U', '0', 'U', 'U', 'U', '0', 'U', 'U' ), -- | U |
( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ), -- | X |
( '0', '0', '0', '0', '0', '0', '0', '0', '0' ), -- | 0 |
( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ), -- | 1 |
( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ), -- | Z |
( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ), -- | W |
( '0', '0', '0', '0', '0', '0', '0', '0', '0' ), -- | L |
( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ), -- | H |
( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ) -- | - |
);
FUNCTION "and" ( l : std_ulogic; r : std_ulogic ) RETURN UX01 IS
BEGIN
RETURN (and_table(l, r));
END "and";
“UX01”定义为
SUBTYPE UX01 IS resolved std_ulogic RANGE 'U' TO 'Z';
我不知道“解决”这个关键词是如何使用的。 “resolved”被定义为库中的函数
FUNCTION resolved (s: std_ulogic_vector) RETURN std_ulogic;
我用谷歌搜索了真值表的工作原理一段时间,但没有找到解释。请解释该表如何评估输入。多谢