SystemVerilog while and do-while loop

只要给定条件为真,while和do while都是循环结构,它们执行给定的语句集。

while循环首先检查条件是否为真,然后如果条件为真,则执行语句。 如果结果为假,则循环在此结束。

do while循环首先执行一次语句,然后检查条件是否为真。 如果条件为true,则执行该组语句,直到条件变为false。 如果条件为假,则循环就此结束。

因此,两者之间的区别在于do while循环至少执行一次语句集。

Syntax

while (<condition>) begin
    // 多个陈述
  end
 
  do begin
    // 多个陈述
  end while (<condition>);

Example #1 - while loop

module tb;
  initial begin
    int cnt = 0;
    while (cnt < 5) begin
      $display("cnt = %0d", cnt);
      cnt++;
    end
  end
endmodule
 
Simulation Log
ncsim> run
cnt = 0
cnt = 1
cnt = 2
cnt = 3
cnt = 4
ncsim: *W,RNQUIE: Simulation is complete.

Example #2

module tb;
  initial begin
    int cnt;
 
    while (cnt != 0) begin
      $display ("cnt = %0d", cnt);
      cnt++;
    end
  end
endmodule
 
Simulation Log
ncsim> run
ncsim: *W,RNQUIE: Simulation is complete.

Example #3 - do while loop

module tb;
  initial begin
    int cnt = 0;
    do begin
      $display("cnt = %0d", cnt);
      cnt++;
    end while (cnt < 5);
  end
endmodule
 
Simulation Log
ncsim> run
cnt = 0
cnt = 1
cnt = 2
cnt = 3
cnt = 4
ncsim: *W,RNQUIE: Simulation is complete.

参考文献:
【1】https://www.chipverify.com/systemverilog/systemverilog-while-do-while-loop

发布了91 篇原创文章 · 获赞 7 · 访问量 5255

猜你喜欢

转载自blog.csdn.net/qq_43042339/article/details/104464925