首页 > 其他 > 详细

关于always块内for循环的执行方式

时间:2018-08-06 20:05:56      阅读:279      评论:0      收藏:0      [点我收藏+]
//该模块主要用来说明for结构在时序逻辑中的执行方式
module for_test(input clk_1,nrst,output now_nine,nrst_pos,output reg[9:1] eq_dly
    );
    integer i;
    parameter eq=1b1;
 always @(posedge clk_1 or negedge nrst)   
    begin
      if (!nrst) 
           for (i=1; i<=9; i=i+1)
               eq_dly[i] <= 0;  
       else    
         begin
           eq_dly[1] <= eq; 
          for (i=1; i<9; i=i+1)  //说明了整个 eq_dly[9:1]=9‘b111111111;并不是一个时钟周期就完成了赋值。而是经过个九个时钟沿!!!!
               eq_dly[i+1] <= eq_dly[i];
         end            
    end      
     
     assign now_nine = !(&(eq_dly));  
     assign nrst_pos = !(eq && now_nine); 

endmodule

波形文件如下:

技术分享图片

关于always块内for循环的执行方式

原文:https://www.cnblogs.com/shaonianpi/p/9432226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!