VHDL - 输入未使用

时间:2013-12-02 18:45:36

标签: vhdl

我对这段代码有疑问,“s”没有出现在“Floorplan I / O引脚”中,因为它从未使用过为什么?我怎么能解决这个问题?

entity tempModule is
  port (s  : in  std_logic;
        ss : out std_logic);
end tempModule;

architecture tempModule_Behavioral of tempModule is
begin
  process(s)
  begin
    if (s = '1') then
      ss <= '1';
    end if;
  end process;
end tempModule_Behavioral;

3 个答案:

答案 0 :(得分:2)

你确定你的UCF中有pin和ss吗?

你可以尝试的一件事就是:

ss <= s;

这将确保它不会被优化掉。

答案 1 :(得分:2)

VHDL设计描述了一个在输出上驱动'U'(未初始化)的模块 从加电开始ss,直到输入s'1',然后输出ss'1' 从那以后。

由于'U'开头的ss(未初始化)值输出可以是 通过仿真工具实现为任何值,它可以实现为 '1',其中输出ss只是微不足道'1',输入s是 从而没用过。

所以听起来像合成工具的行为是可以预期的,但也许 模块行为将被修改,因为模块似乎没有 任何有用的东西。

答案 2 :(得分:2)

您正在实现COMBINATIONAL电路,因此必须描述COMPLETE真值表。

但是,您只为s ='1'指定了ss,因此编译器理解只是始终保持输出高电平是可以的,在这种情况下实际上不需要s。

要为s的所有可能值指定ss,请尝试使用“else”结束if语句,如下所示:

if ...;
elsif ...;
else ...;