如果在VHDL中声明错误

时间:2014-03-17 06:33:54

标签: if-statement vhdl fpga hdl modelsim

我通过ModelSim在VHDL中遇到问题。这是我的if语句中的错误。

if ((s(0) = c(0)) AND (NOT(x1(0)))) THEN 
   I:= (others => '0');
 end if;  

这是我的if语句,错误是:中缀运算符“和”没有可行的条目。 但是,在我试图检查程序后,我意识到问题在于使用(不是门)。也许,还有另一种在vhdl中使用它的方法。 谁能帮忙? 谢谢

1 个答案:

答案 0 :(得分:1)

您没有x1类型的指示。它告诉你表达式NOT(x1())))与选择可见的任何已定义的AND运算符不兼容(例如,上下文子句指定的包可见性)。

尝试将x1(0)评估为值,而不是简单地使用反转运算符。

例如:

if s(0) = c(0) AND x1(0) = '0' THEN 
    I:= (others => '0');
 end if;  

x1是否应为可以使用枚举值“0”指定其元素类型的类型。

(操作员有一个优先顺序,说明所有括号都是多余的)。