forever 语句在数字系统设计中是一种常用的循环控制结构,用于实现无限循环。它通常用于仿真环境中,以产生周期性的波形作为测试信号。在使用 forever 语句时,需要注意以下几点:

1. forever 语句可以单独使用,也可以与其他语句一起使用。当 forver 语句单独使用时,表示一个无限循环;当与多条语句一起使用时,需要将这些语句放在 begin 和 end 之间,表示一个多条语句的循环体。

2. forever 语句必须写在 initial 块中。initial 块是 Verilog 中的一种特殊代码块,用于定义电路的初始状态。当 forver 语句写在 initial 块中时,表示该循环将在电路初始化时开始执行。

3. 用法举例:

(1)单语句 forver 循环:

```verilog

forever do // 无限循环

// 需要重复执行的语句

end

```

(2)多语句 forver 循环:

```verilog

initial begin

forever begin // 多条语句的循环体

// 需要重复执行的语句1

// 需要重复执行的语句2

end

end

```

以下是重构后的代码:

```verilog

module tb_forever; //======================================================

parameter TIMESCALE = "1ns/1ps";

parameter MODULE_NAME = "tb_forever";

reg clk_always = 0;

reg clk_forever = 0;

reg clk_forever0 = 0;

reg clk_forever1 = 0;

reg clk_forever2 = 0;

reg clk_forever3 = 0;

always #(TIMESCALE) begin

#1 clk_always = ~clk_always;

forever #2 clk_forever = ~clk_forever;

end

forever begin

#1 clk_forever0 = ~clk_forever0;

clk_forever1 = ~clk_forever1;

end

forever begin

#1 clk_forever2 = ~clk_forever2;

#2 clk_forever3 = ~clk_forever3;

end

endmodule

```