std_logic
具有解析功能
std_logic
除了1
和之外0
,它不仅具有更多有用的状态,还定义了解析功能。
解析功能是VHDL语言的概念。它是与一种类型相关联的函数,它确定了当该类型的多个值应用于单个信号时会发生什么。语法为:
SUBTYPE std_logic IS resolved std_ulogic;
std_ulogic
的未解析版本(因此有用程度大大降低)在哪里std_logic
?
特别是,这暗示着类似的好东西,0
并1
导致X
:
library ieee;
use ieee.std_logic_1164.all;
entity std_logic_tb is
end std_logic_tb;
architecture behav of std_logic_tb is
signal s0 : std_logic;
begin
s0 <= '0';
s0 <= '1';
process
begin
wait for 1 ns;
assert s0 = 'X';
wait;
end process;
end behav;
根据我们的理解X
,这是将多个不兼容的值应用于单根导线的状态,这具有直观的意义。
std_logic
还知道如何根据LRM上存在的表格来解析每对可能的输入信号对。
bit
另一方面,它没有解析功能,如果我们在以上示例中使用了解析功能,则会导致GHDL 0.34上的模拟错误。
可能的值std_logic
是一个不错的选择,因为它们已由IEEE 1164标准化并处理了许多常见的用例。