【verilog】verilog循环语句

1. 循环语句

verilog 循环语句有 4 种类型,分别是 whileforrepeat,和 forever 循环。

循环语句只能在 always 或 initial 块中使用。

2. while 循环

while 的循环语法

格式如下

while(condition) begin
	...
	...
	...
end

while 循环中止条件为 condition 为假。

如果一开始 condition 就为假,那么 while 循环语句一次也不会执行。

示例如下

reg [7:0] cnt ;

initial begin
	cnt = 8'd0 ;
	while(cnt <= 10) begin /// 直到cnt<=10不成立,while循环终止
		#10 ;
		cnt = cnt + 1 ;
	end
end

3. for 循环

for 循环语法

格式如下

for(initial_assignment; condition; step_assignmen) begin
	...
	...
	...
end

for(初始条件;终止条件;过程语句) begin
	...
	...
	...
end
  • initial_assignment 为初始条件。
  • condition 为终止条件。condition 为假时,立即跳出循环。
  • step_assignment 为改变控制变量的过程赋值语句,通常为增加或减少循环变量计数。

示例如下

integer i ;
reg [7:0] cnt ;

initial begin
	cnt = 0 ;
	for(i=0; i<=10; i=i+1) begin
		cnt = cnt + 1;
	end
end

笔记

verilog 中没有 i++的写法。


4. repeat 循环

repeat 循环语法

格式如下

repeat(loop_time) begin
	...
	...
	...
end

repeat(循环次数) begin
	...
	...
	...
end

repeat 的功能是执行固定次数的循环。

repeat 不能像 while 循环那样用一个逻辑表达式来确定循环是否继续执行。

repeat 循环的次数必须是一个常量,变量或信号。

如果循环次数是变量信号,则循环次数是开始执行 repeat 循环时变量信号的值。即便执行期间,循环次数代表的变量信号的值发生了变化,repeat 执行次数也不会改变。

示例如下

reg [7:0] cnt ;

initial begin
	cnt = 8'd0 ;
	repeat(7) begin /// 重复7次
		#10 ;
		cnt = cnt + 1'b1 ;
	end
end

5. forever 循环

forever 的循环语法

格式如下

forever begin
	...
end

forever 语句表示永久循环,不包含任何任何条件表达式。

一旦执行便无限的执行下去,系统函数 $finish 可退出 forever。


笔记

forever 可以理解为 while(1).


示例如下

reg clk ;

initial begin
	clk = 0 ;
	forever begin
		#5 clk = ~clk ;
	end
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值