码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-08-06 20:14:22      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:ali   ext   end   时序   out   关于   code   执行   技术分享   

//该模块主要用来说明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循环的执行方式

标签:ali   ext   end   时序   out   关于   code   执行   技术分享   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!