我有Signal myVec : std_logic_vector(8 down 0)
。 Modelsim显示此值:0X000010
。所以bit(6)
是未定义的。这是否会影响其他位,例如bit(1)
?
我用以下内容更改状态:
if myVec(1) = '0' then
--change the state to x
else
--change state to y
end if;
问题是状态总是切换到y
,我不知道为什么。
可能是bit(6)
myVec
对bit(1)
或其他位有影响吗?
答案 0 :(得分:1)
'X'是不未定义。 std_logic_1164将“X”定义为“强制未知”。需要 IF ,'U'用于“未初始化”= ~undefined。
'X'实际上意味着无法正确分辨信号,例如它由'1'和'0'驱动。如果您将类型从std_logic
更改为std_ulogic
,您可能会看到这种情况发生的位置。
但你的问题是:除非以不同的方式实现,否则数组中的各个元素不会相互影响。