//源自 微信公众号 “数字芯片实验室”
![a881a2182f2771fc36a573fb98c7f0ea.png](https://i-blog.csdnimg.cn/blog_migrate/195f6b6293e2b80ea4bbceb893943b26.jpeg)
循环结构forever,repeat,while,for和do-while之间有什么区别?
在Verilog-2001中支持forever, repeat, while和for循环语句,do-while结构是在
SystemVerilog中引入的。这些语句根本上的不同在于begin-end语句块中执行了多少次循环。
以下总结了这些差异:
forever :forever 语句块中的语句会一直执行,没有任何变量来控制它,直到仿真结束。 例如:
initial begin
clk = 1 ;
forever begin : clk_block
#(clk_period/2) clk =~clk ;
end
end
forever 循环不能通过disable语句终止。
repeat:repeat语句块中执行一个固定循环次数的语句。
例如:
integer var1 , i;
initial begin
var1 = 8 ;
i = 0 ;
r