如何管理未初始化的输入信号

时间:2012-11-12 00:50:20

标签: simulation vhdl modelsim hardware-design

我想知道您对如何测试和管理“U”,“X”,“ - ”等组件的输入信号的意见。

例如,如果我希望所有无效输入的输出为'X',其中输入的至少一位不是'0'或'1':

entity foo is
    port (
        signal inp : std_logic_vector(7 downto 0);
        signal outp: std_logic );
end entity foo;

architecture bar of foo is
begin
    process(inp)
        if (inp < "11001010") then
            outp <= '1';
        else
            outp <= '0';
        end if;
    end process;
end architecture bar;

这样,测试默认为false。

如何测试输入的一般方法?

1 个答案:

答案 0 :(得分:3)

使用std_logic_1164中的Is_X;如果您的true包含“U”,“X”,“Z”,“W”,“ - ”中的任何一个,它将返回std_logic_vector

Is_X将始终在合成期间返回false(例如,您可以使用Is_X('W')来测试您是在进行模拟还是合成。)