在Verilog HDL中存在着4种类型的循环语句,用来控制执行语句的执行次数。
(1)forever:连续的执行语句。
(2)repeat:连续执行一条语句 n 次。
(3)while:执行一条语句直到某个条件不满足。如果一开始条件即不满足(为假),则语句一次也不能被执行。
(4)for通过以下3个步骤来决定语句的循环执行。
① 先给控制循环次数的变量赋初值。
② 判定控制循环的表达式的值,如为假则跳出循环语句,如为真则执行指定的语句后,转到步骤③。
③ 执行一条赋值语句来修正控制循环变量次数的变量的值,然后返回步骤②。
下面将详细地对各种循环语句进行介绍。
begin: count1s
reg[7:0] tempreg;
count=0;
tempreg = rega;
while(tempreg) begin //当tempreg中有不为0的位时,循环执行
if(tempreg[0]) count = count + 1; //低位为1时,计数
tempreg = tempreg>>1; //否则右移1位,此时高位用0填补
end
end
4.for语句
for语句的一般形式为:
for(表达式1;表达式2;表达式3) 语句
它的执行过程如下。
① 先求解表达式1。
② 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行步骤③;若为假(0),则结束循环,转到步骤⑤。
③ 若表达式为真,在执行指定的语句后,求解表达式3。
④ 转到步骤②继续执行。
⑤ 执行for语句下面的语句。
for语句最简单的应用形式是很易理解的,其形式如下:
for(循环变量赋初值;循环结束条件;循环变量增值)
执行语句
for循环语句实际上相当于采用while循环语句建立以下的循环结构:
begin
循环变量赋初值;
while(循环结束条件) begin
执行语句
循环变量增值;
end
end