我想知道您对如何测试和管理“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。
如何测试输入的一般方法?
答案 0 :(得分:3)
使用std_logic_1164
中的Is_X
;如果您的true
包含“U”,“X”,“Z”,“W”,“ - ”中的任何一个,它将返回std_logic_vector
。
Is_X
将始终在合成期间返回false
(例如,您可以使用Is_X('W')
来测试您是在进行模拟还是合成。)