我通过ModelSim在VHDL中遇到问题。这是我的if语句中的错误。
if ((s(0) = c(0)) AND (NOT(x1(0)))) THEN
I:= (others => '0');
end if;
这是我的if语句,错误是:中缀运算符“和”没有可行的条目。 但是,在我试图检查程序后,我意识到问题在于使用(不是门)。也许,还有另一种在vhdl中使用它的方法。 谁能帮忙? 谢谢
答案 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”指定其元素类型的类型。
(操作员有一个优先顺序,说明所有括号都是多余的)。