repeat语法

ads



点击上方

蓝字

关注我们



   大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA verilog中的repeat 和while 用法与例子。


       repeat 循环语句执行指定循环数,如果循环计数表达式的值不确定,即为 x 或z 时,那么循环次数按 0 处理。
         
        repeat 循环语句的语法为:
                repeat(循环次数表达式)
                begin
                        语句块;
                end

        其中, “循环次数表达式”用于指定循环次数,可以是一个整数、变量或者数值表达式。如果是变量或者数值表达式,其数值只在第一次循环时得到计算,从而得以事先确定循环次
数;“语句块”为重复执行的循环体。在可综合设计中, “循环次数表达式”必须在程序编译过程中保持不变。下面给出一个:

module mult_8b_repeat(
    a, b, q , a_t1
     );
   
   parameter bsize = 8;
  input  [bsize-1 : 0] a, b;
  output [2*bsize-1 : 0] q;
  output
  reg [2*bsize-1 : 0] a_t1;
  reg [2*bsize-1 : 0] q, a_t;
  reg [bsize-1 : 0] b_t;
   
   always @(a or b) begin
     q = 0;
   a_t = a;
   
    //a_t1 = {{bsize[0]},a};
   
    b_t = b;
   
   repeat(bsize) begin
    if (b_t[0]) begin
       q = q + a_t;     
            end
    else begin
       q = q;
    end
    a_t = a_t << 1;
    b_t = b_t >> 1;  
    end
  end

endmodule

         波形:
        

     


 
        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

        今天就聊到这里,各位,加油。



至芯入门实验| 基于 FPGA 的数码管动态扫描驱动设计

百花齐放的FPGA国产化现状

想学习FPGA图像处理,这些原理和方法一定要知道!

FPGA复位设计的常见问题
FPGA 的 DCM时钟管理单元概述

对比ARM、DSP,深入了解FPGA







扫取二维码获取

更多精彩

FPGA设计论坛



欢迎关注至芯科技

至芯官网:www.zxopen.com

至芯科技技术论坛:www.fpgaw.com

至芯科技淘宝网址:

https://zxopen.taobao.com

至芯科技FPGA初级课程(B站) :

https://space.bilibili.com/521850676

至芯科技FPGA在线课程(腾讯课堂) :

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839


扫码加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!


点个在看你最好看





最后编辑于:2024/1/9 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com