Verilog有4种循环语句,如下所示。\\ - forever:持续不断地执行,就是死循环。 - repeat:执行括号内表达式指定的循环次数,如果表达式是x或z,就不执行。 - while:与C语言的while循环一样,当括号内表达式为true时就执行,否则不进入循环或跳出循环。 - for:与C语言的for循环一样,括号内分三个部分。 通常按如下方式使用它们。\\ - forver:用在需要死循环的地方,例如生成时钟的地方。 - repeat:可以不用定义循环变量,直接使用,更加清晰。 - while:循环中的判断条件可以很简单,也可以很复杂。 - foe:常用于固定次数或可变次数的循环,要定义一个循环变量。 例子:\\ //forever example initial begin clk <= 0; forever #(PERIOD/2.0) clk = ~clk; end //repeat example repeat (3) @(posedge clk); //while example begin: count1s reg [7:0] tempreg; count = 0; tempreg = rega; while (tempreg) begin if (tempreg[0]) count = count + 1; tempreg = tempreg >> 1; end end