VHDL:此构造仅在 VHDL 1076-2008 中受支持

VHDL: This construct is only supported in VHDL 1076-2008

我收到以下错误:此构造仅在 VHDL 1076-2008 中受支持。我不知道为什么。我想综合这段代码,但是这个标志可能会导致问题。

标志的目的是一旦数据输出,它就不能在以后的迭代中被覆盖。理想情况下,我希望内部循环在数据输出后立即退出,但这不会合成。

    for j in 0 to n-1 loop --For loop outputting data
        flag:='0'; --reset the flag
         for i in 0 to n-1 loop 

            flag:='1' when (a=b) else '0'; 
            Output(j)<=a when flag='1' else '0'; 


        end loop;
    end loop;   

在 VHDL-2008 之前,when else 构造不允许在进程内使用。要解决此问题,请将其替换为 if 语句。