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
语句。
我收到以下错误:此构造仅在 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
语句。