如何评估vhdl中循环的索引

时间:2015-11-25 09:11:51

标签: vhdl

说我有一个循环:

for j in 0 to 9 loop
  if  j <= natutalValue then
    -- do stuff;
  end if ;
end loop;

当我以这种方式编写代码时,编译器对它不满意。

我的问题:我可以评估自然吗?

1 个答案:

答案 0 :(得分:2)

您的代码不是Minimal, Complete, and Verifiable example,错过了NatutalValue的声明。

填空:

entity evaluate is
end entity;

architecture foo of evaluate is
    constant natutalValue:  integer := 4;
begin
    process 
    begin
        for j in 0 to 9 loop
            if j <= natutalValue then
                report "j = " &integer'image(j) &" do stuff";
            end if;
        end loop;
        wait;
    end process;
end architecture;
  

Macbook:ghdl -a evaluation.vhdl
  Macbook:ghdl -e评估
  Macbook:ghdl -r评价
  evaluate.vhdl:11:17:@ 0ms :(报告说明):j = 0做东西
  evaluate.vhdl:11:17:@ 0ms :(报告说明):j = 1做东西
  evaluate.vhdl:11:17:@ 0ms :(报告说明):j = 2做东西
  evaluate.vhdl:11:17:@ 0ms :(报告说明):j = 3做东西
  evaluate.vhdl:11:17:@ 0ms :(报告说明):j = 4做东西

它有效。这说明问题出在你没有告诉我们的事情上。