Verilog循环语句(for、while、foever和repeat)

Verilog循环语句(for、while、foever和repeat)本文主要介绍 verilog 常用的循环语句 循环语句的用途 主要是可以多次执行相同的代码或逻辑

大家好,欢迎来到IT知识分享网。

本文主要介绍verilog常用的循环语句,循环语句的用途,主要是可以多次执行相同的代码或逻辑。

verilog的循环语句主要有:for循环、while循环、foever循环和repeat循环。

注意注意,for循环在正式FPGA设计中部分情况下可综合,其余几个循环语句均不可综合,主要用于testbench。

一、For循环

for 循环会将一段代码执行固定次数。

虽然它通常用于testbench,但也可以在可综合的 verilog 代码中使用,比如 for 循环处理verilog数组。

1、语法

for (<initial_condition>; <stop_condition>; <increment>) begin //执行条件判断 //要循环执行的代码 end

说明:

<initial_condition> 设置循环变量的初始值。在使用它之前,必须先定义一个integer的变量。<stop_condition> 循环执行判断条件。如果为true,for 循环将继续执行,否则跳出循环。<increment> 更新循环变量,注意只能用类似i=i+1或i=i-1。

2、代码示例

for 循环实现移位寄存器

reg [5:0] shift [0:3]; wire [5:0] init_data = 'd10; wire [6*4-1] shift_com_w; //将输入赋值给数组的第一个数 shift[0] <= init_data; //使用for循环语句来将数组整体向左移动 for (i = 1; i < 4; i = i + 1) begin shift[i] <= shift[i-1]; end //合并数组,易于输出模块 for (i = 0; i < 4; i = i + 1) begin assign shift_com_w[i*6+:6] = shift[i]; end

二、Forever循环

verilog 中的forever循环会创建一个连续执行的代码块,并无限循环。

forever循环只能在testbench中使用,常用于生成激励时钟信号。注意forever循环无法被综合。

1、语法

forever begin // 循环执行的语句 end

3、代码示例

创建一个10Mhz的时钟

initial begin clk = 1'b0; forever begin #5 clk = ~clk; end end

三、Repeat循环

repeat循环执行指定次数的循环代码块。注意该语句不可综合。

1、语法

repeat (<number>) begin //指定重复次数 //需要重复执行的代码 end

说明: 用来确定重复循环的次数

2、代码示例

检测到上升沿,信号翻转一次。

repeat (6) begin //重复6次 @(posedge sig_a) //上升沿 sig_b = ~sig_b; //翻转 end

四、While 循环

while循环的每次迭代之前都会判断指定条件是否满足,如果为真,就执行条件内的循环代码块;否则,就不会执行。注意该语句不可综合。

1、语法

while <condition> begin //判断条件 // Code to execute //要重复执行的语句 end

说明: 循环执行条件。

2、代码示例

创建一个从 0 到 3 的integer型变量,然后在循环的每次迭代中打印这个变量的值。

integer i; while (i < 4) begin $display("i = %0d", i); i = i + 1; end

本文将不断定期更新中,点赞,收藏一下,不走丢哦

有任何问题,都可以在评论区和我交流哦

本文由FPGA入门到精通原创,公众号为“FPGA入门到精通”,github开源代码:“FPGA知识库

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/141807.html

(0)
上一篇 2025-05-14 19:10
下一篇 2025-05-14 19:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信