分享

verilog中的repeat的用法和例子

 aixuexidewau1 2019-05-23

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

 

波形:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多