Loops 在Verilog中,执行逻辑后是否可以检查循环的条件?

Loops 在Verilog中,执行逻辑后是否可以检查循环的条件?,loops,verilog,Loops,Verilog,实际上,我正在寻找一种方法,只使用一个3位变量进行增量循环8次 我确实意识到一个简单的解决方案是使用4位变量并使用 for(i=0; i<8; i = i+1) 谢谢 do..while构造存在于系统verilog中,您显示的解决方案在那里有效。但它不能在普通的verilog中工作 对于普通verilog,您可以使用任何编程技巧,即使用标志: reg [2:0] i; reg flag; initial begin flag = 0; i = 0;

实际上,我正在寻找一种方法,只使用一个3位变量进行增量循环8次

我确实意识到一个简单的解决方案是使用4位变量并使用

for(i=0; i<8; i = i+1)

谢谢

do..while
构造存在于系统verilog中,您显示的解决方案在那里有效。但它不能在普通的verilog中工作

对于普通verilog,您可以使用任何编程技巧,即使用标志:

  reg [2:0] i;
  reg flag;

  initial begin
    flag = 0;
    i = 0;
    while(flag == 0) begin
      $display("i = %g", i);
      i = i+1;
      if (i == 0) flag = 1;
    end
  end
您可以手动展开一个迭代:

  initial begin
   i = 0;
   $display("i = %g", i);
   i = 1;
   while( i != 0) begin
      $display("i = %g", i);
      i = i+1;
    end
  end
您可以使用repeat:

  initial begin
    i = 0;
    repeat(8) begin
      $display("i = %g", i);
      i = i+1;
    end
  end
等等

  initial begin
    i = 0;
    repeat(8) begin
      $display("i = %g", i);
      i = i+1;
    end
  end