在VHDL中使用带有变量的FOR循环

Бој*_*ски 4 loops for-loop vhdl while-loop synthesize

有没有可能的方法在窗体中创建一个for循环:

for i in 0 to some_var loop
    // blah,blah
end loop;
Run Code Online (Sandbox Code Playgroud)

如果没有,有没有其他方法来创建相同的循环?由于While循环允许使用变量作为限制,但它们在我的项目中不可合成.

提前致谢,

Bojan Matovski

Jim*_*wis 11

该变量适用于testbench应用程序.

对于合成,您可以通过使用静态范围和退出条件获得相同的效果.将范围设置为您需要的最大值.

for i in 0 to MAX_VALUE loop
  exit when i = some_var ;
  // blah,blah
end loop;
Run Code Online (Sandbox Code Playgroud)

如果您的综合工具对此产生阻碍,请提交错误报告.1076.6-1999和1076.6-2004(VHDL RTL综合标准)都表明具有静态范围的"for"循环支持退出条件.您可能会发现有关使用循环标签(1076.6-1999)的支持问题表明它不受支持.

如果您发现错误(或缺乏支持)并且未报告错误,您的供应商会认为这是您不关心的功能,因此不会投资改变他们的工具.