集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1735|回复: 5

简谈FPGA verilog中的while的用法和例子

[复制链接]
晓灰灰 发表于 2018-8-15 13:53:26 | 显示全部楼层 |阅读模式
        大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA verilog中while的用法和例子.
       
        while 循环语句实现的是一种“条件循环” ,只有在指定的循环条件为真时才会重复执行循环体,如果表达式条件在开始不为真(包括假、x 以及 z) ,那么过程语句将永远不会被执行。while 循环的语法为:
        while (循环执行条件表达式) begin
                语句块
        end

        在上述格式中, “循环执行条件表达式”代表了循环体得到继续重复执行时必须满足的条件,通常是一个逻辑表达式。在每一次执行循环体之前,都需要对这个表达式是否成立进行判断。 “语句块”代表了被重复执行的部分,可以为单句或多句。 While 语句在执行时,首先判断循环执行条件表达式是否为真,如果真,执行后面的语句块, 然后再重新判断循环执行条件表达式是否为真, 为真的话, 再执行一遍后面的语句块,如此不断,直到条件表达式不为真。因此,在执行语句中,必须有改变循环执行条件表达式的值的语句,否则循环就变成死循环。

module mult_8b_while(
   a, b, q
    );
   
  parameter bsize = 8;
  input  [bsize-1 : 0] a, b;

  output [2*bsize-1 : 0] q;
   
  reg [2*bsize-1 : 0] q, a_t;
  reg [bsize-1 : 0] b_t;
  reg [bsize-1 : 0] cnt;
   
  always @(a or b) begin
     q = 0;
   a_t = a;
   b_t = b;
   cnt = bsize;
   
   while(cnt > 0) begin
      if (b_t[0]) begin
       q = q + a_t;     
    end
    else begin
       q = q;
    end
    cnt = cnt - 1;
    a_t = a_t << 1;
    b_t = b_t >> 1;  
   end
  end

endmodule

        今天就聊到这里,各位,加油。
 楼主| 晓灰灰 发表于 2018-8-15 14:00:37 | 显示全部楼层
简谈FPGA verilog中的while的用法和例子
 楼主| 晓灰灰 发表于 2018-8-16 14:54:51 | 显示全部楼层
简谈FPGA verilog中的while的用法和例子
 楼主| 晓灰灰 发表于 2018-8-17 10:25:21 | 显示全部楼层
简谈FPGA verilog中的while的用法和例子
 楼主| 晓灰灰 发表于 2018-8-27 14:14:03 | 显示全部楼层
简谈FPGA verilog中的while的用法和例子
 楼主| 晓灰灰 发表于 2018-9-10 11:17:00 | 显示全部楼层
简谈FPGA verilog中的while的用法和例子
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-4-27 07:47 , Processed in 0.070789 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表