VHDL赋值时... else会出现语法错误

时间:2016-01-06 13:06:28

标签: syntax vhdl

简单地说,这条线会出现什么问题?

zero <= '1' when alu_out = "00000000" else '0';

这是一个过程。 zerostd_logicalu_outstd_logic_vector(7 downto 0)。两者都在实体中定义,并且在体系结构中进行分配。错误是:

Error (10500): VHDL syntax error at alu.vhd(27) near text "when";  expecting ";"

1 个答案:

答案 0 :(得分:3)

听起来像使用VHDL-2002修订版,其中并发条件信号分配格式不能用作进程中的语句。

如果工具允许,请尝试启用VHDL-2008修订支持,否则使用if语句或编写自己的三元函数。

另见question and answer

对于Altera Quartus Prime版本。 15.1 VHDL输入版本选择如下图所示。

enter image description here