循环语句分为四种:
for语句
for(表达式1;表达式2;表达式3)语句//一般形式
for(循环变量赋值;循环执行条件;循环变量增值)执行语句//简单应用形式
用for语句描述的7人投票表决器,若超过4人(含4人)投赞成票,则pass
module vote(
output pass,
input [6:0] vote
);
reg[2:0]sum;//sum为reg型,用于统计赞成的人数
integer i;//必须声明为一个整形的变量
reg pass;
always @ (vote)
begin
sum = 0; //sum初值为0
for(i=0;i<=6;i=i+1) //for语句
if(vote[i]==1)
sum = sum + 1; //只要有人投赞成票
else sum = sum //避免写成锁存器
if(sum[2])pass = 1; //若超过4人赞成,则表决通过,判断sum为100在十进制种为4,则sum[2]肯定大于1,就可以pass了
else pass = 0;
end
endmoduleS
repeat语句---连续执行一条语句n次
while语句---执行一条语句直到条件不满足
若一开始条件就不满足,则该语句一次也不执行
begin
循环变量赋初值;
while(循环执行条件)
begin
<执行条件>
循环变量增值;
end
end
PS:可知for语句比while语句更简单
forever语句---无线循环的执行语句,直到disable语句中断
无条件连续执行forever后面的语句或语句块
有两种方式
1.forever 语句
2.forever
begin
.....
end
常用在测试模块种产生周期性波形,作为仿真激励信号
常用disable语句跳出循环
ps:不同于always语句,不能独立写在程序种,一般用在initial块中
initial
begin:Clocking
forever #10 clk = !clk
end
initial
begin:stimulus
.....
disable Clocking;//停止时钟
end