Modelsim:std_logic_vector中的'X'是否会影响向量中的其他位?

时间:2017-06-08 13:56:35

标签: vhdl fpga modelsim quartus

我有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) myVecbit(1)或其他位有影响吗?

1 个答案:

答案 0 :(得分:1)

'X'是未定义。 std_logic_1164将“X”定义为“强制未知”。需要 IF ,'U'用于“未初始化”= ~undefined。

'X'实际上意味着无法正确分辨信号,例如它由'1'和'0'驱动。如果您将类型从std_logic更改为std_ulogic,您可能会看到这种情况发生的位置。

但你的问题是:除非以不同的方式实现,否则数组中的各个元素不会相互影响。