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标准化并处理了许多常见的用例。