当前位置:   article > 正文

Verilog循环语句_verilog for循环

verilog for循环

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

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

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

一、For循环

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

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

1、语法

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

说明:

        <initial_condition> 设置循环变量的初始值。在使用它之前,必须先定义一个integer的变量。

        <stop_condition> 循环执行判断条件。如果为true,for 循环将继续执行,否则跳出循环。

        <increment> 更新循环变量,注意只能用类似i=i+1或i=i-1。

2、代码示例

        for 循环实现移位寄存器

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

二、Forever循环

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

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

1、语法

  1. forever begin
  2. // 循环执行的语句
  3. end

3、代码示例

        创建一个10Mhz的时钟

  1. initial begin
  2. clk = 1'b0;
  3. forever begin
  4. #5 clk = ~clk;
  5. end
  6. end

三、Repeat循环

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

1、语法

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

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

2、代码示例

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

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

四、While 循环

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

1、语法

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

        说明:循环执行条件。

2、代码示例

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/101530
推荐阅读
相关标签
  

闽ICP备14008679号