Syntax VHDL分配时。。。else呈现语法错误

Syntax VHDL分配时。。。else呈现语法错误,syntax,vhdl,Syntax,Vhdl,简单地说,这条线有什么问题 zero <= '1' when alu_out = "00000000" else '0'; 听起来像是使用VHDL-2002修订版,其中并发条件信号分配格式不能用作进程中的语句 如果工具允许,尝试启用VHDL-2008修订版支持,否则使用if语句或编写自己的三元函数 也看到这个 对于Altera Quartus Prime ver。15.1 VHDL输入版本选择如下图所示 谢谢!我重写了一点代码,这样我就可以把作业移出这个过程,这样就行了。使用Quartu

简单地说,这条线有什么问题

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

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

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

也看到这个

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


谢谢!我重写了一点代码,这样我就可以把作业移出这个过程,这样就行了。使用Quartus II 13.0.1。我不知道支持哪些版本的VHDL。不管怎样,你的建议听起来不错,问题也解决了,所以我接受这个答案。我认为Altera Quartus II版本。13还具有一定级别的VHDL-2008支持,因此您可以尝试启用它。有关如何在Quartus Prime版本中启用它,请参见添加的图。15.1,与ver类似。13.1.
Error (10500): VHDL syntax error at alu.vhd(27) near text "when";  expecting ";"