简单地说,这条线会出现什么问题?
zero <= '1' when alu_out = "00000000" else '0';
这是一个过程。 zero
为std_logic
,alu_out
为std_logic_vector(7 downto 0)
。两者都在实体中定义,并且在体系结构中进行分配。错误是:
Error (10500): VHDL syntax error at alu.vhd(27) near text "when"; expecting ";"
答案 0 :(得分:3)
听起来像使用VHDL-2002修订版,其中并发条件信号分配格式不能用作进程中的语句。
如果工具允许,请尝试启用VHDL-2008修订支持,否则使用if
语句或编写自己的三元函数。
对于Altera Quartus Prime版本。 15.1 VHDL输入版本选择如下图所示。