在 VHDL 中如何检查 UNSIGNED(8 downto 0) 是 UNINITIALIZED 还是 UNDEFINED?

in VHDL how to check if UNSIGNED(8 downto 0) is UNINITIALIZED or UNDEFINED?

我无法检查无符号(8 到 0)数据类型是“XXXXXXXX”还是“UUUUUUUU”

在进程内部作为变量或什至检查输入我都无法让它工作。

有什么解决办法吗?

这是因为 numeric_std 包重载了 "=" 函数,因此任何“UUUU”或“XXXX”值都会导致结果始终为假。请记住 numeric_std 是算术运算,因此非数值会导致此行为。

要进行有效比较,请先将无符号数转换为 std_logic_vector:

if std_logic_vector(some_unsiged) = "XXXXXXXXX" then